Beispiel #1
0
    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")
Beispiel #2
0
    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")
Beispiel #3
0
 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)
Beispiel #4
0
 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)
Beispiel #5
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()
Beispiel #6
0
    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)
Beispiel #7
0
    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)
Beispiel #8
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)
Beispiel #9
0
 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)
Beispiel #10
0
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
Beispiel #11
0
Datei: util.py Projekt: zzqcn/vpp
 def bin_mac(self):
     """ MAC address """
     return mac_pton(self._mac)
Beispiel #12
0
 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
Beispiel #13
0
 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)
Beispiel #14
0
 def bin_mac(self):
     """ MAC address """
     return mac_pton(self._mac)
Beispiel #15
0
 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
Beispiel #16
0
 def delete_p2p_ethernet(self, parent_if, remote_mac):
     self.vapi.p2p_ethernet_del(parent_if.sw_if_index,
                                mac_pton(remote_mac))
Beispiel #17
0
 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)
Beispiel #18
0
 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)
Beispiel #19
0
 def delete_p2p_ethernet(self, parent_if, remote_mac):
     self.vapi.p2p_ethernet_del(parent_if.sw_if_index, mac_pton(remote_mac))