def test_p2p_subif_creation_1k(self): """create 1k of p2p subifs""" self.logger.info("FFP_TEST_START_0001") macs = [] clients = 1000 mac = int("dead00000000", 16) for i in range(1, clients+1): try: macs.append(':'.join(re.findall('..', '{:02x}'.format( mac+i)))) self.vapi.p2p_ethernet_add(self.pg2.sw_if_index, mac_pton(macs[i-1]), i) except Exception: self.logger.info("Failed to create subif %d %s" % ( i, macs[i-1])) raise intfs = self.vapi.cli("show interface").split("\n") count = 0 for intf in intfs: if intf.startswith('pg2.'): count += 1 self.assertEqual(count, clients) self.logger.info("FFP_TEST_FINISH_0001")
def test_p2p_subif_creation_1k(self): """create 1k of p2p subifs""" self.logger.info("FFP_TEST_START_0001") macs = [] clients = 1000 mac = int("dead00000000", 16) for i in range(1, clients + 1): try: macs.append(':'.join(re.findall('..', '{:02x}'.format(mac + i)))) self.vapi.p2p_ethernet_add(self.pg2.sw_if_index, mac_pton(macs[i - 1]), i) except Exception: self.logger.info("Failed to create subif %d %s" % (i, macs[i - 1])) raise intfs = self.vapi.cli("show interface").split("\n") count = 0 for intf in intfs: if intf.startswith('pg2.'): count += 1 self.assertEqual(count, clients) self.logger.info("FFP_TEST_FINISH_0001")
def test_mac_to_binary(self): """ MAC to binary and back """ mac = 'aa:bb:cc:dd:ee:ff' b = mac_pton(mac) mac2 = mac_ntop(b) self.assertEqual(type(mac), type(mac2)) self.assertEqual(mac2, mac)
def remove_vpp_config(self): cip = socket.inet_pton(socket.AF_INET, self.client_ip) cmac = mac_pton(self.client_mac) self.unconfig() self.test.vapi.pppoe_add_del_session( cip, cmac, session_id=self.session_id, decap_vrf_id=self.decap_vrf_id, is_add=0)
def add_vpp_config(self): cip = socket.inet_pton(socket.AF_INET, self.client_ip) cmac = mac_pton(self.client_mac) r = self.test.vapi.pppoe_add_del_session( cip, cmac, session_id=self.session_id, decap_vrf_id=self.decap_vrf_id) self.set_sw_if_index(r.sw_if_index) self.generate_remote_hosts()
def configure_ipv4_neighbors(self): """For every remote host assign neighbor's MAC to IPv4 addresses. :param vrf_id: The FIB table / VRF ID. (Default value = 0) """ for host in self._remote_hosts: macn = mac_pton(host.mac) ipn = host.ip4n self.test.vapi.ip_neighbor_add_del(self.sw_if_index, macn, ipn)
def delete_l2_fib_entry(self, bd_id, hosts): """ Delete required number of L2 FIB entries. :param int count: Number of L2 FIB entries to be created. """ ifs = [self.pg_interfaces[i] for i in self.bd_ifs(bd_id)] for pg_if in ifs: swif = pg_if.sw_if_index for host in hosts[swif]: self.vapi.l2fib_add_del( mac_pton(host.mac), bd_id, swif, is_add=0)
def config_l2_fib_entries(self, bd_id, hosts): """ Config required number of L2 FIB entries. :param int bd_id: BD's id :param int count: Number of L2 FIB entries to be created. :param int start: Starting index of the host list. (Default value = 0) """ ifs = [self.pg_interfaces[i] for i in self.bd_ifs(bd_id)] for pg_if in ifs: swif = pg_if.sw_if_index for host in hosts[swif]: self.vapi.l2fib_add_del( mac_pton(host.mac), bd_id, swif, static_mac=1)
def __init__(self, test, sw_if_index, mac_addr, nbr_addr, af=AF_INET, is_static=False, is_no_fib_entry=0): self._test = test self.sw_if_index = sw_if_index self.mac_addr = mac_pton(mac_addr) self.af = af self.is_static = is_static self.is_no_fib_entry = is_no_fib_entry self.nbr_addr = nbr_addr self.nbr_addr_n = inet_pton(af, nbr_addr)
def find_nbr(test, sw_if_index, ip_addr, is_static=0, inet=AF_INET, mac=None): nbrs = test.vapi.ip_neighbor_dump(sw_if_index, is_ipv6=1 if AF_INET6 == inet else 0) if inet == AF_INET: s = 4 else: s = 16 nbr_addr = inet_pton(inet, ip_addr) for n in nbrs: if nbr_addr == n.ip_address[:s] \ and is_static == n.is_static: if mac: if n.mac_address == mac_pton(mac): return True else: return True return False
def bin_mac(self): """ MAC address """ return mac_pton(self._mac)
def create_p2p_ethernet(self, parent_if, sub_id, remote_mac): p2p = VppP2PSubint(self, parent_if, sub_id, mac_pton(remote_mac)) p2p.admin_up() p2p.config_ip4() return p2p
def test_mac_to_binary(self): mac = 'aa:bb:cc:dd:ee:ff' b = mac_pton(mac) mac2 = mac_ntop(b) self.assertEqual(type(mac), type(mac2)) self.assertEqual(mac2, mac)
def delete_p2p_ethernet(self, parent_if, remote_mac): self.vapi.p2p_ethernet_del(parent_if.sw_if_index, mac_pton(remote_mac))
def create_p2p_ethernet(self, parent_if, sub_id, remote_mac): p2p = VppP2PSubint(self, parent_if, sub_id, mac_pton(remote_mac)) self.p2p_sub_ifs.append(p2p)