mirror of
https://github.com/opennetworkinglab/onos.git
synced 2025-10-14 17:01:02 +02:00
71 lines
2.8 KiB
Python
71 lines
2.8 KiB
Python
#!/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', dpid='0000000000000010')
|
|
BRGHTN_A = self.addSwitch('s2', dpid='0000000000000021')
|
|
BRGHTN_B = self.addSwitch('s3', dpid='0000000000000022')
|
|
BRGHTN_C = self.addSwitch('s4', dpid='0000000000000023')
|
|
LONDON_A = self.addSwitch('s5', dpid='0000000000000031')
|
|
LONDON_B = self.addSwitch('s6', dpid='0000000000000032')
|
|
LONDON_C = self.addSwitch('s7', dpid='0000000000000033')
|
|
LONDON_D = self.addSwitch('s8', dpid='0000000000000034')
|
|
LONDON_E = self.addSwitch('s9', dpid='0000000000000035')
|
|
|
|
# ... and now hosts
|
|
DOVER_host = self.addHost('h1', mac='000000000010')
|
|
BRGHTN_A_host = self.addHost('h2', mac='000000000021')
|
|
BRGHTN_B_host = self.addHost('h3', mac='000000000022')
|
|
BRGHTN_C_host = self.addHost('h4', mac='000000000023')
|
|
LONDON_A_host = self.addHost('h5', mac='000000000031')
|
|
LONDON_B_host = self.addHost('h6', mac='000000000032')
|
|
LONDON_C_host = self.addHost('h7', mac='000000000033')
|
|
LONDON_D_host = self.addHost('h8', mac='000000000034')
|
|
LONDON_E_host = self.addHost('h9', mac='000000000035')
|
|
|
|
# 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())
|