]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: Adding BGP neighbor JSON output for neighbors never established a BGP adjacency 12444/head 12447/head
authorKarl Quan <kquan@nvidia.com>
Mon, 5 Dec 2022 16:06:36 +0000 (08:06 -0800)
committerKarl Quan <kquan@nvidia.com>
Mon, 5 Dec 2022 16:06:36 +0000 (08:06 -0800)
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 <kquan@nvidia.com>
bgpd/bgp_vty.c

index 1f532d499038bc44f9480b5784a51d22abe1f8fb..7575ceb292a6ae5331f1ea406329359e328fbf3b 100644 (file)
@@ -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. */