frr/zebra
Sindhu Parvathi Gopinathan 780563cc8b zebra: json support for show ip nht
show ip/ipv6 nht vrf <all | name> json support added.

Commands enhanced with JSON:
----------------------------
show ip nht json
show ip nht <addr> json
show ipv6 nht json
show ipv6 nht <addr> json
show ip nht vrf <name> json
show ip nht vrf all json
show ipv6 nht vrf <name> json
show ipv6 nht vrf all json
show ip nht vrf default <addr> json
show ipv6 nht vrf default <addr> json

Sample JSON output:
-------------------

tor-1# show ip nht vrf default json
{
  "default":{
    "nexthops":{
      "27.0.0.5":{
        "nhtConnected":false,
        "clientList":[
          {
            "protocol":"bgp",
            "socket":70,
            "protocolFiltered":"none"
          }
        ],
        "gates":[
          {
            "ip":"fe80::202:ff:fe00:2b",
            "interface":"uplink_1"
          },
          {
            "ip":"fe80::202:ff:fe00:35",
            "interface":"uplink_2"
          }
        ],
        "resolvedProtocol":"bgp"
      },
      "27.0.0.6":{
        "nhtConnected":false,
        "clientList":[
          {
            "protocol":"bgp",
            "socket":70,
            "protocolFiltered":"none"
          }
        ],
        "gates":[
          {
            "ip":"fe80::202:ff:fe00:2b",
            "interface":"uplink_1"
          },
          {
            "ip":"fe80::202:ff:fe00:35",
            "interface":"uplink_2"
          }
        ],
        "resolvedProtocol":"bgp"
      }
    }
  }
}

tor-1# show ipv6 nht vrf default json
{
  "default": {
    "nexthops": {
      "fe80::202:ff:fe00:25": {
        "nhtConnected": true,
        "clientList": [
          {
            "protocol": "bgp",
            "socket": 45,
            "protocolFiltered": "none"
          }
        ],
        "gates": [
          {
            "interface": "swp1",
            "directlyConnected": true
          }
        ],
        "resolvedProtocol": "connected"
      },
      "fe80::202:ff:fe00:2b": {
        "nhtConnected": true,
        "clientList": [
          {
            "protocol": "bgp",
            "socket": 45,
            "protocolFiltered": "none"
          }
        ],
        "gates": [
          {
            "interface": "swp1",
            "directlyConnected": true
          }
        ],
        "resolvedProtocol": "connected"
      }
    }
  }
}

tor-1# show ipv6 nht vrf all json
{
  "default": {
    "nexthops": {
      "fe80::202:ff:fe00:25": {
        "nhtConnected": true,
        "clientList": [
          {
            "protocol": "bgp",
            "socket": 45,
            "protocolFiltered": "none"
          }
        ],
        "gates": [
          {
            "interface": "swp1",
            "directlyConnected": true
          }
        ],
        "resolvedProtocol": "connected"
      },
      "fe80::202:ff:fe00:2b": {
        "nhtConnected": true,
        "clientList": [
          {
            "protocol": "bgp",
            "socket": 45,
            "protocolFiltered": "none"
          }
        ],
        "gates": [
          {
            "interface": "swp1",
            "directlyConnected": true
          }
        ],
        "resolvedProtocol": "connected"
      }
    }
  },
  "mgmt": {
    "nexthops": {}
  },
  "sym_1": {
    "nexthops": {}
  }
}

Ticket:#3229013
Issue:3229013

Testing Done: Unit test completed.

