'name: interface name (e.g. h1-eth0)
node: owning node (where this intf most likely lives)
link: parent link if we\'re part of a link
other arguments are passed to config()'

def __init__(self, name, node=None, port=None, link=None, mac=None, **params):

    self.node = node
    self.name = name
    self.link = link
    self.mac = mac
    (self.ip, self.prefixLen) = (None, None)
    if (self.name == 'lo'):
        self.ip = '127.0.0.1'
        self.prefixLen = 8
    if node:
        moveIntfFn = params.pop('moveIntfFn', None)
        if moveIntfFn:
            node.addIntf(self, port=port, moveIntfFn=moveIntfFn)
        else:
            node.addIntf(self, port=port)
    self.params = params
    self.config(**params)
