5 from mininet.cli import CLI
6 from mininet.net import Mininet
7 from mininet.node import RemoteController
8 from mininet.node import OVSSwitch
9 from mininet.node import UserSwitch
11 from oslo_config import cfg
12 from ryu import version
13 from ryu.ofproto.ofproto_common import OFP_TCP_PORT
16 if '__main__' == __name__:
19 cfg.StrOpt('switch', default='ovs',
20 help='test switch [ovs|cpqd]'),
21 cfg.StrOpt('protocols', default='OpenFlow13',
22 help='"protocols" option for ovs-vsctl (e.g. OpenFlow13)')
24 conf = cfg.ConfigOpts()
25 conf.register_cli_opts(opts)
26 conf(project='ryu', version='run_mininet.py %s' % version)
28 switch_type = {'ovs': OVSSwitch, 'cpqd': UserSwitch}
29 switch = switch_type.get(conf.switch, None)
31 raise ValueError('Invalid switch type. [%s]', conf.switch)
33 net = Mininet(switch=switch, controller=RemoteController)
35 c0 = net.addController('c0', port=OFP_TCP_PORT)
37 s1 = net.addSwitch('s1')
38 s2 = net.addSwitch('s2')
46 if conf.switch == 'ovs':
47 s1.cmd('ovs-vsctl set Bridge s1 protocols=%s' % conf.protocols)
48 s2.cmd('ovs-vsctl set Bridge s2 protocols=%s' % conf.protocols)