bgpd, zebra: remove strcpy, strlen and sprintf calls

Replace with safe copy functions - strlcpy, strlcat, strnlen and
snprintf.

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
This commit is contained in:
Anuradha Karuppiah 2020-06-15 17:24:39 -07:00
parent d87ed8d74a
commit 9e0c2fd182
4 changed files with 89 additions and 78 deletions

View File

@ -1342,7 +1342,8 @@ static void bgp_evpn_es_local_info_set(struct bgp *bgp, struct bgp_evpn_es *es)
bf_assign_index(bm->rd_idspace, es->rd_id); bf_assign_index(bm->rd_idspace, es->rd_id);
es->prd.family = AF_UNSPEC; es->prd.family = AF_UNSPEC;
es->prd.prefixlen = 64; es->prd.prefixlen = 64;
sprintf(buf, "%s:%hu", inet_ntoa(bgp->router_id), es->rd_id); snprintf(buf, sizeof(buf), "%s:%hu", inet_ntoa(bgp->router_id),
es->rd_id);
(void)str2prefix_rd(buf, &es->prd); (void)str2prefix_rd(buf, &es->prd);
} }
@ -1551,7 +1552,8 @@ int bgp_evpn_local_es_add(struct bgp *bgp, esi_t *esi,
return 0; return 0;
} }
static char *bgp_evpn_es_vteps_str(char *vtep_str, struct bgp_evpn_es *es) static char *bgp_evpn_es_vteps_str(char *vtep_str, struct bgp_evpn_es *es,
uint8_t vtep_str_size)
{ {
char vtep_flag_str[BGP_EVPN_FLAG_STR_SZ]; char vtep_flag_str[BGP_EVPN_FLAG_STR_SZ];
struct listnode *node; struct listnode *node;
@ -1562,22 +1564,20 @@ static char *bgp_evpn_es_vteps_str(char *vtep_str, struct bgp_evpn_es *es)
for (ALL_LIST_ELEMENTS_RO(es->es_vtep_list, node, es_vtep)) { for (ALL_LIST_ELEMENTS_RO(es->es_vtep_list, node, es_vtep)) {
vtep_flag_str[0] = '\0'; vtep_flag_str[0] = '\0';
if (es_vtep->flags & BGP_EVPNES_VTEP_ESR) if (es_vtep->flags & BGP_EVPNES_VTEP_ESR)
strcpy(vtep_flag_str + strlen(vtep_flag_str), "E"); strlcat(vtep_flag_str, "E", sizeof(vtep_flag_str));
if (es_vtep->flags & BGP_EVPNES_VTEP_ACTIVE) if (es_vtep->flags & BGP_EVPNES_VTEP_ACTIVE)
strcpy(vtep_flag_str + strlen(vtep_flag_str), "A"); strlcat(vtep_flag_str, "A", sizeof(vtep_flag_str));
if (!strlen(vtep_flag_str)) if (!strlen(vtep_flag_str))
strcpy(vtep_flag_str, "-"); strlcat(vtep_flag_str, "-", sizeof(vtep_flag_str));
if (first) { if (first)
first = false; first = false;
sprintf(vtep_str + strlen(vtep_str), "%s(%s)", else
inet_ntoa(es_vtep->vtep_ip), strlcat(vtep_str, ",", vtep_str_size);
vtep_flag_str); strlcat(vtep_str, inet_ntoa(es_vtep->vtep_ip), vtep_str_size);
} else { strlcat(vtep_str, "(", vtep_str_size);
sprintf(vtep_str + strlen(vtep_str), ",%s(%s)", strlcat(vtep_str, vtep_flag_str, vtep_str_size);
inet_ntoa(es_vtep->vtep_ip), strlcat(vtep_str, ")", vtep_str_size);
vtep_flag_str);
}
} }
return vtep_str; return vtep_str;
@ -1653,18 +1653,18 @@ static void bgp_evpn_es_show_entry(struct vty *vty,
type_str[0] = '\0'; type_str[0] = '\0';
if (es->flags & BGP_EVPNES_LOCAL) if (es->flags & BGP_EVPNES_LOCAL)
strcpy(type_str + strlen(type_str), "L"); strlcat(type_str, "L", sizeof(type_str));
if (es->flags & BGP_EVPNES_REMOTE) if (es->flags & BGP_EVPNES_REMOTE)
strcpy(type_str + strlen(type_str), "R"); strlcat(type_str, "R", sizeof(type_str));
if (es->inconsistencies) if (es->inconsistencies)
strcpy(type_str + strlen(type_str), "I"); strlcat(type_str, "I", sizeof(type_str));
bgp_evpn_es_vteps_str(vtep_str, es); bgp_evpn_es_vteps_str(vtep_str, es, sizeof(vtep_str));
if (es->flags & BGP_EVPNES_LOCAL) if (es->flags & BGP_EVPNES_LOCAL)
prefix_rd2str(&es->prd, buf1, sizeof(buf1)); prefix_rd2str(&es->prd, buf1, sizeof(buf1));
else else
strcpy(buf1, "-"); strlcpy(buf1, "-", sizeof(buf1));
vty_out(vty, "%-30s %-5s %-21s %-8d %s\n", vty_out(vty, "%-30s %-5s %-21s %-8d %s\n",
es->esi_str, type_str, buf1, es->esi_str, type_str, buf1,
@ -1712,18 +1712,18 @@ static void bgp_evpn_es_show_entry_detail(struct vty *vty,
type_str[0] = '\0'; type_str[0] = '\0';
if (es->flags & BGP_EVPNES_LOCAL) if (es->flags & BGP_EVPNES_LOCAL)
strcpy(type_str + strlen(type_str), "L"); strlcat(type_str, "L", sizeof(type_str));
if (es->flags & BGP_EVPNES_REMOTE) if (es->flags & BGP_EVPNES_REMOTE)
strcpy(type_str + strlen(type_str), "R"); strlcat(type_str, "R", sizeof(type_str));
bgp_evpn_es_vteps_str(vtep_str, es); bgp_evpn_es_vteps_str(vtep_str, es, sizeof(vtep_str));
if (!strlen(vtep_str)) if (!strlen(vtep_str))
strcpy(vtep_str, "-"); strlcpy(buf1, "-", sizeof(buf1));
if (es->flags & BGP_EVPNES_LOCAL) if (es->flags & BGP_EVPNES_LOCAL)
prefix_rd2str(&es->prd, buf1, sizeof(buf1)); prefix_rd2str(&es->prd, buf1, sizeof(buf1));
else else
strcpy(buf1, "-"); strlcpy(buf1, "-", sizeof(buf1));
vty_out(vty, "ESI: %s\n", es->esi_str); vty_out(vty, "ESI: %s\n", es->esi_str);
vty_out(vty, " Type: %s\n", type_str); vty_out(vty, " Type: %s\n", type_str);
@ -1738,10 +1738,10 @@ static void bgp_evpn_es_show_entry_detail(struct vty *vty,
if (es->inconsistencies) { if (es->inconsistencies) {
incons_str[0] = '\0'; incons_str[0] = '\0';
if (es->inconsistencies & BGP_EVPNES_INCONS_VTEP_LIST) if (es->inconsistencies & BGP_EVPNES_INCONS_VTEP_LIST)
strcpy(incons_str + strlen(incons_str), strlcat(incons_str, "vni-vtep-mismatch",
"vni-vtep-mismatch"); sizeof(incons_str));
} else { } else {
strcpy(incons_str, "-"); strlcpy(incons_str, "-", sizeof(incons_str));
} }
vty_out(vty, " Inconsistencies: %s\n", vty_out(vty, " Inconsistencies: %s\n",
incons_str); incons_str);
@ -2387,7 +2387,8 @@ void bgp_evpn_vni_es_cleanup(struct bgpevpn *vpn)
} }
static char *bgp_evpn_es_evi_vteps_str(char *vtep_str, static char *bgp_evpn_es_evi_vteps_str(char *vtep_str,
struct bgp_evpn_es_evi *es_evi) struct bgp_evpn_es_evi *es_evi,
uint8_t vtep_str_size)
{ {
char vtep_flag_str[BGP_EVPN_FLAG_STR_SZ]; char vtep_flag_str[BGP_EVPN_FLAG_STR_SZ];
struct listnode *node; struct listnode *node;
@ -2398,22 +2399,20 @@ static char *bgp_evpn_es_evi_vteps_str(char *vtep_str,
for (ALL_LIST_ELEMENTS_RO(es_evi->es_evi_vtep_list, node, evi_vtep)) { for (ALL_LIST_ELEMENTS_RO(es_evi->es_evi_vtep_list, node, evi_vtep)) {
vtep_flag_str[0] = '\0'; vtep_flag_str[0] = '\0';
if (evi_vtep->flags & BGP_EVPN_EVI_VTEP_EAD_PER_ES) if (evi_vtep->flags & BGP_EVPN_EVI_VTEP_EAD_PER_ES)
strcpy(vtep_flag_str + strlen(vtep_flag_str), "E"); strlcat(vtep_flag_str, "E", sizeof(vtep_flag_str));
if (evi_vtep->flags & BGP_EVPN_EVI_VTEP_EAD_PER_EVI) if (evi_vtep->flags & BGP_EVPN_EVI_VTEP_EAD_PER_EVI)
strcpy(vtep_flag_str + strlen(vtep_flag_str), "V"); strlcat(vtep_flag_str, "V", sizeof(vtep_flag_str));
if (!strlen(vtep_flag_str)) if (!strnlen(vtep_flag_str, sizeof(vtep_flag_str)))
strcpy(vtep_flag_str, "-"); strlcpy(vtep_flag_str, "-", sizeof(vtep_flag_str));
if (first) { if (first)
first = false; first = false;
sprintf(vtep_str + strlen(vtep_str), "%s(%s)", else
inet_ntoa(evi_vtep->vtep_ip), strlcat(vtep_str, ",", vtep_str_size);
vtep_flag_str); strlcat(vtep_str, inet_ntoa(evi_vtep->vtep_ip), vtep_str_size);
} else { strlcat(vtep_str, "(", vtep_str_size);
sprintf(vtep_str + strlen(vtep_str), ",%s(%s)", strlcat(vtep_str, vtep_flag_str, vtep_str_size);
inet_ntoa(evi_vtep->vtep_ip), strlcat(vtep_str, ")", vtep_str_size);
vtep_flag_str);
}
} }
return vtep_str; return vtep_str;
@ -2483,13 +2482,13 @@ static void bgp_evpn_es_evi_show_entry(struct vty *vty,
type_str[0] = '\0'; type_str[0] = '\0';
if (es_evi->flags & BGP_EVPNES_EVI_LOCAL) if (es_evi->flags & BGP_EVPNES_EVI_LOCAL)
strcpy(type_str + strlen(type_str), "L"); strlcat(type_str, "L", sizeof(type_str));
if (es_evi->flags & BGP_EVPNES_EVI_REMOTE) if (es_evi->flags & BGP_EVPNES_EVI_REMOTE)
strcpy(type_str + strlen(type_str), "R"); strlcat(type_str, "R", sizeof(type_str));
if (es_evi->flags & BGP_EVPNES_EVI_INCONS_VTEP_LIST) if (es_evi->flags & BGP_EVPNES_EVI_INCONS_VTEP_LIST)
strcpy(type_str + strlen(type_str), "I"); strlcat(type_str, "I", sizeof(type_str));
bgp_evpn_es_evi_vteps_str(vtep_str, es_evi); bgp_evpn_es_evi_vteps_str(vtep_str, es_evi, sizeof(vtep_str));
vty_out(vty, "%-8d %-30s %-5s %s\n", vty_out(vty, "%-8d %-30s %-5s %s\n",
es_evi->vpn->vni, es_evi->es->esi_str, es_evi->vpn->vni, es_evi->es->esi_str,
@ -2516,13 +2515,13 @@ static void bgp_evpn_es_evi_show_entry_detail(struct vty *vty,
type_str[0] = '\0'; type_str[0] = '\0';
if (es_evi->flags & BGP_EVPNES_EVI_LOCAL) if (es_evi->flags & BGP_EVPNES_EVI_LOCAL)
strcpy(type_str + strlen(type_str), "L"); strlcat(type_str, "L", sizeof(type_str));
if (es_evi->flags & BGP_EVPNES_EVI_REMOTE) if (es_evi->flags & BGP_EVPNES_EVI_REMOTE)
strcpy(type_str + strlen(type_str), "R"); strlcat(type_str, "R", sizeof(type_str));
bgp_evpn_es_evi_vteps_str(vtep_str, es_evi); bgp_evpn_es_evi_vteps_str(vtep_str, es_evi, sizeof(vtep_str));
if (!strlen(vtep_str)) if (!strlen(vtep_str))
strcpy(vtep_str, "-"); strlcpy(vtep_str, "-", sizeof(type_str));
vty_out(vty, "VNI: %d ESI: %s\n", vty_out(vty, "VNI: %d ESI: %s\n",
es_evi->vpn->vni, es_evi->es->esi_str); es_evi->vpn->vni, es_evi->es->esi_str);

View File

@ -3989,11 +3989,13 @@ static int netlink_fdb_nhg_update(uint32_t nhg_id, uint32_t nh_cnt,
if (IS_ZEBRA_DEBUG_KERNEL || IS_ZEBRA_DEBUG_EVPN_MH_NH) { if (IS_ZEBRA_DEBUG_KERNEL || IS_ZEBRA_DEBUG_EVPN_MH_NH) {
char vtep_str[ES_VTEP_LIST_STR_SZ]; char vtep_str[ES_VTEP_LIST_STR_SZ];
char nh_buf[16];
vtep_str[0] = '\0'; vtep_str[0] = '\0';
for (i = 0; i < nh_cnt; ++i) { for (i = 0; i < nh_cnt; ++i) {
sprintf(vtep_str + strlen(vtep_str), "0x%x ", snprintf(nh_buf, sizeof(nh_buf), "%u ",
grp[i].id); grp[i].id);
strlcat(vtep_str, nh_buf, sizeof(vtep_str));
} }
zlog_debug("Tx %s fdb-nhg 0x%x %s", zlog_debug("Tx %s fdb-nhg 0x%x %s",

View File

@ -260,7 +260,7 @@ static void zebra_evpn_es_evi_show_entry(struct vty *vty,
} else { } else {
type_str[0] = '\0'; type_str[0] = '\0';
if (es_evi->flags & ZEBRA_EVPNES_EVI_LOCAL) if (es_evi->flags & ZEBRA_EVPNES_EVI_LOCAL)
strcpy(type_str + strlen(type_str), "L"); strlcat(type_str, "L", sizeof(type_str));
vty_out(vty, "%-8d %-30s %-4s\n", vty_out(vty, "%-8d %-30s %-4s\n",
es_evi->zvni->vni, es_evi->es->esi_str, es_evi->zvni->vni, es_evi->es->esi_str,
@ -278,7 +278,7 @@ static void zebra_evpn_es_evi_show_entry_detail(struct vty *vty,
} else { } else {
type_str[0] = '\0'; type_str[0] = '\0';
if (es_evi->flags & ZEBRA_EVPNES_EVI_LOCAL) if (es_evi->flags & ZEBRA_EVPNES_EVI_LOCAL)
strcpy(type_str + strlen(type_str), "L"); strlcat(type_str, "L", sizeof(type_str));
vty_out(vty, "VNI %d ESI: %s\n", vty_out(vty, "VNI %d ESI: %s\n",
es_evi->zvni->vni, es_evi->es->esi_str); es_evi->zvni->vni, es_evi->es->esi_str);
@ -877,11 +877,14 @@ static void zebra_evpn_nhg_update(struct zebra_evpn_es *es)
if (IS_ZEBRA_DEBUG_EVPN_MH_NH) { if (IS_ZEBRA_DEBUG_EVPN_MH_NH) {
char nh_str[ES_VTEP_LIST_STR_SZ]; char nh_str[ES_VTEP_LIST_STR_SZ];
uint32_t i; uint32_t i;
char nh_buf[16];
nh_str[0] = '\0'; nh_str[0] = '\0';
for (i = 0; i < nh_cnt; ++i) for (i = 0; i < nh_cnt; ++i) {
sprintf(nh_str + strlen(nh_str), snprintf(nh_buf, sizeof(nh_buf), "%u ",
"0x%x ", nh_ids[i].id); nh_ids[i].id);
strlcat(nh_str, nh_buf, sizeof(nh_str));
}
zlog_debug("es %s nhg 0x%x add %s", zlog_debug("es %s nhg 0x%x add %s",
es->esi_str, es->nhg_id, nh_str); es->esi_str, es->nhg_id, nh_str);
} }
@ -1729,8 +1732,8 @@ void zebra_evpn_es_if_oper_state_change(struct zebra_if *zif, bool up)
zebra_evpn_es_send_add_to_client(es); zebra_evpn_es_send_add_to_client(es);
} }
static char *zebra_evpn_es_vtep_str(char *vtep_str, static char *zebra_evpn_es_vtep_str(char *vtep_str, struct zebra_evpn_es *es,
struct zebra_evpn_es *es) uint8_t vtep_str_size)
{ {
struct zebra_evpn_es_vtep *zvtep; struct zebra_evpn_es_vtep *zvtep;
struct listnode *node; struct listnode *node;
@ -1740,11 +1743,12 @@ static char *zebra_evpn_es_vtep_str(char *vtep_str,
for (ALL_LIST_ELEMENTS_RO(es->es_vtep_list, node, zvtep)) { for (ALL_LIST_ELEMENTS_RO(es->es_vtep_list, node, zvtep)) {
if (first) { if (first) {
first = false; first = false;
sprintf(vtep_str + strlen(vtep_str), "%s", strlcat(vtep_str, inet_ntoa(zvtep->vtep_ip),
inet_ntoa(zvtep->vtep_ip)); vtep_str_size);
} else { } else {
sprintf(vtep_str + strlen(vtep_str), ",%s", strlcat(vtep_str, ",", vtep_str_size);
inet_ntoa(zvtep->vtep_ip)); strlcat(vtep_str, inet_ntoa(zvtep->vtep_ip),
vtep_str_size);
} }
} }
return vtep_str; return vtep_str;
@ -1761,11 +1765,11 @@ static void zebra_evpn_es_show_entry(struct vty *vty,
} else { } else {
type_str[0] = '\0'; type_str[0] = '\0';
if (es->flags & ZEBRA_EVPNES_LOCAL) if (es->flags & ZEBRA_EVPNES_LOCAL)
strcpy(type_str + strlen(type_str), "L"); strlcat(type_str, "L", sizeof(type_str));
if (es->flags & ZEBRA_EVPNES_REMOTE) if (es->flags & ZEBRA_EVPNES_REMOTE)
strcpy(type_str + strlen(type_str), "R"); strlcat(type_str, "R", sizeof(type_str));
zebra_evpn_es_vtep_str(vtep_str, es); zebra_evpn_es_vtep_str(vtep_str, es, sizeof(vtep_str));
vty_out(vty, "%-30s %-4s %-21s %s\n", vty_out(vty, "%-30s %-4s %-21s %s\n",
es->esi_str, type_str, es->esi_str, type_str,
@ -1786,11 +1790,11 @@ static void zebra_evpn_es_show_entry_detail(struct vty *vty,
} else { } else {
type_str[0] = '\0'; type_str[0] = '\0';
if (es->flags & ZEBRA_EVPNES_LOCAL) if (es->flags & ZEBRA_EVPNES_LOCAL)
strcpy(type_str + strlen(type_str), "Local"); strlcat(type_str, "Local", sizeof(type_str));
if (es->flags & ZEBRA_EVPNES_REMOTE) { if (es->flags & ZEBRA_EVPNES_REMOTE) {
if (strlen(type_str)) if (strnlen(type_str, sizeof(type_str)))
strcpy(type_str + strlen(type_str), ","); strlcat(type_str, ",", sizeof(type_str));
strcpy(type_str + strlen(type_str), "Remote"); strlcat(type_str, "Remote", sizeof(type_str));
} }
vty_out(vty, "ESI: %s\n", es->esi_str); vty_out(vty, "ESI: %s\n", es->esi_str);

View File

@ -893,9 +893,10 @@ static void zvni_print_neigh_hdr(struct vty *vty,
"State", "MAC", "Remote ES/VTEP", "Seq #'s"); "State", "MAC", "Remote ES/VTEP", "Seq #'s");
} }
static char *zvni_print_neigh_flags(zebra_neigh_t *n, char *flags_buf) static char *zvni_print_neigh_flags(zebra_neigh_t *n, char *flags_buf,
uint32_t flags_buf_sz)
{ {
sprintf(flags_buf, "%s%s%s", snprintf(flags_buf, flags_buf_sz, "%s%s%s",
(n->flags & ZEBRA_NEIGH_ES_PEER_ACTIVE) ? (n->flags & ZEBRA_NEIGH_ES_PEER_ACTIVE) ?
"P" : "", "P" : "",
(n->flags & ZEBRA_NEIGH_ES_PEER_PROXY) ? (n->flags & ZEBRA_NEIGH_ES_PEER_PROXY) ?
@ -937,8 +938,9 @@ static void zvni_print_neigh_hash(struct hash_bucket *bucket, void *ctxt)
if (json_vni == NULL) { if (json_vni == NULL) {
vty_out(vty, "%*s %-6s %-5s %-8s %-17s %-30s %u/%u\n", vty_out(vty, "%*s %-6s %-5s %-8s %-17s %-30s %u/%u\n",
-wctx->addr_width, buf2, "local", -wctx->addr_width, buf2, "local",
zvni_print_neigh_flags(n, flags_buf), zvni_print_neigh_flags(n, flags_buf,
state_str, buf1, "", n->loc_seq, n->rem_seq); sizeof(flags_buf)), state_str,
buf1, "", n->loc_seq, n->rem_seq);
} else { } else {
json_object_string_add(json_row, "type", "local"); json_object_string_add(json_row, "type", "local");
json_object_string_add(json_row, "state", state_str); json_object_string_add(json_row, "state", state_str);
@ -971,7 +973,8 @@ static void zvni_print_neigh_hash(struct hash_bucket *bucket, void *ctxt)
zvni_print_neigh_hdr(vty, wctx); zvni_print_neigh_hdr(vty, wctx);
vty_out(vty, "%*s %-6s %-5s %-8s %-17s %-30s %u/%u\n", vty_out(vty, "%*s %-6s %-5s %-8s %-17s %-30s %u/%u\n",
-wctx->addr_width, buf2, "remote", -wctx->addr_width, buf2, "remote",
zvni_print_neigh_flags(n, flags_buf), zvni_print_neigh_flags(n, flags_buf,
sizeof(flags_buf)),
state_str, buf1, state_str, buf1,
n->mac->es ? n->mac->es->esi_str : n->mac->es ? n->mac->es->esi_str :
inet_ntoa(n->r_vtep_ip), inet_ntoa(n->r_vtep_ip),
@ -1504,9 +1507,10 @@ static void zvni_print_mac(zebra_mac_t *mac, void *ctxt, json_object *json)
} }
} }
static char *zvni_print_mac_flags(zebra_mac_t *mac, char *flags_buf) static char *zvni_print_mac_flags(zebra_mac_t *mac, char *flags_buf,
uint32_t flags_buf_sz)
{ {
sprintf(flags_buf, "%s%s%s%s", snprintf(flags_buf, flags_buf_sz, "%s%s%s%s",
mac->sync_neigh_cnt ? mac->sync_neigh_cnt ?
"N" : "", "N" : "",
(mac->flags & ZEBRA_MAC_ES_PEER_ACTIVE) ? (mac->flags & ZEBRA_MAC_ES_PEER_ACTIVE) ?
@ -1551,7 +1555,8 @@ static void zvni_print_mac_hash(struct hash_bucket *bucket, void *ctxt)
&ifp, &vid); &ifp, &vid);
if (json_mac_hdr == NULL) { if (json_mac_hdr == NULL) {
vty_out(vty, "%-17s %-6s %-5s %-30s", buf1, "local", vty_out(vty, "%-17s %-6s %-5s %-30s", buf1, "local",
zvni_print_mac_flags(mac, flags_buf), zvni_print_mac_flags(mac, flags_buf,
sizeof(flags_buf)),
ifp ? ifp->name : "-"); ifp ? ifp->name : "-");
} else { } else {
json_object_string_add(json_mac, "type", "local"); json_object_string_add(json_mac, "type", "local");
@ -1606,7 +1611,8 @@ static void zvni_print_mac_hash(struct hash_bucket *bucket, void *ctxt)
} }
vty_out(vty, "%-17s %-6s %-5s %-30s %-5s %u/%u\n", buf1, vty_out(vty, "%-17s %-6s %-5s %-30s %-5s %u/%u\n", buf1,
"remote", "remote",
zvni_print_mac_flags(mac, flags_buf), zvni_print_mac_flags(mac, flags_buf,
sizeof(flags_buf)),
mac->es ? mac->es->esi_str : mac->es ? mac->es->esi_str :
inet_ntoa(mac->fwd_info.r_vtep_ip), inet_ntoa(mac->fwd_info.r_vtep_ip),
"", mac->loc_seq, mac->rem_seq); "", mac->loc_seq, mac->rem_seq);
@ -9472,7 +9478,7 @@ void zebra_vxlan_remote_macip_add(ZAPI_HANDLER_ARGS)
if (memcmp(&esi, zero_esi, sizeof(esi_t))) if (memcmp(&esi, zero_esi, sizeof(esi_t)))
esi_to_str(&esi, esi_buf, sizeof(esi_buf)); esi_to_str(&esi, esi_buf, sizeof(esi_buf));
else else
strcpy(esi_buf, "-"); strlcpy(esi_buf, "-", ESI_STR_LEN);
zlog_debug( zlog_debug(
"Recv %sMACIP ADD VNI %u MAC %s%s%s flags 0x%x seq %u VTEP %s ESI %s from %s", "Recv %sMACIP ADD VNI %u MAC %s%s%s flags 0x%x seq %u VTEP %s ESI %s from %s",
(flags & ZEBRA_MACIP_TYPE_SYNC_PATH) ? (flags & ZEBRA_MACIP_TYPE_SYNC_PATH) ?