diff --git a/scripts/vnet_route_check.py b/scripts/vnet_route_check.py index db50503cd9..0bf6ca12c3 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 = {}