@@ -549,7 +549,7 @@ def create_json_dump_per_port_config(db, port_status_dict, per_npu_configdb, asi
549
549
if soc_ipv4_value is not None :
550
550
port_status_dict ["MUX_CABLE" ]["PORTS" ][port_name ]["SERVER" ]["soc_ipv4" ] = soc_ipv4_value
551
551
552
- def get_tunnel_route_per_port (db , port_tunnel_route , per_npu_configdb , per_npu_appl_db , asic_id , port ):
552
+ def get_tunnel_route_per_port (db , port_tunnel_route , per_npu_configdb , per_npu_appl_db , per_npu_asic_db , asic_id , port ):
553
553
554
554
mux_cfg_dict = per_npu_configdb [asic_id ].get_all (
555
555
per_npu_configdb [asic_id ].CONFIG_DB , 'MUX_CABLE|{}' .format (port ))
@@ -559,31 +559,40 @@ def get_tunnel_route_per_port(db, port_tunnel_route, per_npu_configdb, per_npu_a
559
559
dest_address = mux_cfg_dict .get (name , None )
560
560
561
561
if dest_address is not None :
562
- route_keys = per_npu_appl_db [asic_id ].keys (
562
+ kernel_route_keys = per_npu_appl_db [asic_id ].keys (
563
563
per_npu_appl_db [asic_id ].APPL_DB , 'TUNNEL_ROUTE_TABLE:*{}' .format (dest_address ))
564
-
565
- if route_keys is not None and len (route_keys ):
564
+ if_kernel_tunnel_route_programed = kernel_route_keys is not None and len (kernel_route_keys )
565
+
566
+ asic_route_keys = per_npu_asic_db [asic_id ].keys (
567
+ per_npu_asic_db [asic_id ].ASIC_DB , 'ASIC_STATE:SAI_OBJECT_TYPE_ROUTE_ENTRY:*{}*' .format (dest_address ))
568
+ if_asic_tunnel_route_programed = asic_route_keys is not None and len (asic_route_keys )
566
569
570
+ if if_kernel_tunnel_route_programed or if_asic_tunnel_route_programed :
567
571
port_tunnel_route ["TUNNEL_ROUTE" ][port ] = port_tunnel_route ["TUNNEL_ROUTE" ].get (port , {})
568
572
port_tunnel_route ["TUNNEL_ROUTE" ][port ][name ] = {}
569
573
port_tunnel_route ["TUNNEL_ROUTE" ][port ][name ]['DEST' ] = dest_address
570
574
571
- def create_json_dump_per_port_tunnel_route (db , port_tunnel_route , per_npu_configdb , per_npu_appl_db , asic_id , port ):
575
+ port_tunnel_route ["TUNNEL_ROUTE" ][port ][name ]['kernel' ] = if_kernel_tunnel_route_programed
576
+ port_tunnel_route ["TUNNEL_ROUTE" ][port ][name ]['asic' ] = if_asic_tunnel_route_programed
572
577
573
- get_tunnel_route_per_port (db , port_tunnel_route , per_npu_configdb , per_npu_appl_db , asic_id , port )
578
+ def create_json_dump_per_port_tunnel_route (db , port_tunnel_route , per_npu_configdb , per_npu_appl_db , per_npu_asic_db , asic_id , port ):
574
579
575
- def create_table_dump_per_port_tunnel_route (db , print_data , per_npu_configdb , per_npu_appl_db , asic_id , port ):
580
+ get_tunnel_route_per_port (db , port_tunnel_route , per_npu_configdb , per_npu_appl_db , per_npu_asic_db , asic_id , port )
581
+
582
+ def create_table_dump_per_port_tunnel_route (db , print_data , per_npu_configdb , per_npu_appl_db , per_npu_asic_db , asic_id , port ):
576
583
577
584
port_tunnel_route = {}
578
585
port_tunnel_route ["TUNNEL_ROUTE" ] = {}
579
- get_tunnel_route_per_port (db , port_tunnel_route , per_npu_configdb , per_npu_appl_db , asic_id , port )
586
+ get_tunnel_route_per_port (db , port_tunnel_route , per_npu_configdb , per_npu_appl_db , per_npu_asic_db , asic_id , port )
580
587
581
588
for port , route in port_tunnel_route ["TUNNEL_ROUTE" ].items ():
582
589
for dest_name , values in route .items ():
583
590
print_line = []
584
591
print_line .append (port )
585
592
print_line .append (dest_name )
586
593
print_line .append (values ['DEST' ])
594
+ print_line .append ('added' if values ['kernel' ] else '-' )
595
+ print_line .append ('added' if values ['asic' ] else '-' )
587
596
print_data .append (print_line )
588
597
589
598
@muxcable .command ()
@@ -1904,6 +1913,7 @@ def tunnel_route(db, port, json_output):
1904
1913
port = platform_sfputil_helper .get_interface_name (port , db )
1905
1914
1906
1915
per_npu_appl_db = {}
1916
+ per_npu_asic_db = {}
1907
1917
per_npu_configdb = {}
1908
1918
mux_tbl_keys = {}
1909
1919
@@ -1914,6 +1924,9 @@ def tunnel_route(db, port, json_output):
1914
1924
per_npu_appl_db [asic_id ] = swsscommon .SonicV2Connector (use_unix_socket_path = False , namespace = namespace )
1915
1925
per_npu_appl_db [asic_id ].connect (per_npu_appl_db [asic_id ].APPL_DB )
1916
1926
1927
+ per_npu_asic_db [asic_id ] = swsscommon .SonicV2Connector (use_unix_socket_path = False , namespace = namespace )
1928
+ per_npu_asic_db [asic_id ].connect (per_npu_asic_db [asic_id ].ASIC_DB )
1929
+
1917
1930
per_npu_configdb [asic_id ] = swsscommon .SonicV2Connector (use_unix_socket_path = False , namespace = namespace )
1918
1931
per_npu_configdb [asic_id ].connect (per_npu_configdb [asic_id ].CONFIG_DB )
1919
1932
@@ -1947,16 +1960,16 @@ def tunnel_route(db, port, json_output):
1947
1960
port_tunnel_route = {}
1948
1961
port_tunnel_route ["TUNNEL_ROUTE" ] = {}
1949
1962
1950
- create_json_dump_per_port_tunnel_route (db , port_tunnel_route , per_npu_configdb , per_npu_appl_db , asic_index , port )
1963
+ create_json_dump_per_port_tunnel_route (db , port_tunnel_route , per_npu_configdb , per_npu_appl_db , per_npu_asic_db , asic_index , port )
1951
1964
1952
1965
click .echo ("{}" .format (json .dumps (port_tunnel_route , indent = 4 )))
1953
1966
1954
1967
else :
1955
1968
print_data = []
1956
1969
1957
- create_table_dump_per_port_tunnel_route (db , print_data , per_npu_configdb , per_npu_appl_db , asic_index , port )
1970
+ create_table_dump_per_port_tunnel_route (db , print_data , per_npu_configdb , per_npu_appl_db , per_npu_asic_db , asic_index , port )
1958
1971
1959
- headers = ['PORT' , 'DEST_TYPE' , 'DEST_ADDRESS' ]
1972
+ headers = ['PORT' , 'DEST_TYPE' , 'DEST_ADDRESS' , 'kernel' , 'asic' ]
1960
1973
1961
1974
click .echo (tabulate (print_data , headers = headers ))
1962
1975
else :
@@ -1972,7 +1985,7 @@ def tunnel_route(db, port, json_output):
1972
1985
for key in natsorted (mux_tbl_keys [asic_id ]):
1973
1986
port = key .split ("|" )[1 ]
1974
1987
1975
- create_json_dump_per_port_tunnel_route (db , port_tunnel_route , per_npu_configdb , per_npu_appl_db , asic_id , port )
1988
+ create_json_dump_per_port_tunnel_route (db , port_tunnel_route , per_npu_configdb , per_npu_appl_db , per_npu_asic_db , asic_id , port )
1976
1989
1977
1990
click .echo ("{}" .format (json .dumps (port_tunnel_route , indent = 4 )))
1978
1991
else :
@@ -1983,9 +1996,9 @@ def tunnel_route(db, port, json_output):
1983
1996
for key in natsorted (mux_tbl_keys [asic_id ]):
1984
1997
port = key .split ("|" )[1 ]
1985
1998
1986
- create_table_dump_per_port_tunnel_route (db , print_data , per_npu_configdb , per_npu_appl_db , asic_id , port )
1999
+ create_table_dump_per_port_tunnel_route (db , print_data , per_npu_configdb , per_npu_appl_db , per_npu_asic_db , asic_id , port )
1987
2000
1988
- headers = ['PORT' , 'DEST_TYPE' , 'DEST_ADDRESS' ]
2001
+ headers = ['PORT' , 'DEST_TYPE' , 'DEST_ADDRESS' , 'kernel' , 'asic' ]
1989
2002
1990
2003
click .echo (tabulate (print_data , headers = headers ))
1991
2004
0 commit comments