summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgp_evpn_mh.c48
-rw-r--r--bgpd/bgp_evpn_mh.h2
-rw-r--r--bgpd/bgp_route.h2
3 files changed, 35 insertions, 17 deletions
diff --git a/bgpd/bgp_evpn_mh.c b/bgpd/bgp_evpn_mh.c
index b3e66d607f..14a79229a4 100644
--- a/bgpd/bgp_evpn_mh.c
+++ b/bgpd/bgp_evpn_mh.c
@@ -69,8 +69,9 @@ static uint32_t bgp_evpn_es_get_active_vtep_cnt(struct bgp_evpn_es *es);
static void bgp_evpn_l3nhg_update_on_vtep_chg(struct bgp_evpn_es *es);
static struct bgp_evpn_es *bgp_evpn_es_new(struct bgp *bgp, const esi_t *esi);
static void bgp_evpn_es_free(struct bgp_evpn_es *es, const char *caller);
-static void bgp_evpn_es_path_all_update(struct bgp_evpn_es_vtep *es_vtep,
- bool active);
+static void
+bgp_evpn_es_path_update_on_vtep_chg(struct bgp_evpn_es_vtep *es_vtep,
+ bool active);
esi_t zero_esi_buf, *zero_esi = &zero_esi_buf;
@@ -1243,7 +1244,7 @@ static void bgp_evpn_es_vtep_re_eval_active(struct bgp *bgp,
* removed.
*/
bgp_evpn_l3nhg_update_on_vtep_chg(es_vtep->es);
- bgp_evpn_es_path_all_update(es_vtep, new_active);
+ bgp_evpn_es_path_update_on_vtep_chg(es_vtep, new_active);
/* queue up the es for background consistency checks */
bgp_evpn_es_cons_checks_pend_add(es_vtep->es);
@@ -1441,18 +1442,19 @@ void bgp_evpn_path_es_link(struct bgp_path_info *pi, vni_t vni, esi_t *esi)
listnode_add(es->macip_path_list, &es_info->es_listnode);
}
-static void bgp_evpn_es_path_all_update(struct bgp_evpn_es_vtep *es_vtep,
- bool active)
+static void
+bgp_evpn_es_path_update_on_vtep_chg(struct bgp_evpn_es_vtep *es_vtep,
+ bool active)
{
struct listnode *node;
struct bgp_path_es_info *es_info;
struct bgp_path_info *pi;
struct bgp_path_info *parent_pi;
struct bgp_evpn_es *es = es_vtep->es;
- char prefix_buf[PREFIX_STRLEN];
if (BGP_DEBUG(evpn_mh, EVPN_MH_RT))
- zlog_debug("update all paths linked to es %s", es->esi_str);
+ zlog_debug("update paths linked to es %s on vtep chg",
+ es->esi_str);
for (ALL_LIST_ELEMENTS_RO(es->macip_path_list, node, es_info)) {
pi = es_info->pi;
@@ -1470,10 +1472,9 @@ static void bgp_evpn_es_path_all_update(struct bgp_evpn_es_vtep *es_vtep,
continue;
if (BGP_DEBUG(evpn_mh, EVPN_MH_RT))
- zlog_debug("update path %s linked to es %s",
- prefix2str(&parent_pi->net->p, prefix_buf,
- sizeof(prefix_buf)),
- es->esi_str);
+ zlog_debug(
+ "update path %pFX linked to es %s on vtep chg",
+ &parent_pi->net->p, es->esi_str);
bgp_evpn_import_route_in_vrfs(parent_pi, active ? 1 : 0);
}
}
@@ -3170,13 +3171,30 @@ int bgp_evpn_remote_es_evi_del(struct bgp *bgp, struct bgpevpn *vpn,
vpn->vni, &p->prefix.ead_addr.ip.ipaddr_v4);
es = bgp_evpn_es_find(&p->prefix.ead_addr.esi);
- if (!es)
- /* XXX - error logs */
+ if (!es) {
+ if (BGP_DEBUG(evpn_mh, EVPN_MH_ES))
+ zlog_debug("del remote %s es %s evi %u vtep %pI4, NO es",
+ p->prefix.ead_addr.eth_tag ? "ead-es"
+ : "ead-evi",
+ esi_to_str(&p->prefix.ead_addr.esi, buf,
+ sizeof(buf)),
+ vpn->vni,
+ &p->prefix.ead_addr.ip.ipaddr_v4);
return 0;
+ }
es_evi = bgp_evpn_es_evi_find(es, vpn);
- if (!es_evi)
- /* XXX - error logs */
+ if (!es_evi) {
+ if (BGP_DEBUG(evpn_mh, EVPN_MH_ES))
+ zlog_debug(
+ "del remote %s es %s evi %u vtep %pI4, NO es-evi",
+ p->prefix.ead_addr.eth_tag ? "ead-es"
+ : "ead-evi",
+ esi_to_str(&p->prefix.ead_addr.esi, buf,
+ sizeof(buf)),
+ vpn->vni,
+ &p->prefix.ead_addr.ip.ipaddr_v4);
return 0;
+ }
ead_es = !!p->prefix.ead_addr.eth_tag;
bgp_evpn_es_evi_vtep_del(bgp, es_evi, p->prefix.ead_addr.ip.ipaddr_v4,
diff --git a/bgpd/bgp_evpn_mh.h b/bgpd/bgp_evpn_mh.h
index d2f6a7b054..b6d2a7faac 100644
--- a/bgpd/bgp_evpn_mh.h
+++ b/bgpd/bgp_evpn_mh.h
@@ -100,7 +100,7 @@ struct bgp_evpn_es {
/* List of ES-VRFs associated with this ES */
struct list *es_vrf_list;
- /* List of MAC-IP global routes using this ES as destination -
+ /* List of MAC-IP VNI paths using this ES as destination -
* element is bgp_path_info_extra->es_info
*/
struct list *macip_path_list;
diff --git a/bgpd/bgp_route.h b/bgpd/bgp_route.h
index 17ca3f8b38..ec08eb9c65 100644
--- a/bgpd/bgp_route.h
+++ b/bgpd/bgp_route.h
@@ -102,7 +102,7 @@ enum bgp_show_adj_route_type {
#define BGP_NLRI_PARSE_ERROR_EVPN_TYPE1_SIZE -15
#define BGP_NLRI_PARSE_ERROR -32
-/* MAC-IP/type-2 path_info in the global routing table is linked to the
+/* MAC-IP/type-2 path_info in the VNI routing table is linked to the
* destination ES
*/
struct bgp_path_es_info {