backing up
[vsorcdistro/.git] / ryu / build / lib.linux-armv7l-2.7 / ryu / tests / switch / run_mininet.py
1 #!/usr/bin/env python
2
3 import sys
4
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
10
11 from oslo_config import cfg
12 from ryu import version
13 from ryu.ofproto.ofproto_common import OFP_TCP_PORT
14
15
16 if '__main__' == __name__:
17
18     opts = [
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)')
23     ]
24     conf = cfg.ConfigOpts()
25     conf.register_cli_opts(opts)
26     conf(project='ryu', version='run_mininet.py %s' % version)
27     conf(sys.argv[1:])
28     switch_type = {'ovs': OVSSwitch, 'cpqd': UserSwitch}
29     switch = switch_type.get(conf.switch, None)
30     if switch is None:
31         raise ValueError('Invalid switch type. [%s]', conf.switch)
32
33     net = Mininet(switch=switch, controller=RemoteController)
34
35     c0 = net.addController('c0', port=OFP_TCP_PORT)
36
37     s1 = net.addSwitch('s1')
38     s2 = net.addSwitch('s2')
39
40     net.addLink(s1, s2)
41     net.addLink(s1, s2)
42     net.addLink(s1, s2)
43
44     net.start()
45
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)
49
50     CLI(net)
51
52     net.stop()