| #!/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()) |