Adding fractal mininet topo and domain config json
Change-Id: I26bb6f2351e11d28a4cbfb141e98958be1d4c90b
Showing
2 changed files
with
84 additions
and
0 deletions
| 1 | +{ | ||
| 2 | + "domains" : { | ||
| 3 | + "domain1" : { | ||
| 4 | + "basic" : { | ||
| 5 | + "name" : "Domain 1", | ||
| 6 | + "applicationName" : "org.onosproject.meshdomain", | ||
| 7 | + "internalDevices" : [ "of:0000000000001001", "of:0000000000001002", "of:0000000000001003" ], | ||
| 8 | + "edgePorts" : [ "of:0000000000010000/1", "of:0000000003010000/2", "of:0000000002010000/1" ] | ||
| 9 | + } | ||
| 10 | + }, | ||
| 11 | + "domain2" : { | ||
| 12 | + "basic" : { | ||
| 13 | + "name" : "Domain 2", | ||
| 14 | + "applicationName" : "org.onosproject.meshdomain", | ||
| 15 | + "internalDevices" : [ "of:0000000000002001", "of:0000000000002002", "of:0000000000002003" ], | ||
| 16 | + "edgePorts" : [ "of:0000000000020000/1", "of:0000000003020000/1", "of:0000000002010000/2" ] | ||
| 17 | + } | ||
| 18 | + }, | ||
| 19 | + "domain3" : { | ||
| 20 | + "basic" : { | ||
| 21 | + "name" : "Domain 3", | ||
| 22 | + "applicationName" : "org.onosproject.meshdomain", | ||
| 23 | + "internalDevices" : [ "of:0000000000003001", "of:0000000000003002", "of:0000000000003003" ], | ||
| 24 | + "edgePorts" : [ "of:0000000000030000/1", "of:0000000003010000/1", "of:0000000003020000/2" ] | ||
| 25 | + } | ||
| 26 | + } | ||
| 27 | + } | ||
| 28 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
tools/test/topos/fractal.py
0 → 100755
| 1 | +#!/usr/bin/env python | ||
| 2 | + | ||
| 3 | +from mininet.topo import Topo | ||
| 4 | + | ||
| 5 | +class FractalTopo( Topo ): | ||
| 6 | + def build( self, n=3, h=2 ): | ||
| 7 | + | ||
| 8 | + clusters = [] | ||
| 9 | + for i in range( 1, n+1 ): | ||
| 10 | + clusterSws = [] | ||
| 11 | + # create switches in cluster | ||
| 12 | + for j in range( 1, n+1 ): | ||
| 13 | + id = i * 1000 + j | ||
| 14 | + sw = self.addSwitch('s%d' % id, dpid=str(id).zfill(16)) | ||
| 15 | + [ self.addLink(s, sw) for s in clusterSws ] | ||
| 16 | + clusterSws.append(sw) | ||
| 17 | + clusters.append(clusterSws) | ||
| 18 | + | ||
| 19 | + for i in range( 1, n+1 ): | ||
| 20 | + # create the edge switch | ||
| 21 | + id = i * 10000 | ||
| 22 | + sw = self.addSwitch('s%d' % id, dpid=str(id).zfill(16)) | ||
| 23 | + self.addLink(clusters[i-1].pop(0), sw) | ||
| 24 | + for j in range( 1, h+1 ): | ||
| 25 | + id = i * 1000 + j | ||
| 26 | + host = self.addHost( 'h%d' % id ) | ||
| 27 | + self.addLink( host, sw ) | ||
| 28 | + | ||
| 29 | + for i in range( 1, n+1 ): | ||
| 30 | + # connect the clusters | ||
| 31 | + if i == n: | ||
| 32 | + id = n * 1000000 + 10000 | ||
| 33 | + sw = self.addSwitch('s%d' % id, dpid=str(id).zfill(16)) | ||
| 34 | + self.addLink(clusters[i-1].pop(0), sw) | ||
| 35 | + self.addLink(clusters[0].pop(0), sw) | ||
| 36 | + | ||
| 37 | + else: | ||
| 38 | + id = (i+1) * 1000000 + i * 10000 | ||
| 39 | + sw = self.addSwitch('s%d' % id, dpid=str(id).zfill(16)) | ||
| 40 | + self.addLink(clusters[i-1].pop(0), sw) | ||
| 41 | + self.addLink(clusters[i].pop(0), sw) | ||
| 42 | + | ||
| 43 | + | ||
| 44 | +topos = { 'fractal': FractalTopo } | ||
| 45 | + | ||
| 46 | +def run(): | ||
| 47 | + topo = FractalTopo() | ||
| 48 | + net = Mininet( topo=topo, controller=RemoteController, autoSetMacs=True ) | ||
| 49 | + net.start() | ||
| 50 | + CLI( net ) | ||
| 51 | + net.stop() | ||
| 52 | + | ||
| 53 | +if __name__ == '__main__': | ||
| 54 | + setLogLevel( 'info' ) | ||
| 55 | + run() | ||
| 56 | + |
-
Please register or login to post a comment