Fix for Sonar Issue(A catch statement should never catch throwable)
[netvirt.git] / README
diff --git a/README b/README
index 4e84de038fe2b0facbef36145a20934781e8a5f6..b4120cde44c117a362bf9a06ff60f0370dceb5a8 100644 (file)
--- a/README
+++ b/README
@@ -1,48 +1,62 @@
 DIRECTORY ORGANIZATION
 ======================
 
+- commons
+  +-- parent : Contains Parent pom.xml for all the ovsdb modules.
+  +-- integrationtest : Contains the parent pom.xml for all the integrationtest needs.
+
+- distribution : Builds a working controller distribution based on the controller + ovsdb modules and other
+                 dependant modules such as openflowplugin
+  +-- opendaylight : older, OSGi-based distribution
+  +-- opendaylight-karaf : karaf-based distribution
+
+- features : This folder contains all the Karaf related files.
+
+- integrationtest : Contains all the PAX-Exam based integrationTests that covers IT for all the 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.
 
-- 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
-
-- 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.
-
 - 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.
 
+- of-extension : Adds OpenFlow Nicera extensions.
+
 - openstack
-  |-- net-virt : Handles the Openstack Neutron ML2 and Network Service calls and performs all the logic required
+  +-- 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
+  +-- net-virt-providers : Mostly contains data-path programming functionality via OpenFlow or potentially
                            other protocols.
 
-- commons
-  |-- parent : Contains Parent pom.xml for all the ovsdb modules.
-  |-- integrationtest : Contains the parent pom.xml for all the integrationtest needs.
+- ovs-sfc : SFC implementation using the OVSDB project. Currently it is just a shell.
 
-- distribution : Builds a working controller distribution based on the controller + ovsdb modules and other
-                 dependant modules such as openflowplugin
+- plugin : Contains Opendaylight Southbound Plugin APIs and provides a 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 functionality that assumes openvswitch schema.
 
-- features : This folder contains all the Karaf related files.
+- plugin-mdsal-adapter : Adds an MD-SAL Adapter for the OVSDB Plugin. The adapter updates the MD-SAL with nodes
+                         as they are added and removed from the inventory. The Yang model provides a reference
+                         between OVSDB nodes and the OpenFlow nodes (bridges) that they manage.
 
-- integrationtest : Contains all the PAX-Exam based integrationTests that covers IT for all of the above modules.
+- plugin-shell : Contains a Karaf shell framework for OVSDB plugin and printCache command-line.
 
 - resources : Contains some useful resources such as scripts, testing utilities and tools used for deployment
               or testing the binaries generated from the OVSDB project.
 
+- 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
+
+- utils : MD-SAL OpenFlow and OVSDB common utilities.
+
 HOW TO BUILD & RUN
 ==================
 
 Pre-requisites : JDK 1.7+, Maven 3+
 
-1. Building a OVSDB based Opendaylight Virtualization edition :
+1. Building an 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.
 
@@ -55,8 +69,37 @@ Pre-requisites : JDK 1.7+, Maven 3+
       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. The end-customer can choose to deploy the required feature
+      based on his/her deployment needs.
+
+   2. From the root ovsdb/ directory, execute "mvn clean install"
+
+   3. Next unzip the distribution-karaf-<VERSION_NUMBER>-SNAPSHOT.zip file created from step #2 in
+      the directory ovsdb/distribution/opendaylight-karaf/target like so:
+      "unzip distribution-karaf-<VERSION_NUMBER>-SNAPSHOT.zip"
+
+   4. Once karaf has started and you see the Opendaylight ascii art in the console, the last step
+      is to start the OVSDB plugin framework with the following command in the karaf console:
+      "feature:install odl-ovsdb-openstack" (without quotation marks).
+
+   Sample output from Karaf console :
+
+   opendaylight-user@root>feature:list | grep -i ovsdb
+   odl-ovsdb-all                    | 1.0.0-SNAPSHOT      |           | ovsdb-1.0.0-SNAPSHOT                  | OpenDaylight :: OVSDB :: all
+   odl-ovsdb-library                | 1.0.0-SNAPSHOT      | x         | ovsdb-1.0.0-SNAPSHOT                  | OVSDB :: Library
+   odl-ovsdb-schema-openvswitch     | 1.0.0-SNAPSHOT      | x         | ovsdb-1.0.0-SNAPSHOT                  | OVSDB :: Schema :: Open_vSwitch
+   odl-ovsdb-schema-hardwarevtep    | 1.0.0-SNAPSHOT      | x         | ovsdb-1.0.0-SNAPSHOT                  | OVSDB :: Schema :: hardware_vtep
+   odl-ovsdb-plugin                 | 1.0.0-SNAPSHOT      | x         | ovsdb-1.0.0-SNAPSHOT                  | OpenDaylight :: OVSDB :: Plugin
+   odl-ovsdb-northbound             | 0.6.0-SNAPSHOT      |           | ovsdb-1.0.0-SNAPSHOT                  | OpenDaylight :: OVSDB :: Northbound
+   odl-ovsdb-openstack              | 1.0.0-SNAPSHOT      | x         | ovsdb-1.0.0-SNAPSHOT                  | OpenDaylight :: OVSDB :: OpenStack Network Virtual
+   odl-ovsdb-ovssfc                 | 0.0.1-SNAPSHOT      |           | ovsdb-0.0.1-SNAPSHOT                  | OpenDaylight :: OVSDB :: OVS Service Function Chai
+   odl-openflow-nxm-extensions      | 0.0.3-SNAPSHOT      | x         | ovsdb-0.0.3-SNAPSHOT                  | OpenDaylight :: Openflow :: Nicira Extensions
+
+
+3. Building a Karaf Feature and deploying it in an Opendaylight Karaf distribution :
+*** This method is deprecated and an update will be added in the future.
    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
@@ -119,3 +162,7 @@ To run the integration tests:
     mvn verify -Pintegrationtest -Dovsdbserver.ipaddress=127.0.0.1 -Dovsdbserver.port=6640
     fig stop
 
+Skipping unit tests and karaf tests
+====================
+
+mvn clean install -Dmaven.test.skip=true -Dskip.karaf=true