-
Notifications
You must be signed in to change notification settings - Fork 0
/
federated.py
47 lines (38 loc) · 1.11 KB
/
federated.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
from mininet.net import Mininet
from mininet.node import UserSwitch, OVSKernelSwitch
from mininet.topo import Topo
from mininet.log import lg
from mininet.util import irange
import sys
flush = sys.stdout.flush
class FederatedNet( Topo ):
"Topology for a federated network."
def __init__( self, N, **params ):
Topo.__init__( self, **params )
hosts1 = [ self.addHost( 'h%d' % n )
for n in irange( 1, 2 ) ]
hosts2 = [ self.addHost( 'h%d' % n )
for n in irange( 3, 4 ) ]
hosts3 = [ self.addHost( 'h%d' % n )
for n in irange( 5, 6 ) ]
hosts4 = [ self.addHost( 'h%d' % n )
for n in irange( 7, 8 ) ]
switches = [ self.addSwitch( 's%s' % s )
for s in irange( 1, 6 ) ]
for h in hosts1:
self.addLink( s2, h )
for h in hosts2:
self.addLink( s3, h )
for h in hosts3:
self.addLink( s5, h )
for h in hosts4:
net.addLink( s6, h )
self.addLink( s1, s2 )
self.addLink( s1, s4 )
self.addLink( s1, s3 )
self.addLink( s4, s5 )
self.addLink( s4, s6 )
if __name__ == '__main__':
lg.setLogLevel( 'info' )
hostCount = 8
FederatedNet( hostCount )