Exemple #1
0
 def __init__(self, node, name, localname, mtu=1500, net=None, start=True):
     # note that net arg is ignored
     PyCoreNetIf.__init__(self, node=node, name=name, mtu=mtu)
     self.localname = localname
     self.up = False
     if start:
         self.startup()
Exemple #2
0
 def __init__(self, node, name, localname, mtu=1500, net=None, start=True):
     PyCoreNetIf.__init__(self, node=node, name=name, mtu=mtu)
     self.localname = localname
     self.up = False
     self.transport_type = "virtual"
     if start:
         self.startup()
Exemple #3
0
 def __init__(self, node, name, localname, mtu=1500, net=None, start=True):
     # note that net arg is ignored
     PyCoreNetIf.__init__(self, node=node, name=name, mtu=mtu)
     self.localname = localname
     self.up = False
     if start:
         self.startup()
Exemple #4
0
 def __init__(self, node, name, localname, mtu=1500, net=None, start=True):
     PyCoreNetIf.__init__(self, node=node, name=name, mtu=mtu)
     self.localname = localname
     self.up = False
     self.transport_type = "virtual"
     if start:
         self.startup()
Exemple #5
0
 def __init__(self, node = None, name = None, session = None, mtu = 1458,
              remoteip = None, objid = None, localip = None, ttl = 255,
              key = None, start = True):
     PyCoreNetIf.__init__(self, node = node, name = name, mtu = mtu)
     self.session = session
     if objid is None:
         # from PyCoreObj
         objid = (((id(self) >> 16) ^ (id(self) & 0xffff)) & 0xffff)
     self.objid = objid
     sessionid = self.session.shortsessionid()
     # interface name on the local host machine
     self.localname = "gt.%s.%s" % (self.objid, sessionid)
     self.transport_type = "raw"
     if not start:
         self.up = False
         return
     
     if remoteip is None:
         raise ValueError, "missing remote IP required for GRE TAP device"
     cmd = ("ip", "link", "add", self.localname, "type", "gretap",
            "remote", str(remoteip))
     if localip:
         cmd += ("local", str(localip))
     if ttl:
         cmd += ("ttl", str(ttl))
     if key:
         cmd += ("key", str(key))
     check_call(cmd)
     cmd = ("ip", "link", "set", self.localname, "up")
     check_call(cmd)
     self.up = True
Exemple #6
0
    def __init__(self,
                 node=None,
                 name=None,
                 session=None,
                 mtu=1458,
                 remoteip=None,
                 objid=None,
                 localip=None,
                 ttl=255,
                 key=None,
                 start=True):
        """
        Creates a GreTap instance.

        :param core.netns.vnode.SimpleLxcNode node: related core node
        :param str name: interface name
        :param core.session.Session session: core session instance
        :param mtu: interface mtu
        :param str remoteip: remote address
        :param int objid: object id
        :param str localip: local address
        :param ttl: ttl value
        :param key: gre tap key
        :param bool start: start flag
        :raises CoreCommandError: when there is a command exception
        """
        PyCoreNetIf.__init__(self, node=node, name=name, mtu=mtu)
        self.session = session
        if objid is None:
            # from PyCoreObj
            objid = ((id(self) >> 16) ^ (id(self) & 0xffff)) & 0xffff
        self.objid = objid
        sessionid = self.session.short_session_id()
        # interface name on the local host machine
        self.localname = "gt.%s.%s" % (self.objid, sessionid)
        self.transport_type = "raw"
        if not start:
            self.up = False
            return

        if remoteip is None:
            raise ValueError, "missing remote IP required for GRE TAP device"
        args = [
            constants.IP_BIN, "link", "add", self.localname, "type", "gretap",
            "remote",
            str(remoteip)
        ]
        if localip:
            args += ["local", str(localip)]
        if ttl:
            args += ["ttl", str(ttl)]
        if key:
            args += ["key", str(key)]
        utils.check_cmd(args)
        args = [constants.IP_BIN, "link", "set", self.localname, "up"]
        utils.check_cmd(args)
        self.up = True
Exemple #7
0
    def __init__(self,
                 node=None,
                 name=None,
                 session=None,
                 mtu=1458,
                 remoteip=None,
                 objid=None,
                 localip=None,
                 ttl=255,
                 key=None,
                 start=True):
        """
        Creates a GreTap instance.

        :param core.netns.nodes.CoreNode node: related core node
        :param str name: interface name
        :param core.session.Session session: core session instance
        :param mtu: interface mtu
        :param str remoteip: remote address
        :param int objid: object id
        :param str localip: local address
        :param ttl: ttl value
        :param key: gre tap key
        :param bool start: start flag
        """
        PyCoreNetIf.__init__(self, node=node, name=name, mtu=mtu)
        self.session = session
        if objid is None:
            # from PyCoreObj
            objid = ((id(self) >> 16) ^ (id(self) & 0xffff)) & 0xffff
        self.objid = objid
        sessionid = self.session.short_session_id()
        # interface name on the local host machine
        self.localname = "gt.%s.%s" % (self.objid, sessionid)
        self.transport_type = "raw"
        if not start:
            self.up = False
            return

        if remoteip is None:
            raise ValueError, "missing remote IP required for GRE TAP device"
        cmd = ("ip", "link", "add", self.localname, "type", "gretap", "remote",
               str(remoteip))
        if localip:
            cmd += ("local", str(localip))
        if ttl:
            cmd += ("ttl", str(ttl))
        if key:
            cmd += ("key", str(key))
        subprocess.check_call(cmd)
        cmd = ("ip", "link", "set", self.localname, "up")
        subprocess.check_call(cmd)
        self.up = True
