aboutsummaryrefslogtreecommitdiffstats
path: root/test/vpp_ip_route.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/vpp_ip_route.py')
-rw-r--r--test/vpp_ip_route.py20
1 files changed, 16 insertions, 4 deletions
diff --git a/test/vpp_ip_route.py b/test/vpp_ip_route.py
index 06a963cfd88..d36c56761e3 100644
--- a/test/vpp_ip_route.py
+++ b/test/vpp_ip_route.py
@@ -75,7 +75,9 @@ def address_proto(ip_addr):
return FibPathProto.FIB_PATH_NH_PROTO_IP6
-def find_route(test, addr, len, table_id=0, sw_if_index=None):
+def find_route(
+ test, addr, len, table_id=0, sw_if_index=None, ignore_default_route=False
+):
prefix = mk_network(addr, len)
if 4 == prefix.version:
@@ -86,7 +88,13 @@ def find_route(test, addr, len, table_id=0, sw_if_index=None):
for e in routes:
if table_id == e.route.table_id and str(e.route.prefix) == str(prefix):
if not sw_if_index:
- return True
+ # if the route is a default one of the table:
+ # 0.0.0.0/0, 0.0.0.0/32, 240.0.0.0/4, 255.255.255.255/32
+ return not (
+ ignore_default_route
+ and e.route.n_paths == 1
+ and e.route.paths[0].type == FibPathType.FIB_PATH_TYPE_DROP
+ )
else:
# should be only one path if the user is looking
# for the interface the route is reachable through
@@ -161,15 +169,17 @@ def fib_interface_ip_prefix(test, addr, len, sw_if_index):
class VppIpTable(VppObject):
- def __init__(self, test, table_id, is_ip6=0, register=True):
+ def __init__(self, test, table_id, is_ip6=0, register=True, name=""):
self._test = test
+ self.name = name
self.table_id = table_id
self.is_ip6 = is_ip6
self.register = register
def add_vpp_config(self):
self._test.vapi.ip_table_add_del(
- is_add=1, table={"is_ip6": self.is_ip6, "table_id": self.table_id}
+ is_add=1,
+ table={"is_ip6": self.is_ip6, "table_id": self.table_id, "name": self.name},
)
if self.register:
self._test.registry.register(self, self._test.logger)
@@ -601,6 +611,7 @@ class VppIpRoute(VppObject):
self.prefix.network_address,
self.prefix.prefixlen,
self.table_id,
+ ignore_default_route=True,
)
def object_id(self):
@@ -716,6 +727,7 @@ class VppIpRouteV2(VppObject):
self.prefix.network_address,
self.prefix.prefixlen,
self.table_id,
+ ignore_default_route=True,
)
def object_id(self):