Adding mininet script and netcfg for uk-regions.
Change-Id: I45c99da8b9dc891887b147d8e7cca627d68c9679
diff --git a/tools/test/topos/uk-region-onos.py b/tools/test/topos/uk-region-onos.py
new file mode 100644
index 0000000..744844d
--- /dev/null
+++ b/tools/test/topos/uk-region-onos.py
@@ -0,0 +1,6 @@
+#!/usr/bin/python
+
+from onosnet import run
+from ukRegion import UkRegionTopo
+
+run( UkRegionTopo() )
diff --git a/tools/test/topos/uk-region.json b/tools/test/topos/uk-region.json
new file mode 100644
index 0000000..a498bc9
--- /dev/null
+++ b/tools/test/topos/uk-region.json
@@ -0,0 +1,98 @@
+{
+ "devices": {
+ "of:0000000000000010": { "basic": { "name": "DOVER", "latitude": 51.1295, "longitude": 1.3089 }},
+
+ "of:0000000000000021": { "basic": { "name": "BRGHTN-A", "latitude": 50.9000, "longitude": -0.1313 }},
+ "of:0000000000000022": { "basic": { "name": "BRGHTN-B", "latitude": 50.8429, "longitude": -0.1413 }},
+ "of:0000000000000023": { "basic": { "name": "BRGHTN-C", "latitude": 50.8429, "longitude": -0.1213 }},
+
+ "of:0000000000000031": { "basic": { "name": "LONDON-A", "latitude": 51.5091, "longitude": -0.2704 }},
+ "of:0000000000000032": { "basic": { "name": "LONDON-B", "latitude": 51.5091, "longitude": 0.0432 }},
+ "of:0000000000000033": { "basic": { "name": "LONDON-C", "latitude": 51.4513, "longitude": -0.1058 }},
+ "of:0000000000000034": { "basic": { "name": "LONDON-D", "latitude": 51.5418, "longitude": -0.1931 }},
+ "of:0000000000000035": { "basic": { "name": "LONDON-E", "latitude": 51.5072, "longitude": -0.1175 }}
+ },
+
+ "hosts": {
+ "00:00:00:00:00:10/-1": { "basic": { "location": "of:0000000000000010/1", "ips": [ "10.0.1.0" ], "name": "DOVER", "latitude": 51.6295, "longitude": 1.9089 }},
+
+ "00:00:00:00:00:21/-1": { "basic": { "location": "of:0000000000000021/1", "ips": [ "10.0.2.1" ], "name": "BRGHTN-A", "latitude": 51.4000, "longitude": -0.6313 }},
+ "00:00:00:00:00:22/-1": { "basic": { "location": "of:0000000000000022/1", "ips": [ "10.0.2.2" ], "name": "BRGHTN-B", "latitude": 52.3429, "longitude": -0.6413 }},
+ "00:00:00:00:00:23/-1": { "basic": { "location": "of:0000000000000023/1", "ips": [ "10.0.2.3" ], "name": "BRGHTN-C", "latitude": 52.3429, "longitude": -0.6213 }},
+
+ "00:00:00:00:00:31/-1": { "basic": { "location": "of:0000000000000031/1", "ips": [ "10.0.3.1" ], "name": "LONDON-A", "latitude": 52.0091, "longitude": -0.7704 }},
+ "00:00:00:00:00:32/-1": { "basic": { "location": "of:0000000000000032/1", "ips": [ "10.0.3.2" ], "name": "LONDON-B", "latitude": 52.0091, "longitude": 0.0432 }},
+ "00:00:00:00:00:33/-1": { "basic": { "location": "of:0000000000000033/1", "ips": [ "10.0.3.3" ], "name": "LONDON-C", "latitude": 51.9513, "longitude": -0.6058 }},
+ "00:00:00:00:00:34/-1": { "basic": { "location": "of:0000000000000034/1", "ips": [ "10.0.3.4" ], "name": "LONDON-D", "latitude": 52.0418, "longitude": -0.6931 }},
+ "00:00:00:00:00:35/-1": { "basic": { "location": "of:0000000000000035/1", "ips": [ "10.0.3.5" ], "name": "LONDON-E", "latitude": 52.0072, "longitude": -0.6175 }}
+ },
+
+ "regions": {
+ "rBri": {
+ "basic": {
+ "name": "Brighton Area",
+ "type": "metro",
+ "devices": [
+ "of:0000000000000021",
+ "of:0000000000000022",
+ "of:0000000000000023"
+ ]
+ }
+ },
+ "rLon": {
+ "basic": {
+ "name": "Greater London",
+ "type": "metro",
+ "devices": [
+ "of:0000000000000031",
+ "of:0000000000000032"
+ ]
+ }
+ },
+ "rLonWest": {
+ "basic": {
+ "name": "London West End",
+ "type": "metro",
+ "devices": [
+ "of:0000000000000033",
+ "of:0000000000000034",
+ "of:0000000000000035"
+ ]
+ }
+ }
+ },
+
+ "layouts": {
+ "_default_": {
+ "basic": {
+ "geomap": "uk",
+ "scale": 1.2,
+ "offsetX": -50,
+ "offsetY": 0
+ }
+ },
+ "lBri": {
+ "basic": {
+ "region": "rBri",
+ "geomap": "uk-brighton",
+ "scale": 0.9,
+ "offsetX": 200,
+ "offsetY": -45
+ }
+ },
+ "lLon": {
+ "basic": {
+ "region": "rLon",
+ "geomap": "uk-london"
+ }
+ },
+ "lLonWest": {
+ "basic": {
+ "parent": "lLon",
+ "region": "rLonWest",
+ "sprites": "uk-london-westend"
+ }
+ }
+ }
+
+}
diff --git a/tools/test/topos/ukRegion.py b/tools/test/topos/ukRegion.py
new file mode 100644
index 0000000..a3a8696
--- /dev/null
+++ b/tools/test/topos/ukRegion.py
@@ -0,0 +1,70 @@
+#!/usr/bin/env python
+
+"""
+ Sample network for demonstrating regions (see uk-region.json)
+"""
+from mininet.topo import Topo
+
+
+class UkRegionTopo(Topo):
+ """Switches projected onto a portion of the UK map"""
+
+ def __init__(self):
+ """Create a topology."""
+
+ # Initialize Topology
+ Topo.__init__(self)
+
+ # add nodes, switches first...
+ DOVER = self.addSwitch('s1')
+ BRGHTN_A = self.addSwitch('s2')
+ BRGHTN_B = self.addSwitch('s3')
+ BRGHTN_C = self.addSwitch('s4')
+ LONDON_A = self.addSwitch('s5')
+ LONDON_B = self.addSwitch('s6')
+ LONDON_C = self.addSwitch('s7')
+ LONDON_D = self.addSwitch('s8')
+ LONDON_E = self.addSwitch('s9')
+
+ # ... and now hosts
+ DOVER_host = self.addHost('h1')
+ BRGHTN_A_host = self.addHost('h2')
+ BRGHTN_B_host = self.addHost('h3')
+ BRGHTN_C_host = self.addHost('h4')
+ LONDON_A_host = self.addHost('h5')
+ LONDON_B_host = self.addHost('h6')
+ LONDON_C_host = self.addHost('h7')
+ LONDON_D_host = self.addHost('h8')
+ LONDON_E_host = self.addHost('h9')
+
+ # add edges between switch and corresponding host
+ self.addLink(DOVER, DOVER_host)
+ self.addLink(BRGHTN_A, BRGHTN_A_host)
+ self.addLink(BRGHTN_B, BRGHTN_B_host)
+ self.addLink(BRGHTN_C, BRGHTN_C_host)
+ self.addLink(LONDON_A, LONDON_A_host)
+ self.addLink(LONDON_B, LONDON_B_host)
+ self.addLink(LONDON_C, LONDON_C_host)
+ self.addLink(LONDON_D, LONDON_D_host)
+ self.addLink(LONDON_E, LONDON_E_host)
+
+ # add edges between switches
+ self.addLink(DOVER, BRGHTN_A, bw=10, delay='1.0ms')
+ self.addLink(BRGHTN_A, BRGHTN_B, bw=10, delay='1.0ms')
+ self.addLink(BRGHTN_A, BRGHTN_C, bw=10, delay='1.0ms')
+ self.addLink(BRGHTN_B, BRGHTN_C, bw=10, delay='1.0ms')
+ self.addLink(BRGHTN_C, LONDON_A, bw=10, delay='1.0ms')
+ self.addLink(LONDON_A, LONDON_B, bw=10, delay='1.0ms')
+ self.addLink(LONDON_A, LONDON_C, bw=10, delay='1.0ms')
+ self.addLink(LONDON_B, LONDON_D, bw=10, delay='1.0ms')
+ self.addLink(LONDON_C, LONDON_D, bw=10, delay='1.0ms')
+ self.addLink(LONDON_C, LONDON_E, bw=10, delay='1.0ms')
+ self.addLink(LONDON_D, LONDON_E, bw=10, delay='1.0ms')
+
+
+topos = {'uk': (lambda: UkRegionTopo())}
+
+if __name__ == '__main__':
+ from onosnet import run
+
+ run(UkRegionTopo())