]> git.puffer.fish Git - matthieu/frr.git/commitdiff
BGP: Use VRF_UNKNOWN for initialization
authorvivek <vivek@cumulusnetworks.com>
Wed, 13 Apr 2016 22:43:15 +0000 (15:43 -0700)
committervivek <vivek@cumulusnetworks.com>
Thu, 14 Apr 2016 01:40:09 +0000 (18:40 -0700)
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
Ticket: CM-10423
Reviewed By: CCR-4474
Testing Done: Manual (basic checks)

bgpd/bgp_vty.c
bgpd/bgpd.c
bgpd/bgpd.h

index d54e1c7e43f12590f10c9ab36d758b59249d2031..897898750c57e1411168be58db1106938fd2c871 100644 (file)
@@ -9552,6 +9552,7 @@ DEFUN (show_bgp_vrfs,
       struct listnode *node, *nnode;
       int peers_cfg, peers_estb;
       json_object *json_vrf = NULL;
+      int vrf_id_ui;
 
       /* Skip Views. */
       if (bgp->inst_type == BGP_INSTANCE_TYPE_VIEW)
@@ -9586,10 +9587,11 @@ DEFUN (show_bgp_vrfs,
           type = "VRF";
         }
 
+      vrf_id_ui = (bgp->vrf_id == VRF_UNKNOWN) ? -1 : bgp->vrf_id;
       if (uj)
         {
           json_object_string_add(json_vrf, "type", type);
-          json_object_int_add(json_vrf, "vrfId", bgp->vrf_id);
+          json_object_int_add(json_vrf, "vrfId", vrf_id_ui);
           json_object_string_add(json_vrf, "routerId", inet_ntoa (bgp->router_id));
           json_object_int_add(json_vrf, "numConfiguredPeers", peers_cfg);
           json_object_int_add(json_vrf, "numEstablishedPeers", peers_estb);
@@ -9597,8 +9599,8 @@ DEFUN (show_bgp_vrfs,
           json_object_object_add(json_vrfs, name, json_vrf);
         }
       else
-        vty_out (vty, "%4s  %-5u  %-16s  %9u  %10u  %s%s",
-                 type, bgp->vrf_id, inet_ntoa (bgp->router_id),
+        vty_out (vty, "%4s  %-5d  %-16s  %9u  %10u  %s%s",
+                 type, vrf_id_ui, inet_ntoa (bgp->router_id),
                  peers_cfg, peers_estb, name,
                  VTY_NEWLINE);
     }
@@ -9798,26 +9800,23 @@ bgp_show_summary (struct vty *vty, struct bgp *bgp, int afi, int safi,
             {
               unsigned long ents;
               char memstrbuf[MTYPE_MEMSTR_LEN];
+              int vrf_id_ui;
+
+              vrf_id_ui = (bgp->vrf_id == VRF_UNKNOWN) ? -1 : bgp->vrf_id;
 
               /* Usage summary and header */
               if (use_json)
                 {
                   json_object_string_add(json, "routerId", inet_ntoa (bgp->router_id));
                   json_object_int_add(json, "as", bgp->as);
-
-                  if (bgp->vrf_id)
-                    json_object_int_add(json, "vrf-id", bgp->vrf_id);
+                  json_object_int_add(json, "vrf-id", vrf_id_ui);
 
                 }
               else
                 {
                   vty_out (vty,
-                           "BGP router identifier %s, local AS number %u",
-                           inet_ntoa (bgp->router_id), bgp->as);
-
-                  if (bgp->vrf_id)
-                    vty_out (vty, " vrf-id %u", bgp->vrf_id);
-
+                           "BGP router identifier %s, local AS number %u vrf-id %d",
+                           inet_ntoa (bgp->router_id), bgp->as, vrf_id_ui);
                   vty_out (vty, "%s", VTY_NEWLINE);
                 }
 
index 2583358eb9523280852fdb76ac55d00a0cbd09ed..59eab2185a5ac010a97ab58e0759607214bc5a53 100644 (file)
@@ -2749,7 +2749,8 @@ bgp_create (as_t *as, const char *name, enum bgp_instance_type inst_type)
 
   bgp_lock (bgp);
   bgp->inst_type = inst_type;
-  bgp->vrf_id = VRF_DEFAULT; /* initialization. */
+  bgp->vrf_id = (inst_type == BGP_INSTANCE_TYPE_DEFAULT) ?
+                VRF_DEFAULT : VRF_UNKNOWN;
   bgp->peer_self = peer_new (bgp);
   if (bgp->peer_self->host)
     XFREE(MTYPE_BGP_PEER_HOST, bgp->peer_self->host);
index 7846d03ca5190a98ada569252ee9f6bb4c52bc3d..3fe86e4eb646942c3b5900151d369f1445e6b13e 100644 (file)
@@ -350,7 +350,7 @@ struct bgp
 
 #define IS_BGP_INST_KNOWN_TO_ZEBRA(bgp) \
         (bgp->inst_type == BGP_INSTANCE_TYPE_DEFAULT || \
-         (bgp->inst_type == BGP_INSTANCE_TYPE_VRF && bgp->vrf_id != VRF_DEFAULT))
+         (bgp->inst_type == BGP_INSTANCE_TYPE_VRF && bgp->vrf_id != VRF_UNKNOWN))
 
 /* BGP peer-group support. */
 struct peer_group
@@ -1474,7 +1474,7 @@ bgp_vrf_unlink (struct bgp *bgp, struct vrf *vrf)
       vrf->info = NULL;
       bgp_unlock (bgp);
     }
-  bgp->vrf_id = VRF_DEFAULT;
+  bgp->vrf_id = VRF_UNKNOWN;
 }
 
 #endif /* _QUAGGA_BGPD_H */