Moved link creation into Node.addIntf() and fixed util:CreateLink().
Also tweaked cmd/cmdPrint to make them more beautiful and functional, and a few other minor changes, such as using a new idiom for verbose. These changes support reinstating the examples.
This commit is contained in:
+41
-27
@@ -6,35 +6,49 @@ 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
|
||||
import logging
|
||||
|
||||
from mininet.net import init
|
||||
from mininet.node import Node
|
||||
from mininet.util import createLink
|
||||
from mininet.log import info
|
||||
|
||||
# print out info() messages, including cmdPrint
|
||||
logging.LOGLEVELDEFAULT = logging.INFO
|
||||
|
||||
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:
|
||||
# Create Network
|
||||
print "*** creating Nodes"
|
||||
controller = Node( 'c0', inNamespace=False )
|
||||
switch = Node( 's0', inNamespace=False )
|
||||
h0 = Node( 'h0' )
|
||||
h1 = Node( 'h1' )
|
||||
print "*** creating links"
|
||||
createLink( node1=h0, port1=0, node2=switch, port2=0 )
|
||||
createLink( node1=h1, port1=0, node2=switch, port2=1 )
|
||||
# Configure hosts
|
||||
print "*** configuring hosts"
|
||||
h0.setIP( h0.intfs[ 0 ], '192.168.123.1', '/24' )
|
||||
h1.setIP( h1.intfs[ 0 ], '192.168.123.2', '/24' )
|
||||
print h0
|
||||
print h1
|
||||
# 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.values():
|
||||
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()
|
||||
switch.cmdPrint( 'ofprotocol nl:0 tcp:localhost &')
|
||||
# Run test
|
||||
print h0.cmd( '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()
|
||||
info( '*** Scratch network demo\n' )
|
||||
init()
|
||||
scratchNet()
|
||||
|
||||
Reference in New Issue
Block a user