summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorIWASE Yusuke <iwase.yusuke0@gmail.com>2016-09-26 09:28:40 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2016-10-01 21:13:27 +0900
commitb302d725a00f992ae74e12c4db355f04774ac700 (patch)
treee36fba9faa6b49c2e7e4a469e9ac7f3f4fd654ba
parentb77408d04c7d65659afedb1b0556e83d905b5939 (diff)
ovs/bridge: Enable to request tunnel port number
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r--ryu/lib/ovs/bridge.py21
1 files changed, 13 insertions, 8 deletions
diff --git a/ryu/lib/ovs/bridge.py b/ryu/lib/ovs/bridge.py
index 1e1e34cd..89717005 100644
--- a/ryu/lib/ovs/bridge.py
+++ b/ryu/lib/ovs/bridge.py
@@ -174,26 +174,31 @@ class OVSBridge(object):
return command.result
def add_tunnel_port(self, name, tunnel_type, remote_ip,
- local_ip=None, key=None):
+ local_ip=None, key=None, ofport=None):
options = 'remote_ip=%(remote_ip)s' % locals()
if key:
options += ',key=%(key)s' % locals()
if local_ip:
options += ',local_ip=%(local_ip)s' % locals()
+ args = ['Interface', name, 'type=%s' % tunnel_type,
+ 'options=%s' % options]
+ if ofport:
+ args.append('ofport_request=%(ofport)s' % locals())
+
command_add = ovs_vsctl.VSCtlCommand('add-port', (self.br_name, name))
- command_set = ovs_vsctl.VSCtlCommand(
- 'set', ('Interface', name,
- 'type=%s' % tunnel_type, 'options=%s' % options))
+ command_set = ovs_vsctl.VSCtlCommand('set', args)
self.run_command([command_add, command_set])
- def add_gre_port(self, name, remote_ip, local_ip=None, key=None):
+ def add_gre_port(self, name, remote_ip,
+ local_ip=None, key=None, ofport=None):
self.add_tunnel_port(name, 'gre', remote_ip,
- local_ip=local_ip, key=key)
+ local_ip=local_ip, key=key, ofport=ofport)
- def add_vxlan_port(self, name, remote_ip, local_ip=None, key=None):
+ def add_vxlan_port(self, name, remote_ip,
+ local_ip=None, key=None, ofport=None):
self.add_tunnel_port(name, 'vxlan', remote_ip,
- local_ip=local_ip, key=key)
+ local_ip=local_ip, key=key, ofport=ofport)
def del_port(self, port_name):
command = ovs_vsctl.VSCtlCommand('del-port', (self.br_name, port_name))