From d09667b86abb7d3cd31b92bedf6e4d4bdac4937f Mon Sep 17 00:00:00 2001 From: gechiang <62408185+gechiang@users.noreply.github.com> Date: Mon, 7 Dec 2020 19:29:28 -0800 Subject: [PATCH] Multi-ASIC support for show ip(v6) route (201911 branch) (#1283) Ported "show ip/v6 route" Multi ASIC support changes from master branch to 201911 branch. --- setup.py | 1 + show/bgp_common.py | 413 +++ show/main.py | 30 +- sonic-utilities-tests/conftest.py | 79 +- .../ip_show_routes_multi_asic_test.py | 436 +++ sonic-utilities-tests/ip_show_routes_test.py | 409 +++ .../mock_tables/asic0/ip_route.json | 699 ++++ .../mock_tables/asic0/ip_specific_route.json | 29 + .../mock_tables/asic0/ipv6_route.json | 687 ++++ .../asic0/ipv6_specific_route.json | 29 + .../mock_tables/asic1/ip_route.json | 699 ++++ .../mock_tables/asic1/ip_specific_route.json | 29 + .../mock_tables/asic1/ipv6_route.json | 687 ++++ .../asic1/ipv6_specific_route.json | 29 + .../mock_tables/asic2/__init__.py | 0 .../mock_tables/asic2/appl_db.json | 72 + .../mock_tables/asic2/asic_db.json | 6 + .../mock_tables/asic2/config_db.json | 123 + .../mock_tables/asic2/counters_db.json | 1666 ++++++++++ .../mock_tables/asic2/database_config.json | 57 + .../mock_tables/asic2/ip_route.json | 699 ++++ .../mock_tables/asic2/ip_specific_route.json | 29 + .../mock_tables/asic2/ipv6_route.json | 687 ++++ .../asic2/ipv6_specific_route.json | 29 + .../mock_tables/asic2/state_db.json | 207 ++ .../mock_tables/database_global.json | 6 +- .../mock_tables/ip_route.json | 1402 ++++++++ .../mock_tables/ip_special_route.json | 197 ++ .../mock_tables/ip_specific_route.json | 39 + .../mock_tables/ipv6_route.json | 2833 +++++++++++++++++ .../mock_tables/ipv6_specific_route.json | 39 + .../mock_tables/mock_multi_asic_3_asics.py | 17 + 32 files changed, 12337 insertions(+), 27 deletions(-) create mode 100644 show/bgp_common.py create mode 100644 sonic-utilities-tests/ip_show_routes_multi_asic_test.py create mode 100644 sonic-utilities-tests/ip_show_routes_test.py create mode 100644 sonic-utilities-tests/mock_tables/asic0/ip_route.json create mode 100644 sonic-utilities-tests/mock_tables/asic0/ip_specific_route.json create mode 100644 sonic-utilities-tests/mock_tables/asic0/ipv6_route.json create mode 100644 sonic-utilities-tests/mock_tables/asic0/ipv6_specific_route.json create mode 100644 sonic-utilities-tests/mock_tables/asic1/ip_route.json create mode 100644 sonic-utilities-tests/mock_tables/asic1/ip_specific_route.json create mode 100644 sonic-utilities-tests/mock_tables/asic1/ipv6_route.json create mode 100644 sonic-utilities-tests/mock_tables/asic1/ipv6_specific_route.json create mode 100644 sonic-utilities-tests/mock_tables/asic2/__init__.py create mode 100644 sonic-utilities-tests/mock_tables/asic2/appl_db.json create mode 100644 sonic-utilities-tests/mock_tables/asic2/asic_db.json create mode 100644 sonic-utilities-tests/mock_tables/asic2/config_db.json create mode 100644 sonic-utilities-tests/mock_tables/asic2/counters_db.json create mode 100644 sonic-utilities-tests/mock_tables/asic2/database_config.json create mode 100644 sonic-utilities-tests/mock_tables/asic2/ip_route.json create mode 100644 sonic-utilities-tests/mock_tables/asic2/ip_specific_route.json create mode 100644 sonic-utilities-tests/mock_tables/asic2/ipv6_route.json create mode 100644 sonic-utilities-tests/mock_tables/asic2/ipv6_specific_route.json create mode 100644 sonic-utilities-tests/mock_tables/asic2/state_db.json create mode 100644 sonic-utilities-tests/mock_tables/ip_route.json create mode 100644 sonic-utilities-tests/mock_tables/ip_special_route.json create mode 100644 sonic-utilities-tests/mock_tables/ip_specific_route.json create mode 100644 sonic-utilities-tests/mock_tables/ipv6_route.json create mode 100644 sonic-utilities-tests/mock_tables/ipv6_specific_route.json create mode 100644 sonic-utilities-tests/mock_tables/mock_multi_asic_3_asics.py diff --git a/setup.py b/setup.py index 96e9c2baf6..d81ea52b7c 100644 --- a/setup.py +++ b/setup.py @@ -61,6 +61,7 @@ 'mock_tables/*.json', 'mock_tables/asic0/*.json', 'mock_tables/asic1/*.json', + 'mock_tables/asic2/*.json', 'filter_fdb_input/*', 'pfcwd_input/*', 'sku_create_input/*', diff --git a/show/bgp_common.py b/show/bgp_common.py new file mode 100644 index 0000000000..788bda1d44 --- /dev/null +++ b/show/bgp_common.py @@ -0,0 +1,413 @@ +import copy +import ipaddress +import json + +import utilities_common.multi_asic as multi_asic_util +from sonic_py_common import multi_asic +from utilities_common import constants + +''' + show ip(v6) route helper methods start + Helper routines to support print_ip_routes() +''' +def get_status_output_char(info, nhp_i): + NH_F_IS_RECURSIVE = 2 + NH_F_IS_DUPLICATE = 5 + if "queued" in info: + return "q" + elif "failed" in info: + return "r" + elif "installed" in info: + if info['nexthops'][nhp_i]['flags'] & (1 << NH_F_IS_RECURSIVE) or info['nexthops'][nhp_i]['flags'] & (1 << NH_F_IS_DUPLICATE): + return " " + else: + return "*" + + return "" + +def get_distance_metric_str(info): + if info['protocol'] != "connected": + return (" [{}/{}]".format(info['distance'], info['metric'])) + elif info['distance'] > 0 or info['metric'] > 0: + return (" [{}/{}]".format(info['distance'], info['metric'])) + return "" + +def get_mpls_label_strgs(label_list): + mpls_label_code = { 0:"IPv4 Explicit Null", 1:"Router Alert", 2:"IPv6 Explicit Null", + 3:"implicit-null", 4:"Reserved (4)", 5:"Reserved (5)", + 6:"Reserved (6)", 7:"Entropy Label Indicator", 8:"Reserved (8)", + 9:"Reserved (9)", 10:"Reserved (10)", 11:"Reserved (11)", + 12:"Reserved (12)", 13:"Generic Associated Channel", + 14:"OAM Alert", 15:"Extension"} + label_str_2_return = "" + for k in range(0, len(label_list)): + # MPLS labels that has value 15 or lower has special interpretation + if label_list[k] > 15: + label_string = str(label_list[k]) + else: + label_string = mpls_label_code[label_list[k]] + if k == 0: + label_str_2_return += label_string + else: + label_str_2_return += "/" + label_string + return label_str_2_return + +def get_nexthop_info_str(nxhp_info): + str_2_return = "" + if "ip" in nxhp_info: + str_2_return = " via {},".format(nxhp_info['ip']) + if "interfaceName" in nxhp_info: + str_2_return += " {},".format(nxhp_info['interfaceName']) + elif "directlyConnected" in nxhp_info: + str_2_return = " is directly connected," + if "interfaceName" in nxhp_info: + str_2_return += " {},".format(nxhp_info['interfaceName']) + elif "unreachable" in nxhp_info: + if "reject" in nxhp_info: + str_2_return = " (ICMP unreachable)" + elif "admin-prohibited" in nxhp_info: + str_2_return = " (ICMP admin-prohibited)" + elif "blackhole" in nxhp_info: + str_2_return = " (blackhole)" + + if "vrf" in nxhp_info: + str_2_return += "(vrf {}, {},".format(nxhp_info['vrf'], nxhp_info['interfaceName']) + if "active" not in nxhp_info: + str_2_return += " inactive" + if "onLink" in nxhp_info: + str_2_return += " onlink" + if "recursive" in nxhp_info: + str_2_return += " (recursive)" + if "source" in nxhp_info: + str_2_return += ", src {}".format(nxhp_info['source']) + if "labels" in nxhp_info: + # MPLS labels are stored as an array (list) in json if present. Need to print through each one in list + str_2_return += ", label {}".format(get_mpls_label_strgs(nxhp_info['labels'])) + return str_2_return + +def get_ip_value(ipn): + ip_intf = ipaddress.ip_interface(ipn[0]) + return ip_intf.ip + +def print_ip_routes(route_info, filter_by_ip): + """ + Sample Entry output + B>*172.16.8.2/32 [20/0] via 10.0.0.47, Ethernet92, 03:33:01 + B>*192.168.114.96/32 [20/0] via 10.0.0.1, PortChannel0002, 03:30:39 + * via 10.0.0.5, PortChannel0005, 03:30:39 + * via 10.0.0.9, PortChannel0008, 03:30:39 + * via 10.0.0.13, PortChannel0011, 03:30:39 + * via 10.0.0.17, PortChannel0014, 03:30:39 + * via 10.0.0.21, PortChannel0017, 03:30:39 + * via 10.0.0.25, PortChannel0020, 03:30:39 + * via 10.0.0.29, PortChannel0023, 03:30:39 + B 10.0.107.0/31 [200/0] via 10.0.107.1, inactive 00:10:15 + K>*0.0.0.0/0 [0/0] via 10.3.146.1, eth0, 00:25:22 + B 0.0.0.0/0 [20/0] via 10.0.0.1, PortChannel0002, 03:31:52 + via 10.0.0.5, PortChannel0005, 03:31:52 + via 10.0.0.9, PortChannel0008, 03:31:52 + via 10.0.0.13, PortChannel0011, 03:31:52 + via 10.0.0.17, PortChannel0014, 03:31:52 + via 10.0.0.21, PortChannel0017, 03:31:52 + via 10.0.0.25, PortChannel0020, 03:31:52 + via 10.0.0.29, PortChannel0023, 03:31:52 + S 0.0.0.0/0 [200/0] via 10.3.146.1, eth0, 03:35:18 + C>*10.0.0.62/31 is directly connected, Ethernet124, 03:34:00 + + if filter_by_ip is set it means the user requested the output based on given ip address + Routing entry for 0.0.0.0/0 + Known via "static", distance 200, metric 0 + Last update 03:46:05 ago + 10.3.146.1 inactive + + Routing entry for 0.0.0.0/0 + Known via "bgp", distance 20, metric 0, best + Last update 03:46:05 ago + * 10.0.0.1, via PortChannel0002 + * 10.0.0.5, via PortChannel0005 + + Routing entry for 0.0.0.0/0 + Known via "kernel", distance 210, metric 0 + Last update 03:46:36 ago + * 240.127.1.1, via eth0 + + This method is following what zebra_vty.c does when handling the route parsing printing + The route_info is a json file which is treated as a dictionary of a bunch of route + info + This interpretation is based on FRR 7.2 branch. If we later moved on to a new branch, we may + have to rexamine if there are any changes made that may impact the parsing logic + """ + proto_code = {"system":'X', "kernel":'K', "connected":'C', "static":'S', + "rip":'R', "ripng":'R', "ospf":'O', "ospf6":'O', "isis":'I', + "bgp":'B', "pim":'P', "hsls":'H', "olsr":'o', "babel":'A'} + for route, info in sorted(route_info.items(), key=get_ip_value): + for i in range(0, len(info)): + if filter_by_ip: + print("Routing entry for {}".format(str(route))) + str_2_print = ' Known via "{}", distance {}, metric {}'.format(info[i]['protocol'], info[i]['distance'], info[i]['metric']) + if "selected" in info[i]: + str_2_print += ", best" + print(str_2_print) + print(" Last update {} ago".format(info[i]['uptime'])) + for j in range(0, len(info[i]['nexthops'])): + if "directlyConnected" in info[i]['nexthops'][j]: + print(" * directly connected, {}\n".format(info[i]['nexthops'][j]['interfaceName'])) + else: + if "ip" in info[i]['nexthops'][j]: + str_2_print = " * {}".format(info[i]['nexthops'][j]['ip']) + + if "active" in info[i]['nexthops'][j]: + str_2_print += ", via {}".format(info[i]['nexthops'][j]['interfaceName']) + else: + str_2_print += " inactive" + print(str_2_print) + print("") + else: + str_2_print = "" + str_2_print += proto_code[info[i]['protocol']] + if "instance" in info[i]: + str_2_print += "[" + str(info[i]['instance']) + "]" + if "selected" in info[i]: + str_2_print += ">" + else: + str_2_print += " " + for j in range(0, len(info[i]['nexthops'])): + if j != 0: + str_2_print = " " + str_2_print += get_status_output_char(info[i], j) + # on 1st nexhop print the prefix and distance/metric if appropriate. + # on all subsequent nexthop replace the prefix and distance/metric by empty spaces only. + if j == 0: + str_2_print += info[i]['prefix'] + get_distance_metric_str(info[i]) + str_length = len(str_2_print) + else: + # For all subsequent nexthops skip the spacing to not repeat the prefix section + str_2_print += " "*(str_length - 3) + # Get the nexhop info portion of the string + str_2_print += get_nexthop_info_str(info[i]['nexthops'][j]) + # add uptime at the end of the string + str_2_print += " {}".format(info[i]['uptime']) + # print out this string + print(str_2_print) + + +def merge_to_combined_route(combined_route, route, new_info_l): + # The following protocols do not have multi-nexthops. mbrship test with small list is faster than small set + # If other protocol are also single nexthop not in this list just add them + single_nh_proto = ["connected"] + # check if this route already exists. if so, combine nethops and update the count + if route in combined_route: + while len(new_info_l): + new_info = new_info_l.pop() + proto_matched = False + skip_this_new_info = False + for j in range(0, len(combined_route[route])): + if new_info['protocol'] == combined_route[route][j]['protocol']: + proto_matched = True + if new_info['protocol'] in single_nh_proto: + # For single nexhop protocols handling differs where it should be either not added or add ASIS + # If this is new, need to add the new_info. else skip this new_info + if combined_route[route][j]['nexthops'][0]['interfaceName'] == new_info['nexthops'][0]['interfaceName']: + skip_this_new_info = True + break + else: + # protocol may contain multiple nexthops. Need to filter by nexthops + additional_nh_l = [] + while len(new_info['nexthops']): + nh = new_info['nexthops'].pop() + found = False + for y in range(0, len(combined_route[route][j]['nexthops'])): + if "interfaceName" in nh and "interfaceName" in combined_route[route][j]['nexthops'][y]: + if nh['interfaceName'] == combined_route[route][j]['nexthops'][y]['interfaceName']: + found = True + break + elif "active" not in nh and "active" not in combined_route[route][j]['nexthops'][y]: + if nh['ip'] == combined_route[route][j]['nexthops'][y]['ip']: + found = True + break + if not found: + additional_nh_l.append(copy.deepcopy(nh)) + + if len(additional_nh_l) > 0: + combined_route[route][j]['internalNextHopNum'] + len(additional_nh_l) + if combined_route[route][j]['internalNextHopActiveNum'] > 0 and new_info['internalNextHopActiveNum'] > 0: + combined_route[route][j]['internalNextHopActiveNum'] + len(additional_nh_l) + combined_route[route][j]['nexthops'] += additional_nh_l + # the nexhops merged, no need to add the new_info + skip_this_new_info = True + break + if not proto_matched or not skip_this_new_info: + # This new_info is unique and should be added to the route + combined_route[route].append(new_info) + else: + combined_route[route] = new_info_l + +def process_route_info(route_info, device, filter_back_end, print_ns_str, asic_cnt, ns_str, combined_route, back_end_intf_set): + new_route = {} + for route, info in route_info.items(): + new_info_l = [] + new_info_cnt = 0 + while len(info): + new_info = info.pop() + new_nhop_l = [] + del_cnt = 0 + while len(new_info['nexthops']): + nh = new_info['nexthops'].pop() + if filter_back_end and back_end_intf_set != None and "interfaceName" in nh: + if nh['interfaceName'] in back_end_intf_set: + del_cnt += 1 + else: + new_nhop_l.append(copy.deepcopy(nh)) + else: + new_nhop_l.append(copy.deepcopy(nh)) + # use the new filtered nhop list if it is not empty. if empty nexthop , this route is filtered out completely + if len(new_nhop_l) > 0: + new_info['nexthops'] = copy.deepcopy(new_nhop_l) + new_info_cnt += 1 + # in case there are any nexthop that were deleted, we will need to adjust the nexhopt counts as well + if del_cnt > 0: + internalNextHopNum = new_info['internalNextHopNum'] - del_cnt + new_info['internalNextHopNum'] = internalNextHopNum + internalNextHopActiveNum = new_info['internalNextHopActiveNum'] - del_cnt + new_info['internalNextHopActiveNum'] = internalNextHopActiveNum + new_info_l.append(copy.deepcopy(new_info)) + if new_info_cnt: + if asic_cnt > 1: + if filter_back_end: + merge_to_combined_route(combined_route, route, new_info_l) + else: + new_route[route] = copy.deepcopy(new_info_l) + else: + new_route[route] = copy.deepcopy(new_info_l) + if new_route: + if print_ns_str: + combined_route['{}'.format(ns_str)] = copy.deepcopy(new_route) + else: + combined_route.update(copy.deepcopy(new_route)) + +def print_show_ip_route_hdr(): + # This prints out the show ip route header based on FRR 7.2 version. + # Please note that if we moved to future versions, we may heva to make changes to this + print("Codes: K - kernel route, C - connected, S - static, R - RIP,") + print(" O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,") + print(" T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,") + print(" F - PBR, f - OpenFabric,") + print(" > - selected route, * - FIB route, q - queued route, r - rejected route\n") + + +''' + handling multi-ASIC by gathering the output from specified/all name space into a dictionary via + jason option and then filter out the json entries (by removing those next Hop that are + back-end ASIC if display is for front-end only). If the entry itself has no more next Hop after filtering, + then skip over that particular route entry. Once completed, if the user chose "json" option, + then just print out the dictionary in Json format accordingly. But if no "json" option specified, + then print out the header and the decoded entry representation for each route accordingly. + if user specified a namespace, then print everything. + if user did not specify name space but specified display for all (include backend), then print each namespace + without any filtering. But if display is for front-end only, then do filter and combine all output(merge same + routes from all namespace as additional nexthops) + This code is based on FRR 7.2 branch. If we moved to a new version we may need to change here as well +''' +def show_routes(args, namespace, display, verbose, ipver): + import utilities_common.bgp_util as bgp_util + """Show IPv4/IPV6 routing table""" + filter_back_end = False + if display is None: + if multi_asic.is_multi_asic(): + display = constants.DISPLAY_EXTERNAL + filter_back_end = True + else: + if multi_asic.is_multi_asic(): + if display not in multi_asic_util.multi_asic_display_choices(): + print("dislay option '{}' is not a valid option.".format(display)) + return + else: + if display == constants.DISPLAY_EXTERNAL: + filter_back_end = True + else: + if display not in ['frontend', 'all']: + print("dislay option '{}' is not a valid option.".format(display)) + return + device = multi_asic_util.MultiAsic(display, namespace) + arg_strg = "" + found_json = 0 + ns_l = [] + print_ns_str = False + filter_by_ip = False + asic_cnt = 0 + try: + ns_l = device.get_ns_list_based_on_options() + except ValueError: + print("namespace '{}' is not valid. valid name spaces are:\n{}".format(namespace, multi_asic_util.multi_asic_ns_choices())) + return + asic_cnt = len(ns_l) + if asic_cnt > 1 and display == constants.DISPLAY_ALL: + print_ns_str = True + if namespace is not None: + if not multi_asic.is_multi_asic(): + print("namespace option is not applicable for non-multi-asic platform") + return + # build the filter set only if necessary + if filter_back_end: + back_end_intf_set = multi_asic.get_back_end_interface_set() + else: + back_end_intf_set = None + # get all the other arguments except json that needs to be the last argument of the cmd if present + for arg in args: + arg_strg += str(arg) + " " + if str(arg) == "json": + found_json = 1 + else: + try: + filter_by_ip = ipaddress.ip_network(arg) + except ValueError: + # Not ip address just ignore it + pass + if not found_json: + arg_strg += "json" + combined_route = {} + for ns in ns_l: + # Need to add "ns" to form bgpX so it is sent to the correct bgpX docker to handle the request + # If not MultiASIC, skip namespace argument + cmd = "show {} route {}".format(ipver, arg_strg) + if multi_asic.is_multi_asic(): + output = bgp_util.run_bgp_command(cmd, ns) + else: + output = bgp_util.run_bgp_command(cmd) + + # in case no output or something went wrong with user specified cmd argument(s) error it out + # error from FRR always start with character "%" + if output == "": + return + if output[0] == "%": + # remove the "json" keyword that was added by this handler to show original cmd user specified + json_str = output[-5:-1] + if json_str == "json": + error_msg = output[:-5] + else: + error_msg = output + print(error_msg) + return + route_info = json.loads(output) + if filter_back_end or print_ns_str: + # clean up the dictionary to remove all the nexthops that are back-end interface + process_route_info(route_info, device, filter_back_end, print_ns_str, asic_cnt, ns, combined_route, back_end_intf_set) + else: + combined_route = route_info + + if not found_json: + #print out the header if this is not a json request + if not filter_by_ip: + print_show_ip_route_hdr() + if print_ns_str: + for name_space, ns_route in sorted(combined_route.items()): + print("{}:".format(name_space)) + print_ip_routes(ns_route, filter_by_ip) + else: + print_ip_routes(combined_route, filter_by_ip) + else: + new_string = json.dumps(combined_route,sort_keys=True, indent=4) + print(new_string) + +''' + show ip(v6) route helper methods end +''' diff --git a/show/main.py b/show/main.py index 2ef38003aa..35f370bb5f 100755 --- a/show/main.py +++ b/show/main.py @@ -9,6 +9,7 @@ import subprocess import sys +import bgp_common import click from click_default_group import DefaultGroup from natsort import natsorted @@ -20,6 +21,7 @@ import utilities_common.cli as clicommon import utilities_common.multi_asic as multi_asic_util + SONIC_CFGGEN_PATH = '/usr/local/bin/sonic-cfggen' VLAN_SUB_INTERFACE_SEPARATOR = '.' @@ -1333,17 +1335,13 @@ def get_bgp_peer(): @ip.command() @click.argument('args', metavar='[IPADDRESS] [vrf ] [...]', nargs=-1, required=False) +@click.option('--display', '-d', 'display', default=None, show_default=False, type=str, help='all|frontend') +@click.option('--namespace', '-n', 'namespace', default=None, type=str, show_default=False, help='Namespace name or all') @click.option('--verbose', is_flag=True, help="Enable verbose output") -def route(args, verbose): +def route(args, namespace, display, verbose): """Show IP (IPv4) routing table""" - cmd = 'sudo vtysh -c "show ip route' - - for arg in args: - cmd += " " + str(arg) - - cmd += '"' - - run_command(cmd, display_cmd=verbose) + # Call common handler to handle the show ip route cmd + bgp_common.show_routes(args, namespace, display, verbose, "ip") # # 'prefix-list' subcommand ("show ip prefix-list") @@ -1452,17 +1450,13 @@ def interfaces(): @ipv6.command() @click.argument('args', metavar='[IPADDRESS] [vrf ] [...]', nargs=-1, required=False) +@click.option('--display', '-d', 'display', default=None, show_default=False, type=str, help='all|frontend') +@click.option('--namespace', '-n', 'namespace', default=None, type=str, show_default=False, help='Namespace name or all') @click.option('--verbose', is_flag=True, help="Enable verbose output") -def route(args, verbose): +def route(args, namespace, display, verbose): """Show IPv6 routing table""" - cmd = 'sudo vtysh -c "show ipv6 route' - - for arg in args: - cmd += " " + str(arg) - - cmd += '"' - - run_command(cmd, display_cmd=verbose) + # Call common handler to handle the show ipv6 route cmd + bgp_common.show_routes(args, namespace, display, verbose, "ipv6") # 'protocol' command diff --git a/sonic-utilities-tests/conftest.py b/sonic-utilities-tests/conftest.py index 76f4dee75f..a1f026fdfa 100644 --- a/sonic-utilities-tests/conftest.py +++ b/sonic-utilities-tests/conftest.py @@ -17,24 +17,80 @@ def setup_single_bgp_instance(request): import utilities_common.bgp_util as bgp_util if request.param == 'v4': - bgp_summary_json = os.path.join( + bgp_mocked_json = os.path.join( test_path, 'mock_tables', 'ipv4_bgp_summary.json') elif request.param == 'v6': - bgp_summary_json = os.path.join( + bgp_mocked_json = os.path.join( test_path, 'mock_tables', 'ipv6_bgp_summary.json') + elif request.param == 'ip_route': + bgp_mocked_json = os.path.join( + test_path, 'mock_tables', 'ip_route.json') + elif request.param == 'ip_specific_route': + bgp_mocked_json = os.path.join( + test_path, 'mock_tables', 'ip_specific_route.json') + elif request.param == 'ip_special_route': + bgp_mocked_json = os.path.join( + test_path, 'mock_tables', 'ip_special_route.json') + elif request.param == 'ipv6_route': + bgp_mocked_json = os.path.join( + test_path, 'mock_tables', 'ipv6_route.json') + elif request.param == 'ipv6_specific_route': + bgp_mocked_json = os.path.join( + test_path, 'mock_tables', 'ipv6_specific_route.json') else: - bgp_summary_json = os.path.join( + bgp_mocked_json = os.path.join( test_path, 'mock_tables', 'dummy.json') def mock_run_bgp_command(vtysh_cmd, bgp_namespace): - if os.path.isfile(bgp_summary_json): - with open(bgp_summary_json) as json_data: + if os.path.isfile(bgp_mocked_json): + with open(bgp_mocked_json) as json_data: mock_frr_data = json_data.read() return mock_frr_data return "" - bgp_util.run_bgp_command = mock.MagicMock( - return_value=mock_run_bgp_command("", "")) + def mock_run_bgp_ipv6_err_command(vtysh_cmd, bgp_namespace): + return "% Unknown command: show ipv6 route garbage" + + if request.param == 'ipv6_route_err': + bgp_util.run_bgp_command = mock.MagicMock( + return_value=mock_run_bgp_ipv6_err_command("", "")) + else: + bgp_util.run_bgp_command = mock.MagicMock( + return_value=mock_run_bgp_command("", "")) + + +@pytest.fixture +def setup_multi_asic_bgp_instance(request): + import utilities_common.bgp_util as bgp_util + + if request.param == 'ip_route': + m_asic_json_file = 'ip_route.json' + elif request.param == 'ip_specific_route': + m_asic_json_file = 'ip_specific_route.json' + elif request.param == 'ipv6_specific_route': + m_asic_json_file = 'ipv6_specific_route.json' + elif request.param == 'ipv6_route': + m_asic_json_file = 'ipv6_route.json' + else: + m_asic_json_file = os.path.join( + test_path, 'mock_tables', 'dummy.json') + + def mock_run_bgp_command(vtysh_cmd, bgp_namespace): + bgp_mocked_json = os.path.join( + test_path, 'mock_tables', bgp_namespace, m_asic_json_file) + if os.path.isfile(bgp_mocked_json): + with open(bgp_mocked_json) as json_data: + mock_frr_data = json_data.read() + return mock_frr_data + else: + return "" + + _old_run_bgp_command = bgp_util.run_bgp_command + bgp_util.run_bgp_command = mock_run_bgp_command + + yield + + bgp_util.run_bgp_command = _old_run_bgp_command @pytest.fixture @@ -45,4 +101,11 @@ def setup_bgp_commands(): show.ip.add_command(bgpv4) show.ipv6.add_command(bgpv6) - return show \ No newline at end of file + return show + + +@pytest.fixture +def setup_ip_route_commands(): + import show.main as show + + return show diff --git a/sonic-utilities-tests/ip_show_routes_multi_asic_test.py b/sonic-utilities-tests/ip_show_routes_multi_asic_test.py new file mode 100644 index 0000000000..0dc6448b82 --- /dev/null +++ b/sonic-utilities-tests/ip_show_routes_multi_asic_test.py @@ -0,0 +1,436 @@ +import os + +import pytest + +from click.testing import CliRunner +test_path = os.path.dirname(os.path.abspath(__file__)) +modules_path = os.path.dirname(test_path) +scripts_path = os.path.join(modules_path, "scripts") + +show_ip_route_multi_asic_display_all_expected_output = """\ +Codes: K - kernel route, C - connected, S - static, R - RIP, + O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, + T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP, + F - PBR, f - OpenFabric, + > - selected route, * - FIB route, q - queued route, r - rejected route + +asic0: +K *0.0.0.0/0 [210/0] via 240.127.1.1, eth0, 2d22h00m +B>*0.0.0.0/0 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m +S 0.0.0.0/0 [200/0] via 10.3.146.1, inactive 2d22h00m +C>*8.0.0.0/32 is directly connected, Loopback4096, 2d22h00m +C>*10.0.0.0/31 is directly connected, PortChannel4001, 2d22h00m +C>*10.0.0.4/31 is directly connected, PortChannel0005, 2d22h00m +C>*10.1.0.32/32 is directly connected, Loopback0, 2d22h00m +B>*100.1.0.3/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m +B>*192.168.0.0/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m +B>*192.168.0.1/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m +B>*192.168.0.32/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m +B>*192.168.0.96/32 [20/0] via 10.0.0.5, Ethernet-BP4, 2d22h00m + * via 10.0.0.1, Ethernet-BP0, 2d22h00m +B>*192.168.0.97/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m +B>*192.168.0.192/32 [20/0] via 10.0.0.5, Ethernet-BP4, 2d22h00m + * via 10.0.0.1, PortChannel4001, 2d22h00m +B>*192.168.0.193/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m +B>*192.168.0.208/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m +B>*192.168.0.209/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m +B>*192.168.0.224/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m +B>*192.168.0.225/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m +B>*192.168.0.240/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m +B>*192.168.0.241/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m +asic1: +K *0.0.0.0/0 [210/0] via 240.127.1.1, eth0, 2d22h01m +B>*0.0.0.0/0 [20/0] via 10.0.0.8, PortChannel0008, 2d22h01m + * via 10.0.0.7, PortChannel0007, 2d22h01m +S 0.0.0.0/0 [200/0] via 10.3.146.1, inactive 2d22h01m +C>*8.0.0.1/32 is directly connected, Loopback4096, 2d22h01m +C>*10.0.0.0/31 is directly connected, PortChannel4009, 2d22h01m +C>*10.0.0.4/31 is directly connected, PortChannel0008, 2d22h01m +C>*10.1.0.32/32 is directly connected, Loopback0, 2d22h01m +B>*100.1.0.3/32 [20/0] via 10.0.0.8, PortChannel0008, 2d22h01m +B>*192.168.0.0/32 [20/0] via 10.0.0.8, PortChannel0008, 2d22h01m + * via 10.0.0.7, PortChannel0007, 2d22h01m +B>*192.168.0.1/32 [20/0] via 10.0.0.8, PortChannel0008, 2d22h01m + * via 10.0.0.7, PortChannel0007, 2d22h01m +B>*192.168.0.32/32 [20/0] via 10.0.0.8, PortChannel0008, 2d22h01m + * via 10.0.0.7, PortChannel0007, 2d22h01m +B>*192.168.0.96/32 [20/0] via 10.0.0.8, Ethernet-BP260, 2d22h01m + * via 10.0.0.7, Ethernet-BP256, 2d22h01m +B>*192.168.0.97/32 [20/0] via 10.0.0.8, PortChannel0008, 2d22h01m + * via 10.0.0.7, PortChannel0007, 2d22h01m +B>*192.168.0.192/32 [20/0] via 10.0.0.8, Ethernet-BP260, 2d22h01m + * via 10.0.0.7, PortChannel4009, 2d22h01m +B>*192.168.0.193/32 [20/0] via 10.0.0.8, PortChannel0008, 2d22h01m + * via 10.0.0.7, PortChannel0007, 2d22h01m +B>*192.168.0.208/32 [20/0] via 10.0.0.8, PortChannel0008, 2d22h01m + * via 10.0.0.7, PortChannel0007, 2d22h01m +B>*192.168.0.209/32 [20/0] via 10.0.0.8, PortChannel0008, 2d22h01m + * via 10.0.0.7, PortChannel0007, 2d22h01m +B>*192.168.0.224/32 [20/0] via 10.0.0.8, PortChannel0008, 2d22h01m + * via 10.0.0.7, PortChannel0007, 2d22h01m +B>*192.168.0.225/32 [20/0] via 10.0.0.8, PortChannel0008, 2d22h01m + * via 10.0.0.7, PortChannel0007, 2d22h01m +B>*192.168.0.240/32 [20/0] via 10.0.0.8, Ethernet-BP260, 2d22h01m + * via 10.0.0.7, PortChannel4009, 2d22h01m +B>*192.168.0.241/32 [20/0] via 10.0.0.8, PortChannel0008, 2d22h01m + * via 10.0.0.7, PortChannel0007, 2d22h01m +asic2: +K *0.0.0.0/0 [210/0] via 240.127.1.1, eth0, 2d22h02m +B>*0.0.0.0/0 [20/0] via 10.0.0.16, PortChannel1016, 2d22h02m + * via 10.0.0.15, PortChannel1015, 2d22h02m +S 0.0.0.0/0 [200/0] via 10.3.146.1, inactive 2d22h02m +C>*8.0.0.2/32 is directly connected, Loopback4096, 2d22h02m +C>*10.0.0.0/31 is directly connected, PortChannel4001, 2d22h02m +C>*10.0.0.4/31 is directly connected, PortChannel1016, 2d22h02m +C>*10.1.0.32/32 is directly connected, Loopback0, 2d22h02m +B>*100.1.0.3/32 [20/0] via 10.0.0.16, PortChannel1016, 2d22h02m +B>*192.168.0.0/32 [20/0] via 10.0.0.16, PortChannel1016, 2d22h02m + * via 10.0.0.15, PortChannel1015, 2d22h02m +B>*192.168.0.1/32 [20/0] via 10.0.0.16, PortChannel1016, 2d22h02m + * via 10.0.0.15, PortChannel1015, 2d22h02m +B>*192.168.0.32/32 [20/0] via 10.0.0.16, PortChannel1016, 2d22h02m + * via 10.0.0.15, PortChannel1015, 2d22h02m +B>*192.168.0.96/32 [20/0] via 10.0.0.16, Ethernet-BP24, 2d22h02m + * via 10.0.0.15, Ethernet-BP20, 2d22h02m +B>*192.168.0.97/32 [20/0] via 10.0.0.16, PortChannel1016, 2d22h02m + * via 10.0.0.15, PortChannel1015, 2d22h02m +B>*192.168.0.192/32 [20/0] via 10.0.0.16, Ethernet-BP24, 2d22h02m + * via 10.0.0.15, PortChannel4001, 2d22h02m +B>*192.168.0.193/32 [20/0] via 10.0.0.16, PortChannel1016, 2d22h02m + * via 10.0.0.15, PortChannel1015, 2d22h02m +B>*192.168.0.208/32 [20/0] via 10.0.0.16, PortChannel1016, 2d22h02m + * via 10.0.0.15, PortChannel1015, 2d22h02m +B>*192.168.0.209/32 [20/0] via 10.0.0.16, PortChannel1016, 2d22h02m + * via 10.0.0.15, PortChannel1015, 2d22h02m +B>*192.168.0.224/32 [20/0] via 10.0.0.16, PortChannel1016, 2d22h02m + * via 10.0.0.15, PortChannel1015, 2d22h02m +B>*192.168.0.225/32 [20/0] via 10.0.0.16, PortChannel1016, 2d22h02m + * via 10.0.0.15, PortChannel1015, 2d22h02m +B>*192.168.0.240/32 [20/0] via 10.0.0.16, PortChannel1016, 2d22h02m + * via 10.0.0.15, PortChannel1015, 2d22h02m +B>*192.168.0.241/32 [20/0] via 10.0.0.16, PortChannel1016, 2d22h02m + * via 10.0.0.15, PortChannel1015, 2d22h02m +""" + +show_ip_route_multi_asic_display_all_front_expected_output = """\ +Codes: K - kernel route, C - connected, S - static, R - RIP, + O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, + T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP, + F - PBR, f - OpenFabric, + > - selected route, * - FIB route, q - queued route, r - rejected route + +K *0.0.0.0/0 [210/0] via 240.127.1.1, eth0, 2d22h00m +B>*0.0.0.0/0 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m + * via 10.0.0.15, PortChannel1015, 2d22h00m + * via 10.0.0.16, PortChannel1016, 2d22h00m +S 0.0.0.0/0 [200/0] via 10.3.146.1, inactive 2d22h00m +C>*8.0.0.0/32 is directly connected, Loopback4096, 2d22h00m +C>*8.0.0.2/32 is directly connected, Loopback4096, 2d22h02m +C>*10.0.0.4/31 is directly connected, PortChannel0005, 2d22h00m +C>*10.0.0.4/31 is directly connected, PortChannel1016, 2d22h02m +C>*10.1.0.32/32 is directly connected, Loopback0, 2d22h00m +B>*100.1.0.3/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.16, PortChannel1016, 2d22h00m +B>*192.168.0.0/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m + * via 10.0.0.15, PortChannel1015, 2d22h00m + * via 10.0.0.16, PortChannel1016, 2d22h00m +B>*192.168.0.1/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m + * via 10.0.0.15, PortChannel1015, 2d22h00m + * via 10.0.0.16, PortChannel1016, 2d22h00m +B>*192.168.0.32/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m + * via 10.0.0.15, PortChannel1015, 2d22h00m + * via 10.0.0.16, PortChannel1016, 2d22h00m +B>*192.168.0.97/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m + * via 10.0.0.15, PortChannel1015, 2d22h00m + * via 10.0.0.16, PortChannel1016, 2d22h00m +B>*192.168.0.193/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m + * via 10.0.0.15, PortChannel1015, 2d22h00m + * via 10.0.0.16, PortChannel1016, 2d22h00m +B>*192.168.0.208/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m + * via 10.0.0.15, PortChannel1015, 2d22h00m + * via 10.0.0.16, PortChannel1016, 2d22h00m +B>*192.168.0.209/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m + * via 10.0.0.15, PortChannel1015, 2d22h00m + * via 10.0.0.16, PortChannel1016, 2d22h00m +B>*192.168.0.224/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m + * via 10.0.0.15, PortChannel1015, 2d22h00m + * via 10.0.0.16, PortChannel1016, 2d22h00m +B>*192.168.0.225/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m + * via 10.0.0.15, PortChannel1015, 2d22h00m + * via 10.0.0.16, PortChannel1016, 2d22h00m +B>*192.168.0.240/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m + * via 10.0.0.15, PortChannel1015, 2d22h00m + * via 10.0.0.16, PortChannel1016, 2d22h00m +B>*192.168.0.241/32 [20/0] via 10.0.0.5, PortChannel0005, 2d22h00m + * via 10.0.0.1, PortChannel0002, 2d22h00m + * via 10.0.0.15, PortChannel1015, 2d22h00m + * via 10.0.0.16, PortChannel1016, 2d22h00m +""" + +show_ipv6_route_multi_asic_all_namesapce_output = """\ +Codes: K - kernel route, C - connected, S - static, R - RIP, + O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, + T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP, + F - PBR, f - OpenFabric, + > - selected route, * - FIB route, q - queued route, r - rejected route + +K *::/0 [210/0] via fd00::1, eth0, 2d22h00m +B>*::/0 [20/0] via fc00::6, PortChannel0005, 2d22h00m + * via fc00::2, PortChannel0002, 2d22h00m + * via fc00::2, PortChannel1015, 2d22h00m + * via fc00::6, PortChannel1016, 2d22h00m +B>*2064:100::1/128 [20/0] via fc00::2, PortChannel0002, 2d22h00m + * via fc00::2, PortChannel1015, 2d22h00m +B>*2064:100::3/128 [20/0] via fc00::6, PortChannel0005, 2d22h00m + * via fc00::6, PortChannel1016, 2d22h00m +B>*20c0:a800:0:1::/64 [20/0] via fc00::6, PortChannel0005, 2d22h00m + * via fc00::2, PortChannel0002, 2d22h00m + * via fc00::2, PortChannel1015, 2d22h00m + * via fc00::6, PortChannel1016, 2d22h00m +B>*20c0:a800:0:10::/64 [20/0] via fc00::6, PortChannel0005, 2d22h00m + * via fc00::2, PortChannel0002, 2d22h00m + * via fc00::2, PortChannel1015, 2d22h00m + * via fc00::6, PortChannel1016, 2d22h00m +B>*20c0:a800:0:11::/64 [20/0] via fc00::6, PortChannel0002, 2d22h00m + * via fc00::6, PortChannel1015, 2d22h00m +B>*20c0:a800:0:20::/64 [20/0] via fc00::2, PortChannel0002, 2d22h00m + * via fc00::2, PortChannel1015, 2d22h00m +B>*20c0:a800:0:21::/64 [20/0] via fc00::2, PortChannel0002, 2d22h00m + * via fc00::2, PortChannel1015, 2d22h00m +C>*2603:10e2:400::/128 is directly connected, Loopback4096, 2d22h00m +C>*2603:10e2:400::2/128 is directly connected, Loopback4096, 2d22h02m +C>*fc00::4/126 is directly connected, PortChannel0005, 2d22h00m +C>*fc00::4/126 is directly connected, PortChannel1016, 2d22h02m +C>*fc00:1::32/128 is directly connected, Loopback0, 2d22h00m +C>*fd00::/80 is directly connected, eth0, 2d22h00m +C>*fe80::/64 is directly connected, eth0, 2d22h00m +C *fe80::/64 is directly connected, Loopback0, 2d22h00m +C *fe80::/64 is directly connected, Loopback4096, 2d22h00m +C *fe80::/64 is directly connected, Ethernet16, 2d22h00m +C *fe80::/64 is directly connected, Ethernet20, 2d22h00m +C *fe80::/64 is directly connected, PortChannel0005, 2d22h00m +C *fe80::/64 is directly connected, PortChannel1016, 2d22h02m +C *fe80::/64 is directly connected, Ethernet24, 2d22h02m +""" + +show_ipv6_route_multi_asic_single_namesapce_output = """\ +Codes: K - kernel route, C - connected, S - static, R - RIP, + O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, + T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP, + F - PBR, f - OpenFabric, + > - selected route, * - FIB route, q - queued route, r - rejected route + +K *::/0 [210/0] via fd00::1, eth0, 2d22h02m +B>*::/0 [20/0] via fc00::6, PortChannel1016, 2d22h02m + * via fc00::2, PortChannel1015, 2d22h02m +B>*2064:100::1/128 [20/0] via fc00::2, PortChannel1015, 2d22h02m +B>*2064:100::3/128 [20/0] via fc00::6, PortChannel1016, 2d22h02m +B>*20c0:a800:0:1::/64 [20/0] via fc00::6, PortChannel1016, 2d22h02m + * via fc00::2, PortChannel1015, 2d22h02m +B>*20c0:a800:0:10::/64 [20/0] via fc00::6, PortChannel1016, 2d22h02m + * via fc00::2, PortChannel1015, 2d22h02m +B>*20c0:a800:0:11::/64 [20/0] via fc00::6, PortChannel1015, 2d22h02m +B>*20c0:a800:0:20::/64 [20/0] via fc00::2, PortChannel1015, 2d22h02m +B>*20c0:a800:0:21::/64 [20/0] via fc00::2, PortChannel1015, 2d22h02m +C>*2603:10e2:400::2/128 is directly connected, Loopback4096, 2d22h02m +C>*fc00::4/126 is directly connected, PortChannel1016, 2d22h02m +C>*fc00:1::32/128 is directly connected, Loopback0, 2d22h02m +C>*fd00::/80 is directly connected, eth0, 2d22h02m +C>*fe80::/64 is directly connected, eth0, 2d22h02m +C *fe80::/64 is directly connected, Loopback0, 2d22h02m +C *fe80::/64 is directly connected, Loopback4096, 2d22h02m +C *fe80::/64 is directly connected, Ethernet24, 2d22h02m +C *fe80::/64 is directly connected, Ethernet20, 2d22h02m +C *fe80::/64 is directly connected, PortChannel1016, 2d22h02m +""" + +show_ip_route_multi_asic_invalid_namesapce_err_output = """\ +namespace 'asic7' is not valid. valid name spaces are: +['asic0', 'asic1', 'asic2'] +""" + +show_ip_route_multi_asic_invalid_display_err_output = """\ +dislay option 'everything' is not a valid option. +""" + +show_ip_route_multi_asic_specific_route_output = """\ +Routing entry for 10.0.0.4/31 + Known via "connected", distance 0, metric 0, best + Last update 2d22h00m ago + * directly connected, PortChannel0005 + + +Routing entry for 10.0.0.4/31 + Known via "connected", distance 0, metric 0, best + Last update 2d22h02m ago + * directly connected, PortChannel1016 + + +""" + +show_ipv6_route_multi_asic_specific_route_output = """\ +Routing entry for 2603:10e2:400::/128 + Known via "connected", distance 0, metric 0, best + Last update 2d22h00m ago + * directly connected, Loopback4096 + + +""" + +class TestMultiAiscShowIpRouteDisplayAllCommands(object): + @classmethod + def setup_class(cls): + print("SETUP") + os.environ["PATH"] += os.pathsep + scripts_path + os.environ["UTILITIES_UNIT_TESTING"] = "2" + os.environ["UTILITIES_UNIT_TESTING_TOPOLOGY"] = "multi_asic" + import mock_tables.mock_multi_asic_3_asics + mock_tables.dbconnector.load_namespace_config() + + @pytest.mark.parametrize('setup_multi_asic_bgp_instance', + ['ip_route'], indirect=['setup_multi_asic_bgp_instance']) + def test_show_multi_asic_ip_route_front_end( + self, + setup_ip_route_commands, + setup_multi_asic_bgp_instance): + show = setup_ip_route_commands + runner = CliRunner() + result = runner.invoke( + show.cli.commands["ip"].commands["route"], ["-dfrontend"]) + print("{}".format(result.output)) + assert result.exit_code == 0 + assert result.output == show_ip_route_multi_asic_display_all_front_expected_output + + @pytest.mark.parametrize('setup_multi_asic_bgp_instance', + ['ip_route'], indirect=['setup_multi_asic_bgp_instance']) + def test_show_multi_asic_ip_route_all( + self, + setup_ip_route_commands, + setup_multi_asic_bgp_instance): + show = setup_ip_route_commands + runner = CliRunner() + result = runner.invoke( + show.cli.commands["ip"].commands["route"], ["-dall"]) + print("{}".format(result.output)) + assert result.exit_code == 0 + assert result.output == show_ip_route_multi_asic_display_all_expected_output + + @pytest.mark.parametrize('setup_multi_asic_bgp_instance', + ['ip_specific_route'], indirect=['setup_multi_asic_bgp_instance']) + def test_show_multi_asic_ip_route_specific( + self, + setup_ip_route_commands, + setup_multi_asic_bgp_instance): + show = setup_ip_route_commands + runner = CliRunner() + result = runner.invoke( + show.cli.commands["ip"].commands["route"], ["10.0.0.4"]) + print("{}".format(result.output)) + assert result.exit_code == 0 + assert result.output == show_ip_route_multi_asic_specific_route_output + + @pytest.mark.parametrize('setup_multi_asic_bgp_instance', + ['ipv6_specific_route'], indirect=['setup_multi_asic_bgp_instance']) + def test_show_multi_asic_ipv6_route_specific( + self, + setup_ip_route_commands, + setup_multi_asic_bgp_instance): + show = setup_ip_route_commands + runner = CliRunner() + result = runner.invoke( + show.cli.commands["ipv6"].commands["route"], ["2603:10e2:400::"]) + print("{}".format(result.output)) + assert result.exit_code == 0 + assert result.output == show_ipv6_route_multi_asic_specific_route_output + + @pytest.mark.parametrize('setup_multi_asic_bgp_instance', + ['ip_route'], indirect=['setup_multi_asic_bgp_instance']) + def test_show_multi_asic_ip_route_namespace_option_err( + self, + setup_ip_route_commands, + setup_multi_asic_bgp_instance): + show = setup_ip_route_commands + runner = CliRunner() + result = runner.invoke( + show.cli.commands["ip"].commands["route"], ["-nasic7"]) + print("{}".format(result.output)) + assert result.exit_code == 0 + assert result.output == show_ip_route_multi_asic_invalid_namesapce_err_output + + @pytest.mark.parametrize('setup_multi_asic_bgp_instance', + ['ip_route'], indirect=['setup_multi_asic_bgp_instance']) + def test_show_multi_asic_ip_route_display_option_err( + self, + setup_ip_route_commands, + setup_multi_asic_bgp_instance): + show = setup_ip_route_commands + runner = CliRunner() + result = runner.invoke( + show.cli.commands["ip"].commands["route"], ["-deverything"]) + print("{}".format(result.output)) + assert result.exit_code == 0 + assert result.output == show_ip_route_multi_asic_invalid_display_err_output + + @pytest.mark.parametrize('setup_multi_asic_bgp_instance', + ['ipv6_route'], indirect=['setup_multi_asic_bgp_instance']) + def test_show_multi_asic_ipv6_route_all_namespace( + self, + setup_ip_route_commands, + setup_multi_asic_bgp_instance): + show = setup_ip_route_commands + runner = CliRunner() + result = runner.invoke( + show.cli.commands["ipv6"].commands["route"], ["-dfrontend"]) + print("{}".format(result.output)) + assert result.exit_code == 0 + assert result.output == show_ipv6_route_multi_asic_all_namesapce_output + + @pytest.mark.parametrize('setup_multi_asic_bgp_instance', + ['ipv6_route'], indirect=['setup_multi_asic_bgp_instance']) + def test_show_multi_asic_ipv6_route_single_namespace( + self, + setup_ip_route_commands, + setup_multi_asic_bgp_instance): + show = setup_ip_route_commands + runner = CliRunner() + result = runner.invoke( + show.cli.commands["ipv6"].commands["route"], ["-nasic2"]) + print("{}".format(result.output)) + assert result.exit_code == 0 + assert result.output == show_ipv6_route_multi_asic_single_namesapce_output + + @classmethod + def teardown_class(cls): + print("TEARDOWN") + os.environ["PATH"] = os.pathsep.join(os.environ["PATH"].split(os.pathsep)[:-1]) + os.environ["UTILITIES_UNIT_TESTING"] = "0" + os.environ["UTILITIES_UNIT_TESTING_TOPOLOGY"] = "" + import imp + from sonic_py_common import multi_asic + imp.reload(multi_asic) + import mock_tables.mock_single_asic + import mock_tables.dbconnector + mock_tables.dbconnector.load_namespace_config() diff --git a/sonic-utilities-tests/ip_show_routes_test.py b/sonic-utilities-tests/ip_show_routes_test.py new file mode 100644 index 0000000000..f9a8022559 --- /dev/null +++ b/sonic-utilities-tests/ip_show_routes_test.py @@ -0,0 +1,409 @@ +import os + +import pytest + +from click.testing import CliRunner +test_path = os.path.dirname(os.path.abspath(__file__)) +modules_path = os.path.dirname(test_path) +scripts_path = os.path.join(modules_path, "scripts") + +show_ip_route_expected_output = """\ +Codes: K - kernel route, C - connected, S - static, R - RIP, + O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, + T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP, + F - PBR, f - OpenFabric, + > - selected route, * - FIB route, q - queued route, r - rejected route + +S 0.0.0.0/0 [200/0] via 10.3.146.1, inactive 1d11h20m +B>*0.0.0.0/0 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +K *0.0.0.0/0 [210/0] via 240.127.1.1, eth0, 1d11h20m +C>*8.0.0.0/32 is directly connected, Loopback4096, 1d11h21m +C>*10.0.0.0/31 is directly connected, PortChannel0002, 1d11h20m +C>*10.0.0.4/31 is directly connected, PortChannel0005, 1d11h20m +C>*10.1.0.32/32 is directly connected, Loopback0, 1d11h21m +B>*100.1.0.3/32 [20/0] via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.0/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.1/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.16/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.17/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.32/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.33/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.48/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.49/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.64/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.65/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.80/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.81/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.96/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.97/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.112/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.113/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.128/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.129/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.144/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.145/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.160/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.161/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.176/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.177/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.192/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.193/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.208/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.209/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.224/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.225/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.240/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +B>*192.168.0.241/32 [20/0] via 10.0.0.1, PortChannel0002, 1d11h20m + * via 10.0.0.5, PortChannel0005, 1d11h20m +""" + + +show_specific_ip_route_expected_output = """\ +Routing entry for 192.168.0.1/32 + Known via "bgp", distance 20, metric 0, best + Last update 1d11h20m ago + * 10.0.0.1, via PortChannel0002 + * 10.0.0.5, via PortChannel0005 + +""" + +show_special_ip_route_expected_output = """\ +Codes: K - kernel route, C - connected, S - static, R - RIP, + O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, + T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP, + F - PBR, f - OpenFabric, + > - selected route, * - FIB route, q - queued route, r - rejected route + +C>*10.3.0.4/31 (blackhole)(vrf 2, PortChannel1014, inactive (recursive) 2d22h02m +C>*10.5.0.4/31 (ICMP unreachable) inactive 2d22h02m +C>*10.5.0.8/31 (ICMP admin-prohibited) inactive onlink, src 10.2.3.4 2d22h02m +C> 10.6.0.8/31 inactive 2d22h02m +C>q10.6.5.0/31 inactive 2d22h02m +C>r10.6.5.3/31 inactive 2d22h02m +C>*10.7.0.8/31 (ICMP admin-prohibited) inactive onlink, src 10.2.3.4, label IPv4 Explicit Null/OAM Alert/Extension/1212 2d22h02m +""" + + +show_ipv6_route_err_expected_output = """\ +% Unknown command: show ipv6 route garbage +""" + +show_ipv6_route_single_json_expected_output = """\ +{ + "20c0:a8c7:0:81::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 928, + "interfaceName": "PortChannel0011", + "ip": "fc00::e" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 927, + "interfaceName": "PortChannel0008", + "ip": "fc00::a" + } + ], + "prefix": "20c0:a8c7:0:81::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d13h40m" + } + ] +} +""" + +show_ipv6_route_expected_output = """\ +Codes: K - kernel route, C - connected, S - static, R - RIP, + O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, + T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP, + F - PBR, f - OpenFabric, + > - selected route, * - FIB route, q - queued route, r - rejected route + +B>*::/0 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +K *::/0 [210/0] via fd00::1, eth0, 1d11h34m +B>*2064:100::1/128 [20/0] via fc00::2, PortChannel0002, 1d11h34m +B>*2064:100::3/128 [20/0] via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:1::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:10::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:11::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:20::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:21::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:30::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:31::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:40::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:41::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:50::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:51::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:60::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:61::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:70::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:71::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:80::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:81::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:90::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:91::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:a0::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:a1::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:b0::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:b1::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:c0::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:c1::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:d0::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:d1::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:e0::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:e1::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:f0::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a800:0:f1::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:1::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:10::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:11::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:20::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:21::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:30::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:31::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:40::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:41::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:50::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:51::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:60::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:61::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:70::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:71::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:80::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:81::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:90::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:91::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:a0::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:a1::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:b0::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:b1::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:c0::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:c1::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:d0::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:d1::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:e0::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:e1::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:f0::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +B>*20c0:a801:0:f1::/64 [20/0] via fc00::2, PortChannel0002, 1d11h34m + * via fc00::6, PortChannel0005, 1d11h34m +C>*2603:10e2:400::/128 is directly connected, Loopback4096, 1d11h34m +C>*fc00::/126 is directly connected, PortChannel0002, 1d11h34m +C>*fc00::4/126 is directly connected, PortChannel0005, 1d11h34m +C>*fc00:1::32/128 is directly connected, Loopback0, 1d11h34m +C>*fd00::/80 is directly connected, eth0, 1d11h34m +C *fe80::/64 is directly connected, PortChannel0002, 1d11h34m +C *fe80::/64 is directly connected, PortChannel0005, 1d11h34m +C *fe80::/64 is directly connected, Ethernet20, 1d11h34m +C *fe80::/64 is directly connected, Ethernet16, 1d11h34m +C *fe80::/64 is directly connected, Ethernet4, 1d11h34m +C *fe80::/64 is directly connected, Ethernet0, 1d11h34m +C *fe80::/64 is directly connected, Loopback4096, 1d11h34m +C *fe80::/64 is directly connected, Loopback0, 1d11h34m +C>*fe80::/64 is directly connected, eth0, 1d11h34m +""" + +class TestShowIpRouteCommands(object): + @classmethod + def setup_class(cls): + print("SETUP") + import mock_tables.dbconnector + + @pytest.mark.parametrize('setup_single_bgp_instance', + ['ip_route'], indirect=['setup_single_bgp_instance']) + def test_show_ip_route( + self, + setup_ip_route_commands, + setup_single_bgp_instance): + show = setup_ip_route_commands + runner = CliRunner() + result = runner.invoke( + show.cli.commands["ip"].commands["route"], []) + print("{}".format(result.output)) + assert result.exit_code == 0 + assert result.output == show_ip_route_expected_output + + @pytest.mark.parametrize('setup_single_bgp_instance', + ['ip_specific_route'], indirect=['setup_single_bgp_instance']) + def test_show_specific_ip_route( + self, + setup_ip_route_commands, + setup_single_bgp_instance): + show = setup_ip_route_commands + runner = CliRunner() + result = runner.invoke( + show.cli.commands["ip"].commands["route"], ["192.168.0.1"]) + print("{}".format(result.output)) + assert result.exit_code == 0 + assert result.output == show_specific_ip_route_expected_output + + @pytest.mark.parametrize('setup_single_bgp_instance', + ['ip_special_route'], indirect=['setup_single_bgp_instance']) + def test_show_special_ip_route( + self, + setup_ip_route_commands, + setup_single_bgp_instance): + show = setup_ip_route_commands + runner = CliRunner() + result = runner.invoke( + show.cli.commands["ip"].commands["route"], []) + print("{}".format(result.output)) + assert result.exit_code == 0 + assert result.output == show_special_ip_route_expected_output + + @pytest.mark.parametrize('setup_single_bgp_instance', + ['ipv6_specific_route'], indirect=['setup_single_bgp_instance']) + def test_show_specific_ipv6_route_json( + self, + setup_ip_route_commands, + setup_single_bgp_instance): + show = setup_ip_route_commands + runner = CliRunner() + result = runner.invoke( + show.cli.commands["ip"].commands["route"], ["20c0:a8c7:0:81::", "json"]) + print("{}".format(result.output)) + assert result.exit_code == 0 + assert result.output == show_ipv6_route_single_json_expected_output + + @pytest.mark.parametrize('setup_single_bgp_instance', + ['ipv6_route'], indirect=['setup_single_bgp_instance']) + def test_show_ipv6_route( + self, + setup_ip_route_commands, + setup_single_bgp_instance): + show = setup_ip_route_commands + runner = CliRunner() + result = runner.invoke( + show.cli.commands["ipv6"].commands["route"], []) + print("{}".format(result.output)) + assert result.exit_code == 0 + assert result.output == show_ipv6_route_expected_output + + @pytest.mark.parametrize('setup_single_bgp_instance', + ['ipv6_route_err'], indirect=['setup_single_bgp_instance']) + def test_show_ipv6_route_err( + self, + setup_ip_route_commands, + setup_single_bgp_instance): + show = setup_ip_route_commands + runner = CliRunner() + result = runner.invoke( + show.cli.commands["ipv6"].commands["route"], ["garbage"]) + print("{}".format(result.output)) + assert result.exit_code == 0 + assert result.output == show_ipv6_route_err_expected_output diff --git a/sonic-utilities-tests/mock_tables/asic0/ip_route.json b/sonic-utilities-tests/mock_tables/asic0/ip_route.json new file mode 100644 index 0000000000..b75bca5a96 --- /dev/null +++ b/sonic-utilities-tests/mock_tables/asic0/ip_route.json @@ -0,0 +1,699 @@ +{ + "0.0.0.0/0": [ + { + "distance": 200, + "internalFlags": 64, + "internalNextHopActiveNum": 0, + "internalNextHopNum": 1, + "internalStatus": 0, + "metric": 0, + "nexthops": [ + { + "afi": "ipv4", + "flags": 0, + "ip": "10.3.146.1" + } + ], + "prefix": "0.0.0.0/0", + "protocol": "static", + "table": 254, + "uptime": "2d22h00m" + }, + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "0.0.0.0/0", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + }, + { + "distance": 210, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 15, + "interfaceName": "eth0", + "ip": "240.127.1.1" + } + ], + "prefix": "0.0.0.0/0", + "protocol": "kernel", + "table": 254, + "uptime": "2d22h00m" + } + ], + "10.0.0.0/31": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel4001" + } + ], + "prefix": "10.0.0.0/31", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "10.0.0.4/31": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005" + } + ], + "prefix": "10.0.0.4/31", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "10.1.0.32/32": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 725, + "interfaceName": "Loopback0" + } + ], + "prefix": "10.1.0.32/32", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "100.1.0.3/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "100.1.0.3/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "192.168.0.0/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.0/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "192.168.0.1/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.1/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "192.168.0.192/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel4001", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "Ethernet-BP4", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.192/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "192.168.0.193/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.193/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "192.168.0.208/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.208/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "192.168.0.209/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.209/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "192.168.0.224/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.224/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "192.168.0.225/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.225/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "192.168.0.240/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.240/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "192.168.0.241/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.241/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "192.168.0.32/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.32/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "192.168.0.96/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "Ethernet-BP0", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "Ethernet-BP4", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.96/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "192.168.0.97/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.97/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "8.0.0.0/32": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 726, + "interfaceName": "Loopback4096" + } + ], + "prefix": "8.0.0.0/32", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ] +} diff --git a/sonic-utilities-tests/mock_tables/asic0/ip_specific_route.json b/sonic-utilities-tests/mock_tables/asic0/ip_specific_route.json new file mode 100644 index 0000000000..231811a2a4 --- /dev/null +++ b/sonic-utilities-tests/mock_tables/asic0/ip_specific_route.json @@ -0,0 +1,29 @@ +{ + "10.0.0.4/31": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005" + } + ], + "prefix": "10.0.0.4/31", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ] +} diff --git a/sonic-utilities-tests/mock_tables/asic0/ipv6_route.json b/sonic-utilities-tests/mock_tables/asic0/ipv6_route.json new file mode 100644 index 0000000000..cd387c0903 --- /dev/null +++ b/sonic-utilities-tests/mock_tables/asic0/ipv6_route.json @@ -0,0 +1,687 @@ +{ + "2064:100::1/128": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + } + ], + "prefix": "2064:100::1/128", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "2064:100::3/128": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "2064:100::3/128", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "20c0:a800:0:10::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:10::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "20c0:a800:0:11::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel4001", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0002", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:11::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "20c0:a800:0:1::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:1::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "20c0:a800:0:20::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel4001", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:20::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "20c0:a800:0:21::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "Ethernet-BP4", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:21::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "20c0:a800:0:30::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "Ethernet-BP0", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "Ethernet-BP4", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:30::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "2603:10e2:400::/128": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 726, + "interfaceName": "Loopback4096" + } + ], + "prefix": "2603:10e2:400::/128", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "::/0": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "::/0", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + }, + { + "distance": 210, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 15, + "interfaceName": "eth0", + "ip": "fd00::1" + } + ], + "prefix": "::/0", + "protocol": "kernel", + "table": 254, + "uptime": "2d22h00m" + } + ], + "fc00:1::32/128": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 725, + "interfaceName": "Loopback0" + } + ], + "prefix": "fc00:1::32/128", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "fc00::/126": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel4001" + } + ], + "prefix": "fc00::/126", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "fc00::4/126": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005" + } + ], + "prefix": "fc00::4/126", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "fd00::/80": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 15, + "interfaceName": "eth0" + } + ], + "prefix": "fd00::/80", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ], + "fe80::/64": [ + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel4001" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "2d22h00m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "2d22h00m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 742, + "interfaceName": "Ethernet20" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "2d22h00m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 743, + "interfaceName": "Ethernet16" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "2d22h00m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 738, + "interfaceName": "Ethernet-BP4" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "2d22h00m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 739, + "interfaceName": "Ethernet-BP0" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "2d22h00m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 726, + "interfaceName": "Loopback4096" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "2d22h00m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 725, + "interfaceName": "Loopback0" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "2d22h00m" + }, + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 15, + "interfaceName": "eth0" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ] +} diff --git a/sonic-utilities-tests/mock_tables/asic0/ipv6_specific_route.json b/sonic-utilities-tests/mock_tables/asic0/ipv6_specific_route.json new file mode 100644 index 0000000000..2d9ace4f10 --- /dev/null +++ b/sonic-utilities-tests/mock_tables/asic0/ipv6_specific_route.json @@ -0,0 +1,29 @@ +{ + "2603:10e2:400::/128": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 726, + "interfaceName": "Loopback4096" + } + ], + "prefix": "2603:10e2:400::/128", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h00m" + } + ] +} diff --git a/sonic-utilities-tests/mock_tables/asic1/ip_route.json b/sonic-utilities-tests/mock_tables/asic1/ip_route.json new file mode 100644 index 0000000000..7c5d2a1bc7 --- /dev/null +++ b/sonic-utilities-tests/mock_tables/asic1/ip_route.json @@ -0,0 +1,699 @@ +{ + "0.0.0.0/0": [ + { + "distance": 200, + "internalFlags": 64, + "internalNextHopActiveNum": 0, + "internalNextHopNum": 1, + "internalStatus": 0, + "metric": 0, + "nexthops": [ + { + "afi": "ipv4", + "flags": 0, + "ip": "10.3.146.1" + } + ], + "prefix": "0.0.0.0/0", + "protocol": "static", + "table": 254, + "uptime": "2d22h01m" + }, + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0007", + "ip": "10.0.0.7" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0008", + "ip": "10.0.0.8" + } + ], + "prefix": "0.0.0.0/0", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h01m" + }, + { + "distance": 210, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 15, + "interfaceName": "eth0", + "ip": "240.127.1.1" + } + ], + "prefix": "0.0.0.0/0", + "protocol": "kernel", + "table": 254, + "uptime": "2d22h01m" + } + ], + "10.0.0.0/31": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel4009" + } + ], + "prefix": "10.0.0.0/31", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h01m" + } + ], + "10.0.0.4/31": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0008" + } + ], + "prefix": "10.0.0.4/31", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h01m" + } + ], + "10.1.0.32/32": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 725, + "interfaceName": "Loopback0" + } + ], + "prefix": "10.1.0.32/32", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h01m" + } + ], + "100.1.0.3/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0008", + "ip": "10.0.0.8" + } + ], + "prefix": "100.1.0.3/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h01m" + } + ], + "192.168.0.0/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0007", + "ip": "10.0.0.7" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0008", + "ip": "10.0.0.8" + } + ], + "prefix": "192.168.0.0/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h01m" + } + ], + "192.168.0.1/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0007", + "ip": "10.0.0.7" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0008", + "ip": "10.0.0.8" + } + ], + "prefix": "192.168.0.1/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h01m" + } + ], + "192.168.0.192/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel4009", + "ip": "10.0.0.7" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "Ethernet-BP260", + "ip": "10.0.0.8" + } + ], + "prefix": "192.168.0.192/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h01m" + } + ], + "192.168.0.193/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0007", + "ip": "10.0.0.7" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0008", + "ip": "10.0.0.8" + } + ], + "prefix": "192.168.0.193/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h01m" + } + ], + "192.168.0.208/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0007", + "ip": "10.0.0.7" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0008", + "ip": "10.0.0.8" + } + ], + "prefix": "192.168.0.208/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h01m" + } + ], + "192.168.0.209/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0007", + "ip": "10.0.0.7" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0008", + "ip": "10.0.0.8" + } + ], + "prefix": "192.168.0.209/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h01m" + } + ], + "192.168.0.224/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0007", + "ip": "10.0.0.7" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0008", + "ip": "10.0.0.8" + } + ], + "prefix": "192.168.0.224/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h01m" + } + ], + "192.168.0.225/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0007", + "ip": "10.0.0.7" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0008", + "ip": "10.0.0.8" + } + ], + "prefix": "192.168.0.225/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h01m" + } + ], + "192.168.0.240/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel4009", + "ip": "10.0.0.7" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "Ethernet-BP260", + "ip": "10.0.0.8" + } + ], + "prefix": "192.168.0.240/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h01m" + } + ], + "192.168.0.241/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0007", + "ip": "10.0.0.7" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0008", + "ip": "10.0.0.8" + } + ], + "prefix": "192.168.0.241/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h01m" + } + ], + "192.168.0.32/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0007", + "ip": "10.0.0.7" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0008", + "ip": "10.0.0.8" + } + ], + "prefix": "192.168.0.32/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h01m" + } + ], + "192.168.0.96/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "Ethernet-BP256", + "ip": "10.0.0.7" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "Ethernet-BP260", + "ip": "10.0.0.8" + } + ], + "prefix": "192.168.0.96/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h01m" + } + ], + "192.168.0.97/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0007", + "ip": "10.0.0.7" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0008", + "ip": "10.0.0.8" + } + ], + "prefix": "192.168.0.97/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h01m" + } + ], + "8.0.0.1/32": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 726, + "interfaceName": "Loopback4096" + } + ], + "prefix": "8.0.0.1/32", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h01m" + } + ] +} diff --git a/sonic-utilities-tests/mock_tables/asic1/ip_specific_route.json b/sonic-utilities-tests/mock_tables/asic1/ip_specific_route.json new file mode 100644 index 0000000000..e2603757b9 --- /dev/null +++ b/sonic-utilities-tests/mock_tables/asic1/ip_specific_route.json @@ -0,0 +1,29 @@ +{ + "10.0.0.4/31": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0008" + } + ], + "prefix": "10.0.0.4/31", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h01m" + } + ] +} diff --git a/sonic-utilities-tests/mock_tables/asic1/ipv6_route.json b/sonic-utilities-tests/mock_tables/asic1/ipv6_route.json new file mode 100644 index 0000000000..f5dd8cdd19 --- /dev/null +++ b/sonic-utilities-tests/mock_tables/asic1/ipv6_route.json @@ -0,0 +1,687 @@ +{ + "2064:100::1/128": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0008", + "ip": "fc00::2" + } + ], + "prefix": "2064:100::1/128", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d01h01m" + } + ], + "2064:100::3/128": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0007", + "ip": "fc00::6" + } + ], + "prefix": "2064:100::3/128", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d01h01m" + } + ], + "20c0:a800:0:10::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0008", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0007", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:10::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d01h01m" + } + ], + "20c0:a800:0:11::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel4009", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0008", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:11::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d01h01m" + } + ], + "20c0:a800:0:1::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0008", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0007", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:1::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d01h01m" + } + ], + "20c0:a800:0:20::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0008", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel4009", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:20::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d01h01m" + } + ], + "20c0:a800:0:21::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0008", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "Ethernet-BP260", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:21::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d01h01m" + } + ], + "20c0:a800:0:30::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "Ethernet-BP256", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "Ethernet-BP260", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:30::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d01h01m" + } + ], + "2603:10e2:400::1/128": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 726, + "interfaceName": "Loopback4096" + } + ], + "prefix": "2603:10e2:400::1/128", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "1d01h01m" + } + ], + "::/0": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0008", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0007", + "ip": "fc00::6" + } + ], + "prefix": "::/0", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d01h01m" + }, + { + "distance": 210, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 15, + "interfaceName": "eth0", + "ip": "fd00::1" + } + ], + "prefix": "::/0", + "protocol": "kernel", + "table": 254, + "uptime": "1d01h01m" + } + ], + "fc00:1::32/128": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 725, + "interfaceName": "Loopback0" + } + ], + "prefix": "fc00:1::32/128", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "1d01h01m" + } + ], + "fc00::/126": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel4009" + } + ], + "prefix": "fc00::/126", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "1d01h01m" + } + ], + "fc00::4/126": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0007" + } + ], + "prefix": "fc00::4/126", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "1d01h01m" + } + ], + "fd00::/80": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 15, + "interfaceName": "eth0" + } + ], + "prefix": "fd00::/80", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "1d01h01m" + } + ], + "fe80::/64": [ + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel4009" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "1d01h01m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0007" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "1d01h01m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 742, + "interfaceName": "Ethernet24" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "1d01h01m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 743, + "interfaceName": "Ethernet28" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "1d01h01m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 738, + "interfaceName": "Ethernet-BP260" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "1d01h01m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 739, + "interfaceName": "Ethernet-BP256" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "1d01h01m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 726, + "interfaceName": "Loopback4096" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "1d01h01m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 725, + "interfaceName": "Loopback0" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "1d01h01m" + }, + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 15, + "interfaceName": "eth0" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "1d01h01m" + } + ] +} diff --git a/sonic-utilities-tests/mock_tables/asic1/ipv6_specific_route.json b/sonic-utilities-tests/mock_tables/asic1/ipv6_specific_route.json new file mode 100644 index 0000000000..fd6f9275a9 --- /dev/null +++ b/sonic-utilities-tests/mock_tables/asic1/ipv6_specific_route.json @@ -0,0 +1,29 @@ +{ + "2603:10e2:400::/128": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 726, + "interfaceName": "Loopback4096" + } + ], + "prefix": "2603:10e2:400::/128", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "1d01h01m" + } + ] +} diff --git a/sonic-utilities-tests/mock_tables/asic2/__init__.py b/sonic-utilities-tests/mock_tables/asic2/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/sonic-utilities-tests/mock_tables/asic2/appl_db.json b/sonic-utilities-tests/mock_tables/asic2/appl_db.json new file mode 100644 index 0000000000..a9c630228b --- /dev/null +++ b/sonic-utilities-tests/mock_tables/asic2/appl_db.json @@ -0,0 +1,72 @@ +{ + "PORT_TABLE:Ethernet20": { + "lanes": "41,42,43,44", + "description": "ARISTA01T2:Ethernet3/3/1", + "pfc_asym": "off", + "mtu": "9100", + "alias": "Ethernet1/6", + "oper_status": "up", + "admin_status": "up", + "role": "Ext", + "speed": "40000", + "asic_port_name": "Eth0-ASIC2" + }, + "PORT_TABLE:Ethernet24": { + "oper_status": "up", + "lanes": "45,46,47,48", + "description": "ARISTA01T2:Ethernet3/4/1", + "pfc_asym": "off", + "mtu": "9100", + "alias": "Ethernet1/7", + "admin_status": "up", + "role": "Ext", + "speed": "40000", + "asic_port_name": "Eth1-ASIC2" + }, + "PORT_TABLE:Ethernet-BP20": { + "oper_status": "up", + "lanes": "113,114,115,116", + "description": "ASIC1:Eth2-ASIC1", + "pfc_asym": "off", + "mtu": "9100", + "alias": "Ethernet-BP20", + "admin_status": "up", + "role": "Int", + "speed": "40000", + "asic_port_name": "Eth16-ASIC2" + }, + "PORT_TABLE:Ethernet-BP24": { + "oper_status": "up", + "lanes": "117,118,119,120", + "description": "ASIC1:Eth3-ASIC1", + "pfc_asym": "off", + "mtu": "9100", + "alias": "Ethernet-BP24", + "admin_status": "up", + "role": "Int", + "speed": "40000", + "asic_port_name": "Eth17-ASIC2" + }, + "LAG_MEMBER_TABLE:PortChannel1015:Ethernet20": { + "status": "enabled" + }, + "LAG_MEMBER_TABLE:PortChannel1016:Ethernet24": { + "status": "enabled" + }, + "LAG_MEMBER_TABLE:PortChannel4011:Ethernet-BP20": { + "status": "enabled" + }, + "LAG_MEMBER_TABLE:PortChannel4012:Ethernet-BP24": { + "status": "enabled" + }, + "LAG_TABLE:PortChannel1015": { + "admin_status": "up", + "mtu": "9100", + "oper_status": "up" + }, + "LAG_TABLE:PortChannel4011": { + "admin_status": "up", + "mtu": "9100", + "oper_status": "up" + } +} diff --git a/sonic-utilities-tests/mock_tables/asic2/asic_db.json b/sonic-utilities-tests/mock_tables/asic2/asic_db.json new file mode 100644 index 0000000000..1a769b82b5 --- /dev/null +++ b/sonic-utilities-tests/mock_tables/asic2/asic_db.json @@ -0,0 +1,6 @@ +{ + "ASIC_STATE:SAI_OBJECT_TYPE_SWITCH:oid:0x21000000000000": { + "SAI_SWITCH_ATTR_INIT_SWITCH": "true", + "SAI_SWITCH_ATTR_SRC_MAC_ADDRESS": "DE:AD:BE:EF:CA:FE" + } +} diff --git a/sonic-utilities-tests/mock_tables/asic2/config_db.json b/sonic-utilities-tests/mock_tables/asic2/config_db.json new file mode 100644 index 0000000000..be5af80bf4 --- /dev/null +++ b/sonic-utilities-tests/mock_tables/asic2/config_db.json @@ -0,0 +1,123 @@ +{ + "DEVICE_METADATA|localhost": { + "asic_id": "03.00.0", + "asic_name": "asic2", + "bgp_asn": "65100", + "cloudtype": "None", + "default_bgp_status": "down", + "default_pfcwd_status": "enable", + "deployment_id": "None", + "docker_routing_config_mode": "separated", + "hostname": "sonic", + "hwsku": "multi_asic", + "mac": "02:42:f0:7f:01:55", + "platform": "multi_asic", + "region": "None", + "sub_role": "FrontEnd", + "type": "LeafRouter" + }, + "PORT|Ethernet20": { + "admin_status": "up", + "alias": "Ethernet1/6", + "asic_port_name": "Eth0-ASIC2", + "description": "ARISTA01T2:Ethernet3/3/1", + "lanes": "41,42,43,44", + "mtu": "9100", + "pfc_asym": "off", + "role": "Ext", + "speed": "40000" + }, + "PORT|Ethernet24": { + "lanes": "45,46,47,48", + "description": "ARISTA01T2:Ethernet3/4/1", + "pfc_asym": "off", + "mtu": "9100", + "alias": "Ethernet1/7", + "admin_status": "up", + "role": "Ext", + "speed": "40000", + "asic_port_name": "Eth1-ASIC2" + }, + "PORT|Ethernet-BP20" : { + "lanes": "113,114,115,116", + "description": "ASIC1:Eth2-ASIC1", + "pfc_asym": "off", + "mtu": "9100", + "alias": "Ethernet-BP20", + "admin_status": "up", + "role": "Int", + "speed": "40000", + "asic_port_name": "Eth16-ASIC2" + }, + "PORT|Ethernet-BP24" : { + "lanes": "117,118,119,120", + "description": "ASIC1:Eth3-ASIC1", + "pfc_asym": "off", + "mtu": "9100", + "alias": "Ethernet-BP24", + "admin_status": "up", + "role": "Int", + "speed": "40000", + "asic_port_name": "Eth17-ASIC2" + }, + "PORTCHANNEL|PortChannel1015": { + "admin_status": "up", + "members@": "Ethernet20", + "min_links": "1", + "mtu": "9100" + }, + "PORTCHANNEL|PortChannel1016": { + "admin_status": "up", + "members@": "Ethernet24", + "min_links": "1", + "mtu": "9100" + }, + "PORTCHANNEL|PortChannel4011": { + "admin_status": "up", + "members@": "Ethernet-BP20", + "min_links": "1", + "mtu": "9100" + }, + "PORTCHANNEL|PortChannel4012": { + "admin_status": "up", + "members@": "Ethernet-BP24", + "min_links": "1", + "mtu": "9100" + }, + "PORTCHANNEL_MEMBER|PortChannel1015|Ethernet20": { + "NULL": "NULL" + }, + "PORTCHANNEL_MEMBER|PortChannel1016|Ethernet24": { + "NULL": "NULL" + }, + "PORTCHANNEL_MEMBER|PortChannel4011|Ethernet-BP20": { + "NULL": "NULL" + }, + "PORTCHANNEL_MEMBER|PortChannel4012|Ethernet-BP24": { + "NULL": "NULL" + }, + "PFC_WD|Ethernet20": { + "action": "drop", + "detection_time": "200", + "restoration_time": "200" + }, + "PFC_WD|Ethernet24": { + "action": "drop", + "detection_time": "200", + "restoration_time": "200" + }, + "PFC_WD|Ethernet-BP20": { + "action": "drop", + "detection_time": "200", + "restoration_time": "200" + }, + "PFC_WD|Ethernet-BP24": { + "action": "drop", + "detection_time": "200", + "restoration_time": "200" + }, + "PFC_WD|GLOBAL": { + "BIG_RED_SWITCH": "enable", + "POLL_INTERVAL": "199" + } +} diff --git a/sonic-utilities-tests/mock_tables/asic2/counters_db.json b/sonic-utilities-tests/mock_tables/asic2/counters_db.json new file mode 100644 index 0000000000..3286a0a752 --- /dev/null +++ b/sonic-utilities-tests/mock_tables/asic2/counters_db.json @@ -0,0 +1,1666 @@ +{ + "COUNTERS:oid:0x60000000005a3": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "0", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "0", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "0", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "0", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "0", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "0", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "0", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "0" + }, + "COUNTERS:oid:0x60000000005a1": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "0", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "0", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "608985", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "883", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "0", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "0", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "0", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "0" + }, + "COUNTERS:oid:0x600000000065f": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "1128", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "2", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "3", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "4", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "5", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "6", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "754", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "8" + }, + "COUNTERS:oid:0x60000000005a2": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "0", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "0", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "608985", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "883", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "0", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "0", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "0", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "0" + }, + "COUNTERS:oid:0x600000000063c": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "0", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "0", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "0", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "0", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "0", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "0", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "0", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "0" + }, + "COUNTERS:oid:0x600000000063d": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "0", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "0", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "608985", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "883", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "0", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "0", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "0", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "0" + }, + "COUNTERS:oid:0x1000000001000": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "440", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "55", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "28640", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "3580", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "44", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "352", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "31168", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "3896", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "5871", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "11", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "4740", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "47", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "499", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "2", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "7886", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "13" + + }, + "COUNTERS:oid:0x1000000001001": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "736", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "92", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "42512", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "5314", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "73", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "584", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "34352", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "4294", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "724", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "13", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "8548", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "2", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "226", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "5", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "8318", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "92" + + }, + "COUNTERS:oid:0x1000000001002": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "512", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "64", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "7080", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "885", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "20", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "160", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "39080", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "4885", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "3307", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "99", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "8919", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "20", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "999", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "0", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "9885", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "99" + + }, + "COUNTERS:oid:0x1000000001003": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "520", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "65", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "79336", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "9917", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "31", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "248", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "13000", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "1625", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "8814", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "0", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "1757", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "49", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "470", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "5", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "9734", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "35" + + }, + "COUNTERS:oid:0x1000000001004": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "224", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "28", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "47992", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "5999", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "36", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "288", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "30544", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "3818", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "8245", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "25", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "1954", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "26", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "880", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "1", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "8957", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "10" + + }, + "COUNTERS:oid:0x1000000001005": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "736", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "92", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "23344", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "2918", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "62", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "496", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "56040", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "7005", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "6730", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "99", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "5743", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "97", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "633", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "8", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "9538", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "54" + + }, + "COUNTERS:oid:0x1000000001006": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "584", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "73", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "25904", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "3238", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "63", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "504", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "38304", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "4788", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "74", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "72", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "3683", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "59", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "934", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "6", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "1060", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "53" + + }, + "COUNTERS:oid:0x1000000001007": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "512", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "64", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "76000", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "9500", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "67", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "536", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "2936", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "367", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "8805", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "95", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "4224", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "85", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "216", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "7", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "4283", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "0" + + }, + "COUNTERS:oid:0x1000000001008": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "456", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "57", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "43896", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "5487", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "4", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "32", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "8816", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "1102", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "1530", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "16", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "9282", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "62", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "235", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "6", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "3256", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "22" + + }, + "COUNTERS:oid:0x1000000001009": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "504", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "63", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "42344", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "5293", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "83", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "664", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "3832", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "479", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "3041", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "68", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "4391", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "86", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "172", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "9", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "8458", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "35" + + }, + "COUNTERS:oid:0x1000000001010": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "336", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "42", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "57424", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "7178", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "40", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "320", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "38416", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "4802", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "5356", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "70", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "2716", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "68", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "360", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "1", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "1394", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "13" + + }, + "COUNTERS:oid:0x1000000001011": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "760", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "95", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "35896", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "4487", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "47", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "376", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "69520", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "8690", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "5114", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "68", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "8389", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "23", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "777", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "4", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "8694", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "34" + + }, + "COUNTERS:oid:0x1000000001012": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "176", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "22", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "24064", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "3008", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "92", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "736", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "71704", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "8963", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "8759", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "98", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "8378", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "75", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "444", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "4", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "6390", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "11" + + }, + "COUNTERS:oid:0x1000000001013": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "168", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "21", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "19152", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "2394", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "80", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "640", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "22056", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "2757", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "9133", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "6", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "8308", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "65", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "496", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "5", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "3181", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "96" + + }, + "COUNTERS:oid:0x1000000001014": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "200", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "25", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "14536", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "1817", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "47", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "376", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "79696", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "9962", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "1819", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "34", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "7127", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "42", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "126", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "1", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "487", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "69" + + }, + "COUNTERS:oid:0x1000000001015": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "760", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "95", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "67288", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "8411", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "36", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "288", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "10848", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "1356", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "8152", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "34", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "3690", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "68", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "347", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "6", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "2844", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "88" + + }, + "COUNTERS:oid:0x1000000002000": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "664", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "83", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "78520", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "9815", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "62", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "496", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "51248", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "6406", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "1960", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "67", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "3987", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "77", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "997", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "3", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "4406", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "93" + + }, + "COUNTERS:oid:0x1000000002001": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "280", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "35", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "77616", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "9702", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "62", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "496", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "59440", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "7430", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "1880", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "83", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "8205", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "56", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "560", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "7", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "4320", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "95" + + }, + "COUNTERS:oid:0x1000000002002": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "240", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "30", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "17248", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "2156", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "20", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "160", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "14536", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "1817", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "7068", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "13", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "8087", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "35", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "196", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "2", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "150", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "56" + + }, + "COUNTERS:oid:0x1000000002003": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "648", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "81", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "60416", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "7552", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "98", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "784", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "65184", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "8148", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "1659", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "31", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "6912", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "79", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "515", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "3", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "5525", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "57" + + }, + "COUNTERS:oid:0x1000000002004": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "144", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "18", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "15456", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "1932", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "99", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "792", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "73632", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "9204", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "5010", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "55", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "7553", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "13", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "995", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "6", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "9133", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "46" + + }, + "COUNTERS:oid:0x1000000002005": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "384", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "48", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "7400", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "925", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "89", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "712", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "66432", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "8304", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "5746", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "92", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "8459", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "74", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "30", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "8", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "1972", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "4" + + }, + "COUNTERS:oid:0x1000000002006": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "568", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "71", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "56968", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "7121", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "46", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "368", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "76848", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "9606", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "3919", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "76", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "649", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "35", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "908", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "3", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "6804", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "10" + + }, + "COUNTERS:oid:0x1000000002007": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "160", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "20", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "9336", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "1167", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "30", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "240", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "39168", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "4896", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "3089", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "56", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "9521", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "83", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "875", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "0", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "2979", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "48" + + }, + "COUNTERS:oid:0x1000000002008": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "304", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "38", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "5624", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "703", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "17", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "136", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "46384", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "5798", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "8636", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "72", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "9950", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "76", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "67", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "2", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "4005", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "8" + + }, + "COUNTERS:oid:0x1000000002009": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "344", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "43", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "77968", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "9746", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "16", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "128", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "1624", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "203", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "6259", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "80", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "7033", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "96", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "226", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "8", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "1732", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "86" + + }, + "COUNTERS:oid:0x1000000002010": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "248", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "31", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "23888", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "2986", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "44", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "352", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "30872", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "3859", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "4585", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "17", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "3176", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "7", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "567", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "5", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "9822", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "32" + + }, + "COUNTERS:oid:0x1000000002011": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "552", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "69", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "35096", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "4387", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "4", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "32", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "4168", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "521", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "8590", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "76", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "7472", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "64", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "527", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "7", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "2772", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "1" + + }, + "COUNTERS:oid:0x1000000002012": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "600", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "75", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "69728", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "8716", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "23", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "184", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "30472", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "3809", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "5447", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "25", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "7670", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "60", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "537", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "4", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "4423", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "30" + + }, + "COUNTERS:oid:0x1000000002013": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "624", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "78", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "21416", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "2677", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "43", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "344", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "67040", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "8380", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "485", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "17", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "458", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "364", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "3", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "6280", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "94" + + }, + "COUNTERS:oid:0x1000000002014": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "504", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "63", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "20744", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "2593", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "7", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "56", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "12672", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "1584", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "8894", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "21", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "6258", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "57", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "69", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "8", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "5812", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "39" + + }, + "COUNTERS:oid:0x1000000002015": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "320", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "40", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "304", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "38", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "58", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "464", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "66480", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "8310", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "8073", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "38", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "2374", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "96", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "115", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "8", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "7589", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "9" + + }, + "COUNTERS:oid:0x1000000003000": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "328", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "41", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "26216", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "3277", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "87", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "696", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "57256", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "7157", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "5380", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "14", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "6152", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "83", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "719", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "9", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "7806", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "73" + + }, + "COUNTERS:oid:0x1000000003001": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "232", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "29", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "23968", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "2996", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "39", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "312", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "42136", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "5267", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "9206", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "77", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "2276", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "35", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "737", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "4", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "6904", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "71" + + }, + "COUNTERS:oid:0x1000000003002": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "792", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "99", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "35976", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "4497", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "97", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "776", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "76728", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "9591", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "9789", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "96", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "3424", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "34", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "946", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "9", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "7498", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "13" + + }, + "COUNTERS:oid:0x1000000003003": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "592", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "74", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "52440", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "6555", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "95", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "760", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "22360", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "2795", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "640", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "9", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "5797", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "4", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "5", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "0", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "1876", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "43" + + }, + "COUNTERS:oid:0x1000000003004": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "120", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "15", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "58576", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "7322", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "44", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "352", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "26960", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "3370", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "6613", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "67", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "849", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "73", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "648", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "8", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "1599", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "78" + + }, + "COUNTERS:oid:0x1000000003005": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "656", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "82", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "57088", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "7136", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "51", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "408", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "7680", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "960", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "7360", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "2", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "7571", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "21", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "127", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "8", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "2939", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "48" + + }, + "COUNTERS:oid:0x1000000003006": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "136", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "17", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "31312", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "3914", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "78", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "624", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "7088", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "886", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "9634", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "51", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "7451", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "76", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "940", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "0", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "3828", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "20" + + }, + "COUNTERS:oid:0x1000000003007": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "88", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "11", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "77264", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "9658", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "46", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "368", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "4824", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "603", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "1435", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "95", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "8539", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "54", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "685", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "9", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "9058", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "54" + + }, + "COUNTERS:oid:0x1000000003008": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "208", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "26", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "24360", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "3045", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "7", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "56", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "17720", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "2215", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "695", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "68", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "8592", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "5", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "181", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "4", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "4963", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "85" + + }, + "COUNTERS:oid:0x1000000003009": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "616", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "77", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "42696", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "5337", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "82", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "656", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "33936", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "4242", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "6729", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "15", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "7587", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "66", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "359", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "8", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "5498", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "36" + + }, + "COUNTERS:oid:0x1000000003010": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "376", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "47", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "2584", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "323", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "76", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "608", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "42376", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "5297", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "6733", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "76", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "3287", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "6", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "902", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "0", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "8748", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "26" + + }, + "COUNTERS:oid:0x1000000003011": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "264", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "33", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "67680", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "8460", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "78", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "624", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "64720", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "8090", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "1394", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "51", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "988", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "15", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "116", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "4", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "8272", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "94" + + }, + "COUNTERS:oid:0x1000000003012": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "152", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "19", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "55904", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "6988", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "36", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "288", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "38064", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "4758", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "5088", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "71", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "373", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "19", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "74", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "8", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "5817", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "0" + + }, + "COUNTERS:oid:0x1000000003013": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "728", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "91", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "69376", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "8672", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "83", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "664", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "23856", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "2982", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "6203", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "97", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "6916", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "49", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "253", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "4", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "4833", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "65" + + }, + "COUNTERS:oid:0x1000000003014": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "136", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "17", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "75744", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "9468", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "44", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "352", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "52240", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "6530", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "1970", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "26", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "6055", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "83", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "573", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "5", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "2860", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "48" + + }, + "COUNTERS:oid:0x1000000003015": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "88", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "11", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "50096", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "6262", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "65", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "520", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "44240", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "5530", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "4331", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "30", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "6559", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "27", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "230", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "4", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "6469", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "50" + + }, + "COUNTERS:oid:0x1000000004000": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "72", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "9", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "65888", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "8236", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "32", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "256", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "34400", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "4300", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "3836", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "77", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "891", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "99", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "962", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "2", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "3473", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "45" + + }, + "COUNTERS:oid:0x1000000004001": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "408", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "51", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "34304", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "4288", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "15", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "120", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "12760", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "1595", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "3922", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "54", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "4771", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "10", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "788", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "8", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "8089", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "15" + + }, + "COUNTERS:oid:0x1000000004002": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "568", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "71", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "59176", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "7397", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "67", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "536", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "43744", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "5468", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "972", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "34", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "6501", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "56", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "413", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "3", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "9569", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "8" + + }, + "COUNTERS:oid:0x1000000004003": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "8", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "1", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "51000", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "6375", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "86", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "688", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "50104", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "6263", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "4753", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "76", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "4747", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "60", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "701", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "7", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "8669", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "96" + + }, + "COUNTERS:oid:0x1000000004004": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "576", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "72", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "75448", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "9431", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "11", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "88", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "24520", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "3065", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "4486", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "8", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "5426", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "25", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "860", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "4", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "3633", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "92" + + }, + "COUNTERS:oid:0x1000000004005": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "392", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "49", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "38360", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "4795", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "71", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "568", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "2232", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "279", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "1848", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "39", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "1624", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "78", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "45", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "8", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "5074", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "10" + + }, + "COUNTERS:oid:0x1000000004006": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "200", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "25", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "65856", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "8232", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "64", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "512", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "79264", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "9908", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "3999", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "71", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "7447", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "15", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "6", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "7", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "3372", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "93" + + }, + "COUNTERS:oid:0x1000000004007": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "72", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "9", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "75600", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "9450", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "94", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "752", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "70608", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "8826", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "6653", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "11", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "1168", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "90", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "440", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "1", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "1084", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "7" + + }, + "COUNTERS:oid:0x1000000004008": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "136", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "17", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "2184", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "273", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "15", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "120", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "13360", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "1670", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "3865", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "47", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "7067", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "53", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "281", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "1", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "5858", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "45" + + }, + "COUNTERS:oid:0x1000000004009": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "312", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "39", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "38600", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "4825", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "51", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "408", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "17984", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "2248", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "5094", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "92", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "6991", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "96", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "636", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "8", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "1734", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "63" + + }, + "COUNTERS:oid:0x1000000004010": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "120", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "15", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "63392", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "7924", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "63", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "504", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "74536", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "9317", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "9421", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "50", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "9647", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "44", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "625", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "7", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "3991", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "1" + + }, + "COUNTERS:oid:0x1000000004011": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "344", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "43", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "75800", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "9475", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "95", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "760", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "6136", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "767", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "9667", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "70", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "3847", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "79", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "778", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "0", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "133", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "29" + + }, + "COUNTERS:oid:0x1000000004012": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "616", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "77", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "21072", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "2634", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "55", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "440", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "29736", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "3717", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "1", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "0", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "4691", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "26", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "7944", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "34", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "573", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "7", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "6631", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "57" + + }, + "COUNTERS:oid:0x1000000004013": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "232", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "29", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "54920", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "6865", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "30", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "240", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "51208", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "6401", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "8728", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "32", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "5931", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "39", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "768", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "1", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "9010", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "41" + + }, + "COUNTERS:oid:0x1000000004014": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "144", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "18", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "19680", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "2460", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "18", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "144", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "52576", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "6572", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "2668", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "54", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "8344", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "63", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "288", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "1", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "4343", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "60" + + }, + "COUNTERS:oid:0x1000000004015": { + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS": "48", + "SAI_ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS": "6", + "SAI_ROUTER_INTERFACE_STAT_IN_OCTETS": "61744", + "SAI_ROUTER_INTERFACE_STAT_IN_PACKETS": "7718", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS": "25", + "SAI_ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS": "200", + "SAI_ROUTER_INTERFACE_STAT_OUT_OCTETS": "69400", + "SAI_ROUTER_INTERFACE_STAT_OUT_PACKETS": "8675", + "PFC_WD_QUEUE_STATS_DEADLOCK_DETECTED": "0", + "PFC_WD_QUEUE_STATS_DEADLOCK_RESTORED": "1", + "PFC_WD_QUEUE_STATS_TX_PACKETS": "9808", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS": "12", + "PFC_WD_QUEUE_STATS_RX_PACKETS": "6644", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS": "2", + "PFC_WD_QUEUE_STATS_TX_PACKETS_LAST": "758", + "PFC_WD_QUEUE_STATS_TX_DROPPED_PACKETS_LAST": "7", + "PFC_WD_QUEUE_STATS_RX_PACKETS_LAST": "7599", + "PFC_WD_QUEUE_STATS_RX_DROPPED_PACKETS_LAST": "8" + + }, + "COUNTERS_RIF_NAME_MAP": { + "Ethernet20": "oid:0x600000000065f", + "PortChannel0001": "oid:0x60000000005a1", + "PortChannel0002": "oid:0x60000000005a2", + "PortChannel0003": "oid:0x600000000063c", + "PortChannel0004": "oid:0x600000000063d", + "Vlan1000": "oid:0x60000000005a3" + }, + "COUNTERS_RIF_TYPE_MAP": { + "oid:0x60000000005a1": "SAI_ROUTER_INTERFACE_TYPE_PORT", + "oid:0x60000000005a2": "SAI_ROUTER_INTERFACE_TYPE_PORT", + "oid:0x60000000005a3": "SAI_ROUTER_INTERFACE_TYPE_VLAN", + "oid:0x600000000063c": "SAI_ROUTER_INTERFACE_TYPE_PORT", + "oid:0x600000000063d": "SAI_ROUTER_INTERFACE_TYPE_PORT", + "oid:0x600000000065f": "SAI_ROUTER_INTERFACE_TYPE_PORT" + }, + "COUNTERS:DATAACL:DEFAULT_RULE": { + "Bytes": "1", + "Packets": "2" + }, + "COUNTERS:DATAACL:RULE_1": { + "Bytes": "100", + "Packets": "101" + }, + "COUNTERS:DATAACL:RULE_2": { + "Bytes": "200", + "Packets": "201" + }, + "COUNTERS:DATAACL:RULE_3": { + "Bytes": "300", + "Packets": "301" + }, + "COUNTERS:DATAACL:RULE_4": { + "Bytes": "400", + "Packets": "401" + }, + "COUNTERS:DATAACL:RULE_05": { + "Bytes": "0", + "Packets": "0" + }, + "COUNTERS:EVERFLOW:RULE_6": { + "Bytes": "600", + "Packets": "601" + }, + "COUNTERS:DATAACL:RULE_7":{ + "Bytes": "700", + "Packets": "701" + }, + "COUNTERS:EVERFLOW:RULE_08": { + "Bytes": "0", + "Packets": "0" + }, + "COUNTERS:DATAACL:RULE_9": { + "Bytes": "900", + "Packets": "901" + }, + "COUNTERS:DATAACL:RULE_10": { + "Bytes": "1000", + "Packets": "1001" + }, + "COUNTERS:oid:0x1000000000002": { + "SAI_PORT_STAT_IF_IN_UCAST_PKTS": "8", + "SAI_PORT_STAT_IF_IN_NON_UCAST_PKTS": "0", + "SAI_PORT_STAT_IF_IN_OCTETS" : "800", + "SAI_PORT_STAT_IF_OUT_UCAST_PKTS": "10", + "SAI_PORT_STAT_IF_OUT_NON_UCAST_PKTS" : "0", + "SAI_PORT_STAT_IF_OUT_OCTETS" : "1000", + "SAI_PORT_STAT_IF_IN_ERRORS": "10", + "SAI_PORT_STAT_IF_IN_DISCARDS": "100", + "SAI_PORT_STAT_IN_DROP_REASON_RANGE_BASE": "80", + "SAI_PORT_STAT_OUT_CONFIGURED_DROP_REASONS_1_DROPPED_PKTS": "20", + "SAI_PORT_STAT_PFC_0_RX_PKTS": "200", + "SAI_PORT_STAT_PFC_1_RX_PKTS": "201", + "SAI_PORT_STAT_PFC_2_RX_PKTS": "202", + "SAI_PORT_STAT_PFC_3_RX_PKTS": "203", + "SAI_PORT_STAT_PFC_4_RX_PKTS": "204", + "SAI_PORT_STAT_PFC_5_RX_PKTS": "205", + "SAI_PORT_STAT_PFC_6_RX_PKTS": "206", + "SAI_PORT_STAT_PFC_7_RX_PKTS": "207", + "SAI_PORT_STAT_PFC_0_TX_PKTS": "210", + "SAI_PORT_STAT_PFC_1_TX_PKTS": "211", + "SAI_PORT_STAT_PFC_2_TX_PKTS": "212", + "SAI_PORT_STAT_PFC_3_TX_PKTS": "213", + "SAI_PORT_STAT_PFC_4_TX_PKTS": "214", + "SAI_PORT_STAT_PFC_5_TX_PKTS": "215", + "SAI_PORT_STAT_PFC_6_TX_PKTS": "216", + "SAI_PORT_STAT_PFC_7_TX_PKTS": "217" + }, + "COUNTERS:oid:0x1000000000004": { + "SAI_PORT_STAT_IF_IN_UCAST_PKTS": "4", + "SAI_PORT_STAT_IF_IN_NON_UCAST_PKTS": "0", + "SAI_PORT_STAT_IF_IN_OCTETS" : "400", + "SAI_PORT_STAT_IF_OUT_UCAST_PKTS": "40", + "SAI_PORT_STAT_IF_OUT_NON_UCAST_PKTS" : "0", + "SAI_PORT_STAT_IF_OUT_OCTETS" : "4000", + "SAI_PORT_STAT_IF_IN_ERRORS": "0", + "SAI_PORT_STAT_IF_IN_DISCARDS": "1000", + "SAI_PORT_STAT_IN_DROP_REASON_RANGE_BASE": "800", + "SAI_PORT_STAT_OUT_CONFIGURED_DROP_REASONS_1_DROPPED_PKTS": "100", + "SAI_PORT_STAT_PFC_0_RX_PKTS": "400", + "SAI_PORT_STAT_PFC_1_RX_PKTS": "401", + "SAI_PORT_STAT_PFC_2_RX_PKTS": "402", + "SAI_PORT_STAT_PFC_3_RX_PKTS": "403", + "SAI_PORT_STAT_PFC_4_RX_PKTS": "404", + "SAI_PORT_STAT_PFC_5_RX_PKTS": "405", + "SAI_PORT_STAT_PFC_6_RX_PKTS": "406", + "SAI_PORT_STAT_PFC_7_RX_PKTS": "407", + "SAI_PORT_STAT_PFC_0_TX_PKTS": "410", + "SAI_PORT_STAT_PFC_1_TX_PKTS": "411", + "SAI_PORT_STAT_PFC_2_TX_PKTS": "412", + "SAI_PORT_STAT_PFC_3_TX_PKTS": "413", + "SAI_PORT_STAT_PFC_4_TX_PKTS": "414", + "SAI_PORT_STAT_PFC_5_TX_PKTS": "415", + "SAI_PORT_STAT_PFC_6_TX_PKTS": "416", + "SAI_PORT_STAT_PFC_7_TX_PKTS": "417" + }, + "COUNTERS:oid:0x1000000000006": { + "SAI_PORT_STAT_IF_IN_UCAST_PKTS": "6", + "SAI_PORT_STAT_IF_IN_NON_UCAST_PKTS": "0", + "SAI_PORT_STAT_IF_IN_OCTETS" : "600", + "SAI_PORT_STAT_IF_OUT_UCAST_PKTS": "60", + "SAI_PORT_STAT_IF_OUT_NON_UCAST_PKTS" : "0", + "SAI_PORT_STAT_IF_OUT_OCTETS" : "6000", + "SAI_PORT_STAT_IF_IN_ERRORS": "0", + "SAI_PORT_STAT_IF_IN_DISCARDS": "1000", + "SAI_PORT_STAT_IN_DROP_REASON_RANGE_BASE": "800", + "SAI_PORT_STAT_OUT_CONFIGURED_DROP_REASONS_1_DROPPED_PKTS": "100", + "SAI_PORT_STAT_PFC_0_RX_PKTS": "600", + "SAI_PORT_STAT_PFC_1_RX_PKTS": "601", + "SAI_PORT_STAT_PFC_2_RX_PKTS": "602", + "SAI_PORT_STAT_PFC_3_RX_PKTS": "603", + "SAI_PORT_STAT_PFC_4_RX_PKTS": "604", + "SAI_PORT_STAT_PFC_5_RX_PKTS": "605", + "SAI_PORT_STAT_PFC_6_RX_PKTS": "606", + "SAI_PORT_STAT_PFC_7_RX_PKTS": "607", + "SAI_PORT_STAT_PFC_0_TX_PKTS": "610", + "SAI_PORT_STAT_PFC_1_TX_PKTS": "611", + "SAI_PORT_STAT_PFC_2_TX_PKTS": "612", + "SAI_PORT_STAT_PFC_3_TX_PKTS": "613", + "SAI_PORT_STAT_PFC_4_TX_PKTS": "614", + "SAI_PORT_STAT_PFC_5_TX_PKTS": "615", + "SAI_PORT_STAT_PFC_6_TX_PKTS": "616", + "SAI_PORT_STAT_PFC_7_TX_PKTS": "617" + }, + "COUNTERS:oid:0x1000000000008": { + "SAI_PORT_STAT_IF_IN_UCAST_PKTS": "8", + "SAI_PORT_STAT_IF_IN_NON_UCAST_PKTS": "0", + "SAI_PORT_STAT_IF_IN_OCTETS" : "800", + "SAI_PORT_STAT_IF_OUT_UCAST_PKTS": "80", + "SAI_PORT_STAT_IF_OUT_NON_UCAST_PKTS" : "0", + "SAI_PORT_STAT_IF_OUT_OCTETS" : "8000", + "SAI_PORT_STAT_IF_IN_ERRORS": "0", + "SAI_PORT_STAT_IF_IN_DISCARDS": "1000", + "SAI_PORT_STAT_IN_DROP_REASON_RANGE_BASE": "800", + "SAI_PORT_STAT_OUT_CONFIGURED_DROP_REASONS_1_DROPPED_PKTS": "100", + "SAI_PORT_STAT_PFC_0_RX_PKTS": "800", + "SAI_PORT_STAT_PFC_1_RX_PKTS": "801", + "SAI_PORT_STAT_PFC_2_RX_PKTS": "802", + "SAI_PORT_STAT_PFC_3_RX_PKTS": "803", + "SAI_PORT_STAT_PFC_4_RX_PKTS": "804", + "SAI_PORT_STAT_PFC_5_RX_PKTS": "805", + "SAI_PORT_STAT_PFC_6_RX_PKTS": "806", + "SAI_PORT_STAT_PFC_7_RX_PKTS": "807", + "SAI_PORT_STAT_PFC_0_TX_PKTS": "810", + "SAI_PORT_STAT_PFC_1_TX_PKTS": "811", + "SAI_PORT_STAT_PFC_2_TX_PKTS": "812", + "SAI_PORT_STAT_PFC_3_TX_PKTS": "813", + "SAI_PORT_STAT_PFC_4_TX_PKTS": "814", + "SAI_PORT_STAT_PFC_5_TX_PKTS": "815", + "SAI_PORT_STAT_PFC_6_TX_PKTS": "816", + "SAI_PORT_STAT_PFC_7_TX_PKTS": "817" + }, + "COUNTERS:oid:0x21000000000000": { + "SAI_SWITCH_STAT_IN_DROP_REASON_RANGE_BASE": "1000" + }, + "COUNTERS_PORT_NAME_MAP": { + "Ethernet0": "oid:0x1000000000002", + "Ethernet4": "oid:0x1000000000004", + "Ethernet-BP0": "oid:0x1000000000006", + "Ethernet-BP4": "oid:0x1000000000008" + }, + "COUNTERS_LAG_NAME_MAP": { + "PortChannel0001": "oid:0x60000000005a1", + "PortChannel0002": "oid:0x60000000005a2", + "PortChannel0003": "oid:0x600000000063c", + "PortChannel0004": "oid:0x600000000063d" + }, + "COUNTERS_QUEUE_NAME_MAP": { + "Ethernet0:0": "oid:0x1000000001000", + "Ethernet0:1": "oid:0x1000000001001", + "Ethernet0:2": "oid:0x1000000001002", + "Ethernet0:3": "oid:0x1000000001003", + "Ethernet0:4": "oid:0x1000000001004", + "Ethernet0:5": "oid:0x1000000001005", + "Ethernet0:6": "oid:0x1000000001006", + "Ethernet0:7": "oid:0x1000000001007", + "Ethernet0:8": "oid:0x1000000001008", + "Ethernet0:9": "oid:0x1000000001009", + "Ethernet0:10": "oid:0x1000000001010", + "Ethernet0:11": "oid:0x1000000001011", + "Ethernet0:12": "oid:0x1000000001012", + "Ethernet0:13": "oid:0x1000000001013", + "Ethernet0:14": "oid:0x1000000001014", + "Ethernet0:15": "oid:0x1000000001015", + "Ethernet4:0": "oid:0x1000000002000", + "Ethernet4:1": "oid:0x1000000002001", + "Ethernet4:2": "oid:0x1000000002002", + "Ethernet4:3": "oid:0x1000000002003", + "Ethernet4:4": "oid:0x1000000002004", + "Ethernet4:5": "oid:0x1000000002005", + "Ethernet4:6": "oid:0x1000000002006", + "Ethernet4:7": "oid:0x1000000002007", + "Ethernet4:8": "oid:0x1000000002008", + "Ethernet4:9": "oid:0x1000000002009", + "Ethernet4:10": "oid:0x1000000002010", + "Ethernet4:11": "oid:0x1000000002011", + "Ethernet4:12": "oid:0x1000000002012", + "Ethernet4:13": "oid:0x1000000002013", + "Ethernet4:14": "oid:0x1000000002014", + "Ethernet4:15": "oid:0x1000000002015", + "Ethernet-BP0:0": "oid:0x1000000003000", + "Ethernet-BP0:1": "oid:0x1000000003001", + "Ethernet-BP0:2": "oid:0x1000000003002", + "Ethernet-BP0:3": "oid:0x1000000003003", + "Ethernet-BP0:4": "oid:0x1000000003004", + "Ethernet-BP0:5": "oid:0x1000000003005", + "Ethernet-BP0:6": "oid:0x1000000003006", + "Ethernet-BP0:7": "oid:0x1000000003007", + "Ethernet-BP0:8": "oid:0x1000000003008", + "Ethernet-BP0:9": "oid:0x1000000003009", + "Ethernet-BP0:10": "oid:0x1000000003010", + "Ethernet-BP0:11": "oid:0x1000000003011", + "Ethernet-BP0:12": "oid:0x1000000003012", + "Ethernet-BP0:13": "oid:0x1000000003013", + "Ethernet-BP0:14": "oid:0x1000000003014", + "Ethernet-BP0:15": "oid:0x1000000003015", + "Ethernet-BP4:0": "oid:0x1000000004000", + "Ethernet-BP4:1": "oid:0x1000000004001", + "Ethernet-BP4:2": "oid:0x1000000004002", + "Ethernet-BP4:3": "oid:0x1000000004003", + "Ethernet-BP4:4": "oid:0x1000000004004", + "Ethernet-BP4:5": "oid:0x1000000004005", + "Ethernet-BP4:6": "oid:0x1000000004006", + "Ethernet-BP4:7": "oid:0x1000000004007", + "Ethernet-BP4:8": "oid:0x1000000004008", + "Ethernet-BP4:9": "oid:0x1000000004009", + "Ethernet-BP4:10": "oid:0x1000000004010", + "Ethernet-BP4:11": "oid:0x1000000004011", + "Ethernet-BP4:12": "oid:0x1000000004012", + "Ethernet-BP4:13": "oid:0x1000000004013", + "Ethernet-BP4:14": "oid:0x1000000004014", + "Ethernet-BP4:15": "oid:0x1000000004015" + }, + "COUNTERS_DEBUG_NAME_PORT_STAT_MAP": { + "DEBUG_0": "SAI_PORT_STAT_IN_DROP_REASON_RANGE_BASE", + "DEBUG_2": "SAI_PORT_STAT_OUT_CONFIGURED_DROP_REASONS_1_DROPPED_PKTS" + }, + "COUNTERS_DEBUG_NAME_SWITCH_STAT_MAP": { + "DEBUG_1": "SAI_SWITCH_STAT_IN_DROP_REASON_RANGE_BASE" + } +} diff --git a/sonic-utilities-tests/mock_tables/asic2/database_config.json b/sonic-utilities-tests/mock_tables/asic2/database_config.json new file mode 100644 index 0000000000..d3028b0b45 --- /dev/null +++ b/sonic-utilities-tests/mock_tables/asic2/database_config.json @@ -0,0 +1,57 @@ +{ + "INSTANCES": { + "redis": { + "hostname" : "127.0.0.1", + "port" : 6379, + "unix_socket_path" : "/var/run/redis/redis.sock" + } + }, + "DATABASES" : { + "APPL_DB" : { + "id" : 0, + "separator": ":", + "instance" : "redis" + }, + "ASIC_DB" : { + "id" : 1, + "separator": ":", + "instance" : "redis" + }, + "COUNTERS_DB" : { + "id" : 2, + "separator": ":", + "instance" : "redis" + }, + "LOGLEVEL_DB" : { + "id" : 3, + "separator": ":", + "instance" : "redis" + }, + "CONFIG_DB" : { + "id" : 4, + "separator": "|", + "instance" : "redis" + }, + "PFC_WD_DB" : { + "id" : 5, + "separator": ":", + "instance" : "redis" + }, + "FLEX_COUNTER_DB" : { + "id" : 5, + "separator": ":", + "instance" : "redis" + }, + "STATE_DB" : { + "id" : 6, + "separator": "|", + "instance" : "redis" + }, + "SNMP_OVERLAY_DB" : { + "id" : 7, + "separator": "|", + "instance" : "redis" + } + }, + "VERSION" : "1.1" +} \ No newline at end of file diff --git a/sonic-utilities-tests/mock_tables/asic2/ip_route.json b/sonic-utilities-tests/mock_tables/asic2/ip_route.json new file mode 100644 index 0000000000..8edfc52364 --- /dev/null +++ b/sonic-utilities-tests/mock_tables/asic2/ip_route.json @@ -0,0 +1,699 @@ +{ + "0.0.0.0/0": [ + { + "distance": 200, + "internalFlags": 64, + "internalNextHopActiveNum": 0, + "internalNextHopNum": 1, + "internalStatus": 0, + "metric": 0, + "nexthops": [ + { + "afi": "ipv4", + "flags": 0, + "ip": "10.3.146.1" + } + ], + "prefix": "0.0.0.0/0", + "protocol": "static", + "table": 254, + "uptime": "2d22h02m" + }, + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel1015", + "ip": "10.0.0.15" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016", + "ip": "10.0.0.16" + } + ], + "prefix": "0.0.0.0/0", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + }, + { + "distance": 210, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 15, + "interfaceName": "eth0", + "ip": "240.127.1.1" + } + ], + "prefix": "0.0.0.0/0", + "protocol": "kernel", + "table": 254, + "uptime": "2d22h02m" + } + ], + "10.0.0.0/31": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel4001" + } + ], + "prefix": "10.0.0.0/31", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "10.0.0.4/31": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016" + } + ], + "prefix": "10.0.0.4/31", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "10.1.0.32/32": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 725, + "interfaceName": "Loopback0" + } + ], + "prefix": "10.1.0.32/32", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "100.1.0.3/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016", + "ip": "10.0.0.16" + } + ], + "prefix": "100.1.0.3/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "192.168.0.0/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel1015", + "ip": "10.0.0.15" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016", + "ip": "10.0.0.16" + } + ], + "prefix": "192.168.0.0/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "192.168.0.1/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel1015", + "ip": "10.0.0.15" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016", + "ip": "10.0.0.16" + } + ], + "prefix": "192.168.0.1/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "192.168.0.192/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel4001", + "ip": "10.0.0.15" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "Ethernet-BP24", + "ip": "10.0.0.16" + } + ], + "prefix": "192.168.0.192/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "192.168.0.193/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel1015", + "ip": "10.0.0.15" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016", + "ip": "10.0.0.16" + } + ], + "prefix": "192.168.0.193/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "192.168.0.208/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel1015", + "ip": "10.0.0.15" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016", + "ip": "10.0.0.16" + } + ], + "prefix": "192.168.0.208/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "192.168.0.209/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel1015", + "ip": "10.0.0.15" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016", + "ip": "10.0.0.16" + } + ], + "prefix": "192.168.0.209/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "192.168.0.224/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel1015", + "ip": "10.0.0.15" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016", + "ip": "10.0.0.16" + } + ], + "prefix": "192.168.0.224/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "192.168.0.225/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel1015", + "ip": "10.0.0.15" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016", + "ip": "10.0.0.16" + } + ], + "prefix": "192.168.0.225/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "192.168.0.240/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel1015", + "ip": "10.0.0.15" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016", + "ip": "10.0.0.16" + } + ], + "prefix": "192.168.0.240/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "192.168.0.241/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel1015", + "ip": "10.0.0.15" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016", + "ip": "10.0.0.16" + } + ], + "prefix": "192.168.0.241/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "192.168.0.32/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel1015", + "ip": "10.0.0.15" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016", + "ip": "10.0.0.16" + } + ], + "prefix": "192.168.0.32/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "192.168.0.96/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "Ethernet-BP20", + "ip": "10.0.0.15" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "Ethernet-BP24", + "ip": "10.0.0.16" + } + ], + "prefix": "192.168.0.96/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "192.168.0.97/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel1015", + "ip": "10.0.0.15" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016", + "ip": "10.0.0.16" + } + ], + "prefix": "192.168.0.97/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "8.0.0.2/32": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 726, + "interfaceName": "Loopback4096" + } + ], + "prefix": "8.0.0.2/32", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ] +} diff --git a/sonic-utilities-tests/mock_tables/asic2/ip_specific_route.json b/sonic-utilities-tests/mock_tables/asic2/ip_specific_route.json new file mode 100644 index 0000000000..e38ce4f2db --- /dev/null +++ b/sonic-utilities-tests/mock_tables/asic2/ip_specific_route.json @@ -0,0 +1,29 @@ +{ + "10.0.0.4/31": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016" + } + ], + "prefix": "10.0.0.4/31", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ] +} diff --git a/sonic-utilities-tests/mock_tables/asic2/ipv6_route.json b/sonic-utilities-tests/mock_tables/asic2/ipv6_route.json new file mode 100644 index 0000000000..86131f023f --- /dev/null +++ b/sonic-utilities-tests/mock_tables/asic2/ipv6_route.json @@ -0,0 +1,687 @@ +{ + "2064:100::1/128": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel1015", + "ip": "fc00::2" + } + ], + "prefix": "2064:100::1/128", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "2064:100::3/128": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016", + "ip": "fc00::6" + } + ], + "prefix": "2064:100::3/128", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "20c0:a800:0:10::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel1015", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:10::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "20c0:a800:0:11::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel4001", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1015", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:11::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "20c0:a800:0:1::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel1015", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:1::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "20c0:a800:0:20::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel1015", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel4001", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:20::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "20c0:a800:0:21::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel1015", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "Ethernet-BP24", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:21::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "20c0:a800:0:30::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "Ethernet-BP20", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "Ethernet-BP24", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:30::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "2603:10e2:400::2/128": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 726, + "interfaceName": "Loopback4096" + } + ], + "prefix": "2603:10e2:400::2/128", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "::/0": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel1015", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016", + "ip": "fc00::6" + } + ], + "prefix": "::/0", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + }, + { + "distance": 210, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 15, + "interfaceName": "eth0", + "ip": "fd00::1" + } + ], + "prefix": "::/0", + "protocol": "kernel", + "table": 254, + "uptime": "2d22h02m" + } + ], + "fc00:1::32/128": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 725, + "interfaceName": "Loopback0" + } + ], + "prefix": "fc00:1::32/128", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "fc00::/126": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel4001" + } + ], + "prefix": "fc00::/126", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "fc00::4/126": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016" + } + ], + "prefix": "fc00::4/126", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "fd00::/80": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 15, + "interfaceName": "eth0" + } + ], + "prefix": "fd00::/80", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "fe80::/64": [ + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel4001" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "2d22h02m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "2d22h02m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 742, + "interfaceName": "Ethernet20" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "2d22h02m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 743, + "interfaceName": "Ethernet24" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "2d22h02m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 738, + "interfaceName": "Ethernet-BP24" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "2d22h02m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 739, + "interfaceName": "Ethernet-BP20" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "2d22h02m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 726, + "interfaceName": "Loopback4096" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "2d22h02m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 725, + "interfaceName": "Loopback0" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "2d22h02m" + }, + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 15, + "interfaceName": "eth0" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ] +} diff --git a/sonic-utilities-tests/mock_tables/asic2/ipv6_specific_route.json b/sonic-utilities-tests/mock_tables/asic2/ipv6_specific_route.json new file mode 100644 index 0000000000..15c78d535d --- /dev/null +++ b/sonic-utilities-tests/mock_tables/asic2/ipv6_specific_route.json @@ -0,0 +1,29 @@ +{ + "2603:10e2:400::/128": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 726, + "interfaceName": "Loopback4096" + } + ], + "prefix": "2603:10e2:400::/128", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ] +} diff --git a/sonic-utilities-tests/mock_tables/asic2/state_db.json b/sonic-utilities-tests/mock_tables/asic2/state_db.json new file mode 100644 index 0000000000..411101f054 --- /dev/null +++ b/sonic-utilities-tests/mock_tables/asic2/state_db.json @@ -0,0 +1,207 @@ +{ + "TRANSCEIVER_INFO|Ethernet20": { + "type": "QSFP28 or later", + "hardware_rev": "AC", + "serial": "MT1706FT02064", + "manufacturer": "Mellanox", + "model": "MFA1A00-C003", + "vendor_oui": "00-02-c9", + "vendor_date": "2017-01-13 ", + "connector": "No separable connector", + "encoding": "64B66B", + "ext_identifier": "Power Class 3(2.5W max), CDR present in Rx Tx", + "ext_rateselect_compliance": "QSFP+ Rate Select Version 1", + "cable_type": "Length Cable Assembly(m)", + "cable_length": "3", + "specification_compliance": "{'10/40G Ethernet Compliance Code': '40G Active Cable (XLPPI)'}", + "nominal_bit_rate": "255", + "application_advertisement": "N/A" + }, + "TRANSCEIVER_DOM_SENSOR|Ethernet20": { + "temperature": "30.9258", + "voltage": "3.2824", + "rx1power": "0.3802", + "rx2power": "-0.4871", + "rx3power": "-0.0860", + "rx4power": "0.3830", + "tx1bias": "6.7500", + "tx2bias": "6.7500", + "tx3bias": "6.7500", + "tx4bias": "6.7500", + "tx1power": "N/A", + "tx2power": "N/A", + "tx3power": "N/A", + "tx4power": "N/A", + "rxpowerhighalarm": "3.4001", + "rxpowerhighwarning": "2.4000", + "rxpowerlowalarm": "-13.5067", + "rxpowerlowwarning": "-9.5001", + "txbiashighalarm": "10.0000", + "txbiashighwarning": "9.5000", + "txbiaslowalarm": "0.5000", + "txbiaslowwarning": "1.0000", + "temphighalarm": "75.0000", + "temphighwarning": "70.0000", + "templowalarm": "-5.0000", + "templowwarning": "0.0000", + "vcchighalarm": "3.6300", + "vcchighwarning": "3.4650", + "vcclowalarm": "2.9700", + "vcclowwarning": "3.1349" + }, + "CHASSIS_INFO|chassis 1": { + "psu_num": "2" + }, + "PSU_INFO|PSU 1": { + "presence": "true", + "status": "true", + "led_status": "green" + }, + "PSU_INFO|PSU 2": { + "presence": "true", + "status": "true", + "led_status": "green" + }, + "SWITCH_CAPABILITY|switch": { + "MIRROR": "true", + "MIRRORV6": "true", + "ACL_ACTIONS|INGRESS": "PACKET_ACTION,REDIRECT_ACTION,MIRROR_INGRESS_ACTION", + "ACL_ACTIONS|EGRESS": "PACKET_ACTION,MIRROR_EGRESS_ACTION", + "ACL_ACTION|PACKET_ACTION": "FORWARD" + }, + "DEBUG_COUNTER_CAPABILITIES|PORT_INGRESS_DROPS": { + "reasons": "[IP_HEADER_ERROR,NO_L3_HEADER]", + "count": "4" + }, + "DEBUG_COUNTER_CAPABILITIES|SWITCH_EGRESS_DROPS": { + "reasons": "[ACL_ANY,L2_ANY,L3_ANY]", + "count": "2" + }, + "LAG_MEMBER_TABLE|PortChannel1015|Ethernet20": { + "runner.actor_lacpdu_info.state": "5", + "runner.state": "disabled", + "runner.partner_lacpdu_info.port": "0", + "runner.actor_lacpdu_info.port": "113", + "runner.selected": "false", + "runner.partner_lacpdu_info.state": "0", + "ifinfo.dev_addr": "52:54:00:f2:e1:23", + "runner.partner_lacpdu_info.system": "00:00:00:00:00:00", + "link_watches.list.link_watch_0.up": "false", + "runner.actor_lacpdu_info.system": "52:54:00:f2:e1:23", + "runner.aggregator.selected": "false", + "runner.aggregator.id": "0", + "link.up": "false", + "ifinfo.ifindex": "98" + }, + "LAG_MEMBER_TABLE|PortChannel1016|Ethernet24": { + "runner.actor_lacpdu_info.state": "61", + "runner.state": "current", + "runner.partner_lacpdu_info.port": "1", + "runner.actor_lacpdu_info.port": "117", + "runner.selected": "true", + "runner.partner_lacpdu_info.state": "61", + "ifinfo.dev_addr": "52:54:00:f2:e1:23", + "runner.partner_lacpdu_info.system": "1e:af:77:fc:79:ee", + "link_watches.list.link_watch_0.up": "false", + "runner.actor_lacpdu_info.system": "52:54:00:f2:e1:23", + "runner.aggregator.selected": "true", + "runner.aggregator.id": "97", + "link.up": "true", + "ifinfo.ifindex": "97" + }, + "LAG_MEMBER_TABLE|PortChannel4011|Ethernet-BP20": { + "runner.actor_lacpdu_info.state": "61", + "runner.state": "current", + "runner.partner_lacpdu_info.port": "1", + "runner.actor_lacpdu_info.port": "121", + "runner.selected": "true", + "runner.partner_lacpdu_info.state": "61", + "ifinfo.dev_addr": "52:54:00:f2:e1:23", + "runner.partner_lacpdu_info.system": "16:0e:58:6f:3c:dd", + "link_watches.list.link_watch_0.up": "false", + "runner.actor_lacpdu_info.system": "52:54:00:f2:e1:23", + "runner.aggregator.selected": "true", + "runner.aggregator.id": "100", + "link.up": "true", + "ifinfo.ifindex": "100" + }, + "LAG_TABLE|PortChannel1015": { + "runner.fallback": "false", + "team_device.ifinfo.dev_addr": "52:54:00:f2:e1:23", + "team_device.ifinfo.ifindex": "71", + "setup.pid": "32", + "state": "ok", + "runner.fast_rate": "false", + "setup.kernel_team_mode_name": "loadbalance", + "runner.active": "true" + }, + "LAG_TABLE|PortChannel1016": { + "runner.fallback": "false", + "team_device.ifinfo.dev_addr": "52:54:00:f2:e1:23", + "team_device.ifinfo.ifindex": "72", + "setup.pid": "40", + "state": "ok", + "runner.fast_rate": "false", + "setup.kernel_team_mode_name": "loadbalance", + "runner.active": "true" + }, + "LAG_TABLE|PortChannel4011": { + "runner.fallback": "false", + "team_device.ifinfo.dev_addr": "52:54:00:f2:e1:23", + "team_device.ifinfo.ifindex": "73", + "setup.pid": "48", + "state": "ok", + "runner.fast_rate": "false", + "setup.kernel_team_mode_name": "loadbalance", + "runner.active": "true" + }, + "LAG_TABLE|PortChannel4012": { + "runner.fallback": "false", + "team_device.ifinfo.dev_addr": "52:54:00:f2:e1:23", + "team_device.ifinfo.ifindex": "74", + "setup.pid": "56", + "state": "ok", + "runner.fast_rate": "false", + "setup.kernel_team_mode_name": "loadbalance", + "runner.active": "true" + }, + "FAN_INFO|fan1": { + "drawer_name": "drawer1", + "presence": "True", + "model": "N/A", + "serial": "N/A", + "status": "True", + "direction": "intake", + "speed": "30", + "speed_tolerance": "50", + "speed_target": "20", + "led_status": "red", + "timestamp": "20200813 01:32:30" + }, + "FAN_INFO|fan2": { + "drawer_name": "drawer2", + "presence": "True", + "model": "N/A", + "serial": "N/A", + "status": "False", + "direction": "intake", + "speed": "50", + "speed_tolerance": "50", + "speed_target": "50", + "led_status": "green", + "timestamp": "20200813 01:32:30" + }, + "FAN_INFO|fan3": { + "drawer_name": "drawer3", + "presence": "True", + "model": "N/A", + "serial": "N/A", + "status": "Updating", + "direction": "intake", + "speed": "50", + "speed_tolerance": "50", + "speed_target": "50", + "led_status": "green", + "timestamp": "20200813 01:32:30" + } +} diff --git a/sonic-utilities-tests/mock_tables/database_global.json b/sonic-utilities-tests/mock_tables/database_global.json index f6f35f7fde..9cc8860de8 100644 --- a/sonic-utilities-tests/mock_tables/database_global.json +++ b/sonic-utilities-tests/mock_tables/database_global.json @@ -10,7 +10,11 @@ { "namespace" : "asic1", "include" : "./asic1/database_config.json" + }, + { + "namespace" : "asic2", + "include" : "./asic2/database_config.json" } ], "VERSION" : "1.0" -} \ No newline at end of file +} diff --git a/sonic-utilities-tests/mock_tables/ip_route.json b/sonic-utilities-tests/mock_tables/ip_route.json new file mode 100644 index 0000000000..83b7f22532 --- /dev/null +++ b/sonic-utilities-tests/mock_tables/ip_route.json @@ -0,0 +1,1402 @@ +{ + "0.0.0.0/0": [ + { + "distance": 200, + "internalFlags": 64, + "internalNextHopActiveNum": 0, + "internalNextHopNum": 1, + "internalStatus": 0, + "metric": 0, + "nexthops": [ + { + "afi": "ipv4", + "flags": 0, + "ip": "10.3.146.1" + } + ], + "prefix": "0.0.0.0/0", + "protocol": "static", + "table": 254, + "uptime": "1d11h20m" + }, + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "0.0.0.0/0", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + }, + { + "distance": 210, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 15, + "interfaceName": "eth0", + "ip": "240.127.1.1" + } + ], + "prefix": "0.0.0.0/0", + "protocol": "kernel", + "table": 254, + "uptime": "1d11h20m" + } + ], + "10.0.0.0/31": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002" + } + ], + "prefix": "10.0.0.0/31", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "10.0.0.4/31": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005" + } + ], + "prefix": "10.0.0.4/31", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "10.1.0.32/32": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 725, + "interfaceName": "Loopback0" + } + ], + "prefix": "10.1.0.32/32", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "1d11h21m" + } + ], + "100.1.0.3/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "100.1.0.3/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.0/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.0/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.1/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.1/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.112/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.112/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.113/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.113/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.128/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.128/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.129/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.129/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.144/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.144/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.145/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.145/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.16/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.16/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.160/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.160/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.161/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.161/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.17/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.17/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.176/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.176/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.177/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.177/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.192/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.192/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.193/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.193/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.208/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.208/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.209/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.209/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.224/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.224/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.225/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.225/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.240/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.240/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.241/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.241/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.32/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.32/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.33/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.33/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.48/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.48/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.49/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.49/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.64/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.64/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.65/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.65/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.80/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.80/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.81/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.81/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.96/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.96/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "192.168.0.97/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.97/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ], + "8.0.0.0/32": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 726, + "interfaceName": "Loopback4096" + } + ], + "prefix": "8.0.0.0/32", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "1d11h21m" + } + ] +} diff --git a/sonic-utilities-tests/mock_tables/ip_special_route.json b/sonic-utilities-tests/mock_tables/ip_special_route.json new file mode 100644 index 0000000000..514623c57f --- /dev/null +++ b/sonic-utilities-tests/mock_tables/ip_special_route.json @@ -0,0 +1,197 @@ +{ + "10.3.0.4/31": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "vrf": 2, + "recursive": true, + "blackhole": true, + "unreachable": true, + "fib": true, + "flags": 3, + "interfaceIndex": 726, + "interfaceName": "PortChannel1014" + } + ], + "prefix": "10.3.0.4/31", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "10.5.0.4/31": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "reject": true, + "unreachable": true, + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel1016" + } + ], + "prefix": "10.5.0.4/31", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "10.5.0.8/31": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "admin-prohibited": true, + "unreachable": true, + "onLink": true, + "source": "10.2.3.4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel1015" + } + ], + "prefix": "10.5.0.8/31", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "10.6.0.8/31": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "admin-prohibited": true, + "fib": true, + "flags": 7, + "interfaceIndex": 737, + "interfaceName": "PortChannel1025" + } + ], + "prefix": "10.6.0.8/31", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "10.6.5.0/31": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "admin-prohibited": true, + "fib": true, + "flags": 7, + "interfaceIndex": 737, + "interfaceName": "PortChannel1025" + } + ], + "prefix": "10.6.5.0/31", + "protocol": "connected", + "selected": true, + "queued": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "10.6.5.3/31": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "admin-prohibited": true, + "fib": true, + "flags": 7, + "interfaceIndex": 737, + "interfaceName": "PortChannel1025" + } + ], + "prefix": "10.6.5.3/31", + "protocol": "connected", + "selected": true, + "failed": true, + "table": 254, + "uptime": "2d22h02m" + } + ], + "10.7.0.8/31": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "admin-prohibited": true, + "unreachable": true, + "onLink": true, + "source": "10.2.3.4", + "fib": true, + "flags": 3, + "interfaceIndex": 729, + "interfaceName": "PortChannel1017", + "labels": [0,14,15,1212] + } + ], + "prefix": "10.7.0.8/31", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "2d22h02m" + } + ] +} diff --git a/sonic-utilities-tests/mock_tables/ip_specific_route.json b/sonic-utilities-tests/mock_tables/ip_specific_route.json new file mode 100644 index 0000000000..38f1cab729 --- /dev/null +++ b/sonic-utilities-tests/mock_tables/ip_specific_route.json @@ -0,0 +1,39 @@ +{ + "192.168.0.1/32": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "10.0.0.1" + }, + { + "active": true, + "afi": "ipv4", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "10.0.0.5" + } + ], + "prefix": "192.168.0.1/32", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h20m" + } + ] +} diff --git a/sonic-utilities-tests/mock_tables/ipv6_route.json b/sonic-utilities-tests/mock_tables/ipv6_route.json new file mode 100644 index 0000000000..d17065a9be --- /dev/null +++ b/sonic-utilities-tests/mock_tables/ipv6_route.json @@ -0,0 +1,2833 @@ +{ + "2064:100::1/128": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + } + ], + "prefix": "2064:100::1/128", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "2064:100::3/128": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "2064:100::3/128", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:10::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:10::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:11::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:11::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:1::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:1::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:20::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:20::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:21::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:21::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:30::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:30::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:31::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:31::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:40::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:40::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:41::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:41::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:50::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:50::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:51::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:51::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:60::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:60::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:61::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:61::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:70::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:70::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:71::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:71::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:80::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:80::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:81::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:81::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:90::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:90::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:91::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:91::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:a0::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:a0::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:a1::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:a1::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:b0::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:b0::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:b1::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:b1::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:c0::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:c0::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:c1::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:c1::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:d0::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:d0::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:d1::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:d1::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:e0::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:e0::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:e1::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:e1::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:f0::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:f0::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800:0:f1::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800:0:f1::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a800::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a800::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:10::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:10::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:11::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:11::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:1::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:1::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:20::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:20::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:21::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:21::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:30::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:30::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:31::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:31::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:40::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:40::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:41::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:41::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:50::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:50::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:51::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:51::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:60::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:60::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:61::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:61::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:70::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:70::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:71::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:71::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:80::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:80::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:81::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:81::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:90::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:90::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:91::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:91::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:a0::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:a0::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:a1::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:a1::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:b0::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:b0::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:b1::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:b1::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:c0::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:c0::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:c1::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:c1::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:d0::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:d0::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:d1::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:d1::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:e0::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:e0::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:e1::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:e1::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:f0::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:f0::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801:0:f1::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801:0:f1::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "20c0:a801::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "20c0:a801::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "2603:10e2:400::/128": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 726, + "interfaceName": "Loopback4096" + } + ], + "prefix": "2603:10e2:400::/128", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "::/0": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002", + "ip": "fc00::2" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005", + "ip": "fc00::6" + } + ], + "prefix": "::/0", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + }, + { + "distance": 210, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 15, + "interfaceName": "eth0", + "ip": "fd00::1" + } + ], + "prefix": "::/0", + "protocol": "kernel", + "table": 254, + "uptime": "1d11h34m" + } + ], + "fc00:1::32/128": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 725, + "interfaceName": "Loopback0" + } + ], + "prefix": "fc00:1::32/128", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "fc00::/126": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002" + } + ], + "prefix": "fc00::/126", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "fc00::4/126": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005" + } + ], + "prefix": "fc00::4/126", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "fd00::/80": [ + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 15, + "interfaceName": "eth0" + } + ], + "prefix": "fd00::/80", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ], + "fe80::/64": [ + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 727, + "interfaceName": "PortChannel0002" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "1d11h34m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 728, + "interfaceName": "PortChannel0005" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "1d11h34m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 742, + "interfaceName": "Ethernet20" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "1d11h34m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 743, + "interfaceName": "Ethernet16" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "1d11h34m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 738, + "interfaceName": "Ethernet4" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "1d11h34m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 739, + "interfaceName": "Ethernet0" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "1d11h34m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 726, + "interfaceName": "Loopback4096" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "1d11h34m" + }, + { + "distance": 0, + "installed": true, + "internalFlags": 0, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 725, + "interfaceName": "Loopback0" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "table": 254, + "uptime": "1d11h34m" + }, + { + "destSelected": true, + "distance": 0, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 1, + "internalNextHopNum": 1, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "directlyConnected": true, + "fib": true, + "flags": 3, + "interfaceIndex": 15, + "interfaceName": "eth0" + } + ], + "prefix": "fe80::/64", + "protocol": "connected", + "selected": true, + "table": 254, + "uptime": "1d11h34m" + } + ] +} diff --git a/sonic-utilities-tests/mock_tables/ipv6_specific_route.json b/sonic-utilities-tests/mock_tables/ipv6_specific_route.json new file mode 100644 index 0000000000..954156a90c --- /dev/null +++ b/sonic-utilities-tests/mock_tables/ipv6_specific_route.json @@ -0,0 +1,39 @@ +{ + "20c0:a8c7:0:81::/64": [ + { + "destSelected": true, + "distance": 20, + "installed": true, + "internalFlags": 8, + "internalNextHopActiveNum": 2, + "internalNextHopNum": 2, + "internalStatus": 16, + "metric": 0, + "nexthops": [ + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 928, + "interfaceName": "PortChannel0011", + "ip": "fc00::e" + }, + { + "active": true, + "afi": "ipv6", + "fib": true, + "flags": 3, + "interfaceIndex": 927, + "interfaceName": "PortChannel0008", + "ip": "fc00::a" + } + ], + "prefix": "20c0:a8c7:0:81::/64", + "protocol": "bgp", + "selected": true, + "table": 254, + "uptime": "2d13h40m" + } + ] +} diff --git a/sonic-utilities-tests/mock_tables/mock_multi_asic_3_asics.py b/sonic-utilities-tests/mock_tables/mock_multi_asic_3_asics.py new file mode 100644 index 0000000000..d598f5fba0 --- /dev/null +++ b/sonic-utilities-tests/mock_tables/mock_multi_asic_3_asics.py @@ -0,0 +1,17 @@ +# MONKEY PATCH!!! +from sonic_py_common import multi_asic + +def mock_get_num_asics(): + return 3 + + +def mock_is_multi_asic(): + return True + + +def mock_get_namespace_list(namespace=None): + return ['asic0', 'asic1', 'asic2'] + +multi_asic.get_num_asics = mock_get_num_asics +multi_asic.is_multi_asic = mock_is_multi_asic +multi_asic.get_namespace_list = mock_get_namespace_list