Exemple #8
0
 def __init__(self, node, name, localname, mtu=1500, net=None, start=True):
     PyCoreNetIf.__init__(self, node=node, name=name, mtu=mtu)
     # name is the device name (e.g. ngeth0, ngeth1, etc.) before it is
     # installed in a node; the Netgraph name is renamed to localname
     # e.g. before install: name = ngeth0 localname = n0_0_123
     #      after install:  name = eth0   localname = n0_0_123
     self.localname = localname
     self.ngid = None
     self.net = None
     self.pipe = None
     self.addrlist = []
     self.hwaddr = None
     self.up = False
     self.hook = "ether"
     if start:
         self.startup()
Exemple #9
0
 def __init__(self, node, name, localname, mtu = 1500, net = None,
              start = True):
     PyCoreNetIf.__init__(self, node = node, name = name, mtu = mtu)
     # name is the device name (e.g. ngeth0, ngeth1, etc.) before it is
     # installed in a node; the Netgraph name is renamed to localname
     # e.g. before install: name = ngeth0 localname = n0_0_123
     #      after install:  name = eth0   localname = n0_0_123
     self.localname = localname
     self.ngid = None
     self.net = None
     self.pipe = None
     self.addrlist = []
     self.hwaddr = None
     self.up = False
     self.hook = "ether"
     if start:
         self.startup()
Exemple #10
0
    def __init__(self, node, name, localname, mtu=1500, net=None, start=True):
        """
        Create a TunTap instance.

        :param core.netns.vnode.SimpleLxcNode node: related core node
        :param str name: interface name
        :param str localname: local interface name
        :param mtu: interface mtu
        :param net: related network
        :param bool start: start flag
        """
        PyCoreNetIf.__init__(self, node=node, name=name, mtu=mtu)
        self.localname = localname
        self.up = False
        self.transport_type = "virtual"
        if start:
            self.startup()
Exemple #11
0
    def __init__(self, node, name, localname, mtu=1500, net=None, start=True):
        """
        Creates a VEth instance.

        :param core.netns.vnode.SimpleLxcNode node: related core node
        :param str name: interface name
        :param str localname: interface local name
        :param mtu: interface mtu
        :param net: network
        :param bool start: start flag
        :raises CoreCommandError: when there is a command exception
        """
        # note that net arg is ignored
        PyCoreNetIf.__init__(self, node=node, name=name, mtu=mtu)
        self.localname = localname
        self.up = False
        if start:
            self.startup()
Exemple #12
0
    def __init__(self, node, name, localname, mtu=1500, net=None, start=True):
        """
        Creates a VEth instance.

        :param core.netns.nodes.CoreNode node: related core node
        :param str name: interface name
        :param str localname: interface local name
        :param mtu: interface mtu
        :param net: network
        :param bool start: start flag
        :return:
        """
        # note that net arg is ignored
        PyCoreNetIf.__init__(self, node=node, name=name, mtu=mtu)
        self.localname = localname
        self.up = False
        if start:
            self.startup()
Exemple #13
0
    def __init__(self,
                 node=None,
                 name=None,
                 session=None,
                 mtu=1458,
                 remoteip=None,
                 objid=None,
                 localip=None,
                 ttl=255,
                 key=None,
                 start=True):
        PyCoreNetIf.__init__(self, node=node, name=name, mtu=mtu)
        self.session = session
        if objid is None:
            # from PyCoreObj
            objid = (((id(self) >> 16) ^ (id(self) & 0xffff)) & 0xffff)
        self.objid = objid
        sessionid = self.session.shortsessionid()
        # interface name on the local host machine
        self.localname = "gt.%s.%s" % (self.objid, sessionid)
        self.transport_type = "raw"
        if not start:
            self.up = False
            return

        if remoteip is None:
            raise ValueError, "missing remote IP required for GRE TAP device"
        cmd = ("ip", "link", "add", self.localname, "type", "gretap", "remote",
               str(remoteip))
        if localip:
            cmd += ("local", str(localip))
        if ttl:
            cmd += ("ttl", str(ttl))
        if key:
            cmd += ("key", str(key))
        check_call(cmd)
        cmd = ("ip", "link", "set", self.localname, "up")
        check_call(cmd)
        self.up = True
Exemple #14
0
    def __init__(self, session, objid=None, name=None, mtu=1500, start=True):
        """
        Create an RJ45Node instance.

        :param core.session.Session session: core session instance
        :param int objid: node id
        :param str name: node name
        :param mtu: rj45 mtu
        :param bool start: start flag
        :return:
        """
        PyCoreNode.__init__(self, session, objid, name, start=start)
        # this initializes net, params, poshook
        PyCoreNetIf.__init__(self, node=self, name=name, mtu=mtu)
        self.up = False
        self.lock = threading.RLock()
        self.ifindex = None
        # the following are PyCoreNetIf attributes
        self.transport_type = "raw"
        self.localname = name
        if start:
            self.startup()
Exemple #15
0
    def __init__(self, session, objid=None, name=None, mtu=1500, start=True):
        """
        Create an RJ45Node instance.

        :param core.session.Session session: core session instance
        :param int objid: node id
        :param str name: node name
        :param mtu: rj45 mtu
        :param bool start: start flag
        :return:
        """
        PyCoreNode.__init__(self, session, objid, name, start=start)
        PyCoreNetIf.__init__(self, node=self, name=name, mtu=mtu)
        self.up = False
        self.lock = threading.RLock()
        self.ifindex = None
        # the following are PyCoreNetIf attributes
        self.transport_type = "raw"
        self.localname = name
        self.old_up = False
        self.old_addrs = []

        if start:
            self.startup()