47
47
48
48
RC_OK = 0
49
49
RC_ERR = - 1
50
-
50
+ default_vrf_oid = ""
51
51
52
52
report_level = syslog .LOG_ERR
53
53
write_to_syslog = True
@@ -194,7 +194,7 @@ def filter_out_vnet_ip2me_routes(vnet_routes):
194
194
vnet_routes .pop (vnet )
195
195
196
196
197
- def get_vnet_routes_from_app_db (default_vrf_oid ):
197
+ def get_vnet_routes_from_app_db ():
198
198
''' Returns dictionary of VNET routes configured per each VNET in APP_DB.
199
199
Format: { <vnet_name>: { 'routes': [ <pfx/pfx_len> ], 'vrf_oid': <oid> } }
200
200
'''
@@ -222,8 +222,13 @@ def get_vnet_routes_from_app_db(default_vrf_oid):
222
222
if vnet_name not in vnet_intfs :
223
223
# this route has no vnet_intf and may be part of default VRF.
224
224
vnet_table = swsscommon .Table (db , 'VNET_TABLE' )
225
- scope = vnet_table .get (vnet_name )[1 ][1 ][1 ]
226
- if scope == 'default' :
225
+ scope_value = ""
226
+ # "Vnet_v4_in_v4-0": [("vxlan_tunnel", "tunnel_v4"), ("scope", "default"), ("vni", "10000"), ("peer_list", "")]
227
+ for key ,value in vnet_table .get (vnet_name )[1 ]:
228
+ if key == "scope" :
229
+ scope_value = value
230
+ break
231
+ if scope_value == 'default' :
227
232
vnet_routes [vnet_name ]['vrf_oid' ] = default_vrf_oid
228
233
else :
229
234
assert "Non-default VRF route present without vnet interface."
@@ -236,7 +241,7 @@ def get_vnet_routes_from_app_db(default_vrf_oid):
236
241
return vnet_routes
237
242
238
243
239
- def get_vnet_routes_from_asic_db (default_vrf_oid ):
244
+ def get_vnet_routes_from_asic_db ():
240
245
''' Returns dictionary of VNET routes configured per each VNET in ASIC_DB.
241
246
Format: { <vnet_name>: { 'routes': [ <pfx/pfx_len> ], 'vrf_oid': <oid> } }
242
247
'''
@@ -287,7 +292,7 @@ def get_vnet_routes_from_asic_db(default_vrf_oid):
287
292
return vnet_routes
288
293
289
294
290
- def get_vnet_routes_diff (default_vrf_oid , routes_1 , routes_2 , verify_default_vrf_routes = False ):
295
+ def get_vnet_routes_diff (routes_1 , routes_2 , verify_default_vrf_routes = False ):
291
296
''' Returns all routes present in routes_2 dictionary but missed in routes_1
292
297
Format: { <vnet_name>: { 'routes': [ <pfx/pfx_len> ] } }
293
298
'''
@@ -352,15 +357,15 @@ def main():
352
357
return rc
353
358
asic_db = swsscommon .DBConnector ('ASIC_DB' , 0 )
354
359
virtual_router = swsscommon .Table (asic_db , 'ASIC_STATE:SAI_OBJECT_TYPE_VIRTUAL_ROUTER' )
355
- default_vrf_oid = ""
356
360
if virtual_router .getKeys () != []:
361
+ global default_vrf_oid
357
362
default_vrf_oid = virtual_router .getKeys ()[0 ]
358
363
359
- app_db_vnet_routes = get_vnet_routes_from_app_db (default_vrf_oid )
360
- asic_db_vnet_routes = get_vnet_routes_from_asic_db (default_vrf_oid )
364
+ app_db_vnet_routes = get_vnet_routes_from_app_db ()
365
+ asic_db_vnet_routes = get_vnet_routes_from_asic_db ()
361
366
362
- missed_in_asic_db_routes = get_vnet_routes_diff (default_vrf_oid , asic_db_vnet_routes , app_db_vnet_routes ,True )
363
- missed_in_app_db_routes = get_vnet_routes_diff (default_vrf_oid , app_db_vnet_routes , asic_db_vnet_routes )
367
+ missed_in_asic_db_routes = get_vnet_routes_diff (asic_db_vnet_routes , app_db_vnet_routes ,True )
368
+ missed_in_app_db_routes = get_vnet_routes_diff (app_db_vnet_routes , asic_db_vnet_routes )
364
369
missed_in_sdk_routes = get_sdk_vnet_routes_diff (asic_db_vnet_routes )
365
370
366
371
res = {}
0 commit comments