Signed-off-by: Chirag Shah <chirag@nvidia.com>
Signed-off-by: Sindhu Parvathi Gopinathan <sgopinathan@nvidia.com>
2022-11-28 15:38:09 -08:00
..
dpdk build, vtysh: extract vtysh commands from .xref 2022-10-26 17:12:34 +01:00
.gitignore
connected.c *: Properly use memset() when zeroing 2022-05-11 14:08:47 +03:00
connected.h lib,zebra: use more const 2021-09-14 10:31:45 -04:00
debug.c zebra: traffic control state management 2022-11-22 22:35:35 +08:00
debug.h zebra: traffic control state management 2022-11-22 22:35:35 +08:00
debug_nl.c zebra: add tc netlink and dplane ops 2022-08-11 02:32:43 +08:00
dplane_fpm_nl.c zebra: traffic control state management 2022-11-22 22:35:35 +08:00
if_ioctl.c zebra: changes for code maintainability 2022-09-15 14:18:48 +05:30
if_netlink.c zebra: Allow tunneldump data to work properly on non-supported kernels 2022-10-04 15:05:44 -04:00
if_netlink.h zebra: netlink rtm tunnel msg parsing 2022-06-24 07:33:34 -04:00
if_socket.c zebra: Add a mpls enable interface node command 2022-08-08 09:15:22 -04:00
if_sysctl.c zebra: changes for code maintainability 2022-09-15 14:18:48 +05:30
interface.c zebra: Use mpls enable, not mpls when generating a config 2022-11-28 11:14:06 +02:00
interface.h zebra: Add IF_ZEBRA_DATA_X define 2022-08-08 09:15:22 -04:00
ioctl.c zebra: Attempt to make ioctl.c have a bit more useful log messges 2022-06-15 10:34:30 -04:00
ioctl.h *: Remove solaris from FRR 2020-09-21 10:02:20 -04:00
ipforward.h
ipforward_proc.c zebra: Cleanup set but unused variables 2020-02-27 09:41:58 -05:00
ipforward_sysctl.c *: Remove solaris from FRR 2020-09-21 10:02:20 -04:00
irdp.h *: Change thread->func to return void instead of int 2022-02-23 19:56:04 -05:00
irdp_interface.c zebra: kill zebra_memory.h, use MTYPE_STATIC 2021-03-22 20:02:17 +01:00
irdp_main.c zebra: Convert thread_cancel to THREAD_OFF 2022-07-21 08:30:50 -04:00
irdp_packet.c *: Change thread->func to return void instead of int 2022-02-23 19:56:04 -05:00
kernel_netlink.c zebra: traffic control state management 2022-11-22 22:35:35 +08:00
kernel_netlink.h zebra: new netlink parse utility for rta 2022-05-16 10:45:14 -07:00
kernel_socket.c zebra: traffic control state management 2022-11-22 22:35:35 +08:00
kernel_socket.h
label_manager.c Merge pull request #7756 from pjdruddy/bgplu-fixes 2021-01-09 15:48:22 -05:00
label_manager.h zebra: expose label-manager util-funcs 2021-01-05 18:19:44 +00:00
main.c zebra: Cleanup memory leaks on shutdown 2022-10-12 07:39:23 -04:00
Makefile
netconf_netlink.c zebra/netconf_netlink.c: fix build without AF_MPLS 2022-11-08 18:48:41 +01:00
netconf_netlink.h zebra: Add a mpls enable interface node command 2022-08-08 09:15:22 -04:00
redistribute.c zebra: Create a zebra_rib_route_entry_new function and use it 2022-08-17 16:04:50 -04:00
redistribute.h zebra: Fix redistribute.h up to our standards 2022-01-18 08:39:40 -05:00
rib.h zebra: Fix handling of recursive routes when processing closely in time 2022-10-26 15:06:23 -04:00
router-id.c lib, zebra, pimd: clean up/fix VRF DECLVAR macros 2022-04-28 11:09:26 +02:00
router-id.h zebra: add IPv6 router-id 2020-07-17 17:39:05 +02:00
rt.h zebra: add tc netlink and dplane ops 2022-08-11 02:32:43 +08:00
rt_netlink.c Merge pull request #12238 from donaldsharp/append 2022-11-07 10:37:05 +02:00
rt_netlink.h zebra: add support for protodown reason code 2022-03-09 17:52:44 -05:00
rt_socket.c zebra: Do not complain if deletion fails 2022-03-19 07:44:54 -04:00
rtadv.c build, vtysh: extract vtysh commands from .xref 2022-10-26 17:12:34 +01:00
rtadv.h zebra: clean up rtadv integration 2022-05-21 14:14:01 +02:00
rtread_netlink.c zebra: traffic control state management 2022-11-22 22:35:35 +08:00
rtread_sysctl.c zebra: traffic control state management 2022-11-22 22:35:35 +08:00
rule_netlink.c zebra: Add tracepoint for netlink_rule_change 2022-04-20 09:43:47 -04:00
rule_netlink.h zebra: netlink message batching 2020-08-10 21:42:43 +02:00
rule_socket.c zebra: convert ip rule installation to use dplane thread 2020-06-10 16:18:45 +02:00
sample_plugin.c *: require semicolon after FRR_DAEMON_INFO & co. 2021-03-17 06:18:39 +01:00
subdir.am zebra: traffic control state management 2022-11-22 22:35:35 +08:00
table_manager.c zebra, ospf6d: Do not check if NULL for XCALLOC() 2022-05-08 15:43:21 +03:00
table_manager.h zebra: extend table manager per vrf, add vty configuration 2021-09-21 18:37:30 +02:00
tc_netlink.c zebra: traffic control state management 2022-11-22 22:35:35 +08:00
tc_netlink.h zebra: traffic control state management 2022-11-22 22:35:35 +08:00
tc_socket.c zebra: traffic control state management 2022-11-22 22:35:35 +08:00
testrib.conf
zapi_msg.c zebra: traffic control ZAPI 2022-11-22 22:35:35 +08:00
zapi_msg.h zebra: name the route_entry opaque struct more specifically 2022-01-31 08:50:50 -05:00
zebra_dplane.c zebra: traffic control state management 2022-11-22 22:35:35 +08:00
zebra_dplane.h zebra: traffic control state management 2022-11-22 22:35:35 +08:00
zebra_errors.c zebra: add support for protodown reason code 2022-03-09 17:52:44 -05:00
zebra_errors.h zebra: add support for protodown reason code 2022-03-09 17:52:44 -05:00
zebra_evpn.c zebra: add some neigh del not found debugs 2022-10-11 16:18:21 -04:00
zebra_evpn.h zebra: Convert to struct zebra_vtep as per our internal standard 2021-09-02 10:33:22 -04:00
zebra_evpn_mac.c zebra: use "get" naming for bgp accept lower knob 2022-11-01 14:09:15 -04:00
zebra_evpn_mac.h bgpd,zebra,lib: bgp evpn vni macip into two tables 2022-10-11 16:18:21 -04:00
zebra_evpn_mh.c zebra: relax if_type check to allow early ES config creation 2022-11-10 12:43:23 -05:00
zebra_evpn_mh.h bgpd,zebra: correct one debug log for evpn-mh 2022-05-12 02:19:51 -04:00
zebra_evpn_neigh.c zebra: use "get" naming for bgp accept lower knob 2022-11-01 14:09:15 -04:00
zebra_evpn_neigh.h bgpd,zebra,lib: bgp evpn vni macip into two tables 2022-10-11 16:18:21 -04:00
zebra_evpn_vxlan.h *: cleanup ifp->vrf_id 2021-11-22 20:47:23 +03:00
zebra_fpm.c zebra: Remove duplicate updation of msg_type 2022-10-29 23:25:03 +05:30
zebra_fpm_dt.c zebra: replace inet_ntoa 2020-10-22 13:37:25 -04:00
zebra_fpm_netlink.c lib, zebra, bgpd: Move route EVPN flag to nexthop 2022-06-10 17:12:48 +08:00
zebra_fpm_private.h zebra: Fix IPv4 routes with IPv6 link local next hops install in FPM 2021-09-13 08:39:43 -07:00
zebra_fpm_protobuf.c *: Do not cast to the same type 2020-04-08 17:15:06 +03:00
zebra_gr.c *: Change thread->func to return void instead of int 2022-02-23 19:56:04 -05:00
zebra_l2.c *: cleanup ifp->vrf_id 2021-11-22 20:47:23 +03:00
zebra_l2.h zebra: clean up rtadv integration 2022-05-21 14:14:01 +02:00
zebra_mlag.c *: Change thread->func to return void instead of int 2022-02-23 19:56:04 -05:00
zebra_mlag.h *: require semicolon after DEFINE_HOOK & co. 2021-03-17 06:18:17 +01:00
zebra_mlag_private.c *: Change thread->func to return void instead of int 2022-02-23 19:56:04 -05:00
zebra_mlag_vty.c build, vtysh: extract vtysh commands from .xref 2022-10-26 17:12:34 +01:00
zebra_mlag_vty.h lib, zebra: add missing extern "C" {} blocks to new header files 2020-04-22 23:49:22 -03:00
zebra_mpls.c zebra: Convert label processing to Meta-Q 2022-08-17 10:44:33 -04:00
zebra_mpls.h zebra: Convert label processing to Meta-Q 2022-08-17 10:44:33 -04:00
zebra_mpls_netlink.c zebra: dplane FPM handle LSP install/update/delete 2020-11-27 16:32:01 +00:00
zebra_mpls_null.c
zebra_mpls_openbsd.c zebra: Convert to struct zebra_nhlfe as per our internal standard 2021-09-02 10:33:23 -04:00
zebra_mpls_vty.c *: Properly use memset() when zeroing 2022-05-11 14:08:47 +03:00
zebra_mroute.c zebra, pimd: Add a field family in the message ZEBRA_IPMR_ROUTE_STATS 2022-04-28 01:10:49 -07:00
zebra_mroute.h zebra: Modify base code to get ipv6 stats from kernel 2022-04-28 01:10:49 -07:00
zebra_nb.c zebra: North-bound implementation for zebra rmaps 2021-03-30 22:58:42 +03:00
zebra_nb.h zebra: North-bound implementation for zebra rmaps 2021-03-30 22:58:42 +03:00
zebra_nb_config.c zebra: remove one unnecessary check for l3vni nb 2022-05-20 03:11:27 -04:00
zebra_nb_rpcs.c zebra: display rpc error msg to vtysh 2020-10-05 13:57:54 -07:00
zebra_nb_state.c *: Avoid casting to the same type as on the left 2022-05-08 16:07:42 +03:00
zebra_neigh.c zebra: free neighbor state before exit to avoid memleaks 2022-07-14 12:20:01 -04:00
zebra_neigh.h zebra: add support for maintaining local neigh entries 2022-06-27 07:56:55 -04:00
zebra_netns_id.c zebra: ret is always -1 or 0 at this point so remove the if test 2022-06-16 16:31:35 -04:00
zebra_netns_id.h zebra: dynamically detect vxlan link interfaces in other netns 2020-09-11 18:26:23 +02:00
zebra_netns_notify.c zebra: Convert thread_cancel to THREAD_OFF 2022-07-21 08:30:50 -04:00
zebra_netns_notify.h
zebra_nhg.c zebra: traffic control state management 2022-11-22 22:35:35 +08:00
zebra_nhg.h lib, zebra: Add ability to encode/decode resilient nhg's 2022-11-04 13:29:36 -04:00
zebra_nhg_private.h lib, zebra: add missing extern "C" {} blocks to new header files 2020-04-22 23:49:22 -03:00
zebra_ns.c zebra: traffic control state management 2022-11-22 22:35:35 +08:00
zebra_ns.h zebra: Make netlink buffer reads resizeable when needed 2022-02-08 17:28:19 -05:00
zebra_opaque.c *: frr_with_mutex change to follow our standard 2022-07-20 15:50:32 -04:00
zebra_opaque.h zebra: add zebra opaque module 2020-06-02 08:20:54 -04:00
zebra_pbr.c zebra: make rib_process_dplane_results own ctx freeing 2022-06-29 15:24:20 -04:00
zebra_pbr.h zebra: pass PBR expanded actions to the dataplane 2022-06-27 07:56:55 -04:00
zebra_ptm.c zebra: Convert thread_cancel to THREAD_OFF 2022-07-21 08:30:50 -04:00
zebra_ptm.h *: Change thread->func to return void instead of int 2022-02-23 19:56:04 -05:00
zebra_ptm_redistribute.c zebra: kill zebra_memory.h, use MTYPE_STATIC 2021-03-22 20:02:17 +01:00
zebra_ptm_redistribute.h
zebra_pw.c zebra: Fix crash in shutdown w/ pw thread still running 2022-08-11 16:31:28 -04:00
zebra_pw.h *: use FRR interface name definition everywhere 2022-05-02 13:00:12 -03:00
zebra_rib.c zebra: traffic control state management 2022-11-22 22:35:35 +08:00
zebra_rnh.c zebra: json support for show ip nht 2022-11-28 15:38:09 -08:00
zebra_rnh.h zebra: json support for show ip nht 2022-11-28 15:38:09 -08:00
zebra_routemap.c build, vtysh: extract vtysh commands from .xref 2022-10-26 17:12:34 +01:00
zebra_routemap.h zebra: North-bound implementation for zebra rmaps 2021-03-30 22:58:42 +03:00
zebra_routemap_nb.c *: make sure config.h or zebra.h is first 2021-04-23 12:06:35 +02:00
zebra_routemap_nb.h zebra: North-bound implementation for zebra rmaps 2021-03-30 22:58:42 +03:00
zebra_routemap_nb_config.c zebra: remove checks for src address existence when using "set src" 2021-08-02 18:35:30 +03:00
zebra_router.c zebra: traffic control state management 2022-11-22 22:35:35 +08:00
zebra_router.h zebra: traffic control state management 2022-11-22 22:35:35 +08:00
zebra_script.c zebra: Replace TC definitions for dplane 2022-11-23 17:35:33 +02:00
zebra_script.h zebra: Add encoders/decoders for zebra 2021-10-20 00:56:00 +08:00
zebra_snmp.c build: make builddir include path consistent 2021-04-21 15:42:33 +02:00
zebra_srte.c zebra: Fix use-after-free issue in srte cleanup 2022-11-18 13:19:14 +01:00
zebra_srte.h zebra: upon srte leave, flush sr policies 2022-10-19 08:40:01 +02:00
zebra_srv6.c zebra: Add helpers to notify locator add/delete 2022-11-08 22:44:23 +01:00
zebra_srv6.h zebra: Add helpers to notify locator add/delete 2022-11-08 22:44:23 +01:00
zebra_srv6_vty.c bgpd: Fix the other of SR locator parameters 2022-11-22 22:59:46 +09:00
zebra_srv6_vty.h zebra: add default SRv6 Function length 2022-10-07 11:34:20 +09:00
zebra_tc.c zebra: traffic control state management 2022-11-22 22:35:35 +08:00
zebra_tc.h zebra: traffic control state management 2022-11-22 22:35:35 +08:00
zebra_trace.c zebra: Add initial zebra tracepoint support 2022-04-20 09:39:47 -04:00
zebra_trace.h zebra: Fix tracepoint changes for lttng 2022-11-26 09:30:48 -05:00
zebra_vrf.c build, vtysh: extract vtysh commands from .xref 2022-10-26 17:12:34 +01:00
zebra_vrf.h zebra: clean up rtadv integration 2022-05-21 14:14:01 +02:00
zebra_vty.c zebra: json support for show ip nht 2022-11-28 15:38:09 -08:00
zebra_vxlan.c zebra: use "get" naming for bgp accept lower knob 2022-11-01 14:09:15 -04:00
zebra_vxlan.h zebra: use "get" naming for bgp accept lower knob 2022-11-01 14:09:15 -04:00
zebra_vxlan_private.h zebra: Convert to struct zebra_l3nvi as per our internal standard 2021-09-02 10:33:22 -04:00
zserv.c zebra: Convert time to uint64_t for zclient data structures 2022-08-24 08:29:50 -04:00
zserv.h zebra: Convert time to uint64_t for zclient data structures 2022-08-24 08:29:50 -04:00