Esempio n. 1
0
    def test_mass_ipv6(self):
        #
        # Achtung! This test is time consuming.
        # It is really time consuming, I'm not not
        # kidding you. Beware.
        #
        require_user('root')
        ipv6net = allocate_network('ipv6')
        base = str(ipv6net.network) + '{0}'
        limit = int(os.environ.get('PYROUTE2_SLIMIT', '0x800'), 16)

        # add addresses
        for idx in range(limit):
            self.ip.addr('add', self.ifaces[0], base.format(hex(idx)[2:]), 48)

        # assert addresses in two steps, to ease debug
        addrs = self.ip.get_addr(10)
        assert len(addrs) >= limit

        # clean up addresses
        #
        # it is not required, but if you don't do that,
        # you'll get this on the interface removal:
        #
        # >> kernel:BUG: soft lockup - CPU#0 stuck for ...
        #
        # so, not to scare people, remove addresses gracefully
        # one by one
        #
        # it also verifies all the addresses are in place
        for idx in reversed(range(limit)):
            self.ip.addr('delete', self.ifaces[0], base.format(hex(idx)[2:]),
                         48)

        free_network(ipv6net, 'ipv6')
Esempio n. 2
0
 def teardown(self):
     with self.nl_class(**self.nl_kwarg) as ipr:
         for link in reversed(self.interfaces):
             ipr.link('del', index=link)
     self.ndb.close()
     for net in self.ipnets:
         free_network(net)
Esempio n. 3
0
 def teardown(self):
     with self.nl_class(**self.nl_kwarg) as ipr:
         for link in reversed(self.interfaces):
             ipr.link('del', index=link)
     self.ndb.close()
     for net in self.ipnets:
         free_network(net)
Esempio n. 4
0
 def teardown(self):
     with NDB() as indb:
         if self.nsname:
             (indb
              .sources
              .add(netns=self.nsname))
         for link in reversed(self.interfaces):
             try:
                 (indb
                  .interfaces[link]
                  .remove()
                  .commit())
             except Exception:
                 pass
         for link in reversed(self.interfaces):
             try:
                 (indb
                  .interfaces[self.getspec(ifname=link)]
                  .remove()
                  .commit())
             except Exception:
                 pass
     self.ndb.close()
     for net in self.ipnets:
         free_network(net)
     if self.nsname:
         netns.remove(self.nsname)
Esempio n. 5
0
 def teardown(self):
     with self.nl_class(**self.nl_kwarg) as ipr:
         for link in reversed(self.interfaces):
             try:
                 ipr.link('del', index=ipr.link_lookup(ifname=link)[0])
             except Exception:
                 pass
     self.ndb.close()
     for net in self.ipnets:
         free_network(net)
Esempio n. 6
0
 def teardown(self):
     with self.nl_class(**self.nl_kwarg) as ipr:
         for link in reversed(self.interfaces):
             try:
                 ipr.link('del', index=ipr.link_lookup(ifname=link)[0])
             except Exception:
                 pass
     self.ndb.close()
     for net in self.ipnets:
         free_network(net)
Esempio n. 7
0
 def teardown(self):
     for net in self.ipnets:
         free_network(net)
     if hasattr(self, 'ifaces'):
         for dev in reversed(self.ifaces):
             try:
                 self.ip.link('delete', index=dev)
             except:
                 pass
     for name in reversed(self.ifnames):
         try:
             (self.ip.link('del',
                           index=(self.ip.link_lookup(ifname=name)[0])))
         except:
             pass
     self.ip.close()
Esempio n. 8
0
 def teardown(self):
     for net in self.ipnets:
         free_network(net)
     if hasattr(self, 'ifaces'):
         for dev in reversed(self.ifaces):
             try:
                 self.ip.link('delete', index=dev)
             except:
                 pass
     for name in reversed(self.ifnames):
         try:
             (self
              .ip
              .link('del', index=(self
                                  .ip
                                  .link_lookup(ifname=name)[0])))
         except:
             pass
     self.ip.close()
 def teardown(self):
     '''
     1. close the test NDB
     2. remove the registered interfaces, ignore not existing
     '''
     self.ndb.close()
     self.ipr.close()
     for (ifname, nsname) in self.interfaces.items():
         try:
             ipr = None
             #
             # spawn ipr to remove the interface
             if nsname is not None:
                 ipr = NetNS(nsname)
             else:
                 ipr = IPRoute()
             #
             # lookup the interface index
             index = list(ipr.link_lookup(ifname=ifname))
             if len(index):
                 index = index[0]
             else:
                 #
                 # ignore not existing interfaces
                 continue
             #
             # try to remove it
             ipr.link('del', index=index)
         except NetlinkError as e:
             #
             # ignore if removed (t.ex. by another process)
             if e.code != errno.ENODEV:
                 raise
         finally:
             if ipr is not None:
                 ipr.close()
     for nsname in self.namespaces:
         netns.remove(nsname)
     for net in self.ipnets:
         free_network(net)
Esempio n. 10
0
    def test_mass_ipv6(self):
        #
        # Achtung! This test is time consuming.
        # It is really time consuming, I'm not not
        # kidding you. Beware.
        #
        require_user('root')
        ipv6net = allocate_network('ipv6')
        base = str(ipv6net.network) + '{0}'
        limit = int(os.environ.get('PYROUTE2_SLIMIT', '0x800'), 16)

        # add addresses
        for idx in range(limit):
            self.ip.addr('add', self.ifaces[0],
                         base.format(hex(idx)[2:]), 48)

        # assert addresses in two steps, to ease debug
        addrs = self.ip.get_addr(10)
        assert len(addrs) >= limit

        # clean up addresses
        #
        # it is not required, but if you don't do that,
        # you'll get this on the interface removal:
        #
        # >> kernel:BUG: soft lockup - CPU#0 stuck for ...
        #
        # so, not to scare people, remove addresses gracefully
        # one by one
        #
        # it also verifies all the addresses are in place
        for idx in reversed(range(limit)):
            self.ip.addr('delete', self.ifaces[0],
                         base.format(hex(idx)[2:]), 48)

        free_network(ipv6net, 'ipv6')
Esempio n. 11
0
 def teardown(self):
     free_network(self.ipnet)
Esempio n. 12
0
 def test_route_mpls_via_ipv6(self):
     ipv6net = allocate_network('ipv6')
     address = str(ipv6net.network) + '7c32'
     self._test_route_mpls_via_ipv(socket.AF_INET6, address, 0x20)
     free_network(ipv6net, 'ipv6')
Esempio n. 13
0
 def teardown(self):
     with NDB() as ndb:
         for i in self.ifnames:
             (ndb.interfaces[i].remove().commit())
     for net in self.ipnets:
         free_network(net)
Esempio n. 14
0
 def test_route_mpls_via_ipv6(self):
     ipv6net = allocate_network('ipv6')
     address = str(ipv6net.network) + '7c32'
     self._test_route_mpls_via_ipv(socket.AF_INET6, address, 0x20)
     free_network(ipv6net, 'ipv6')
Esempio n. 15
0
 def teardown(self):
     for net in self.ipnets:
         free_network(net)
     self.ndb.close()
     netns.remove(self.netns)
Esempio n. 16
0
 def teardown(self):
     for net in self.ipnets:
         free_network(net)
     self.ndb.close()
     netns.remove(self.netns)
Esempio n. 17
0
 def teardown(self):
     with NDB() as ndb:
         (ndb.interfaces[self.netif].remove().commit())
     self.ndb.close()
     free_network(self.localnet)
     free_network(self.remotenet)