diff --git a/ryu/tests/switch/run_mininet.py b/ryu/tests/switch/run_mininet.py index 40ef3998..03bb91d7 100755 --- a/ryu/tests/switch/run_mininet.py +++ b/ryu/tests/switch/run_mininet.py @@ -1,13 +1,33 @@ #!/usr/bin/env python +import sys + from mininet.cli import CLI from mininet.link import Link from mininet.net import Mininet from mininet.node import RemoteController +from mininet.node import OVSSwitch +from mininet.node import UserSwitch from mininet.term import makeTerm +from oslo.config import cfg +from ryu import version + if '__main__' == __name__: - net = Mininet(controller=RemoteController) + + opts = [ + cfg.StrOpt('switch', default='ovs', help='test switch (ovs|cpqd)') + ] + conf = cfg.ConfigOpts() + conf.register_cli_opts(opts) + conf(project='ryu', version='run_mininet.py %s' % version) + conf(sys.argv[1:]) + switch_type = {'ovs': OVSSwitch, 'cpqd': UserSwitch} + switch = switch_type.get(conf.switch) + if switch is None: + raise ValueError('Invalid switch type. [%s]', conf.switch) + + net = Mininet(switch=switch, controller=RemoteController) c0 = net.addController('c0') @@ -22,8 +42,9 @@ if '__main__' == __name__: s1.start([c0]) s2.start([c0]) - s1.cmd('ovs-vsctl set Bridge s1 protocols=OpenFlow13') - s2.cmd('ovs-vsctl set Bridge s2 protocols=OpenFlow13') + if conf.switch == 'ovs': + s1.cmd('ovs-vsctl set Bridge s1 protocols=OpenFlow13') + s2.cmd('ovs-vsctl set Bridge s2 protocols=OpenFlow13') CLI(net)