Merge "BUG-5006: Reduce usage of PowerMock"
[netvirt.git] / resources / mininet / topo.py
1 #!/usr/bin/python
2
3 """Custom L3 topology
4
5 4 hosts directly connected to a bridge instance
6
7 Refs: https://www.dropbox.com/s/rh6w9nvkuin7tl9/Screenshot%202014-08-14%2017.53.10.png
8 https://www.dropbox.com/s/h42ufboknd2i0q1/Screenshot%202014-08-14%2017.52.09.png
9
10 host1 -- blue broadcast
11 host2, host4 -- green broadcast
12 host3 -- external broadcast
13
14 Adding the 'topos' dict with a key/value pair to generate our newly defined
15 topology enables one to pass in '--topo=mytopo' from the command line.
16 """
17
18 from mininet.topo import Topo
19
20 class L3TestTopo( Topo ):
21
22     """L3 test topology."""
23
24     def __init__( self ):
25         """Create custom topo."""
26
27         # Initialize topology
28         Topo.__init__( self )
29
30         # Add hosts and switches
31         h1 = self.addHost('h1',
32                           ip="10.10.10.2/24",
33                           mac="00:00:00:00:00:01",
34                           defaultRoute="dev h1-eth0 via 10.10.10.1")
35
36         h2 = self.addHost('h2',
37                           ip="10.10.20.2/24",
38                           mac="00:00:00:00:00:02",
39                           defaultRoute="dev h2-eth0 via 10.10.20.1")
40
41         h3 = self.addHost('h3',
42                           ip="172.16.1.2/24",
43                           mac="00:00:00:00:00:03",
44                           defaultRoute="dev h3-eth0 via 172.16.1.254")
45
46         h4 = self.addHost('h4',
47                           ip="10.10.20.4/24",
48                           mac="00:00:00:00:00:04",
49                           defaultRoute="dev h4-eth0 via 10.10.20.1")
50
51         s1 = self.addSwitch('s1')
52
53         # Add links
54         self.addLink( s1, h1 )
55         self.addLink( s1, h2 )
56         self.addLink( s1, h3 )
57         self.addLink( s1, h4 )
58
59 topos = {'l3': ( lambda: L3TestTopo() )}
60