From: Sapan Bhatia Date: Wed, 19 Jan 2011 21:44:53 +0000 (-0500) Subject: Support scripts for openvswitch X-Git-Tag: vsys-scripts-0.95-27~1 X-Git-Url: http://git.onelab.eu/?p=vsys-scripts.git;a=commitdiff_plain;h=4e022de54be90c0e2364720935b3d93635dcd749 Support scripts for openvswitch --- diff --git a/exec/connectswitch b/exec/connectswitch new file mode 100755 index 0000000..fb15ee3 --- /dev/null +++ b/exec/connectswitch @@ -0,0 +1,27 @@ +#!/usr/bin/python + +import sys +import pwd +import re +import socket +import struct +import os +import string + +vsys_config_dir = "/etc/planetlab/vsys-attributes" + +if len(sys.argv) != 2: sys.exit(1) + +slicename=sys.argv[1] +sliceid = pwd.getpwnam(slicename).pw_uid +dpname = "dp-%d"%sliceid + +### Read args from stdin +arglines = map(string.strip, sys.stdin.readlines()) +if len(arglines) != 1: sys.exit(1) +of_server = arglines[0] + +if re.match(r'^(tcp|udp):[\d\.]+$', vif) is None: exit(1) + +print "Requesting creation of data path %s."%dpname +os.system("ovs-openflowd dp0 tcp:192.168.1.2") diff --git a/exec/makeswitch b/exec/makeswitch new file mode 100755 index 0000000..2412291 --- /dev/null +++ b/exec/makeswitch @@ -0,0 +1,21 @@ +#!/usr/bin/python + +import sys +import pwd +import re +import socket +import struct +import os +import string + +vsys_config_dir = "/etc/planetlab/vsys-attributes" + +if len(sys.argv) != 2: sys.exit(1) + +slicename=sys.argv[1] +sliceid = pwd.getpwnam(slicename).pw_uid + +dpname = "dp-%d"%sliceid + +print "Requesting creation of data path %s."%dpname +os.system("ovs-dpctl add-dp %s"%dpname) diff --git a/exec/showswitch b/exec/showswitch new file mode 100755 index 0000000..35e86c2 --- /dev/null +++ b/exec/showswitch @@ -0,0 +1,20 @@ +#!/usr/bin/python + +import sys +import pwd +import re +import socket +import struct +import os +import string + +vsys_config_dir = "/etc/planetlab/vsys-attributes" + +if len(sys.argv) != 2: sys.exit(1) + +slicename=sys.argv[1] +sliceid = pwd.getpwnam(slicename).pw_uid + +dpname = "dp-%d"%sliceid + +os.system("ovs-dpctl show %s"%dpname) diff --git a/exec/vif_up b/exec/vif_up index 0f905c6..885f1b2 100755 --- a/exec/vif_up +++ b/exec/vif_up @@ -102,6 +102,7 @@ if vmask>sys.stderr, "txqueuelen value %s out of range 1-10000" % (val) sys.exit(1) opt_txqueuelen = intval - elif opt=="snat": intval = int(val) if val=="1": opt_snat = True + elif opt=="vswitch": + opt_ovs_dp = val else: print >>sys.stderr, "Unknown option: \"%s\"" % (opt) sys.exit(1) - ### Configure interface if opt_txqueuelen is None: @@ -173,4 +174,7 @@ if opt_rp_filter is not None: rp_cmd = "/sbin/sysctl net.ipv4.conf.%s.rp_filter=%s" % (vif, opt_rp_filter) os.system(rp_cmd) - +# OVS datapath +if opt_ovs_dp is not None: + cmd_ovs_addif = "ovs-dpctl add-if %s %s"%(opt_ovs_dp,vif) + os.system(cmd_ovs_addif)