diff options
| -rw-r--r-- | bgpd/bgp_attr_evpn.c | 4 | ||||
| -rw-r--r-- | bgpd/rfapi/rfapi_vty.c | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/bgpd/bgp_attr_evpn.c b/bgpd/bgp_attr_evpn.c index 09b71e5d64..e528fadedd 100644 --- a/bgpd/bgp_attr_evpn.c +++ b/bgpd/bgp_attr_evpn.c @@ -53,8 +53,10 @@ void bgp_add_routermac_ecom(struct attr *attr, struct ethaddr *routermac) routermac_ecom.val[0] = ECOMMUNITY_ENCODE_EVPN; routermac_ecom.val[1] = ECOMMUNITY_EVPN_SUBTYPE_ROUTERMAC; memcpy(&routermac_ecom.val[2], routermac->octet, ETH_ALEN); - if (!ecomm) + if (!ecomm) { bgp_attr_set_ecommunity(attr, ecommunity_new()); + ecomm = bgp_attr_get_ecommunity(attr); + } ecommunity_add_val(ecomm, &routermac_ecom, false, false); ecommunity_str(ecomm); } diff --git a/bgpd/rfapi/rfapi_vty.c b/bgpd/rfapi/rfapi_vty.c index 6c08168cf6..174fadc23e 100644 --- a/bgpd/rfapi/rfapi_vty.c +++ b/bgpd/rfapi/rfapi_vty.c @@ -467,7 +467,7 @@ void rfapiPrintAttrPtrs(void *stream, struct attr *attr) struct transit *transit; struct cluster_list *cluster; char buf[BUFSIZ]; - struct ecommunity *ecomm = bgp_attr_get_ecommunity(attr); + struct ecommunity *ecomm; if (rfapiStream2Vty(stream, &fp, &vty, &out, &vty_newline) == 0) return; @@ -485,6 +485,7 @@ void rfapiPrintAttrPtrs(void *stream, struct attr *attr) fp(out, " community=%p, refcnt=%d%s", attr->community, (attr->community ? attr->community->refcnt : 0), HVTYNL); + ecomm = bgp_attr_get_ecommunity(attr); fp(out, " ecommunity=%p, refcnt=%d%s", ecomm, (ecomm ? ecomm->refcnt : 0), HVTYNL); |
