4 - library : Contains Schema-independent library that is a reference implementation for RFC 7047.
5 This module doesn't depend on any of the Opendaylight components.
6 This library module can also be used independently in a non-OSGi environment.
9 |-- openvswitch : Schema wrapper that represents http://openvswitch.org/ovs-vswitchd.conf.db.5.pdf
10 |-- hardwarevtep: Schema wrapper that represents http://openvswitch.org/docs/vtep.5.pdf
12 - plugin : Contains Opendaylight Southbound Plugin APIs and provides an simpler API interface on top of library layer.
13 Ideally, this module should also be schema independent. But due to legacy reasons this layer contains some
14 deprecated functionalities that assume openvswitch schema.
16 - northbound : Provides AD-SAL style Northbound REST APIs.
17 Supports the legacy v2 APIs to provide backward compatibility for Hydrogen Release
18 Also supports the newer v3 APIs to provide schema-independent access to the OVSDB protocol.
21 |-- net-virt : Handles the Openstack Neutron ML2 and Network Service calls and performs all the logic required
22 for Network Virtualization.
23 |-- net-virt-providers : Mostly contains data-path programming functionalities via OpenFlow or potentially
27 |-- parent : Contains Parent pom.xml for all the ovsdb modules.
28 |-- integrationtest : Contains the parent pom.xml for all the integrationtest needs.
30 - distribution : Builds a working controller distribution based on the controller + ovsdb modules and other
31 dependant modules such as openflowplugin
33 - features : This folder contains all the Karaf related files.
35 - integrationtest : Contains all the PAX-Exam based integrationTests that covers IT for all of the above modules.
37 - resources : Contains some useful resources such as scripts, testing utilities and tools used for deployment
38 or testing the binaries generated from the OVSDB project.
43 Pre-requisites : JDK 1.7+, Maven 3+
45 1. Building a OVSDB based Opendaylight Virtualization edition :
46 1. This is the legacy way to build and distribute Opendaylight archives. And this method was
47 followed in Hydrogen and possibly in Helium release as well.
49 2. From the root folder(that hosts this README), execute "mvn clean install"
50 That should build a full distribution archive and distribution directory that will contain
51 Opendaylight Controller + OVSDB bundles + Openflow Plugins under
52 distribution/opendaylight/target/distribution.ovsdb-X.X.X-osgipackage
54 3. Upon successful completion of a build, the Controller with OVSDB can be executed by :
55 cd distribution/opendaylight/target/distribution.ovsdb-X.X.X-osgipackage/opendaylight/
59 2. Building a Karaf Feature and deploying it in an Opendaylight Karaf distribution :
60 1. This is a new method for Opendaylight distribution wherein there is no defined editions such
61 as Base, Virtualization or SP editions. Rather each of the projects will generate features in
62 form of .kar files. The end-customer can choose to deploy the required feature based on his/her
65 2. From the features/ directory, execute "mvn clean install"
66 This will generate a kar file such as "features/target/ovsdb-features-1.2.0-SNAPSHOT.kar"
68 3. Download (or build from controller project) the Karaf distribution :
69 http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/controller/distribution.opendaylight-karaf/
71 http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/controller/distribution.opendaylight-karaf/1.4.2-SNAPSHOT/distribution.opendaylight-karaf-1.4.2-20140718.075612-407.zip
73 4. unzip the downloaded (or built) distribution and copy the ovsdb-features-x.x.x.kar file (from step 2) into
74 the unzipped distribution.opendaylight-karaf-X.X.X/deploy/ directory.
76 5. run Karaf from within the distribution.opendaylight-karaf-X.X.X/ directory using "bin/karaf"
78 Sample output from Karaf console :
80 opendaylight-user@root>kar:list
82 -----------------------------
83 ovsdb-features-1.2.0-SNAPSHOT
85 opendaylight-user@root>feature:list | grep ovsdb
86 odl-ovsdb-all | 1.2.0-SNAPSHOT | x | ovsdb-1.2.0-SNAPSHOT | OpenDaylight :: OVSDB :: all
87 odl-ovsdb-library | 1.0.0-SNAPSHOT | x | ovsdb-1.2.0-SNAPSHOT | OVSDB :: Library
88 odl-ovsdb-schema-openvswitch | 1.0.0-SNAPSHOT | x | ovsdb-1.2.0-SNAPSHOT | OVSDB :: Schema :: Open_vSwitch
89 odl-ovsdb-schema-hardwarevtep | 1.0.0-SNAPSHOT | x | ovsdb-1.2.0-SNAPSHOT | OVSDB :: Schema :: hardware_vtep
90 odl-ovsdb-plugin | 1.0.0-SNAPSHOT | x | ovsdb-1.2.0-SNAPSHOT | OpenDaylight :: OVSDB :: Plugin
92 opendaylight-user@root>bundle:list | grep OVSDB
93 186 | Active | 80 | 1.0.0.SNAPSHOT | OVSDB Library
94 199 | Active | 80 | 1.0.0.SNAPSHOT | OVSDB Open_vSwitch Schema
95 200 | Active | 80 | 1.0.0.SNAPSHOT | OVSDB hardware_vtep Schema
96 201 | Active | 80 | 1.0.0.SNAPSHOT | OpenDaylight OVSDB Plugin
98 Running The Integration Tests
99 =============================
101 To run the integration tests locally the following components are required:
106 To install docker, follow the installation guide for your platform:
107 http://docs.docker.com/installation/
110 http://www.fig.sh/install.html
112 To run the integration tests:
117 mvn verify -Pintegrationtest -Dovsdbserver.ipaddress=$(boot2docker ip 2>/dev/null) -Dovsdbserver.port=6640
119 mvn verify -Pintegrationtest -Dovsdbserver.ipaddress=127.0.0.1 -Dovsdbserver.port=6640