diff --git a/mininet/net.py b/mininet/net.py index fea14d4dc79269def84fe405ec922d0124fe3338..8f89babbab21c1b149a13e2271d833ddf286d67e 100755 --- a/mininet/net.py +++ b/mininet/net.py @@ -337,15 +337,18 @@ def addLink( self, node1, node2, port1=None, port2=None, cls: link class (optional) params: additional link params (optional) returns: link object""" + # Accept node objects or names node1 = node1 if type( node1 ) != str else self[ node1 ] node2 = node2 if type( node2 ) != str else self[ node2 ] options = dict( params ) - options.setdefault( 'addr1', self.randMac() ) - options.setdefault( 'addr2', self.randMac() ) + # Port is optional if port1 is not None: options.setdefault( 'port1', port1 ) if port2 is not None: options.setdefault( 'port2', port2 ) + # Set default MAC - this should probably be in Link + options.setdefault( 'addr1', self.randMac() ) + options.setdefault( 'addr2', self.randMac() ) cls = self.link if cls is None else cls link = cls( node1, node2, **options ) self.links.append( link )