]> git.proxmox.com Git - mirror_frr.git/commitdiff
bgpd: simplify bgp instance name printing
authorG. Paul Ziemba <paulz@labn.net>
Wed, 28 Mar 2018 17:11:56 +0000 (10:11 -0700)
committerG. Paul Ziemba <paulz@labn.net>
Wed, 4 Apr 2018 16:24:17 +0000 (09:24 -0700)
Signed-off-by: G. Paul Ziemba <paulz@labn.net>
bgpd/bgpd.c
bgpd/bgpd.h

index ad4e7dc34c02d51d6828b377d0df5860cd746230..70dc11a7b13d7e735c14658b47d903dfab7d5fb3 100644 (file)
@@ -2964,6 +2964,28 @@ static struct bgp *bgp_create(as_t *as, const char *name,
                                 bgp->restart_time, &bgp->t_startup);
        }
 
+       /* printable name we can use in debug messages */
+       if (inst_type == BGP_INSTANCE_TYPE_DEFAULT) {
+               bgp->name_pretty = XSTRDUP(MTYPE_BGP, "VRF default");
+       } else {
+               const char *n;
+               int len;
+
+               if (bgp->name)
+                       n = bgp->name;
+               else
+                       n = "?";
+
+               len = 4 + 1 + strlen(n) + 1;    /* "view foo\0" */
+
+               bgp->name_pretty = XCALLOC(MTYPE_BGP, len);
+               snprintf(bgp->name_pretty, len, "%s %s",
+                       (bgp->inst_type == BGP_INSTANCE_TYPE_VRF)
+                               ? "VRF"
+                               : "VIEW",
+                       n);
+       }
+
        atomic_store_explicit(&bgp->wpkt_quanta, BGP_WRITE_PACKET_MAX,
                              memory_order_relaxed);
        atomic_store_explicit(&bgp->rpkt_quanta, BGP_READ_PACKET_MAX,
@@ -3358,6 +3380,8 @@ void bgp_free(struct bgp *bgp)
 
        if (bgp->name)
                XFREE(MTYPE_BGP, bgp->name);
+       if (bgp->name_pretty)
+               XFREE(MTYPE_BGP, bgp->name_pretty);
 
        XFREE(MTYPE_BGP, bgp);
 }
index 40f887b86da3479d118ce1aafa57690fac6daadf..0c5f72662cf4ce7307df94781ceeccb17d547611 100644 (file)
@@ -188,6 +188,7 @@ struct bgp {
 
        /* Name of this BGP instance.  */
        char *name;
+       char *name_pretty;      /* printable "VRF|VIEW name|default" */
 
        /* Type of instance and VRF id. */
        enum bgp_instance_type inst_type;