def __init__( self, node1, node2, port1=None, port2=None,
intfName1=None, intfName2=None,
intf=Intf, cls1=None, cls2=None, params1=None,
"""Create veth link to another node, making two new interfaces.
port1: node1 port number (optional)
port2: node2 port number (optional)
intf: default interface class/constructor
cls1, cls2: optional interface-specific constructors
intfName1: node1 interface name (optional)
intfName2: node2 interface name (optional)
params1: parameters for interface 1
params2: parameters for interface 2"""
# This is a bit awkward; it seems that having everything in
# params would be more orthogonal, but being able to specify
# in-line arguments is more convenient!
intfName1 = self.intfName( node1, port1 )
intfName2 = self.intfName( node2, port2 )
self.makeIntfPair( intfName1, intfName2 )
intf1 = cls1( name=intfName1, node=node1, port=port1,
intf2 = cls2( name=intfName2, node=node2, port=port2,
# All we are is dust in the wind, and our two interfaces
self.intf1, self.intf2 = intf1, intf2