From ff56881946020a6fe7a203de1fe4d75a3a0ea20d Mon Sep 17 00:00:00 2001 From: Bob Lantz Date: Tue, 20 Mar 2012 15:43:43 -0700 Subject: [PATCH] Add TCLink for simplified tc-limited link creation. --- bin/mn | 14 +++++++------- mininet/link.py | 11 +++++++++++ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/bin/mn b/bin/mn index b82ba12..3785195 100755 --- a/bin/mn +++ b/bin/mn @@ -22,7 +22,7 @@ from mininet.log import lg, LEVELS, info, warn from mininet.net import Mininet, MininetWithControlNet from mininet.node import Host, CPULimitedHost, Controller, OVSController, NOX from mininet.node import RemoteController, UserSwitch, OVSKernelSwitch -from mininet.link import Intf, TCIntf +from mininet.link import Link, TCLink from mininet.topo import SingleSwitchTopo, LinearTopo, SingleSwitchReversedTopo from mininet.topolib import TreeTopo from mininet.util import makeNumeric, custom @@ -74,9 +74,9 @@ CONTROLLERS = { 'ref': Controller, 'remote': RemoteController, 'none': lambda name: None } -INTFDEF = 'default' -INTFS = { 'default': Intf, - 'tc': TCIntf } +LINKDEF = 'default' +LINKS = { 'default': Link, + 'tc': TCLink } # optional tests to run @@ -182,7 +182,7 @@ class MininetRunner( object ): addDictOption( opts, SWITCHES, SWITCHDEF, 'switch' ) addDictOption( opts, HOSTS, HOSTDEF, 'host' ) addDictOption( opts, CONTROLLERS, CONTROLLERDEF, 'controller' ) - addDictOption( opts, INTFS, INTFDEF, 'intf' ) + addDictOption( opts, LINKS, LINKDEF, 'link' ) addDictOption( opts, TOPOS, TOPODEF, 'topo' ) opts.add_option( '--clean', '-c', action='store_true', @@ -246,7 +246,7 @@ class MininetRunner( object ): switch = customNode( SWITCHES, self.options.switch ) host = customNode( HOSTS, self.options.host ) controller = customNode( CONTROLLERS, self.options.controller ) - intf = customNode( INTFS, self.options.intf ) + link = customNode( LINKS, self.options.link ) if self.validate: self.validate( self.options ) @@ -262,7 +262,7 @@ class MininetRunner( object ): listenPort = self.options.listenport mn = Net( topo=topo, switch=switch, host=host, controller=controller, - intf=intf, + link=link, ipBase=ipBase, inNamespace=inNamespace, xterms=xterms, autoSetMacs=mac, diff --git a/mininet/link.py b/mininet/link.py index 6bf619b..09971d4 100644 --- a/mininet/link.py +++ b/mininet/link.py @@ -371,3 +371,14 @@ class Link( object ): def __str__( self ): return '%s<->%s' % ( self.intf1, self.intf2 ) + +class TCLink( Link ): + "Link with symmetric TC interfaces configured via opts" + def __init__( self, node1, node2, port1=None, port2=None, + intfName1=None, intfName2=None, **params ): + Link.__init__( self, node1, node2, port1=None, port2=None, + intfName1=None, intfName2=None, + cls1=TCIntf, + cls2=TCIntf, + params1=params, + params2=params)