mnoptical.ofcdemo.Control_Test_Mininet_REST

apsp.py: all-pairs-shortest-paths routing for ofc demo

The goal is not to demonstrate an elaborate routing and rebalancing algorithm, but to demonstrate how mininet-optical enables packet-optical SDN controller development and experimentation!!

So our routing is extremely simple:

  1. Every pair of nodes gets a unique channel

  2. Routes are shortest paths

Since all the links are the same length, we don’t even have to use Dijkstra’s algorithm - BFS works just fine!

Module Contents

Classes

Mininet_Control_REST

Functions

Test()

Configure and monitor network with N=3 channels for each path

class mnoptical.ofcdemo.Control_Test_Mininet_REST.Mininet_Control_REST

Bases: object

getOSNR()

Return fetchOSNR

monitorKeyAndLightpaths()
monitorKey(monitor)

Key for sorting monitor names

getMonitorKey(src_id, dst_id, spanID=1)
monitorOSNRbyKey(key, channel)
monitorOSNR(channel, gosnrThreshold=18.0)

Monitor gOSNR continuously; if any monitored gOSNR drops below threshold, return list of (monitor, channel, link)

buildGraph(links)

Return an adjacency dict for links

route(src, graph, destinations)

Route from src to destinations neighbors: adjacency list returns: routes dict

configureTerminal(terminal, channel, power=0.0)

Configure terminals statically: ethN <-> wdmM:channel

turnonTerminal(terminal)

turn on terminal

configurePacketSwitch(src, dst, channel, router, port)

Configure Open vSwitch ‘routers’ using OpenFlow

installPath(path, channels)

Program a lightpath into the network

uninstallPath(path, channels)

Program a lightpath into the network

mnoptical.ofcdemo.Control_Test_Mininet_REST.Test()

Configure and monitor network with N=3 channels for each path