]> git.proxmox.com Git - mirror_frr.git/blobdiff - bgpd/bgp_route.c
Merge branch 'master' into type5-default-originate
[mirror_frr.git] / bgpd / bgp_route.c
index 0d226f9e72e1c39e6bab4284eec2d05047f246da..6e3751fb9d1d143643c860de306d58ce38107841 100644 (file)
@@ -2228,10 +2228,13 @@ static void bgp_process_main_one(struct bgp *bgp, struct bgp_node *rn,
 
        /* advertise/withdraw type-5 routes */
        if ((afi == AFI_IP || afi == AFI_IP6) && (safi == SAFI_UNICAST)) {
-               if (advertise_type5_routes(bgp, afi) && new_select)
-                       bgp_evpn_advertise_type5_route(
-                               bgp, &rn->p, new_select->attr, afi, safi);
-               else if (advertise_type5_routes(bgp, afi) && old_select)
+               if (advertise_type5_routes(bgp, afi) && new_select &&
+                   (!new_select->extra || !new_select->extra->parent))
+                       bgp_evpn_advertise_type5_route(bgp, &rn->p,
+                                                      new_select->attr,
+                                                      afi, safi);
+               else if (advertise_type5_routes(bgp, afi) && old_select &&
+                        (!old_select->extra || !old_select->extra->parent))
                        bgp_evpn_withdraw_type5_route(bgp, &rn->p, afi, safi);
        }