- Ongoing support and integration of the OpenFlow specification
-- The plugin should be implemented in an easily extensibile manner
+- The plugin should be implemented in an easily extensible manner
- Protocol verification activities will be performed on supported
OpenFlow specifications
^^^^^^^^
Coverage has been moved to a `GoogleDoc
-Spreadshee <https://docs.google.com/spreadsheet/ccc?key=0AtpUuSEP8OyMdHNTZjBoM0VjOE9BcGhHMzk3N19uamc&usp=sharing%23gid=2#gid=0>`__
+Spreadsheet <https://docs.google.com/spreadsheet/ccc?key=0AtpUuSEP8OyMdHNTZjBoM0VjOE9BcGhHMzk3N19uamc&usp=sharing%23gid=2#gid=0>`__
OF 1.3 Considerations
^^^^^^^^^^^^^^^^^^^^^
Tutorial / How-To
-----------------
+.. _ofp-running-new-plugin:
+
Running the controller with the new OpenFlow Plugin
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Opendaylight Controller Plugin Options
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-- Run OpenDaylight controller with the new OpenFlow 1.0/1.3 plugin
-
-There are 2 ways. In integration project the plugin version is
-controlled by startup parameter. Or there is distribution build
-available directly in openflowplugin project.
-
-1. use **integration** project
-
- - download and unzip latest build from
- https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/distribution-karaf/0.2.2-SNAPSHOT/
-
- ::
-
- cd <extracted directory>/bin
- ./karaf
-
- - or clone and build **integration** project:
-
- ::
-
- git clone https://git.opendaylight.org/gerrit/p/integration.git
- cd integration/distributions/extra/karaf
- mvn clean install
- cd ./target/assembly/bin
-
- - and finally run
-
- ::
-
- ./karaf
-
-2. use **openflowplugin** project
-
- - download and unzip latest build from
- https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/openflowplugin/openflowplugin-karaf/0.1.0-SNAPSHOT/
-
- ::
-
- cd <extracted directory>/bin
- ./karaf
-
- - or clone and build **openflowplugin** project:
-
- ::
-
- git clone https://git.opendaylight.org/gerrit/p/openflowplugin.git
- cd openflowplugin
- mvn clean install
- cd ./distribution/karaf/target/assembly/bin/
-
- - or build whole distribution localy from folder distribution/karaf
-
- ::
-
- mvn clean install -DskipTests
-
- - and run
-
- ::
-
- ./karaf
-
**How to start**
There are all helium features (from features-openflowplugin) duplicated
http://<controller-ip>:8181/dlux/index.html
-**Run OpenDaylight controller with the old OpenFlow 1.0-only (old)
-plugin**
-
-There are 2 ways. In integration project the plugin version is
-controlled by startup parameter. Or there is distribution build
-available directly in controller project.
-
-1. use **integration/distributions/base** project
-
- - use the instructions from
- OpenDaylight\_OpenFlow\_Plugin::Running\_controller\_with\_the\_new\_OF\_plugin#To\_run\_the\_OpenDaylight\_controller\_with\_the\_new\_OpenFlow\_1.0/1.3\_(new)\_plugin[
- 1.0/1.3 plugin], but skip the plugin version parameter:
-
- ::
-
- ./run.sh
-
-2. use **controller/distribution/opendaylight** project
-
- - download and unzip latest build from
- https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/controller/distribution.opendaylight/
-
- ::
-
- cd opendaylight
-
- - or clone and build **controller** project:
-
- ::
-
- git clone https://git.opendaylight.org/gerrit/p/controller.git
- cd controller/opendaylight/distribution/opendaylight
- mvn clean install
- cd target/distribution.opendaylight-osgipackage/opendaylight
-
- - and finally run (there is no version specific option, because the
-
- 1.0/1.3 (new) plugin is not available here at all)
-
-**Give it a minute to come up :)**
-
OpenFlow 1.3 Enabled Software Switches / Environment
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- You can setup the switch as per the instructions given on the
following URL
-```https://github.com/CPqD/ofsoftswitch13`` <https://github.com/CPqD/ofsoftswitch13>`__
+`https://github.com/CPqD/ofsoftswitch13 <https://github.com/CPqD/ofsoftswitch13>`__
- Fire following command to start the switch
sudo mn --topo single,3 --controller 'remote,ip=<your controller ip>,port=6653' --switch ovsk,protocols=OpenFlow13
+.. _ofp-e2e-inv:
+
End to End Inventory
~~~~~~~~~~~~~~~~~~~~
Learn End to End for Inventory
''''''''''''''''''''''''''''''
-`End to End
-Inventory <#odl-ofp-end-to-end-inventory_introduction-introduction>`__
+See :ref:`ofp-e2e-inv`
Check inventory
'''''''''''''''
-- Run mininet with support for OF 1.3 as described in `End to End
- Inventory <#odl-ofp-end-to-end-inventory_introduction-introduction>`__
+- Run mininet with support for OF 1.3 as described in :ref:`ofp-e2e-inv`
-- Make sure you see the openflow:1 node come up as described in `End to
- End
- Inventory <#odl-ofp-end-to-end-inventory_introduction-introduction>`__
+- Make sure you see the openflow:1 node come up as described in :ref:`ofp-e2e-inv`
Flow Strategy
'''''''''''''
- See your configured flow in POSTMAN with
- - URL `http://<controller <http://<controller>`__
- IP>:8181/restconf/operational/opendaylight-inventory:nodes/node/openflow:1/table/0/
+ - URL http://<controller IP>:8181/restconf/operational/opendaylight-inventory:nodes/node/openflow:1/table/0/
- GET
^^^^^^^^^^^^^
Examples for XML for various flow matches, instructions & actions can be
-found in following section `here <#odl-ofp-example-flows_overview>`__
+found in following section :ref:`here <ofp-example-flows>`.
End to End Topology
~~~~~~~~~~~~~~~~~~~
Basically, you will learn how to:
1. Run the Base/Virtualization/Service provider Edition with the new
- openflowplugin: `Running the controller with the new OpenFlow
- Plugin <#odl-ofp-running-controller-with-the-new-of-plugin_top>`__
+ openflowplugin: :ref:`Running the controller with the new OpenFlow
+ Plugin <ofp-running-new-plugin>`
-2. Start mininet to use OF 1.3: `OpenFlow 1.3 Enabled Software Switches
- / Environment <#odl-ofp-test-environment_top>`__
+2. Start mininet to use OF 1.3: :ref:`OpenFlow 1.3 Enabled Software Switches
+ / Environment <ofp-test-environment>`
3. Use RESTCONF to see the topology information.
- http://comments.gmane.org/gmane.linux.network.openvswitch.general/3251
For testing group feature please use for example
-`CPQD <#odl-ofp-end-to-end-inventory_introduction-introduction>`__
-virtual switch.
+CPQD virtual switch in the :ref:`ofp-e2e-inv` section.
Instructions
^^^^^^^^^^^^
Learn End to End for Inventory
''''''''''''''''''''''''''''''
-`End to End
-Inventory <#odl-ofp-end-to-end-inventory_introduction-introduction>`__
+:ref:`ofp-e2e-inv`
Check inventory
'''''''''''''''
-Run CPqD with support for OF 1.3 as described in `End to End
-Inventory <#odl-ofp-end-to-end-inventory_introduction-introduction>`__
+Run CPqD with support for OF 1.3 as described in :ref:`ofp-e2e-inv`
-Make sure you see the openflow:1 node come up as described in `End to
-End
-Inventory <#odl-ofp-end-to-end-inventory_introduction-introduction>`__
+Make sure you see the openflow:1 node come up as described in :ref:`ofp-e2e-inv`
Group Strategy
''''''''''''''
- See your configured group in POSTMAN with
- URL
- `http://<ip-address>:8080/restconf/config/opendaylight-inventory:nodes/node/openflow:1/group/1 <http://<ip-address>:8080/restconf/config/opendaylight-inventory:nodes/node/openflow:1/group/1>`__
+ http://<ip-address>:8080/restconf/config/opendaylight-inventory:nodes/node/openflow:1/group/1
- GET
- See your operational group stats in POSTMAN with
- URL
- `http://<ip-address>:8080/restconf/operational/opendaylight-inventory:nodes/node/openflow:1/group/1 <http://<ip-address>:8080/restconf/operational/opendaylight-inventory:nodes/node/openflow:1/group/1>`__
+ http://<ip-address>:8080/restconf/operational/opendaylight-inventory:nodes/node/openflow:1/group/1
- GET
Learn End to End for Inventory
''''''''''''''''''''''''''''''
-- `End to End
- Inventory <#odl-ofp-end-to-end-inventory_introduction-introduction>`__
+- :ref:`ofp-e2e-inv`
Check inventory
'''''''''''''''
-- Run mininet with support for OF 1.3 as described in `End to End
- Inventory <#odl-ofp-end-to-end-inventory_introduction-introduction>`__
+- Run mininet with support for OF 1.3 as described in :ref:`ofp-e2e-inv`
-- Make sure you see the openflow:1 node come up as described in `End to
- End
- Inventory <#odl-ofp-end-to-end-inventory_introduction-introduction>`__
+- Make sure you see the openflow:1 node come up as described in :ref:`ofp-e2e-inv`
Meter Strategy
''''''''''''''
be executed on the OSGI console testing various features in OpenFlow 1.3
spec.
-- `OSGI Console Test Provider Commands:
- Flows <#odl-ofp-test-provider-flows_test-provider>`__
+- :ref:`OSGI Console Test Provider Commands:
+ Flows <ofp-test-provider-flows>`
+
+- :ref:`OSGI Console Test Provider Commands:
+ Groups <ofp-test-provider-groups>`
-- `OSGI Console Test Provider Commands:
- Groups <#odl-ofp-test-provider-groups_test-provider>`__
+- :ref:`OSGI Console Test Provider Commands:
+ Meters <ofp-test-provider-meters>`
-- `OSGI Console Test Provider Commands:
- Meters <#odl-ofp-test-provider-meters_test-provider>`__
+- :ref:`OSGI Console Test Provider Commands: Topology
+ Events <ofp-test-provider-topology>`
-- `OSGI Console Test Provider Commands: Topology
- Events <#odl-ofp-test-provider-topoogy_test-provider>`__
+.. _ofp-test-provider-flows:
Flows : Test Provider
~~~~~~~~~~~~~~~~~~~~~
switch. The flow to be deleted should have same flowid and Nodeid as
used for flow add.
+.. _ofp-test-provider-groups:
+
Group : Test Provider
~~~~~~~~~~~~~~~~~~~~~
actiontype(a#). GroupId should be same as that used for adding the flow.
You can confirm that it was modified on the switch.
+.. _ofp-test-provider-meters:
+
Meters : Test Provider
~~~~~~~~~~~~~~~~~~~~~~
The CLI takes care of using the same meterId and nodeId as used for
meter add. You can confirm that it was modified on the switch.
+.. _ofp-test-provider-topology:
+
Topology : Notification
~~~~~~~~~~~~~~~~~~~~~~~
- `Models Documentation (OpenFlow Services
Section) <https://wiki.opendaylight.org/view/OpenDaylight_Controller:Config:Model_Reference>`__
+.. _ofp-example-flows:
+
Example flows
-------------
The format of the XML that describes OpenFlow matches is determined by
the opendaylight-match-types yang model: .
-The RESTCONF documentation for the match-types yang model can be found
-at
-`opendaylight-match-types.html <https://jenkins.opendaylight.org/controller/job/controller-merge/lastSuccessfulBuild/artifact/opendaylight/md-sal/model/model-flow-base/target/site/models/opendaylight-match-types.html>`__
-
IPv4 Dest Address
^^^^^^^^^^^^^^^^^
The format of the XML that describes OpenFlow actions is determined by
the opendaylight-action-types yang model: .
-The RESTCONF documentation for the match-types yang model can be found
-at
-`opendaylight-action-types.html <https://jenkins.opendaylight.org/controller/job/controller-merge/lastSuccessfulBuild/artifact/opendaylight/md-sal/model/model-flow-base/target/site/models/opendaylight-action-types.html>`__
-
Apply Actions
^^^^^^^^^^^^^