fahad

Cleanning up test/topos

=======================
We don't need these files anymore.

Change-Id: I6c4c1db1d67bd03874fbaa03bb47d4fc09e9f41d
1 -{
2 - "devices" : [
3 - {
4 - "uri": "of:0000ffffffffff01", "mac": "ffffffffffff01", "type": "ROADM",
5 - "mfr": "Linc", "hw": "OE", "sw": "?", "serial": "?",
6 - "annotations": { "name": "ROADM1", "latitude": 37.6, "longitude": -122.3, "optical.regens": 0 },
7 - "ports": [ { "port": 10, "speed": 100000, "type": "FIBER" }, { "port": 20, "speed": 0, "type": "FIBER" } ]
8 - },
9 - {
10 - "uri": "of:0000ffffffffff02", "mac": "ffffffffffff02", "type": "ROADM",
11 - "mfr": "Linc", "hw": "OE", "sw": "?", "serial": "?",
12 - "annotations": { "name": "ROADM2", "latitude": 37.3, "longitude": -121.9, "optical.regens": 0 },
13 - "ports": [ { "port": 11, "speed": 100000, "type": "FIBER" }, { "port": 21, "speed": 0, "type": "FIBER" } ]
14 - },
15 - {
16 - "uri": "of:0000ffffffffff03", "mac": "ffffffffffff03", "type": "ROADM",
17 - "mfr": "Linc", "hw": "OE", "sw": "?", "serial": "?",
18 - "annotations": { "name": "ROADM3", "latitude": 33.9, "longitude": -118.4, "optical.regens": 2 },
19 - "ports": [ { "port": 30, "speed": 0, "type": "FIBER" }, { "port": 31, "speed": 0, "type": "FIBER" } ]
20 - },
21 -
22 - {
23 - "uri": "of:0000ffffffff0001", "mac": "ffffffffff0001", "type": "SWITCH",
24 - "mfr": "Linc", "hw": "PK", "sw": "?", "serial": "?",
25 - "annotations": { "name": "ROUTER1", "latitude": 37.6, "longitude": -122.3 },
26 - "ports": [ { "port": 1, "speed": 10000, "type": "COPPER" }, { "port": 2, "speed": 100000, "type": "FIBER" } ]
27 - },
28 - {
29 - "uri": "of:0000ffffffff0002", "mac": "ffffffffff0002", "type": "SWITCH",
30 - "mfr": "Linc", "hw": "PK", "sw": "?", "serial": "?",
31 - "annotations": { "name": "ROUTER2", "latitude": 37.3, "longitude": -121.9 },
32 - "ports": [ { "port": 1, "speed": 10000, "type": "COPPER" }, { "port": 2, "speed": 100000, "type": "FIBER" } ]
33 - }
34 - ],
35 -
36 - "links" : [
37 - { "src": "of:0000ffffffffff01/20", "dst": "of:0000ffffffffff03/30", "type": "OPTICAL", "annotations": { "optical.waves": 80, "optical.type": "WDM", "durable": "true", "inactive": "true" } },
38 - { "src": "of:0000ffffffffff02/21", "dst": "of:0000ffffffffff03/31", "type": "OPTICAL", "annotations": { "optical.waves": 80, "optical.type": "WDM", "durable": "true", "inactive": "true" } },
39 -
40 - { "src": "of:0000ffffffff0001/2", "dst": "of:0000ffffffffff01/10", "type": "OPTICAL", "annotations": { "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true", "inactive": "true" } },
41 - { "src": "of:0000ffffffff0002/2", "dst": "of:0000ffffffffff02/11", "type": "OPTICAL", "annotations": { "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true", "inactive": "true" } }
42 - ],
43 -
44 - "hosts" : [
45 - { "mac": "00:00:00:00:00:01", "vlan": -1, "location": "of:0000ffffffff0001/1", "ip": "10.0.0.1" },
46 - { "mac": "00:00:00:00:00:02", "vlan": -1, "location": "of:0000ffffffff0002/1", "ip": "10.0.0.2" }
47 - ]
48 -}
...\ No newline at end of file ...\ No newline at end of file
1 -{
2 - "devices" : [
3 - {
4 - "uri": "of:0000ffffffffff01", "mac": "ffffffffffff01", "type": "ROADM",
5 - "mfr": "Linc", "hw": "OE", "sw": "?", "serial": "?",
6 - "annotations": { "name": "SFO-W10", "latitude": 37.6, "longitude": -122.3, "optical.regens": 0 },
7 - "ports": [ { "port": 10, "speed": 100000, "type": "FIBER" },
8 - { "port": 20, "speed": 0, "type": "FIBER" },
9 - { "port": 50, "speed":100000, "type": "FIBER" } ]
10 - },
11 - {
12 - "uri": "of:0000ffffffffff02", "mac": "ffffffffffff02", "type": "ROADM",
13 - "mfr": "Linc", "hw": "OE", "sw": "?", "serial": "?",
14 - "annotations": { "name": "SJC-W10", "latitude": 37.3, "longitude": -121.9, "optical.regens": 0 },
15 - "ports": [ { "port": 20, "speed": 100000, "type": "FIBER" },
16 - { "port": 30, "speed": 0, "type": "FIBER" },
17 - { "port": 50, "speed": 0, "type": "FIBER" } ]
18 - },
19 - {
20 - "uri": "of:0000ffffffffff03", "mac": "ffffffffffff03", "type": "ROADM",
21 - "mfr": "Linc", "hw": "OE", "sw": "?", "serial": "?",
22 - "annotations": { "name": "LAX-W10", "latitude": 33.9, "longitude": -118.4, "optical.regens": 0 },
23 - "ports": [ { "port": 30, "speed": 0, "type": "FIBER" },
24 - { "port": 50, "speed": 0, "type": "FIBER" },
25 - { "port": 20, "speed": 0, "type": "FIBER" } ]
26 - },
27 - {
28 - "uri": "of:0000ffffffffff04", "mac": "ffffffffffff04", "type": "ROADM",
29 - "mfr": "Linc", "hw": "OE", "sw": "?", "serial": "?",
30 - "annotations": { "name": "SDG-W10", "latitude": 32.8, "longitude": -117.1, "optical.regens": 3 },
31 - "ports": [ { "port": 30, "speed": 0, "type": "FIBER" },
32 - { "port":50, "speed": 0, "type": "FIBER" },
33 - { "port":20, "speed": 0, "type": "FIBER" }]
34 - },
35 - {
36 - "uri": "of:0000ffffffffff05", "mac": "ffffffffffff05", "type": "ROADM",
37 - "mfr": "Linc", "hw": "OE", "sw": "?", "serial": "?",
38 - "annotations": { "name": "MSP-M10", "latitude": 44.8, "longitude": -93.1, "optical.regens": 3 },
39 - "ports": [ { "port": 20, "speed": 0, "type": "FIBER" },
40 - { "port": 30, "speed": 0, "type": "FIBER" },
41 - { "port": 40, "speed": 0, "type": "FIBER" },
42 - { "port": 50, "speed": 0, "type": "FIBER" }]
43 - },
44 - {
45 - "uri": "of:0000ffffffffff06", "mac": "ffffffffffff06", "type": "ROADM",
46 - "mfr": "Linc", "hw": "OE", "sw": "?", "serial": "?",
47 - "annotations": { "name": "DFW-M10", "latitude": 32.8, "longitude": -97.1, "optical.regens": 3 },
48 - "ports": [ { "port": 10, "speed": 0, "type": "FIBER" },
49 - { "port": 20, "speed": 0, "type": "FIBER" },
50 - { "port": 30, "speed": 0, "type": "FIBER" },
51 - { "port": 40, "speed": 0, "type": "FIBER" },
52 - { "port": 50, "speed": 0, "type": "FIBER" }]
53 - },
54 - {
55 - "uri": "of:0000ffffffffff07", "mac": "ffffffffffff07", "type": "ROADM",
56 - "mfr": "Linc", "hw": "OE", "sw": "?", "serial": "?",
57 - "annotations": { "name": "CHG-N10", "latitude": 41.8, "longitude": -87.6, "optical.regens": 3 },
58 - "ports": [ { "port": 10, "speed": 0, "type": "FIBER" },
59 - { "port": 20, "speed": 0, "type": "FIBER" },
60 - { "port": 30, "speed": 0, "type": "FIBER" },
61 - { "port": 50, "speed": 0, "type": "FIBER" }]
62 - },
63 - {
64 - "uri": "of:0000ffffffffff08", "mac": "ffffffffffff08", "type": "ROADM",
65 - "mfr": "Linc", "hw": "OE", "sw": "?", "serial": "?",
66 - "annotations": { "name": "IAD-M10", "latitude": 38.8, "longitude": -77.1, "optical.regens": 3 },
67 - "ports": [ { "port": 20, "speed": 0, "type": "FIBER" },
68 - { "port": 30, "speed": 0, "type": "FIBER" },
69 - { "port": 50, "speed": 0, "type": "FIBER" }]
70 - },
71 - {
72 - "uri": "of:0000ffffffffff09", "mac": "ffffffffffff09", "type": "ROADM",
73 - "mfr": "Linc", "hw": "OE", "sw": "?", "serial": "?",
74 - "annotations": { "name": "JFK-M10", "latitude": 40.8, "longitude": -73.1, "optical.regens": 0 },
75 - "ports": [ { "port": 10, "speed": 0, "type": "FIBER" },
76 - { "port": 20, "speed": 0, "type": "FIBER" },
77 - { "port": 50, "speed": 0, "type": "FIBER" }]
78 - },
79 - {
80 - "uri": "of:0000ffffffffff0A", "mac": "ffffffffffff0A", "type": "ROADM",
81 - "mfr": "Linc", "hw": "OE", "sw": "?", "serial": "?",
82 - "annotations": { "name": "ATL-S10", "latitude": 33.8, "longitude": -84.1, "optical.regens": 0 },
83 - "ports": [ { "port": 10, "speed": 0, "type": "FIBER" },
84 - { "port": 20, "speed": 0, "type": "FIBER" },
85 - { "port": 50, "speed": 0, "type": "FIBER" }]
86 - },
87 - {
88 - "uri": "of:0000ffffffff0001", "mac": "ffffffffff0001", "type": "SWITCH",
89 - "mfr": "Linc", "hw": "PK", "sw": "?", "serial": "?",
90 - "annotations": { "name": "SFO-R10", "latitude": 37.6, "longitude": -122.3 },
91 - "ports": [ { "port": 1, "speed": 10000, "type": "COPPER" }, { "port": 2, "speed": 100000, "type": "FIBER" } ]
92 - },
93 - {
94 - "uri": "of:0000ffffffff0002", "mac": "ffffffffff0003", "type": "SWITCH",
95 - "mfr": "Linc", "hw": "PK", "sw": "?", "serial": "?",
96 - "annotations": { "name": "LAX-R10", "latitude": 33.9, "longitude": -118.4 },
97 - "ports": [ { "port": 1, "speed": 10000, "type": "COPPER" }, { "port": 2, "speed": 100000, "type": "FIBER" } ]
98 - },
99 - {
100 - "uri": "of:0000ffffffff0003", "mac": "ffffffffff0004", "type": "SWITCH",
101 - "mfr": "Linc", "hw": "PK", "sw": "?", "serial": "?",
102 - "annotations": { "name": "SDG-R10", "latitude": 32.8, "longitude": -117.1 },
103 - "ports": [ { "port": 1, "speed": 10000, "type": "COPPER" }, { "port": 2, "speed": 100000, "type": "FIBER" } ]
104 - },
105 - {
106 - "uri": "of:0000ffffffff0004", "mac": "ffffffffff0007", "type": "SWITCH",
107 - "mfr": "Linc", "hw": "PK", "sw": "?", "serial": "?",
108 - "annotations": { "name": "CHG-R10", "latitude": 41.8, "longitude": -87.6 },
109 - "ports": [ { "port": 1, "speed": 10000, "type": "COPPER" }, { "port": 2, "speed": 100000, "type": "FIBER" } ]
110 - },
111 - {
112 - "uri": "of:0000ffffffff0005", "mac": "ffffffffff0009", "type": "SWITCH",
113 - "mfr": "Linc", "hw": "PK", "sw": "?", "serial": "?",
114 - "annotations": { "name": "JFK-R10", "latitude": 40.8, "longitude": -73.1 },
115 - "ports": [ { "port": 1, "speed": 10000, "type": "COPPER" }, { "port": 2, "speed": 100000, "type": "FIBER" } ]
116 - },
117 - {
118 - "uri": "of:0000ffffffff0006", "mac": "ffffffffff000A", "type": "SWITCH",
119 - "mfr": "Linc", "hw": "PK", "sw": "?", "serial": "?",
120 - "annotations": { "name": "ATL-R10", "latitude": 33.8, "longitude": -84.1 },
121 - "ports": [ { "port": 1, "speed": 10000, "type": "COPPER" }, { "port": 2, "speed": 100000, "type": "FIBER" } ]
122 - }
123 -
124 - ],
125 -
126 - "links" : [
127 - { "src": "of:0000ffffffffff01/50", "dst": "of:0000ffffffffff02/30","type": "OPTICAL", "annotations": { "optical.waves": 80, "optical.type": "WDM", "optical.kms": 48, "durable": "true" } },
128 - { "src": "of:0000ffffffffff02/50", "dst": "of:0000ffffffffff03/30","type": "OPTICAL", "annotations": { "optical.waves": 80, "optical.type": "WDM", "optical.kms": 493, "durable": "true" } },
129 - { "src": "of:0000ffffffffff03/50", "dst": "of:0000ffffffffff04/50","type": "OPTICAL", "annotations": { "optical.waves": 80, "optical.type": "WDM", "optical.kms": 171, "durable": "true" } },
130 - { "src": "of:0000ffffffffff01/20", "dst": "of:0000ffffffffff05/50","type": "OPTICAL", "annotations": { "optical.waves": 80, "optical.type": "WDM", "optical.kms": 2555, "durable": "true" } },
131 - { "src": "of:0000ffffffffff02/20", "dst": "of:0000ffffffffff05/20","type": "OPTICAL", "annotations": { "optical.waves": 80, "optical.type": "WDM", "optical.kms": 2539, "durable": "true" } },
132 - { "src": "of:0000ffffffffff03/20", "dst": "of:0000ffffffffff06/50","type": "OPTICAL", "annotations": { "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1979, "durable": "true" } },
133 - { "src": "of:0000ffffffffff04/20", "dst": "of:0000ffffffffff06/20","type": "OPTICAL", "annotations": { "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1867, "durable": "true" } },
134 - { "src": "of:0000ffffffffff05/30", "dst": "of:0000ffffffffff06/40","type": "OPTICAL", "annotations": { "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1378, "durable": "true" } },
135 - { "src": "of:0000ffffffffff05/40", "dst": "of:0000ffffffffff07/50", "type": "OPTICAL", "annotations": { "optical.waves": 80, "optical.type": "WDM", "optical.kms": 2200, "durable": "true" } },
136 - { "src": "of:0000ffffffffff06/30", "dst": "of:0000ffffffffff08/50", "type": "OPTICAL", "annotations": { "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1918, "durable": "true" } },
137 - { "src": "of:0000ffffffffff07/20", "dst": "of:0000ffffffffff08/30", "type": "OPTICAL", "annotations": { "optical.waves": 80, "optical.type": "WDM", "optical.kms": 3625, "durable": "true" } },
138 - { "src": "of:0000ffffffffff07/30", "dst": "of:0000ffffffffff09/50", "type": "OPTICAL", "annotations": { "optical.waves": 80, "optical.type": "WDM", "optical.kms": 3880, "durable": "true" } },
139 - { "src": "of:0000ffffffffff08/20", "dst": "of:0000ffffffffff0A/50", "type": "OPTICAL", "annotations": { "optical.waves": 80, "optical.type": "WDM", "optical.kms": 838, "durable": "true" } },
140 - { "src": "of:0000ffffffffff09/20", "dst": "of:0000ffffffffff0A/20","type": "OPTICAL", "annotations": { "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1245, "durable": "true" } },
141 -
142 - { "src": "of:0000ffffffff0001/2", "dst": "of:0000ffffffffff01/10", "type": "OPTICAL", "annotations": { "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" } },
143 - { "src": "of:0000ffffffff0002/2", "dst": "of:0000ffffffffff04/10", "type": "OPTICAL", "annotations": { "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" } },
144 - { "src": "of:0000ffffffff0003/2", "dst": "of:0000ffffffffff06/10", "type": "OPTICAL", "annotations": { "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" } },
145 - { "src": "of:0000ffffffff0004/2", "dst": "of:0000ffffffffff07/10", "type": "OPTICAL", "annotations": { "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" } },
146 - { "src": "of:0000ffffffff0005/2", "dst": "of:0000ffffffffff09/10", "type": "OPTICAL", "annotations": { "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" } },
147 - { "src": "of:0000ffffffff0006/2", "dst": "of:0000ffffffffff0A/10", "type": "OPTICAL", "annotations": { "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" } }
148 - ]
149 -}
1 -{
2 - "devices" : [
3 - {
4 - "uri": "of:0000ffffffffff01", "mac": "ffffffffffff01", "type": "ROADM",
5 - "mfr": "Linc", "hw": "OE", "sw": "?", "serial": "?",
6 - "annotations": { "name": "ROADM1", "latitude": 37.6, "longitude": -122.3, "optical.regens": 0 },
7 - "ports": [ { "port": 10, "speed": 100000, "type": "FIBER" }, { "port": 20, "speed": 0, "type": "FIBER" }, { "port": 22, "speed": 0, "type": "FIBER" } ]
8 - },
9 - {
10 - "uri": "of:0000ffffffffff02", "mac": "ffffffffffff02", "type": "ROADM",
11 - "mfr": "Linc", "hw": "OE", "sw": "?", "serial": "?",
12 - "annotations": { "name": "ROADM2", "latitude": 37.3, "longitude": -121.9, "optical.regens": 0 },
13 - "ports": [ { "port": 11, "speed": 100000, "type": "FIBER" }, { "port": 21, "speed": 0, "type": "FIBER" }, { "port": 22, "speed": 0, "type": "FIBER" } ]
14 - },
15 - {
16 - "uri": "of:0000ffffffffff03", "mac": "ffffffffffff03", "type": "ROADM",
17 - "mfr": "Linc", "hw": "OE", "sw": "?", "serial": "?",
18 - "annotations": { "name": "ROADM3", "latitude": 33.9, "longitude": -118.4, "optical.regens": 2 },
19 - "ports": [ { "port": 30, "speed": 0, "type": "FIBER" }, { "port": 31, "speed": 0, "type": "FIBER" } ]
20 - },
21 - {
22 - "uri": "of:0000ffffffffff04", "mac": "ffffffffffff04", "type":"ROADM",
23 - "mfr": "Linc", "hw": "OE", "sw": "?", "serial": "?",
24 - "annotations": { "name": "ROADM4", "latitude": 39.9, "longitude": -119.4, "optical.regens": 2 },
25 - "ports": [ { "port": 30, "speed": 0, "type": "FIBER" }, { "port": 31, "speed": 0, "type": "FIBER" } ]
26 - },
27 - {
28 - "uri": "of:0000ffffffff0001", "mac": "ffffffffff0001", "type": "SWITCH",
29 - "mfr": "Linc", "hw": "PK", "sw": "?", "serial": "?",
30 - "annotations": { "name": "ROUTER1", "latitude": 37.6, "longitude": -122.3 },
31 - "ports": [ { "port": 1, "speed": 10000, "type": "COPPER" }, { "port": 2, "speed": 100000, "type": "FIBER" } ]
32 - },
33 - {
34 - "uri": "of:0000ffffffff0002", "mac": "ffffffffff0002", "type": "SWITCH",
35 - "mfr": "Linc", "hw": "PK", "sw": "?", "serial": "?",
36 - "annotations": { "name": "ROUTER2", "latitude": 37.3, "longitude": -121.9 },
37 - "ports": [ { "port": 1, "speed": 10000, "type": "COPPER" }, { "port": 2, "speed": 100000, "type": "FIBER" } ]
38 - }
39 - ],
40 -
41 - "links" : [
42 - { "src": "of:0000ffffffffff01/20", "dst": "of:0000ffffffffff03/30", "type": "OPTICAL", "annotations": { "optical.waves": 80, "optical.type": "WDM", "durable": "true", "inactive": "true" } },
43 - { "src": "of:0000ffffffffff02/21", "dst": "of:0000ffffffffff03/31", "type": "OPTICAL", "annotations": { "optical.waves": 80, "optical.type": "WDM", "durable": "true", "inactive": "true" } },
44 - { "src": "of:0000ffffffffff01/22", "dst": "of:0000ffffffffff04/30", "type": "OPTICAL", "annotations": { "optical.waves": 80, "optical.type": "WDM", "durable": "true", "inactive": "true" } },
45 - { "src": "of:0000ffffffffff04/31", "dst": "of:0000ffffffffff02/22", "type": "OPTICAL", "annotations": { "optical.waves": 80, "optical.type": "WDM", "durable": "true", "inactive": "true" } },
46 -
47 - { "src": "of:0000ffffffff0001/2", "dst": "of:0000ffffffffff01/10", "type": "OPTICAL", "annotations": { "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true", "inactive": "true" } },
48 - { "src": "of:0000ffffffff0002/2", "dst": "of:0000ffffffffff02/11", "type": "OPTICAL", "annotations": { "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true", "inactive": "true" } }
49 - ]
50 -
51 -}
52 -
1 -#!/usr/bin/env python
2 -
3 -''' file: optical.py '''
4 -
5 -from mininet.topo import Topo
6 -from mininet.node import RemoteController
7 -from mininet.net import Mininet
8 -from mininet.cli import CLI
9 -from mininet.log import setLogLevel, info
10 -from mininet.link import Intf, Link
11 -from mininet.util import irange
12 -
13 -class NullIntf( Intf ):
14 - "A dummy interface with a blank name that doesn't do any configuration"
15 - def __init__( self, name, **params ):
16 - self.name = ''
17 -
18 -class NullLink( Link ):
19 - "A dummy link that doesn't touch either interface"
20 - def makeIntfPair( cls, intf1, intf2, addr1=None, addr2=None ):
21 - pass
22 - def delete( self ):
23 - pass
24 -
25 -class OpticalTopo( Topo ):
26 -
27 - def addIntf( self, switch, intfName ):
28 - "Add intf intfName to switch"
29 - self.addLink( switch, switch, cls=NullLink,
30 - intfName1=intfName, cls2=NullIntf, intfName2=intfName )
31 -
32 - def build( self, n=2, tapStart=3 ):
33 -
34 - # Add hosts and switches
35 - hosts = []
36 - switches = []
37 - for i in irange( 1, n ):
38 - h = self.addHost( 'h%d' % i )
39 - s = self.addSwitch( 's%d' % i, dpid="0000ffffffff%04d" % i )
40 - self.addLink( h, s )
41 - hosts.append( h )
42 - switches.append( s )
43 -
44 - # Add optical tap interfaces
45 - tapNum = tapStart
46 - for sw in switches:
47 - self.addIntf( sw, 'tap%d' % tapNum )
48 - tapNum += 1
49 -
50 -# if you use, sudo mn --custom custom/optical.py, then register the topo:
51 -#sudo mn --custom optical.py --topo optical,5
52 -topos = { 'optical': OpticalTopo }
53 -
54 -def installStaticFlows( net ):
55 - for sw in net.switches:
56 - info( 'Adding flows to %s...' % sw.name )
57 - sw.dpctl( 'add-flow', 'in_port=1,actions=output=2' )
58 - sw.dpctl( 'add-flow', 'in_port=2,actions=output=1' )
59 - info( sw.dpctl( 'dump-flows' ) )
60 -
61 -def run( n ):
62 - topo = OpticalTopo( n )
63 - net = Mininet( topo=topo, controller=RemoteController, autoSetMacs=True )
64 - net.start()
65 - #installStaticFlows( net )
66 - CLI( net )
67 - net.stop()
68 -
69 -# if the script is run directly (sudo custom/optical.py):
70 -if __name__ == '__main__':
71 - import sys
72 - try:
73 - n = int( sys.argv[1] )
74 - except:
75 - print ( 'Usage: ./optical.py n # n is number of switches\n'
76 - 'Starting with default of 2 switches...\n' )
77 - n = 2
78 - setLogLevel( 'info' )
79 - run( n )
1 -#!/usr/bin/env python
2 -
3 -''' file: custom/optical.py '''
4 -
5 -from mininet.topo import Topo
6 -from mininet.net import Mininet
7 -from mininet.cli import CLI
8 -from mininet.log import setLogLevel, info
9 -from mininet.link import Intf, Link
10 -from mininet.node import RemoteController
11 -
12 -class NullIntf( Intf ):
13 - "A dummy interface with a blank name that doesn't do any configuration"
14 - def __init__( self, name, **params ):
15 - self.name = ''
16 -
17 -class NullLink( Link ):
18 - "A dummy link that doesn't touch either interface"
19 - def makeIntfPair( cls, intf1, intf2, *args, **kwargs ):
20 - pass
21 - def delete( self ):
22 - pass
23 -
24 -class OpticalTopo(Topo):
25 - def addIntf( self, switch, intfName ):
26 - "Add intf intfName to switch"
27 - self.addLink( switch, switch, cls=NullLink,
28 - intfName1=intfName, cls2=NullIntf )
29 - def __init__(self):
30 -
31 - # Initialize topology
32 - Topo.__init__(self)
33 -
34 - # Add hosts and switches
35 - h1 = self.addHost('h1')
36 - h2 = self.addHost('h2')
37 - h3 = self.addHost('h3')
38 - h4 = self.addHost('h4')
39 - h5 = self.addHost('h5')
40 - h6 = self.addHost('h6')
41 -
42 - s1 = self.addSwitch('s1', dpid="0000ffffffff0001")
43 - s2 = self.addSwitch('s2', dpid="0000ffffffff0002")
44 - s3 = self.addSwitch('s3', dpid="0000ffffffff0003")
45 - s4 = self.addSwitch('s4', dpid="0000ffffffff0004")
46 - s5 = self.addSwitch('s5', dpid="0000ffffffff0005")
47 - s6 = self.addSwitch('s6', dpid="0000ffffffff0006")
48 -
49 -
50 - # Add links from hosts to OVS
51 - self.addLink(s1, h1)
52 - self.addLink(s2, h2)
53 - self.addLink(s3, h3)
54 - self.addLink(s4, h4)
55 - self.addLink(s5, h5)
56 - self.addLink(s6, h6)
57 -
58 - # add links from ovs to linc-oe
59 - # sorry about the syntax :(
60 - self.addIntf(s1,'tap29')
61 - self.addIntf(s2,'tap30')
62 - self.addIntf(s3,'tap31')
63 - self.addIntf(s4,'tap32')
64 - self.addIntf(s5,'tap33')
65 - self.addIntf(s6,'tap34')
66 -
67 - # if you use, sudo mn --custom custom/optical.py, then register the topo:
68 -topos = {'optical': ( lambda: OpticalTopo() )}
69 -
70 -
71 -def run():
72 - c = RemoteController('c','127.0.0.1',6633)
73 - net = Mininet( topo=OpticalTopo(),controller=None,autoSetMacs=True)
74 - net.addController(c)
75 - net.start()
76 -
77 - #installStaticFlows( net )
78 - CLI( net )
79 - net.stop()
80 -
81 -# if the script is run directly (sudo custom/optical.py):
82 -if __name__ == '__main__':
83 - setLogLevel('info')
84 - run()
1 -[{linc,
2 - [{of_config,disabled},
3 - {software_desc,<<"LINC-OE OpenFlow Software Switch 1.1">>},
4 - {capable_switch_ports,
5 - [{port,1,[{interface,"dummy"},{type,optical}]},
6 - {port,2,[{interface,"dummy"},{type,optical}]},
7 - {port,3,[{interface,"dummy"},{type,optical}]},
8 - {port,4,[{interface,"dummy"},{type,optical}]},
9 - {port,5,[{interface,"dummy"},{type,optical}]},
10 - {port,6,[{interface,"dummy"},{type,optical}]},
11 - {port,7,[{interface,"dummy"},{type,optical}]},
12 - {port,8,[{interface,"dummy"},{type,optical}]},
13 - {port,9,[{interface,"dummy"},{type,optical}]},
14 - {port,10,[{interface,"dummy"},{type,optical}]},
15 - {port,11,[{interface,"dummy"},{type,optical}]},
16 - {port,12,[{interface,"dummy"},{type,optical}]},
17 - {port,13,[{interface,"dummy"},{type,optical}]},
18 - {port,14,[{interface,"dummy"},{type,optical}]},
19 - {port,15,[{interface,"dummy"},{type,optical}]},
20 - {port,16,[{interface,"dummy"},{type,optical}]},
21 - {port,17,[{interface,"dummy"},{type,optical}]},
22 - {port,18,[{interface,"dummy"},{type,optical}]},
23 - {port,19,[{interface,"dummy"},{type,optical}]},
24 - {port,20,[{interface,"dummy"},{type,optical}]},
25 - {port,21,[{interface,"dummy"},{type,optical}]},
26 - {port,22,[{interface,"dummy"},{type,optical}]},
27 - {port,23,[{interface,"dummy"},{type,optical}]},
28 - {port,24,[{interface,"dummy"},{type,optical}]},
29 - {port,25,[{interface,"dummy"},{type,optical}]},
30 - {port,26,[{interface,"dummy"},{type,optical}]},
31 - {port,27,[{interface,"dummy"},{type,optical}]},
32 - {port,28,[{interface,"dummy"},{type,optical}]},
33 - {port,29,[{interface,"tap29"}]},
34 - {port,30,[{interface,"tap30"}]},
35 - {port,31,[{interface,"tap31"}]},
36 - {port,32,[{interface,"tap32"}]},
37 - {port,33,[{interface,"tap33"}]},
38 - {port,34,[{interface,"tap34"}]}]},
39 - {capable_switch_queues,[]},
40 - {optical_links,
41 - [{{1,50},{2,30}},
42 - {{2,50},{3,30}},
43 - {{3,50},{4,50}},
44 - {{1,20},{5,50}},
45 - {{2,20},{5,20}},
46 - {{3,20},{6,50}},
47 - {{4,20},{6,20}},
48 - {{5,30},{6,40}},
49 - {{5,40},{7,50}},
50 - {{6,30},{8,50}},
51 - {{7,20},{8,30}},
52 - {{7,30},{9,50}},
53 - {{8,20},{10,50}},
54 - {{9,20},{10,20}}]},
55 - {logical_switches,
56 - [{switch,1,
57 - [{backend,linc_us4_oe},
58 - {datapath_id,"00:00:ff:ff:ff:ff:ff:01"},
59 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
60 - {controllers_listener,disabled},
61 - {queues_status,disabled},
62 - {ports,
63 - [{port,1,[{queues,[]},{port_no,50}]},
64 - {port,7,[{queues,[]},{port_no,20}]},
65 - {port,29,[{queues,[]},{port_no,10}]}]}]},
66 - {switch,2,
67 - [{backend,linc_us4_oe},
68 - {datapath_id,"00:00:ff:ff:ff:ff:ff:02"},
69 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
70 - {controllers_listener,disabled},
71 - {queues_status,disabled},
72 - {ports,
73 - [{port,2,[{queues,[]},{port_no,30}]},
74 - {port,3,[{queues,[]},{port_no,50}]},
75 - {port,9,[{queues,[]},{port_no,20}]}]}]},
76 - {switch,3,
77 - [{backend,linc_us4_oe},
78 - {datapath_id,"00:00:ff:ff:ff:ff:ff:03"},
79 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
80 - {controllers_listener,disabled},
81 - {queues_status,disabled},
82 - {ports,
83 - [{port,4,[{queues,[]},{port_no,30}]},
84 - {port,5,[{queues,[]},{port_no,50}]},
85 - {port,11,[{queues,[]},{port_no,20}]}]}]},
86 - {switch,4,
87 - [{backend,linc_us4_oe},
88 - {datapath_id,"00:00:ff:ff:ff:ff:ff:04"},
89 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
90 - {controllers_listener,disabled},
91 - {queues_status,disabled},
92 - {ports,
93 - [{port,6,[{queues,[]},{port_no,50}]},
94 - {port,13,[{queues,[]},{port_no,20}]},
95 - {port,30,[{queues,[]},{port_no,10}]}]}]},
96 - {switch,5,
97 - [{backend,linc_us4_oe},
98 - {datapath_id,"00:00:ff:ff:ff:ff:ff:05"},
99 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
100 - {controllers_listener,disabled},
101 - {queues_status,disabled},
102 - {ports,
103 - [{port,8,[{queues,[]},{port_no,50}]},
104 - {port,10,[{queues,[]},{port_no,20}]},
105 - {port,15,[{queues,[]},{port_no,30}]},
106 - {port,17,[{queues,[]},{port_no,40}]}]}]},
107 - {switch,7,
108 - [{backend,linc_us4_oe},
109 - {datapath_id,"00:00:ff:ff:ff:ff:ff:07"},
110 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
111 - {controllers_listener,disabled},
112 - {queues_status,disabled},
113 - {ports,
114 - [{port,18,[{queues,[]},{port_no,50}]},
115 - {port,21,[{queues,[]},{port_no,20}]},
116 - {port,23,[{queues,[]},{port_no,30}]},
117 - {port,32,[{queues,[]},{port_no,10}]}]}]},
118 - {switch,8,
119 - [{backend,linc_us4_oe},
120 - {datapath_id,"00:00:ff:ff:ff:ff:ff:08"},
121 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
122 - {controllers_listener,disabled},
123 - {queues_status,disabled},
124 - {ports,
125 - [{port,20,[{queues,[]},{port_no,50}]},
126 - {port,22,[{queues,[]},{port_no,30}]},
127 - {port,25,[{queues,[]},{port_no,20}]}]}]},
128 - {switch,9,
129 - [{backend,linc_us4_oe},
130 - {datapath_id,"00:00:ff:ff:ff:ff:ff:09"},
131 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
132 - {controllers_listener,disabled},
133 - {queues_status,disabled},
134 - {ports,
135 - [{port,24,[{queues,[]},{port_no,50}]},
136 - {port,27,[{queues,[]},{port_no,20}]},
137 - {port,33,[{queues,[]},{port_no,10}]}]}]},
138 - {switch,10,
139 - [{backend,linc_us4_oe},
140 - {datapath_id,"00:00:ff:ff:ff:ff:ff:0A"},
141 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
142 - {controllers_listener,disabled},
143 - {queues_status,disabled},
144 - {ports,
145 - [{port,26,[{queues,[]},{port_no,50}]},
146 - {port,28,[{queues,[]},{port_no,20}]},
147 - {port,34,[{queues,[]},{port_no,10}]}]}]},
148 - {switch,6,
149 - [{backend,linc_us4_oe},
150 - {datapath_id,"00:00:ff:ff:ff:ff:ff:06"},
151 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
152 - {controllers_listener,disabled},
153 - {queues_status,disabled},
154 - {ports,
155 - [{port,12,[{queues,[]},{port_no,50}]},
156 - {port,14,[{queues,[]},{port_no,20}]},
157 - {port,16,[{queues,[]},{port_no,40}]},
158 - {port,19,[{queues,[]},{port_no,30}]},
159 - {port,31,[{queues,[]},{port_no,10}]}]}]}]}]},
160 - {epcap,[{verbose,false},{stats_interval,10}]},
161 - {enetconf,
162 - [{capabilities,
163 - [{base,{1,0}},
164 - {base,{1,1}},
165 - {startup,{1,0}},
166 - {'writable-running',{1,0}}]},
167 - {callback_module,linc_ofconfig},
168 - {sshd_ip,any},
169 - {sshd_port,1830},
170 - {sshd_user_passwords,[{"linc","linc"}]}]},
171 - {lager,
172 - [{handlers,
173 - [{lager_console_backend,info},
174 - {lager_file_backend,
175 - [{"log/error.log",error,10485760,"$D0",5},
176 - {"log/console.log",info,10485760,"$D0",5}]}]}]},
177 - {sasl,
178 - [{sasl_error_logger,{file,"log/sasl-error.log"}},
179 - {errlog_type,error},
180 - {error_logger_mf_dir,"log/sasl"},
181 - {error_logger_mf_maxbytes,10485760},
182 - {error_logger_mf_maxfiles,5}]},
183 - {sync,[{excluded_modules,[procket]}]}].
1 -[{linc,
2 - [{of_config,disabled},
3 - {software_desc,<<"LINC-OE OpenFlow Software Switch 1.1">>},
4 - {capable_switch_ports,
5 - [{port,1,[{interface,"dummy"},{type,optical}]},
6 - {port,2,[{interface,"dummy"},{type,optical}]},
7 - {port,5,[{interface,"dummy"},{type,optical}]},
8 - {port,6,[{interface,"dummy"},{type,optical}]},
9 - {port,7,[{interface,"dummy"},{type,optical}]},
10 - {port,8,[{interface,"dummy"},{type,optical}]},
11 - {port,9,[{interface,"dummy"},{type,optical}]},
12 - {port,10,[{interface,"dummy"},{type,optical}]},
13 - {port,3,[{interface,"tap3"}]},
14 - {port,4,[{interface,"tap4"}]}]},
15 - {capable_switch_queues,[]},
16 - {optical_links,[{{1,20},{3,30}},{{3,31},{2,21}},{{1,22},{4,30}},{{4,31},{2,22}}]},
17 - {logical_switches,
18 - [{switch,1,
19 - [{backend,linc_us4_oe},
20 - {datapath_id,"00:00:ff:ff:ff:ff:ff:01"},
21 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
22 - {controllers_listener,disabled},
23 - {queues_status,disabled},
24 - {ports,
25 - [{port,1,[{queues,[]},{port_no,20}]},
26 - {port,7,[{queues,[]},{port_no,22}]},
27 - {port,3,[{queues,[]},{port_no,10}]}]}]},
28 - {switch,3,
29 - [{backend,linc_us4_oe},
30 - {datapath_id,"00:00:ff:ff:ff:ff:ff:03"},
31 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
32 - {controllers_listener,disabled},
33 - {queues_status,disabled},
34 - {ports,
35 - [{port,5,[{queues,[]},{port_no,30}]},
36 - {port,6,[{queues,[]},{port_no,31}]}]}]},
37 - {switch,2,
38 - [{backend,linc_us4_oe},
39 - {datapath_id,"00:00:ff:ff:ff:ff:ff:02"},
40 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
41 - {controllers_listener,disabled},
42 - {queues_status,disabled},
43 - {ports,
44 - [{port,2,[{queues,[]},{port_no,21}]},
45 - {port,8,[{queues,[]},{port_no,22}]},
46 - {port,4,[{queues,[]},{port_no,11}]}]}]},
47 - {switch,4,
48 - [{backend,linc_us4_oe},
49 - {datapath_id,"00:00:ff:ff:ff:ff:ff:04"},
50 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
51 - {controllers_listener,disabled},
52 - {queues_status,disabled},
53 - {ports,
54 - [{port,9,[{queues,[]},{port_no,30}]},
55 - {port,10,[{queues,[]},{port_no,31}]}]}]}]}]},
56 - {epcap,[{verbose,false},{stats_interval,10}]},
57 - {enetconf,
58 - [{capabilities,
59 - [{base,{1,0}},
60 - {base,{1,1}},
61 - {startup,{1,0}},
62 - {'writable-running',{1,0}}]},
63 - {callback_module,linc_ofconfig},
64 - {sshd_ip,any},
65 - {sshd_port,1830},
66 - {sshd_user_passwords,[{"linc","linc"}]}]},
67 - {lager,
68 - [{handlers,
69 - [{lager_console_backend,debug},
70 - {lager_file_backend,
71 - [{"log/error.log",error,10485760,"$D0",5},
72 - {"log/console.log",info,10485760,"$D0",5}]}]}]},
73 - {sasl,
74 - [{sasl_error_logger,{file,"log/sasl-error.log"}},
75 - {errlog_type,error},
76 - {error_logger_mf_dir,"log/sasl"},
77 - {error_logger_mf_maxbytes,10485760},
78 - {error_logger_mf_maxfiles,5}]},
79 - {sync,[{excluded_modules,[procket]}]}].
1 -[{linc,
2 - [{of_config,disabled},
3 - {software_desc,<<"LINC-OE OpenFlow Software Switch 1.1">>},
4 - {capable_switch_ports,
5 - [{port,1,[{interface,"dummy"},{type,optical}]},
6 - {port,2,[{interface,"dummy"},{type,optical}]},
7 - {port,3,[{interface,"dummy"},{type,optical}]},
8 - {port,4,[{interface,"dummy"},{type,optical}]},
9 - {port,5,[{interface,"dummy"},{type,optical}]},
10 - {port,6,[{interface,"dummy"},{type,optical}]},
11 - {port,7,[{interface,"dummy"},{type,optical}]},
12 - {port,8,[{interface,"dummy"},{type,optical}]},
13 - {port,9,[{interface,"dummy"},{type,optical}]},
14 - {port,10,[{interface,"dummy"},{type,optical}]},
15 - {port,11,[{interface,"dummy"},{type,optical}]},
16 - {port,12,[{interface,"dummy"},{type,optical}]},
17 - {port,13,[{interface,"dummy"},{type,optical}]},
18 - {port,14,[{interface,"dummy"},{type,optical}]},
19 - {port,15,[{interface,"dummy"},{type,optical}]},
20 - {port,16,[{interface,"dummy"},{type,optical}]},
21 - {port,17,[{interface,"dummy"},{type,optical}]},
22 - {port,18,[{interface,"dummy"},{type,optical}]},
23 - {port,19,[{interface,"dummy"},{type,optical}]},
24 - {port,20,[{interface,"dummy"},{type,optical}]},
25 - {port,21,[{interface,"dummy"},{type,optical}]},
26 - {port,22,[{interface,"dummy"},{type,optical}]},
27 - {port,23,[{interface,"dummy"},{type,optical}]},
28 - {port,24,[{interface,"dummy"},{type,optical}]},
29 - {port,25,[{interface,"dummy"},{type,optical}]},
30 - {port,26,[{interface,"dummy"},{type,optical}]},
31 - {port,27,[{interface,"dummy"},{type,optical}]},
32 - {port,28,[{interface,"dummy"},{type,optical}]},
33 - {port,29,[{interface,"tap29"}]},
34 - {port,30,[{interface,"tap30"}]},
35 - {port,31,[{interface,"tap31"}]},
36 - {port,32,[{interface,"tap32"}]},
37 - {port,33,[{interface,"tap33"}]},
38 - {port,34,[{interface,"tap34"}]}]},
39 - {capable_switch_queues,[]},
40 - {optical_links,
41 - [{{1,50},{2,30}},
42 - {{2,50},{3,30}},
43 - {{3,50},{4,50}},
44 - {{1,20},{5,50}},
45 - {{2,20},{5,20}},
46 - {{3,20},{6,50}},
47 - {{4,20},{6,20}},
48 - {{5,30},{6,40}},
49 - {{5,40},{7,50}},
50 - {{6,30},{8,50}},
51 - {{7,20},{8,30}},
52 - {{7,30},{9,50}},
53 - {{8,20},{10,50}},
54 - {{9,20},{10,20}}]},
55 - {logical_switches,
56 - [{switch,1,
57 - [{backend,linc_us4_oe},
58 - {datapath_id,"00:00:ff:ff:ff:ff:ff:01"},
59 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
60 - {controllers_listener,disabled},
61 - {queues_status,disabled},
62 - {ports,
63 - [{port,1,[{queues,[]},{port_no,50}]},
64 - {port,7,[{queues,[]},{port_no,20}]},
65 - {port,29,[{queues,[]},{port_no,10}]}]}]},
66 - {switch,2,
67 - [{backend,linc_us4_oe},
68 - {datapath_id,"00:00:ff:ff:ff:ff:ff:02"},
69 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
70 - {controllers_listener,disabled},
71 - {queues_status,disabled},
72 - {ports,
73 - [{port,2,[{queues,[]},{port_no,30}]},
74 - {port,3,[{queues,[]},{port_no,50}]},
75 - {port,9,[{queues,[]},{port_no,20}]}]}]},
76 - {switch,3,
77 - [{backend,linc_us4_oe},
78 - {datapath_id,"00:00:ff:ff:ff:ff:ff:03"},
79 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
80 - {controllers_listener,disabled},
81 - {queues_status,disabled},
82 - {ports,
83 - [{port,4,[{queues,[]},{port_no,30}]},
84 - {port,5,[{queues,[]},{port_no,50}]},
85 - {port,11,[{queues,[]},{port_no,20}]}]}]},
86 - {switch,4,
87 - [{backend,linc_us4_oe},
88 - {datapath_id,"00:00:ff:ff:ff:ff:ff:04"},
89 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
90 - {controllers_listener,disabled},
91 - {queues_status,disabled},
92 - {ports,
93 - [{port,6,[{queues,[]},{port_no,50}]},
94 - {port,13,[{queues,[]},{port_no,20}]},
95 - {port,30,[{queues,[]},{port_no,10}]}]}]},
96 - {switch,5,
97 - [{backend,linc_us4_oe},
98 - {datapath_id,"00:00:ff:ff:ff:ff:ff:05"},
99 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
100 - {controllers_listener,disabled},
101 - {queues_status,disabled},
102 - {ports,
103 - [{port,8,[{queues,[]},{port_no,50}]},
104 - {port,10,[{queues,[]},{port_no,20}]},
105 - {port,15,[{queues,[]},{port_no,30}]},
106 - {port,17,[{queues,[]},{port_no,40}]}]}]},
107 - {switch,7,
108 - [{backend,linc_us4_oe},
109 - {datapath_id,"00:00:ff:ff:ff:ff:ff:07"},
110 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
111 - {controllers_listener,disabled},
112 - {queues_status,disabled},
113 - {ports,
114 - [{port,18,[{queues,[]},{port_no,50}]},
115 - {port,21,[{queues,[]},{port_no,20}]},
116 - {port,23,[{queues,[]},{port_no,30}]},
117 - {port,32,[{queues,[]},{port_no,10}]}]}]},
118 - {switch,8,
119 - [{backend,linc_us4_oe},
120 - {datapath_id,"00:00:ff:ff:ff:ff:ff:08"},
121 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
122 - {controllers_listener,disabled},
123 - {queues_status,disabled},
124 - {ports,
125 - [{port,20,[{queues,[]},{port_no,50}]},
126 - {port,22,[{queues,[]},{port_no,30}]},
127 - {port,25,[{queues,[]},{port_no,20}]}]}]},
128 - {switch,9,
129 - [{backend,linc_us4_oe},
130 - {datapath_id,"00:00:ff:ff:ff:ff:ff:09"},
131 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
132 - {controllers_listener,disabled},
133 - {queues_status,disabled},
134 - {ports,
135 - [{port,24,[{queues,[]},{port_no,50}]},
136 - {port,27,[{queues,[]},{port_no,20}]},
137 - {port,33,[{queues,[]},{port_no,10}]}]}]},
138 - {switch,10,
139 - [{backend,linc_us4_oe},
140 - {datapath_id,"00:00:ff:ff:ff:ff:ff:0A"},
141 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
142 - {controllers_listener,disabled},
143 - {queues_status,disabled},
144 - {ports,
145 - [{port,26,[{queues,[]},{port_no,50}]},
146 - {port,28,[{queues,[]},{port_no,20}]},
147 - {port,34,[{queues,[]},{port_no,10}]}]}]},
148 - {switch,6,
149 - [{backend,linc_us4_oe},
150 - {datapath_id,"00:00:ff:ff:ff:ff:ff:06"},
151 - {controllers,[{"Switch0-Controller","10.1.8.147",6633,tcp}]},
152 - {controllers_listener,disabled},
153 - {queues_status,disabled},
154 - {ports,
155 - [{port,12,[{queues,[]},{port_no,50}]},
156 - {port,14,[{queues,[]},{port_no,20}]},
157 - {port,16,[{queues,[]},{port_no,40}]},
158 - {port,19,[{queues,[]},{port_no,30}]},
159 - {port,31,[{queues,[]},{port_no,10}]}]}]}]}]},
160 - {epcap,[{verbose,false},{stats_interval,10}]},
161 - {enetconf,
162 - [{capabilities,
163 - [{base,{1,0}},
164 - {base,{1,1}},
165 - {startup,{1,0}},
166 - {'writable-running',{1,0}}]},
167 - {callback_module,linc_ofconfig},
168 - {sshd_ip,any},
169 - {sshd_port,1830},
170 - {sshd_user_passwords,[{"linc","linc"}]}]},
171 - {lager,
172 - [{handlers,
173 - [{lager_console_backend,info},
174 - {lager_file_backend,
175 - [{"log/error.log",error,10485760,"$D0",5},
176 - {"log/console.log",info,10485760,"$D0",5}]}]}]},
177 - {sasl,
178 - [{sasl_error_logger,{file,"log/sasl-error.log"}},
179 - {errlog_type,error},
180 - {error_logger_mf_dir,"log/sasl"},
181 - {error_logger_mf_maxbytes,10485760},
182 - {error_logger_mf_maxfiles,5}]},
183 - {sync,[{excluded_modules,[procket]}]}].