blob: c51a75d7d4fd7ffc9145e7d3e0d5a28cde15a895 [file] [log] [blame]
Hari Krishna4223dbd2015-08-13 16:29:53 -07001#!/usr/bin/python
2from mininet.topo import Topo
3from mininet.net import Mininet
4from mininet.node import Host, RemoteController
5from mininet.node import Node
6from mininet.node import CPULimitedHost
7from mininet.link import TCLink
8from mininet.cli import CLI
9from mininet.log import setLogLevel
10from mininet.util import dumpNodeConnections
11from mininet.node import ( UserSwitch, OVSSwitch, IVSSwitch )
12
13class dualStackHost( Host ):
14 def config( self, v6Addr='1000:1/64', **params ):
15 r = super( Host, self ).config( **params )
16 intf = self.defaultIntf()
17 self.cmd( 'ip -6 addr add %s dev %s' % ( v6Addr, intf ) )
18 return r
19
20class spineTopo( Topo ):
21
22 def __init__( self, **opts ):
23 "Create a topology."
24
25 # Initialize Topology
26 Topo.__init__( self, **opts )
27
28 # add nodes, Leaf switches
GlennRCef344fc2015-12-11 17:56:57 -080029 s1 = self.addSwitch( 's1', dpid='2000000000000001')
30 s2 = self.addSwitch( 's2', dpid='2000000000000002' )
31 s3 = self.addSwitch( 's3', dpid='2000000000000003' )
32 s4 = self.addSwitch( 's4', dpid='2000000000000004' )
33 s5 = self.addSwitch( 's5', dpid='2000000000000005' )
34 s6 = self.addSwitch( 's6', dpid='2000000000000006' )
35 s7 = self.addSwitch( 's7', dpid='2000000000000007' )
36 s8 = self.addSwitch( 's8', dpid='2000000000000008' )
37 s9 = self.addSwitch( 's9', dpid='2000000000000009' )
38 s10 = self.addSwitch( 's10', dpid='2000000000000010' )
39 s11 = self.addSwitch( 's11', dpid='2000000000000011' )
40 s12 = self.addSwitch( 's12', dpid='2000000000000012' )
41 s13 = self.addSwitch( 's13', dpid='2000000000000013' )
42 s14 = self.addSwitch( 's14', dpid='2000000000000014' )
Hari Krishna4223dbd2015-08-13 16:29:53 -070043
44 # add nodes, Spine switches first...
GlennRCef344fc2015-12-11 17:56:57 -080045 s15 = self.addSwitch( 's15', dpid='2000000000000015' )
46 s16 = self.addSwitch( 's16', dpid='2000000000000016' )
47 s17 = self.addSwitch( 's17', dpid='2000000000000017' )
48 s18 = self.addSwitch( 's18', dpid='2000000000000018' )
49 s19 = self.addSwitch( 's19', dpid='2000000000000019' )
50 s20 = self.addSwitch( 's20', dpid='2000000000000020' )
51 s21 = self.addSwitch( 's21', dpid='2000000000000021' )
52 s22 = self.addSwitch( 's22', dpid='2000000000000022' )
53 s23 = self.addSwitch( 's23', dpid='2000000000000023' )
54 s24 = self.addSwitch( 's24', dpid='2000000000000024' )
55 s25 = self.addSwitch( 's25', dpid='2000000000000025' )
56 s26 = self.addSwitch( 's26', dpid='2000000000000026' )
57 s27 = self.addSwitch( 's27', dpid='2000000000000027' )
58 s28 = self.addSwitch( 's28', dpid='2000000000000028' )
59 s29 = self.addSwitch( 's29', dpid='2000000000000029' )
60 s30 = self.addSwitch( 's30', dpid='2000000000000030' )
61 s31 = self.addSwitch( 's31', dpid='2000000000000031' )
62 s32 = self.addSwitch( 's32', dpid='2000000000000032' )
63 s33 = self.addSwitch( 's33', dpid='2000000000000033' )
64 s34 = self.addSwitch( 's34', dpid='2000000000000034' )
65 s35 = self.addSwitch( 's35', dpid='2000000000000035' )
66 s36 = self.addSwitch( 's36', dpid='2000000000000036' )
67 s37 = self.addSwitch( 's37', dpid='2000000000000037' )
68 s38 = self.addSwitch( 's38', dpid='2000000000000038' )
69 s39 = self.addSwitch( 's39', dpid='2000000000000039' )
70 s40 = self.addSwitch( 's40', dpid='2000000000000040' )
71 s41 = self.addSwitch( 's41', dpid='2000000000000041' )
72 s42 = self.addSwitch( 's42', dpid='2000000000000042' )
73 s43 = self.addSwitch( 's43', dpid='2000000000000043' )
74 s44 = self.addSwitch( 's44', dpid='2000000000000044' )
75 s45 = self.addSwitch( 's45', dpid='2000000000000045' )
76 s46 = self.addSwitch( 's46', dpid='2000000000000046' )
77 s47 = self.addSwitch( 's47', dpid='2000000000000047' )
78 s48 = self.addSwitch( 's48', dpid='2000000000000048' )
79 s49 = self.addSwitch( 's49', dpid='2000000000000049' )
80 s50 = self.addSwitch( 's50', dpid='2000000000000050' )
81 s51 = self.addSwitch( 's51', dpid='2000000000000051' )
82 s52 = self.addSwitch( 's52', dpid='2000000000000052' )
83 s53 = self.addSwitch( 's53', dpid='2000000000000053' )
84 s54 = self.addSwitch( 's54', dpid='2000000000000054' )
85 s55 = self.addSwitch( 's55', dpid='2000000000000055' )
86 s56 = self.addSwitch( 's56', dpid='2000000000000056' )
87 s57 = self.addSwitch( 's57', dpid='2000000000000057' )
88 s58 = self.addSwitch( 's58', dpid='2000000000000058' )
89 s59 = self.addSwitch( 's59', dpid='2000000000000059' )
90 s60 = self.addSwitch( 's60', dpid='2000000000000060' )
91 s61 = self.addSwitch( 's61', dpid='2000000000000061' )
92 s62 = self.addSwitch( 's62', dpid='2000000000000062' )
93 s63 = self.addSwitch( 's63', dpid='2000000000000063' )
94 s64 = self.addSwitch( 's64', dpid='2000000000000064' )
95 s65 = self.addSwitch( 's65', dpid='2000000000000065' )
96 s66 = self.addSwitch( 's66', dpid='2000000000000066' )
97 s67 = self.addSwitch( 's67', dpid='2000000000000067' )
98 s68 = self.addSwitch( 's68', dpid='2000000000000068' )
99 s69 = self.addSwitch( 's69', dpid='2000000000000069' )
100 s70 = self.addSwitch( 's70', dpid='2000000000000070' )
101 s71 = self.addSwitch( 's71', dpid='2000000000000071' )
102 s72 = self.addSwitch( 's72', dpid='2000000000000072' )
103 s73 = self.addSwitch( 's73', dpid='2000000000000073' )
104 s74 = self.addSwitch( 's74', dpid='2000000000000074' )
105 s75 = self.addSwitch( 's75', dpid='2000000000000075' )
106 s76 = self.addSwitch( 's76', dpid='2000000000000076' )
107 s77 = self.addSwitch( 's77', dpid='2000000000000077' )
108 s78 = self.addSwitch( 's78', dpid='2000000000000078' )
109
Hari Krishna4223dbd2015-08-13 16:29:53 -0700110
111 # ... and now hosts
112 # s1_host = self.addHost( 'h1', ip='10.1.0.1/24', cls=dualStackHost, v6Addr='1000::1/64' )
113 # s2_host = self.addHost( 'h2', ip='10.1.0.2/24', cls=dualStackHost, v6Addr='1000::2/64' )
114 # s3_host = self.addHost( 'h3', ip='10.1.0.3/24', cls=dualStackHost, v6Addr='1000::3/64' )
115 # s4_host = self.addHost( 'h4', ip='10.1.0.4/24', cls=dualStackHost, v6Addr='1000::4/64' )
116 # s5_host = self.addHost( 'h5', ip='10.1.0.5/24', cls=dualStackHost, v6Addr='1000::5/64' )
117 # s6_host = self.addHost( 'h6', ip='10.1.0.6/24', cls=dualStackHost, v6Addr='1000::6/64' )
118 # s7_host = self.addHost( 'h7', ip='10.1.0.7/24', cls=dualStackHost, v6Addr='1000::7/64' )
119 # s8_host = self.addHost( 'h8', ip='10.1.0.8/24', cls=dualStackHost, v6Addr='1000::8/64' )
120 # s9_host = self.addHost( 'h9', ip='10.1.0.9/24', cls=dualStackHost, v6Addr='1000::9/64' )
121 # s10_host = self.addHost( 'h10', ip='10.1.0.10/24', cls=dualStackHost, v6Addr='1000::10/64' )
122 s11_host = self.addHost( 'h11', ip='10.1.0.11/24', cls=dualStackHost, v6Addr='1000::11/64' )
123 s12_host = self.addHost( 'h12', ip='10.1.0.12/24', cls=dualStackHost, v6Addr='1000::12/64' )
124 s13_host = self.addHost( 'h13', ip='10.1.0.13/24', cls=dualStackHost, v6Addr='1000::13/64' )
125 s14_host = self.addHost( 'h14', ip='10.1.0.14/24', cls=dualStackHost, v6Addr='1000::14/64' )
126 s15_host = self.addHost( 'h15', ip='10.1.0.15/24', cls=dualStackHost, v6Addr='1000::15/64' )
127 s16_host = self.addHost( 'h16', ip='10.1.0.16/24', cls=dualStackHost, v6Addr='1000::16/64' )
128 s17_host = self.addHost( 'h17', ip='10.1.0.17/24', cls=dualStackHost, v6Addr='1000::17/64' )
129 s18_host = self.addHost( 'h18', ip='10.1.0.18/24', cls=dualStackHost, v6Addr='1000::18/64' )
130 s19_host = self.addHost( 'h19', ip='10.1.0.19/24', cls=dualStackHost, v6Addr='1000::19/64' )
131 s20_host = self.addHost( 'h20', ip='10.1.0.20/24', cls=dualStackHost, v6Addr='1000::20/64' )
132 s21_host = self.addHost( 'h21', ip='10.1.0.21/24', cls=dualStackHost, v6Addr='1000::21/64' )
133 s22_host = self.addHost( 'h22', ip='10.1.0.22/24', cls=dualStackHost, v6Addr='1000::22/64' )
134 s23_host = self.addHost( 'h23', ip='10.1.0.23/24', cls=dualStackHost, v6Addr='1000::23/64' )
135 s24_host = self.addHost( 'h24', ip='10.1.0.24/24', cls=dualStackHost, v6Addr='1000::24/64' )
136 s25_host = self.addHost( 'h25', ip='10.1.0.25/24', cls=dualStackHost, v6Addr='1000::25/64' )
137 s26_host = self.addHost( 'h26', ip='10.1.0.26/24', cls=dualStackHost, v6Addr='1000::26/64' )
138 s27_host = self.addHost( 'h27', ip='10.1.0.27/24', cls=dualStackHost, v6Addr='1000::27/64' )
139 s28_host = self.addHost( 'h28', ip='10.1.0.28/24', cls=dualStackHost, v6Addr='1000::28/64' )
140 s29_host = self.addHost( 'h29', ip='10.1.0.29/24', cls=dualStackHost, v6Addr='1000::29/64' )
141 s30_host = self.addHost( 'h30', ip='10.1.0.30/24', cls=dualStackHost, v6Addr='1000::30/64' )
142 s31_host = self.addHost( 'h31', ip='10.1.0.31/24', cls=dualStackHost, v6Addr='1000::31/64' )
143 s32_host = self.addHost( 'h32', ip='10.1.0.32/24', cls=dualStackHost, v6Addr='1000::32/64' )
144 s33_host = self.addHost( 'h33', ip='10.1.0.33/24', cls=dualStackHost, v6Addr='1000::33/64' )
145 s34_host = self.addHost( 'h34', ip='10.1.0.34/24', cls=dualStackHost, v6Addr='1000::34/64' )
146 s35_host = self.addHost( 'h35', ip='10.1.0.35/24', cls=dualStackHost, v6Addr='1000::35/64' )
147 s36_host = self.addHost( 'h36', ip='10.1.0.36/24', cls=dualStackHost, v6Addr='1000::36/64' )
148 s37_host = self.addHost( 'h37', ip='10.1.0.37/24', cls=dualStackHost, v6Addr='1000::37/64' )
149 s38_host = self.addHost( 'h38', ip='10.1.0.38/24', cls=dualStackHost, v6Addr='1000::38/64' )
150 s39_host = self.addHost( 'h39', ip='10.1.0.39/24', cls=dualStackHost, v6Addr='1000::39/64' )
151 s40_host = self.addHost( 'h40', ip='10.1.0.40/24', cls=dualStackHost, v6Addr='1000::40/64' )
152 s41_host = self.addHost( 'h41', ip='10.1.0.41/24', cls=dualStackHost, v6Addr='1000::41/64' )
153 s42_host = self.addHost( 'h42', ip='10.1.0.42/24', cls=dualStackHost, v6Addr='1000::42/64' )
154 s43_host = self.addHost( 'h43', ip='10.1.0.43/24', cls=dualStackHost, v6Addr='1000::43/64' )
155 s44_host = self.addHost( 'h44', ip='10.1.0.44/24', cls=dualStackHost, v6Addr='1000::44/64' )
156 s45_host = self.addHost( 'h45', ip='10.1.0.45/24', cls=dualStackHost, v6Addr='1000::45/64' )
157 s46_host = self.addHost( 'h46', ip='10.1.0.46/24', cls=dualStackHost, v6Addr='1000::46/64' )
158 s47_host = self.addHost( 'h47', ip='10.1.0.47/24', cls=dualStackHost, v6Addr='1000::47/64' )
159 s48_host = self.addHost( 'h48', ip='10.1.0.48/24', cls=dualStackHost, v6Addr='1000::48/64' )
160 s49_host = self.addHost( 'h49', ip='10.1.0.49/24', cls=dualStackHost, v6Addr='1000::49/64' )
161 s50_host = self.addHost( 'h50', ip='10.1.0.50/24', cls=dualStackHost, v6Addr='1000::50/64' )
162 s51_host = self.addHost( 'h51', ip='10.1.0.51/24', cls=dualStackHost, v6Addr='1000::51/64' )
163 s52_host = self.addHost( 'h52', ip='10.1.0.52/24', cls=dualStackHost, v6Addr='1000::52/64' )
164 s53_host = self.addHost( 'h53', ip='10.1.0.53/24', cls=dualStackHost, v6Addr='1000::53/64' )
165 s54_host = self.addHost( 'h54', ip='10.1.0.54/24', cls=dualStackHost, v6Addr='1000::54/64' )
166 s55_host = self.addHost( 'h55', ip='10.1.0.55/24', cls=dualStackHost, v6Addr='1000::55/64' )
167 s56_host = self.addHost( 'h56', ip='10.1.0.56/24', cls=dualStackHost, v6Addr='1000::56/64' )
168 s57_host = self.addHost( 'h57', ip='10.1.0.57/24', cls=dualStackHost, v6Addr='1000::57/64' )
169 s58_host = self.addHost( 'h58', ip='10.1.0.58/24', cls=dualStackHost, v6Addr='1000::58/64' )
170 s59_host = self.addHost( 'h59', ip='10.1.0.59/24', cls=dualStackHost, v6Addr='1000::59/64' )
171 s60_host = self.addHost( 'h60', ip='10.1.0.60/24', cls=dualStackHost, v6Addr='1000::60/64' )
172 s61_host = self.addHost( 'h61', ip='10.1.0.61/24', cls=dualStackHost, v6Addr='1000::61/64' )
173 s62_host = self.addHost( 'h62', ip='10.1.0.62/24', cls=dualStackHost, v6Addr='1000::62/64' )
174 s63_host = self.addHost( 'h63', ip='10.1.0.63/24', cls=dualStackHost, v6Addr='1000::63/64' )
175 s64_host = self.addHost( 'h64', ip='10.1.0.64/24', cls=dualStackHost, v6Addr='1000::64/64' )
176 s65_host = self.addHost( 'h65', ip='10.1.0.65/24', cls=dualStackHost, v6Addr='1000::65/64' )
177 s66_host = self.addHost( 'h66', ip='10.1.0.66/24', cls=dualStackHost, v6Addr='1000::66/64' )
178 s67_host = self.addHost( 'h67', ip='10.1.0.67/24', cls=dualStackHost, v6Addr='1000::67/64' )
179 s68_host = self.addHost( 'h68', ip='10.1.0.68/24', cls=dualStackHost, v6Addr='1000::68/64' )
180 s69_host = self.addHost( 'h69', ip='10.1.0.69/24', cls=dualStackHost, v6Addr='1000::69/64' )
181 s70_host = self.addHost( 'h70', ip='10.1.0.70/24', cls=dualStackHost, v6Addr='1000::70/64' )
182 s71_host = self.addHost( 'h71', ip='10.1.0.71/24', cls=dualStackHost, v6Addr='1000::71/64' )
183 s72_host = self.addHost( 'h72', ip='10.1.0.72/24', cls=dualStackHost, v6Addr='1000::72/64' )
184 s73_host = self.addHost( 'h73', ip='10.1.0.73/24', cls=dualStackHost, v6Addr='1000::73/64' )
185 s74_host = self.addHost( 'h74', ip='10.1.0.74/24', cls=dualStackHost, v6Addr='1000::74/64' )
186 s75_host = self.addHost( 'h75', ip='10.1.0.75/24', cls=dualStackHost, v6Addr='1000::75/64' )
187 s76_host = self.addHost( 'h76', ip='10.1.0.76/24', cls=dualStackHost, v6Addr='1000::76/64' )
188 s77_host = self.addHost( 'h77', ip='10.1.0.77/24', cls=dualStackHost, v6Addr='1000::77/64' )
189 s78_host = self.addHost( 'h78', ip='10.1.0.78/24', cls=dualStackHost, v6Addr='1000::78/64' )
190
191 # add edges between switch and corresponding host
192 #self.addLink( s1 , s1_host )
193 #self.addLink( s2 , s2_host )
194 #self.addLink( s3 , s3_host )
195 #self.addLink( s4 , s4_host )
196 #self.addLink( s5 , s5_host )
197 #self.addLink( s6 , s6_host )
198 #self.addLink( s7 , s7_host )
199 #self.addLink( s8 , s8_host )
200 #self.addLink( s9 , s9_host )
201 #self.addLink( s10 , s10_host )
202 self.addLink( s11 , s11_host )
203 self.addLink( s12 , s12_host )
204 self.addLink( s13 , s13_host )
205 self.addLink( s14 , s14_host )
206 self.addLink( s15 , s15_host )
207 self.addLink( s16 , s16_host )
208 self.addLink( s17 , s17_host )
209 self.addLink( s18 , s18_host )
210 self.addLink( s19 , s19_host )
211 self.addLink( s20 , s20_host )
212 self.addLink( s21 , s21_host )
213 self.addLink( s22 , s22_host )
214 self.addLink( s23 , s23_host )
215 self.addLink( s24 , s24_host )
216 self.addLink( s25 , s25_host )
217 self.addLink( s26 , s26_host )
218 self.addLink( s27 , s27_host )
219 self.addLink( s28 , s28_host )
220 self.addLink( s29 , s29_host )
221 self.addLink( s30 , s30_host )
222 self.addLink( s31 , s31_host )
223 self.addLink( s32 , s32_host )
224 self.addLink( s33 , s33_host )
225 self.addLink( s34 , s34_host )
226 self.addLink( s35 , s35_host )
227 self.addLink( s36 , s36_host )
228 self.addLink( s37 , s37_host )
229 self.addLink( s38 , s38_host )
230 self.addLink( s39 , s39_host )
231 self.addLink( s40 , s40_host )
232 self.addLink( s41 , s41_host )
233 self.addLink( s42 , s42_host )
234 self.addLink( s43 , s43_host )
235 self.addLink( s44 , s44_host )
236 self.addLink( s45 , s45_host )
237 self.addLink( s46 , s46_host )
238 self.addLink( s47 , s47_host )
239 self.addLink( s48 , s48_host )
240 self.addLink( s49 , s49_host )
241 self.addLink( s50 , s50_host )
242 self.addLink( s51 , s51_host )
243 self.addLink( s52 , s52_host )
244 self.addLink( s53 , s53_host )
245 self.addLink( s54 , s54_host )
246 self.addLink( s55 , s55_host )
247 self.addLink( s56 , s56_host )
248 self.addLink( s57 , s57_host )
249 self.addLink( s58 , s58_host )
250 self.addLink( s59 , s59_host )
251 self.addLink( s60 , s60_host )
252 self.addLink( s61 , s61_host )
253 self.addLink( s62 , s62_host )
254 self.addLink( s63 , s63_host )
255 self.addLink( s64 , s64_host )
256 self.addLink( s65 , s65_host )
257 self.addLink( s66 , s66_host )
258 self.addLink( s67 , s67_host )
259 self.addLink( s68 , s68_host )
260 self.addLink( s69 , s69_host )
261 self.addLink( s70 , s70_host )
262 self.addLink( s71 , s71_host )
263 self.addLink( s72 , s72_host )
264 self.addLink( s73 , s73_host )
265 self.addLink( s74 , s74_host )
266 self.addLink( s75 , s75_host )
267 self.addLink( s76 , s76_host )
268 self.addLink( s77 , s77_host )
269 self.addLink( s78 , s78_host )
270
271 #info( '*** Add Leaf links\n')
272 self.addLink(s1, s9)
273 self.addLink(s2, s10)
274 self.addLink(s3, s9)
275 self.addLink(s4, s10)
276 self.addLink(s5, s9)
277 self.addLink(s6, s10)
278 self.addLink(s7, s9)
279 self.addLink(s8, s10)
280 self.addLink(s9, s11)
281 self.addLink(s9, s12)
282 self.addLink(s10, s13)
283 self.addLink(s10, s14)
284 self.addLink(s11, s12)
285 self.addLink(s13, s14)
286
287 #info( '*** Add Spine-1 links\n')
288 self.addLink(s15, s1)
289 self.addLink(s15, s2)
290 self.addLink(s16, s1)
291 self.addLink(s16, s2)
292 self.addLink(s17, s1)
293 self.addLink(s17, s2)
294 self.addLink(s18, s1)
295 self.addLink(s18, s2)
296 self.addLink(s19, s1)
297 self.addLink(s19, s2)
298 self.addLink(s20, s1)
299 self.addLink(s20, s2)
300 self.addLink(s21, s1)
301 self.addLink(s21, s2)
302 self.addLink(s22, s1)
303 self.addLink(s22, s2)
304 self.addLink(s23, s1)
305 self.addLink(s23, s2)
306 self.addLink(s24, s1)
307 self.addLink(s24, s2)
308 self.addLink(s25, s1)
309 self.addLink(s25, s2)
310 self.addLink(s26, s1)
311 self.addLink(s26, s2)
312 self.addLink(s27, s1)
313 self.addLink(s27, s2)
314 self.addLink(s28, s1)
315 self.addLink(s28, s2)
316 self.addLink(s29, s1)
317 self.addLink(s29, s2)
318 self.addLink(s30, s1)
319 self.addLink(s30, s2)
320
321 #info( '*** Add Spine-2 links\n')
322 self.addLink(s31, s3)
323 self.addLink(s31, s4)
324 self.addLink(s32, s3)
325 self.addLink(s32, s4)
326 self.addLink(s33, s3)
327 self.addLink(s33, s4)
328 self.addLink(s34, s3)
329 self.addLink(s34, s4)
330 self.addLink(s35, s3)
331 self.addLink(s35, s4)
332 self.addLink(s36, s3)
333 self.addLink(s36, s4)
334 self.addLink(s37, s3)
335 self.addLink(s37, s4)
336 self.addLink(s38, s3)
337 self.addLink(s38, s4)
338 self.addLink(s39, s3)
339 self.addLink(s39, s4)
340 self.addLink(s40, s3)
341 self.addLink(s40, s4)
342 self.addLink(s41, s3)
343 self.addLink(s41, s4)
344 self.addLink(s42, s3)
345 self.addLink(s42, s4)
346 self.addLink(s43, s3)
347 self.addLink(s43, s4)
348 self.addLink(s44, s3)
349 self.addLink(s44, s4)
350 self.addLink(s45, s3)
351 self.addLink(s45, s4)
352 self.addLink(s46, s3)
353 self.addLink(s46, s4)
354
355 #info( '*** Add Spine-3 links\n')
356 self.addLink(s47, s5)
357 self.addLink(s47, s6)
358 self.addLink(s48, s5)
359 self.addLink(s48, s6)
360 self.addLink(s49, s5)
361 self.addLink(s49, s6)
362 self.addLink(s50, s5)
363 self.addLink(s50, s6)
364 self.addLink(s51, s5)
365 self.addLink(s51, s6)
366 self.addLink(s52, s5)
367 self.addLink(s52, s6)
368 self.addLink(s53, s5)
369 self.addLink(s53, s6)
370 self.addLink(s54, s5)
371 self.addLink(s54, s6)
372 self.addLink(s55, s5)
373 self.addLink(s55, s6)
374 self.addLink(s56, s5)
375 self.addLink(s56, s6)
376 self.addLink(s57, s5)
377 self.addLink(s57, s6)
378 self.addLink(s58, s5)
379 self.addLink(s58, s6)
380 self.addLink(s59, s5)
381 self.addLink(s59, s6)
382 self.addLink(s60, s5)
383 self.addLink(s60, s6)
384 self.addLink(s61, s5)
385 self.addLink(s61, s6)
386 self.addLink(s62, s5)
387 self.addLink(s62, s6)
388
389 #info( '*** Add Spine-4 links\n')
390 self.addLink(s63, s7)
391 self.addLink(s63, s8)
392 self.addLink(s64, s7)
393 self.addLink(s64, s8)
394 self.addLink(s65, s7)
395 self.addLink(s65, s8)
396 self.addLink(s66, s7)
397 self.addLink(s66, s8)
398 self.addLink(s67, s7)
399 self.addLink(s67, s8)
400 self.addLink(s68, s7)
401 self.addLink(s68, s8)
402 self.addLink(s69, s7)
403 self.addLink(s69, s8)
404 self.addLink(s70, s7)
405 self.addLink(s70, s8)
406 self.addLink(s71, s7)
407 self.addLink(s71, s8)
408 self.addLink(s72, s7)
409 self.addLink(s72, s8)
410 self.addLink(s73, s7)
411 self.addLink(s73, s8)
412 self.addLink(s74, s7)
413 self.addLink(s74, s8)
414 self.addLink(s75, s7)
415 self.addLink(s75, s8)
416 self.addLink(s76, s7)
417 self.addLink(s76, s8)
418 self.addLink(s77, s7)
419 self.addLink(s77, s8)
420 self.addLink(s78, s7)
421 self.addLink(s78, s8)
422
423topos = { 'spine': ( lambda: spineTopo() ) }
424
425# HERE THE CODE DEFINITION OF THE TOPOLOGY ENDS
426
427def setupNetwork():
428 "Create network"
429 topo = spineTopo()
430 #if controller_ip == '':
431 #controller_ip = '10.0.2.2';
432 # controller_ip = '127.0.0.1';
433 network = Mininet(topo=topo, switch=OVSSwitch, link=TCLink, autoSetMacs = True, controller=None)
434 network.start()
435 CLI( network )
436 network.stop()
437
438if __name__ == '__main__':
439 setLogLevel('info')
440 #setLogLevel('debug')
441 setupNetwork()