Updating an oudated README file 03/9303/2
authorMadhu Venugopal <mavenugo@gmail.com>
Fri, 25 Jul 2014 00:01:50 +0000 (17:01 -0700)
committerMadhu Venugopal <mavenugo@gmail.com>
Fri, 25 Jul 2014 19:26:37 +0000 (12:26 -0700)
Change-Id: I9c6bc8b9699ecafb91421cc7a7cccb5d872e0b31
Signed-off-by: Madhu Venugopal <mavenugo@gmail.com>
README

diff --git a/README b/README
index 4f9664a00f0878ea18d93544a416696122415ada..2356030fbe5431aadb9b682f05631fbc35f05d69 100644 (file)
--- a/README
+++ b/README
@@ -1,38 +1,96 @@
 DIRECTORY ORGANIZATION
 ======================
 
-- commons/parent: contains the parent pom.xml for all ovsdb projects.
-- ovsdb: contains the ovsdb SB plugin
-- distribution/opendaylight: will build a working controller distribution
-  based on the controller + ovsdb modules
+- library : Contains Schema-independent library that is a reference implementation for RFC 7047.
+            This module doesn't depend on any of the Opendaylight components.
+            This library module can also be used independently in a non-OSGi environment.
 
-HOW TO BUILD
-============
+- schemas :
+  |-- openvswitch : Schema wrapper that represents http://openvswitch.org/ovs-vswitchd.conf.db.5.pdf
+  |-- hardwarevtep: Schema wrapper that represents http://openvswitch.org/docs/vtep.5.pdf
 
-In order to build it's required to have JDK 1.7+ and Maven 3+, to get
-a build going it's needed to:
+- plugin : Contains Opendaylight Southbound Plugin APIs and provides an simpler API interface on top of library layer.
+           Ideally, this module should also be schema independent. But due to legacy reasons this layer contains some
+           deprecated functionalities that assume openvswitch schema.
 
-cd commons/parent
-mvn clean install
+- northbound : Provides AD-SAL style Northbound REST APIs.
+               Supports the legacy v2 APIs to provide backward compatibility for Hydrogen Release
+               Also supports the newer v3 APIs to provide schema-independent access to the OVSDB protocol.
 
-or if you want to avoid SNAPSHOT checking
+- openstack
+  |-- net-virt : Handles the Openstack Neutron ML2 and Network Service calls and performs all the logic required
+                 for Network Virtualization.
+  |-- net-virt-providers : Mostly contains data-path programming functionalities via OpenFlow or potentially
+                           other protocols.
 
-cd commons/parent
-mvn clean install -nsu
+- commons
+  |-- parent : Contains Parent pom.xml for all the ovsdb modules.
+  |-- integrationtest : Contains the parent pom.xml for all the integrationtest needs.
 
-HOW TO RUN
-============
+- distribution : Builds a working controller distribution based on the controller + ovsdb modules and other
+                 dependant modules such as openflowplugin
 
-Upon successful completion of a build
+- features : This folder contains all the Karaf related files.
 
-cd distribution/opendaylight/target/distribution.ovsdb-1.0.0-SNAPSHOT-osgipackage/opendaylight/
-./run.sh
+- integrationtest : Contains all the PAX-Exam based integrationTests that covers IT for all of the above modules.
 
-Wait for the osgi console to startup and then point a browser at 
+- resources : Contains some useful resources such as scripts, testing utilities and tools used for deployment
+              or testing the binaries generated from the OVSDB project.
 
-http:localhost:8080/
+HOW TO BUILD & RUN
+==================
 
+Pre-requisites : JDK 1.7+, Maven 3+
 
+1. Building a OVSDB based Opendaylight Virtualization edition :
+   1. This is the legacy way to build and distribute Opendaylight archives. And this method was
+      followed in Hydrogen and possibly in Helium release as well.
 
+   2. From the root folder(that hosts this README), execute "mvn clean install"
+      That should build a full distribution archive and distribution directory that will contain
+      Opendaylight Controller + OVSDB bundles + Openflow Plugins under
+      distribution/opendaylight/target/distribution.ovsdb-X.X.X-osgipackage
 
+   3. Upon successful completion of a build, the Controller with OVSDB can be executed by :
+      cd distribution/opendaylight/target/distribution.ovsdb-X.X.X-osgipackage/opendaylight/
+      ./run.sh -virt ovsdb
 
+
+2. Building a Karaf Feature and deploying it in an Opendaylight Karaf distribution :
+   1. This is a new method for Opendaylight distribution wherein there is no defined editions such
+      as Base, Virtualization or SP editions. Rather each of the projects will generate features in
+      form of .kar files. The end-customer can choose to deploy the required feature based on his/her
+      deployment needs.
+
+   2. From the features/ directory, execute "mvn clean install"
+      This will generate a kar file such as "features/target/ovsdb-features-1.2.0-SNAPSHOT.kar"
+
+   3. Download (or build from controller project) the Karaf distribution :
+      http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/controller/distribution.opendaylight-karaf/
+      Sample zip file :
+      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
+
+   4. unzip the downloaded (or built) distribution and copy the ovsdb-features-x.x.x.kar file (from step 2) into
+      the unzipped distribution.opendaylight-karaf-X.X.X/deploy/ directory.
+
+   5. run Karaf from within the distribution.opendaylight-karaf-X.X.X/ directory using "bin/karaf"
+
+   Sample output from Karaf console :
+
+   opendaylight-user@root>kar:list
+   KAR Name
+   -----------------------------
+   ovsdb-features-1.2.0-SNAPSHOT
+
+   opendaylight-user@root>feature:list | grep ovsdb
+   odl-ovsdb-all | 1.2.0-SNAPSHOT | x | ovsdb-1.2.0-SNAPSHOT | OpenDaylight :: OVSDB :: all
+   odl-ovsdb-library | 1.0.0-SNAPSHOT | x | ovsdb-1.2.0-SNAPSHOT | OVSDB :: Library
+   odl-ovsdb-schema-openvswitch | 1.0.0-SNAPSHOT | x | ovsdb-1.2.0-SNAPSHOT | OVSDB :: Schema :: Open_vSwitch
+   odl-ovsdb-schema-hardwarevtep | 1.0.0-SNAPSHOT | x | ovsdb-1.2.0-SNAPSHOT | OVSDB :: Schema :: hardware_vtep
+   odl-ovsdb-plugin | 1.0.0-SNAPSHOT | x | ovsdb-1.2.0-SNAPSHOT | OpenDaylight :: OVSDB :: Plugin
+
+   opendaylight-user@root>bundle:list | grep OVSDB
+   186 | Active | 80 | 1.0.0.SNAPSHOT | OVSDB Library
+   199 | Active | 80 | 1.0.0.SNAPSHOT | OVSDB Open_vSwitch Schema
+   200 | Active | 80 | 1.0.0.SNAPSHOT | OVSDB hardware_vtep Schema
+   201 | Active | 80 | 1.0.0.SNAPSHOT | OpenDaylight OVSDB Plugin