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')
def setup(self): require_user("root") self.l2tp = L2tp() self.log_id = str(uuid.uuid4()) self.ndb = NDB( log="../ndb-%s-%s.log" % (os.getpid(), self.log_id), rtnl_debug=True, ) self.netif = uifname() self.l2tpeth0 = uifname() self.localnet = allocate_network() self.remotenet = allocate_network() self.localrange = [str(x) for x in self.localnet] self.remoterange = [str(x) for x in self.remotenet] # create the "network" interface (self.ndb.interfaces.create(ifname=self.netif, kind="dummy").set( "state", "up").add_ip("%s/24" % (self.localrange[1])).commit())
def setup(self): require_user('root') self.ipnets = [allocate_network() for _ in range(5)] self.ipranges = [[str(x) for x in net] for net in self.ipnets] self.ndb = NDB(db_provider=self.db_provider, db_spec=self.db_spec, rtnl_log=True, sources=self.nl_class(**self.nl_kwarg))
def __init__(self, request, tmpdir, **kwarg): self.spec = SpecContextManager(request, tmpdir) self.netns = None # # the cleanup registry self.interfaces = {} self.namespaces = {} if 'log' not in kwarg: kwarg['log'] = self.spec.log_spec if 'rtnl_debug' not in kwarg: kwarg['rtnl_debug'] = True kind = 'local' self.table = None kwarg['db_provider'] = 'sqlite3' kwarg['db_spec'] = ':memory:' if hasattr(request, 'param'): if isinstance(request.param, ContextParams): kind = request.param.target self.table = request.param.table kwarg['db_provider'] = request.param.db_provider kwarg['db_spec'] = request.param.db_spec elif isinstance(request.param, (tuple, list)): kind, self.table = request.param else: kind = request.param if kind == 'local': sources = [{'target': 'localhost', 'kind': 'local'}] elif kind == 'netns': self.netns = self.new_nsname sources = [{ 'target': 'localhost', 'kind': 'netns', 'netns': self.netns }] else: sources = None if sources is not None: kwarg['sources'] = sources # # select the DB to work on db_name = os.environ.get('PYROUTE2_TEST_DBNAME') if isinstance(db_name, basestring) and len(db_name): kwarg['db_provider'] = 'psycopg2' kwarg['db_spec'] = {'dbname': db_name} # # this instance is to be tested, so do NOT use it # in utility methods self.ndb = NDB(**kwarg) self.ipr = self.ndb.sources['localhost'].nl.clone() # # IPAM self.ipnets = [allocate_network() for _ in range(5)] self.ipranges = [[str(x) for x in net] for net in self.ipnets]
def setup(self): require_user('root') self.ipnets = [allocate_network() for _ in range(5)] self.ipranges = [[str(x) for x in net] for net in self.ipnets] self.ndb = NDB(db_provider=self.db_provider, db_spec=self.db_spec, debug=True) self.ndb.log('../ndb-%s-%s.log' % (os.getpid(), id(self.ndb))) self.interfaces = []
def setup(self): require_user('root') self.interfaces = [] self.log_id = str(uuid.uuid4()) self.ipnets = [allocate_network() for _ in range(2)] self.ipranges = [[str(x) for x in net] for net in self.ipnets] self.ndb = NDB(db_provider=self.db_provider, db_spec=self.db_spec, log='../ndb-%s-%s.log' % (os.getpid(), self.log_id), debug=True)
def setup(self): self.ip = IPRoute() self.ipnets = [allocate_network() for _ in range(3)] self.ipranges = [[str(x) for x in net] for net in self.ipnets] self.ifaces = [] self.ifnames = [] try: self.dev, idx = self.create() except IndexError: pass
def setup(self): require_user('root') self.netns = str(uuid.uuid4()) self.ipnets = [allocate_network() for _ in range(3)] self.ipranges = [[str(x) for x in net] for net in self.ipnets] self.sources = [{'target': 'localhost'}, {'netns': self.netns}] self.ndb = NDB(db_provider=self.db_provider, db_spec=self.db_spec, sources=self.sources, debug=True) self.ndb.log('../ndb-%s-%s.log' % (os.getpid(), id(self.ndb)))
def setup(self): require_user('root') self.ipnets = [] self.wg = WireGuard() self.log_id = uifname() self.ndb = NDB(log='../ndb-%s-%s.log' % (os.getpid(), self.log_id), rtnl_debug=True) self.netif = uifname() self.wg0if = uifname() self.wg1if = uifname() self.ifnames = [self.netif, self.wg0if, self.wg1if] self.ipnets.append(allocate_network()) self.ipnets.append(allocate_network()) self.ipranges = [[str(x) for x in net] for net in self.ipnets] # create the "network" interface (self.ndb.interfaces.create(ifname=self.netif, kind='dummy').set( 'state', 'up').add_ip('%s/24' % (self.ipranges[0][1])).commit()) # create one peer (self.ndb.interfaces.create(ifname=self.wg0if, kind='wireguard').set( 'state', 'up').add_ip('%s/24' % (self.ipranges[1][1])).commit()) # create another peer (self.ndb.interfaces.create(ifname=self.wg1if, kind='wireguard').set( 'state', 'up').add_ip('%s/24' % (self.ipranges[1][2])).commit())
def setup(self): require_user('root') self.log_id = str(uuid.uuid4()) self.netns = str(uuid.uuid4()) self.ipnets = [allocate_network() for _ in range(3)] self.ipranges = [[str(x) for x in net] for net in self.ipnets] self.sources = [{'target': 'localhost'}, {'netns': self.netns}, {'target': 'localhost/netns', 'kind': 'nsmanager'}] self.ndb = NDB(db_provider=self.db_provider, db_spec=self.db_spec, sources=self.sources, log='../ndb-%s-%s.log' % (os.getpid(), self.log_id), rtnl_debug=True, auto_netns=True)
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')
def setup(self): self.ipnet = allocate_network() self.iprange = [str(x) for x in self.ipnet]