diff --git a/mininet/cli.py b/mininet/cli.py index 42a4d3d7f1d6724d916475d3f17d6766098802a7..efb580bb77f7a0580aa6c2a798d8c267f3001bdf 100644 --- a/mininet/cli.py +++ b/mininet/cli.py @@ -36,7 +36,8 @@ from mininet.log import info, output, error from mininet.term import makeTerms, runX11 -from mininet.util import quietRun, isShellBuiltin, dumpNodeConnections +from mininet.util import ( quietRun, isShellBuiltin, dumpNodeConnections, + dumpPorts ) class CLI( Cmd ): "Simple command-line interface to talk to nodes." @@ -127,6 +128,10 @@ def do_nodes( self, _line ): nodes = ' '.join( sorted( self.mn ) ) output( 'available nodes are: \n%s\n' % nodes ) + def do_ports( self, line ): + "display ports and interfaces for each switch" + dumpPorts( self.mn.switches ) + def do_net( self, _line ): "List network connections." dumpNodeConnections( self.mn.values() ) diff --git a/mininet/util.py b/mininet/util.py index 69d31273f21ed858d35aca3004c74f3e17d6597e..b61ad8bbc47e31e4973e6109027beaad8cec410a 100644 --- a/mininet/util.py +++ b/mininet/util.py @@ -237,6 +237,15 @@ def dumpNetConnections( net ): nodes = net.controllers + net.switches + net.hosts dumpNodeConnections( nodes ) +def dumpPorts( switches ): + "dump interface to openflow port mappings for each switch" + for switch in switches: + output( '%s ' % switch.name ) + for intf in switch.intfList(): + port = switch.ports[ intf ] + output( '%s:%d ' % ( intf, port ) ) + output( '\n' ) + # IP and Mac address formatting and parsing def _colonHex( val, bytecount ):