blob: a3a869640e12f1df152973a9f50df65dd528f73f [file] [log] [blame]
Simon Hunt0bf56492016-10-20 18:30:11 -07001#!/usr/bin/env python
2
3"""
4 Sample network for demonstrating regions (see uk-region.json)
5"""
6from mininet.topo import Topo
7
8
9class UkRegionTopo(Topo):
10 """Switches projected onto a portion of the UK map"""
11
12 def __init__(self):
13 """Create a topology."""
14
15 # Initialize Topology
16 Topo.__init__(self)
17
18 # add nodes, switches first...
19 DOVER = self.addSwitch('s1')
20 BRGHTN_A = self.addSwitch('s2')
21 BRGHTN_B = self.addSwitch('s3')
22 BRGHTN_C = self.addSwitch('s4')
23 LONDON_A = self.addSwitch('s5')
24 LONDON_B = self.addSwitch('s6')
25 LONDON_C = self.addSwitch('s7')
26 LONDON_D = self.addSwitch('s8')
27 LONDON_E = self.addSwitch('s9')
28
29 # ... and now hosts
30 DOVER_host = self.addHost('h1')
31 BRGHTN_A_host = self.addHost('h2')
32 BRGHTN_B_host = self.addHost('h3')
33 BRGHTN_C_host = self.addHost('h4')
34 LONDON_A_host = self.addHost('h5')
35 LONDON_B_host = self.addHost('h6')
36 LONDON_C_host = self.addHost('h7')
37 LONDON_D_host = self.addHost('h8')
38 LONDON_E_host = self.addHost('h9')
39
40 # add edges between switch and corresponding host
41 self.addLink(DOVER, DOVER_host)
42 self.addLink(BRGHTN_A, BRGHTN_A_host)
43 self.addLink(BRGHTN_B, BRGHTN_B_host)
44 self.addLink(BRGHTN_C, BRGHTN_C_host)
45 self.addLink(LONDON_A, LONDON_A_host)
46 self.addLink(LONDON_B, LONDON_B_host)
47 self.addLink(LONDON_C, LONDON_C_host)
48 self.addLink(LONDON_D, LONDON_D_host)
49 self.addLink(LONDON_E, LONDON_E_host)
50
51 # add edges between switches
52 self.addLink(DOVER, BRGHTN_A, bw=10, delay='1.0ms')
53 self.addLink(BRGHTN_A, BRGHTN_B, bw=10, delay='1.0ms')
54 self.addLink(BRGHTN_A, BRGHTN_C, bw=10, delay='1.0ms')
55 self.addLink(BRGHTN_B, BRGHTN_C, bw=10, delay='1.0ms')
56 self.addLink(BRGHTN_C, LONDON_A, bw=10, delay='1.0ms')
57 self.addLink(LONDON_A, LONDON_B, bw=10, delay='1.0ms')
58 self.addLink(LONDON_A, LONDON_C, bw=10, delay='1.0ms')
59 self.addLink(LONDON_B, LONDON_D, bw=10, delay='1.0ms')
60 self.addLink(LONDON_C, LONDON_D, bw=10, delay='1.0ms')
61 self.addLink(LONDON_C, LONDON_E, bw=10, delay='1.0ms')
62 self.addLink(LONDON_D, LONDON_E, bw=10, delay='1.0ms')
63
64
65topos = {'uk': (lambda: UkRegionTopo())}
66
67if __name__ == '__main__':
68 from onosnet import run
69
70 run(UkRegionTopo())