Re: [openflowplugin-dev] Testing of OF-1.3
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 (https://github.com/downloads/mininet/mininet/mininet-2.0.0-113012-amd64-ovf.zip)
- 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: http://openvswitch.org/releases/openvswitch-1.10.0.tar.gz
- 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:
openvswitch-common_1.10.0-1_amd64.deb
openvswitch-controller_1.10.0-1_amd64.deb
openvswitch-datapath-dkms_1.10.0-1_all.deb
openvswitch-datapath-source_1.10.0-1_all.deb
openvswitch-dbg_1.10.0-1_amd64.deb
openvswitch-ipsec_1.10.0-1_amd64.deb
openvswitch-pki_1.10.0-1_all.deb
openvswitch-switch_1.10.0-1_amd64.deb
openvswitch-test_1.10.0-1_all.deb
ovsdbmonitor_1.10.0-1_all.deb
python-openvswitch_1.10.0-1_all.deb
- 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:
protocols=OpenFlow13
So I made following change to node.py 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/node.py 2012-11-30 22:30:07.000000000 -0800
+++ /usr/local/lib/python2.7/dist-packages/mininet-2.0.0-py2.7.egg/mininet/node.py 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]
+
@classmethod
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
or
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.
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
http://www.flowforwarding.org/
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.
Tony
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 ?
Thanks
Anil
On Tue, Aug 6, 2013 at 8:55 PM, Michal Rehak -X (mirehak - Pantheon Technologies SRO at Cisco) <mirehak@...> wrote:
Greetings,
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.
Regards,
Michal Rehak
_______________________________________________
openflowjava-dev mailing list
openflowjava-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowjava-dev
--
Thanks
Anil