X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Fvpp_interface.py;h=7b9de828e6c7ea7901aaa4a6ae10dd0d1cb16323;hb=097fa66b986f06281f603767d321ab13ab6c88c3;hp=d586c849b02f1a86b1371b4d0401c0b092d0a861;hpb=6348074be4a7efd30f7f6af4c4ec940076afe2fe;p=vpp.git diff --git a/test/vpp_interface.py b/test/vpp_interface.py index d586c849b02..7b9de828e6c 100644 --- a/test/vpp_interface.py +++ b/test/vpp_interface.py @@ -7,6 +7,12 @@ from six import moves from util import Host, mk_ll_addr from vpp_papi import mac_ntop +from ipaddress import IPv4Network + +try: + text_type = unicode +except NameError: + text_type = str @six.add_metaclass(abc.ABCMeta) @@ -229,7 +235,7 @@ class VppInterface(object): self._remote_addr_n = {socket.AF_INET: self.remote_ip4n, socket.AF_INET6: self.remote_ip6n} - r = self.test.vapi.sw_interface_dump() + r = self.test.vapi.sw_interface_dump(sw_if_index=self.sw_if_index) for intf in r: if intf.sw_if_index == self.sw_if_index: self._name = intf.interface_name.split(b'\0', @@ -406,9 +412,10 @@ class VppInterface(object): def is_ip4_entry_in_fib_dump(self, dump): for i in dump: - if i.address == self.local_ip4n and \ - i.address_length == self.local_ip4_prefix_len and \ - i.table_id == self.ip4_table_id: + n = IPv4Network(text_type("%s/%d" % (self.local_ip4, + self.local_ip4_prefix_len))) + if i.route.prefix == n and \ + i.route.table_id == self.ip4_table_id: return True return False @@ -429,7 +436,7 @@ class VppInterface(object): enable) def query_vpp_config(self): - dump = self.test.vapi.sw_interface_dump() + dump = self.test.vapi.sw_interface_dump(sw_if_index=self.sw_if_index) return self.is_interface_config_in_dump(dump) def get_interface_config_from_dump(self, dump): @@ -463,3 +470,11 @@ class VppInterface(object): def __str__(self): return self.name + + def get_rx_stats(self): + c = self.test.statistics.get_counter("^/if/rx$") + return c[0][self.sw_if_index] + + def get_tx_stats(self): + c = self.test.statistics.get_counter("^/if/tx$") + return c[0][self.sw_if_index]