@@ -208,6 +208,9 @@ def check_route(duthost, route, dev_port, operation):
208
208
cmd = ' -c "show ip route {} json"' .format (route )
209
209
for asichost in duthost .frontend_asics :
210
210
out = json .loads (asichost .run_vtysh (cmd )['stdout' ])
211
+ if len (out ) == 0 :
212
+ logger .info ("Route table empty on asic {}, check other asic" .format (asichost .asic_index ))
213
+ continue
211
214
nexthops = out [route ][0 ]['nexthops' ]
212
215
routes_per_asic = [hop ['interfaceName' ] for hop in nexthops if 'interfaceName' in hop .keys ()]
213
216
result .extend (routes_per_asic )
@@ -376,7 +379,8 @@ def get_dev_port_and_route(duthost, asichost, dst_prefix_set):
376
379
377
380
def test_route_flap (duthosts , tbinfo , ptfhost , ptfadapter ,
378
381
get_function_completeness_level , announce_default_routes ,
379
- enum_rand_one_per_hwsku_frontend_hostname , enum_rand_one_frontend_asic_index ,
382
+ enum_rand_one_per_hwsku_frontend_hostname ,
383
+ enum_upstream_dut_hostname , enum_rand_one_frontend_asic_index ,
380
384
setup_standby_ports_on_non_enum_rand_one_per_hwsku_frontend_host_m , # noqa F811
381
385
toggle_all_simulator_ports_to_enum_rand_one_per_hwsku_frontend_host_m , loganalyzer ): # noqa F811
382
386
ptf_ip = tbinfo ['ptf_ip' ]
@@ -385,6 +389,7 @@ def test_route_flap(duthosts, tbinfo, ptfhost, ptfadapter,
385
389
nexthop = common_config .get ('nhipv4' , NHIPV4 )
386
390
duthost = duthosts [enum_rand_one_per_hwsku_frontend_hostname ]
387
391
asichost = duthost .asic_instance (enum_rand_one_frontend_asic_index )
392
+ duthost_upstream = duthosts [enum_upstream_dut_hostname ]
388
393
if loganalyzer :
389
394
ignoreRegex = [
390
395
".*ERR.*\" missed_FRR_routes\" .*"
@@ -441,7 +446,10 @@ def test_route_flap(duthosts, tbinfo, ptfhost, ptfadapter,
441
446
neighbor_type = get_neighbor_info (duthost , dev_port , tbinfo )
442
447
recv_neigh_list = get_all_recv_neigh (duthosts , neighbor_type )
443
448
logger .info ("Receiving ports neighbor list : {}" .format (recv_neigh_list ))
444
- ptf_recv_ports = get_all_ptf_recv_ports (duthosts , tbinfo , recv_neigh_list )
449
+ if 't2' in tbinfo ["topo" ]["type" ] and duthost == duthost_upstream :
450
+ ptf_recv_ports = get_ptf_recv_ports (duthost , tbinfo )
451
+ else :
452
+ ptf_recv_ports = get_all_ptf_recv_ports (duthosts , tbinfo , recv_neigh_list )
445
453
logger .info ("Receiving ptf ports list : {}" .format (ptf_recv_ports ))
446
454
447
455
exabgp_port = get_exabgp_port (duthost , tbinfo , dev_port )
0 commit comments