433503cf8a
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.
41 lines
1.2 KiB
Python
Executable File
41 lines
1.2 KiB
Python
Executable File
#!/usr/bin/python
|
|
|
|
"""
|
|
Build a simple network from scratch, using mininet primitives.
|
|
This is more complicated than using the higher-level classes,
|
|
but it exposes the configuration details and allows cusomization.
|
|
"""
|
|
|
|
from mininet import init, Node, 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()
|