ee15ce2243
Although we could use print() from __future__, this messes up scripts which use examples as modules. The simple, if not nicest for 2.7, solution is to use info(), output() and other mininet.log functions. The disadvantage is that we may have to adjust things if we change info() to add automatic newlines, but we can burn that bridge in Mininet 3.x.
33 lines
968 B
Python
Executable File
33 lines
968 B
Python
Executable File
#!/usr/bin/python
|
|
|
|
"Create a 64-node tree network, and test connectivity using ping."
|
|
|
|
|
|
from mininet.log import setLogLevel, info
|
|
from mininet.node import UserSwitch, OVSKernelSwitch # , KernelSwitch
|
|
from mininet.topolib import TreeNet
|
|
|
|
def treePing64():
|
|
"Run ping test on 64-node tree networks."
|
|
|
|
results = {}
|
|
switches = { # 'reference kernel': KernelSwitch,
|
|
'reference user': UserSwitch,
|
|
'Open vSwitch kernel': OVSKernelSwitch }
|
|
|
|
for name in switches:
|
|
info( "*** Testing", name, "datapath\n" )
|
|
switch = switches[ name ]
|
|
network = TreeNet( depth=2, fanout=8, switch=switch )
|
|
result = network.run( network.pingAll )
|
|
results[ name ] = result
|
|
|
|
info( "\n*** Tree network ping results:\n" )
|
|
for name in switches:
|
|
info( "%s: %d%% packet loss\n" % ( name, results[ name ] ) )
|
|
info( '\n' )
|
|
|
|
if __name__ == '__main__':
|
|
setLogLevel( 'info' )
|
|
treePing64()
|