51270ce4a2
Now, to reference mininet files, use 'import mininet.mininet'. PYTHONPATH mods are no longer required for installation.
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 customization.
|
|
"""
|
|
|
|
from mininet.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()
|