/
assign1_topo.py
61 lines (53 loc) · 1.66 KB
/
assign1_topo.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/env python
"""
Measurement topology for CS640, Spring 2016, Assignment 1
"""
from mininet.cli import CLI
from mininet.net import Mininet
from mininet.link import TCLink
from mininet.topo import Topo
from mininet.log import setLogLevel
class AssignmentNetworks(Topo):
def __init__(self, **opts):
Topo.__init__(self, **opts)
h1 = self.addHost('h1')
h2 = self.addHost('h2')
h3 = self.addHost('h3')
h4 = self.addHost('h4')
h5 = self.addHost('h5')
h6 = self.addHost('h6')
h7 = self.addHost('h7')
h8 = self.addHost('h8')
h9 = self.addHost('h9')
h10 = self.addHost('h10')
s1 = self.addSwitch('s1')
s2 = self.addSwitch('s2')
s3 = self.addSwitch('s3')
s4 = self.addSwitch('s4')
s5 = self.addSwitch('s5')
s6 = self.addSwitch('s6')
self.addLink(h1, s1)
self.addLink(h7, s1)
self.addLink(h8, s1)
self.addLink(h2, s2)
self.addLink(h3, s3)
self.addLink(h4, s4)
self.addLink(h9, s4)
self.addLink(h10, s4)
self.addLink(h5, s5)
self.addLink(h6, s6)
self.addLink(s1, s2, bw=20, delay='40ms')
self.addLink(s2, s3, bw=40, delay='10ms')
self.addLink(s3, s4, bw=30, delay='30ms')
self.addLink(s2, s5, bw=25, delay='5ms')
self.addLink(s3, s6, bw=25, delay='5ms')
if __name__ == '__main__':
setLogLevel( 'info' )
# Create data network
topo = AssignmentNetworks()
net = Mininet(topo=topo, link=TCLink, autoSetMacs=True,
autoStaticArp=True)
# Run network
net.start()
CLI( net )
net.stop()