Re: [openflowplugin-dev] Testing of OF-1.3

Michal Rehak -X (mirehak - Pantheon Technologies SRO@Cisco) <mirehak@...>


Back to openvswitch - I have done the following in order to get version 1.10 (if you have mininet-2.0.0 already running, please proceed to Stage 2):

Stage 1

- download mininet image 2.0.0 (
- the image is in vmware format I guess, but can by simply imported into virtualbox
- start mininet-2.0.0, login as mininet, password mininet

Stage 2

- uninstall packages openvswitch-common and openvswitch-switch (there should be version 1.4.3 officially in ubuntu repo, so in case of emergency these can be always installed again)
- download latest release of openvswitch:
- there are install howtos, take a look at INSTALL.Debian
- there are some new packages to be installed (apt-get install build-essential fakeroot)
- run dpkg-checkbuilddeps to check, if all dependencies are installed
- here comes the long step 4. from INSTALL.Debian
- if everything compiled successfully, you should have these deb files in parent folder:


- now install
dpkg -i openvswitch-common_1.10.0-1_amd64.deb
dpkg -i openvswitch-switch_1.10.0-1_amd64.deb

- now mininet should be using openvswitch 1.10.0, this can be simply tested by running ODL-controller and let mininet to connect to it.

- to use OF-1.3 following parameter has to be passed to openvswitch startup command:

So I made following change to file (mininet python class, be sure to modify the distributed file, not the one in /home/mininet/mininet/...) in order to control the protocol version using cmd parameter:

--- ../mininet/build/lib.linux-x86_64-2.7/mininet/       2012-11-30 22:30:07.000000000 -0800
+++ /usr/local/lib/python2.7/dist-packages/mininet-2.0.0-py2.7.egg/mininet/      2013-07-25 05:40:26.179978120 -0700
@@ -901,6 +904,11 @@
            failMode: controller loss behavior (secure|open)"""
         Switch.__init__( self, name, **params )
         self.failMode = failMode
+        protKey = 'protocols'
+        if self.params and protKey in self.params:
+            print 'have protocol params!'
+            self.opts += protKey + '=' + self.params[protKey]
     def setup( cls ):
@@ -955,8 +964,9 @@
         # Annoyingly, --if-exists option seems not to work
         self.cmd( 'ovs-vsctl del-br', self )
         self.cmd( 'ovs-vsctl add-br', self )
+        print 'OVSswitch opts: ',self.opts
         self.cmd( 'ovs-vsctl -- set Bridge', self,
-                  'other_config:datapath-id=' + self.dpid )
+                  self.opts+' other_config:datapath-id=' + self.dpid )
         self.cmd( 'ovs-vsctl set-fail-mode', self, self.failMode )
         for intf in self.intfList():
             if not intf.IP():

The mn session can now be started:
sudo mn --topo single,3  --controller 'remote,ip=<your controller IP>' --switch ovsk,protocols=OpenFlow10
sudo mn --topo single,3  --controller 'remote,ip=<your controller IP>' --switch ovsk,protocols=OpenFlow13

To test the version of used protocol by switch "s1":

ovs-ofctl -O OpenFlow10 show s1
ovs-ofctl -O OpenFlow13 show s1

If this is useful, I can put it on wiki. If you have any suggestions or improvements, please let me know. The image of virtual machine is huge (3.6 GB), but size of neccessary deb files is only 2 MB, so maybe I can upload them somewhere.

From: Tony Tkacik -X (ttkacik - Pantheon Technologies SRO at Cisco)
Sent: Tuesday, August 06, 2013 11:09 PM
To: Anil Vishnoi; Michal Rehak -X (mirehak - Pantheon Technologies SRO at Cisco)
Cc: openflowjava-dev@...; openflowplugin-dev@...
Subject: RE: [openflowplugin-dev] [openflowjava-dev] Testing of OF-1.3

From one interop I also remember the soft switch

They claim to support Openflow 1.2 and 1.3.1  and OFConfig 1.1

The code is written in Erlang, if I remember correctly.




From: openflowplugin-dev-bounces@... [mailto:openflowplugin-dev-bounces@...] On Behalf Of Anil Vishnoi
Sent: Tuesday, August 06, 2013 10:10 PM
To: Michal Rehak -X (mirehak - Pantheon Technologies SRO at Cisco)
Cc: openflowjava-dev@...; openflowplugin-dev@...
Subject: Re: [openflowplugin-dev] [openflowjava-dev] Testing of OF-1.3


Just to add, Following file has track of what all is still need to be done to fully support 1.3 in OVS.



I came across another options (of soft switch ) 



Looks like it has comprehensive support for 1.3, but i didn't get an opportunity to explore it in detail.


Michal, can you please share the repo details from where we can download your modified mininet image ?





On Tue, Aug 6, 2013 at 8:55 PM, Michal Rehak -X (mirehak - Pantheon Technologies SRO at Cisco) <mirehak@...> wrote:

there is a testing issue coming up regarding OF-1.3. The plugin and library both need a switch capable of OF-1.3 to develop and test new implementations.

I have successfully tried to update openvirtualswitch driver in the latest (2.0.0) mininet image. Default version of the openvirtualswitch driver is 1.4.3 and the latest released version is 1.10. So now the protocol version can be specified using startup parameters of mn-script.

From openvirtualswitch FAQ:
Open vSwitch 1.10 and later have experimental support for OpenFlow
   1.2 and 1.3.

I believe that this can be used for start, but there is definitely a need for a testing network
or site later, where switches with full support of OF-1.3 specification would be available.

Do you have an idea how or where can we (later on) develop and test the OF-1.3 implementations?

Thank you.

Michal Rehak

openflowjava-dev mailing list





Join { to automatically receive all group messages.