mininet files for dev VMs
diff --git a/test-network/mininet/dev_network_edge.py b/test-network/mininet/dev_network_edge.py
new file mode 100755
index 0000000..29be6ad
--- /dev/null
+++ b/test-network/mininet/dev_network_edge.py
@@ -0,0 +1,155 @@
+#!/usr/bin/python
+import sys
+
+Controllers=[{"ip":"127.0.0.1", "port":6633}]
+
+"""
+Start up a Simple topology
+"""
+from mininet.net import Mininet
+from mininet.node import Controller, RemoteController
+from mininet.log import setLogLevel, info, error, warn, debug
+from mininet.cli import CLI
+from mininet.topo import Topo
+from mininet.util import quietRun
+from mininet.moduledeps import pathCheck
+from mininet.link import Link, TCLink
+
+from sys import exit
+import os.path
+from subprocess import Popen, STDOUT, PIPE
+
+import sys
+
+#import argparse
+
+class MyController( Controller ):
+    def __init__( self, name, ip='127.0.0.1', port=6633, **kwargs):
+        """Init.
+           name: name to give controller
+           ip: the IP address where the remote controller is
+           listening
+           port: the port where the remote controller is listening"""
+        Controller.__init__( self, name, ip=ip, port=port, **kwargs )
+
+    def start( self ):
+        "Overridden to do nothing."
+        return
+
+    def stop( self ):
+        "Overridden to do nothing."
+        return
+
+    def checkListening( self ):
+        "Warn if remote controller is not accessible"
+        listening = self.cmd( "echo A | telnet -e A %s %d" %
+                              ( self.ip, self.port ) )
+        if 'Unable' in listening:
+            warn( "Unable to contact the remote controller"
+                  " at %s:%d\n" % ( self.ip, self.port ) )
+
+class SDNTopo( Topo ):
+    "SDN Topology"
+
+    def __init__( self, *args, **kwargs ):
+        Topo.__init__( self, *args, **kwargs )
+
+        switch = []
+        host = []
+
+        for i in range (NR_NODES):
+            name_suffix = '%02d' % NWID + "." + '%02d' % (int(i)+1)
+            dpid_suffix = '%02x' % NWID + '%02x' % (int(i)+1)
+            dpid = '0000' + '0000' + '0000' + dpid_suffix
+            sw = self.addSwitch('sw'+name_suffix, dpid=dpid)
+            switch.append(sw)
+
+        for i in range (NR_NODES):
+            host.append(self.addHost( 'host%d.%d' % (NWID,int(i)+1) ))
+
+        for i in range (NR_NODES):
+            self.addLink(host[i], switch[i])
+
+        for i in range (1, NR_NODES):
+            self.addLink(switch[0], switch[i])
+
+def startsshd( host ):
+    "Start sshd on host"
+    info( '*** Starting sshd\n' )
+    name, intf, ip = host.name, host.defaultIntf(), host.IP()
+    banner = '/tmp/%s.banner' % name
+    host.cmd( 'echo "Welcome to %s at %s" >  %s' % ( name, ip, banner ) )
+    host.cmd( '/usr/sbin/sshd -o "Banner %s"' % banner, '-o "UseDNS no"' )
+    info( '***', host.name, 'is running sshd on', intf, 'at', ip, '\n' )
+
+def startsshds ( hosts ):
+    for h in hosts:
+        startsshd( h )
+
+def startiperf( host ):
+    host.cmd( '/usr/bin/iperf', '-s &' )
+
+def startiperfs ( hosts ):
+    for h in hosts:
+        startiperf( h )
+
+def stopiperf( ):
+    quietRun( "pkill -9 iperf" )
+
+def stopsshd( ):
+    "Stop *all* sshd processes with a custom banner"
+    info( '*** Shutting down stale sshd/Banner processes ',
+          quietRun( "pkill -9 -f Banner" ), '\n' )
+
+def sdnnet(opt):
+    topo = SDNTopo()
+    info( '*** Creating network\n' )
+    net = Mininet( topo=topo, controller=MyController, link=TCLink)
+    #net = Mininet( topo=topo, link=TCLink, build=False)
+    #controllers=[]
+    #for c in Controllers:
+    #  rc = RemoteController('c%d' % Controllers.index(c), ip=c['ip'],port=c['port'])
+    #  print "controller ip %s port %s" % (c['ip'], c['port'])
+    #  controllers.append(rc)
+
+    #net.controllers=controllers
+    net.build()
+
+    host = []
+    for i in range (NR_NODES):
+      host.append(net.get( 'host%d.%d' % (NWID,int(i)+1) ))
+
+    net.start()
+
+    sw=net.get('sw%02x.%02x' % (NWID,1))
+    print "center sw", sw
+    sw.attach('tap%02x_1' % NWID)
+
+    for i in range (NR_NODES):
+        host[i].defaultIntf().setIP('192.168.%d.%d/16' % (NWID,(int(i)+1))) 
+        host[i].defaultIntf().setMAC('00:00:%02x:%02x:%02x:%02x' % (192,168,NWID,(int(i)+1))) 
+
+    for i in range (NR_NODES):
+       for n in range (2,9):
+         for h in range (NR_NODES):
+           host[i].setARP('192.168.%d.%d' % (n, (int(h)+1)), '00:00:%02x:%02x:%02x:%02x' % (192,168,n,(int(h)+1)))
+
+    stopsshd ()
+#    stopiperf ()
+    startsshds ( host )
+#    startiperfs ( host )
+
+    if opt=="cli":
+        CLI(net)
+        stopsshd()
+        net.stop()
+
+if __name__ == '__main__':
+    setLogLevel( 'info' )
+    if len(sys.argv) == 3:
+        NWID=int(sys.argv[1])
+        NR_NODES=int(sys.argv[2])
+        sdnnet("nocli")
+    else:
+      print "%s <NWID> <NR_NODES>" % sys.argv[0]
+      sys.exit(1)