From 432e7e463ee4f7f07f246f08abb57981ea81b1f2 Mon Sep 17 00:00:00 2001 From: Karl Quan Date: Mon, 5 Dec 2022 08:06:36 -0800 Subject: [PATCH] bgpd: Adding BGP neighbor JSON output for neighbors never established a BGP adjacency Some keys are only present in the JSON data of BGP neighbors are only present if the peer is, or has previously been established. While they are not present if the peer has never come up. To keep the data structure aligned, the below keys are added also to the neighbors that BGP adjacency has never been established. Values of the keys are all set to Unknown hostname:Unknown, nexthop:Unknown, nexthopGlobal:Unknown, nexthopLocal:Unknown, bgpConnection:Unknown, Signed-off-by: Karl Quan --- bgpd/bgp_vty.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c index 1f532d4990..7575ceb292 100644 --- a/bgpd/bgp_vty.c +++ b/bgpd/bgp_vty.c @@ -13010,9 +13010,8 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, bool use_json, if (p->hostname) { if (use_json) { - if (p->hostname) - json_object_string_add(json_neigh, "hostname", - p->hostname); + json_object_string_add(json_neigh, "hostname", + p->hostname); if (p->domainname) json_object_string_add(json_neigh, "domainname", @@ -13024,6 +13023,10 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, bool use_json, else vty_out(vty, "Hostname: %s\n", p->hostname); } + } else { + if (use_json) + json_object_string_add(json_neigh, "hostname", + "Unknown"); } /* Peer-group */ @@ -14585,6 +14588,17 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, bool use_json, p->shared_network ? "shared network" : "non shared network"); } + } else { + if (use_json) { + json_object_string_add(json_neigh, "nexthop", + "Unknown"); + json_object_string_add(json_neigh, "nexthopGlobal", + "Unknown"); + json_object_string_add(json_neigh, "nexthopLocal", + "Unknown"); + json_object_string_add(json_neigh, "bgpConnection", + "Unknown"); + } } /* Timer information. */ -- 2.39.5