From 2b5658ddbd9d03a8d922b89bd6efe4efbf256e41 Mon Sep 17 00:00:00 2001 From: "Shahzad Iqbal (SHAHZADIQBAL)" Date: Sun, 31 Jul 2022 14:52:49 -0700 Subject: [PATCH] Modified Vnet_route_check to ignore the Vxlan tunnel routes which use default VRF. --- scripts/vnet_route_check.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/scripts/vnet_route_check.py b/scripts/vnet_route_check.py index db50503cd9b..0bf6ca12c3c 100755 --- a/scripts/vnet_route_check.py +++ b/scripts/vnet_route_check.py @@ -111,7 +111,7 @@ def get_all_rifs_oids(): ''' db = swsscommon.DBConnector('COUNTERS_DB', 0) rif_table = swsscommon.Table(db, 'COUNTERS_RIF_NAME_MAP') - + rif_name_oid_map = dict(rif_table.get('')[1]) return rif_name_oid_map @@ -219,8 +219,18 @@ def get_vnet_routes_from_app_db(): vnet_routes[vnet_name] = {} vnet_routes[vnet_name]['routes'] = [] - intf = vnet_intfs[vnet_name][0] - vnet_routes[vnet_name]['vrf_oid'] = vnet_vrfs.get(intf, 'None') + if vnet_name not in vnet_intfs: + # this route has no vnet_intf and may be part of default VRF. + vnet_table = swsscommon.Table(db, 'VNET_TABLE') + scope = vnet_table.get(vnet_name)[1][1][1] + if scope == 'default': + del vnet_routes[vnet_name] + continue + else: + assert "Non-default VRF route present without vnet interface." + else: + intf = vnet_intfs[vnet_name][0] + vnet_routes[vnet_name]['vrf_oid'] = vnet_vrfs.get(intf, 'None') vnet_routes[vnet_name]['routes'].append(vnet_route) @@ -237,7 +247,7 @@ def get_vnet_routes_from_asic_db(): vnet_vrfs = get_vrf_entries() vnet_vrfs_oids = [vnet_vrfs[k] for k in vnet_vrfs] - + vnet_intfs = get_vnet_intfs() vrf_oid_to_vnet_map = {}