low-level primitives. The "nox.py" example attempts to use nox as a controller rather than controller(8). More edits for INSTALL and README, and refinements for sshd and xterm examples.
40 lines
1.2 KiB
Python
Executable File
40 lines
1.2 KiB
Python
Executable File
#!/usr/bin/python
|
|
|
|
"Create a network from scratch and use NOX as the controller."
|
|
|
|
from mininet import init, Controller, Switch, Host, createLink
|
|
|
|
def scratchNet( cname='controller', cargs='ptcp:'):
|
|
# Create Network
|
|
controller = Node( 'c0', inNamespace=False )
|
|
switch = Node( 's0', inNamespace=False )
|
|
h0 = Node( 'h0' )
|
|
h1 = Node( 'h1' )
|
|
createLink( h0, switch )
|
|
createLink( h1, switch )
|
|
# Configure hosts
|
|
h0.setIP( h0.intfs[ 0 ], '192.168.123.1', '/24' )
|
|
h1.setIP( h1.intfs[ 0 ], '192.168.123.2', '/24' )
|
|
# Start network using kernel datapath
|
|
controller.cmdPrint( cname + ' ' + cargs + '&' )
|
|
switch.cmdPrint( 'dpctl deldp nl:0' )
|
|
switch.cmdPrint( 'dpctl adddp nl:0' )
|
|
for intf in switch.intfs:
|
|
switch.cmdPrint( 'dpctl addif nl:0 ' + intf )
|
|
switch.cmdPrint( 'ofprotocol nl:0 tcp:localhost &')
|
|
# Run test
|
|
h0.cmdPrint( 'ping -c1 ' + h1.IP() )
|
|
# Stop network
|
|
controller.cmdPrint( 'kill %' + cname)
|
|
switch.cmdPrint( 'dpctl deldp nl:0' )
|
|
switch.cmdPrint( 'kill %ofprotocol' )
|
|
switch.stop()
|
|
controller.stop()
|
|
|
|
if __name__ == '__main__':
|
|
init()
|
|
scratchNet( cname='nox_core', cargs='-i ptcp:' )
|
|
|
|
|
|
|