From 171e81512273573d01b95f2364ffa9ac2b8c372d Mon Sep 17 00:00:00 2001
From: Bob Lantz <rlantz@cs.stanford.edu>
Date: Wed, 14 Jan 2015 14:15:14 -0800
Subject: [PATCH] Set OVSSwitch default protocols to OpenFlow10,OpenFlow13

For OVS versions 1.9 or earlier, this setting is ignored.
---
 mininet/node.py | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/mininet/node.py b/mininet/node.py
index 62af8bc7..a97ad3fc 100644
--- a/mininet/node.py
+++ b/mininet/node.py
@@ -1054,12 +1054,14 @@ class OVSSwitch( Switch ):
     "Open vSwitch switch. Depends on ovs-vsctl."
 
     def __init__( self, name, failMode='secure', datapath='kernel',
-                  inband=False, protocols=None, **params ):
+                  inband=False, protocols='OpenFlow10,OpenFlow13', **params ):
         """Init.
            name: name for switch
            failMode: controller loss behavior (secure|open)
            datapath: userspace or kernel mode (kernel|user)
-           inband: use in-band control (False)"""
+           inband: use in-band control (False)
+           protocols: use specific OpenFlow version(s)
+           Unspecified (or old OVS version) uses default (OpenFlow 1.0)"""
         Switch.__init__( self, name, **params )
         self.failMode = failMode
         self.datapath = datapath
@@ -1186,7 +1188,7 @@ def start( self, controllers ):
                      'other-config:disable-in-band=true ' % self )
         if self.datapath == 'user':
             cmd += '-- set bridge %s datapath_type=netdev ' % self
-        if self.protocols:
+        if self.protocols and not self.isOldOVS():
             cmd += '-- set bridge %s protocols=%s' % ( self, self.protocols )
         # Do it!!
         self.cmd( cmd )
-- 
GitLab