return p;
}
-static void evpn_overlay_free(struct bgp_route_evpn *bre)
+void evpn_overlay_free(struct bgp_route_evpn *bre)
{
XFREE(MTYPE_BGP_EVPN_OVERLAY, bre);
}
}
extern bool route_matches_soo(struct bgp_path_info *pi, struct ecommunity *soo);
+extern void evpn_overlay_free(struct bgp_route_evpn *bre);
#endif /* _QUAGGA_BGP_ATTR_H */
flog_err(EC_BGP_EVPN_ROUTE_INVALID,
"%u:%s - Rx EVPN Type-5 NLRI with invalid length %d",
peer->bgp->vrf_id, peer->host, psize);
+ evpn_overlay_free(evpn);
return -1;
}
EC_BGP_EVPN_ROUTE_INVALID,
"%u:%s - Rx EVPN Type-5 NLRI with invalid IP Prefix length %d",
peer->bgp->vrf_id, peer->host, ippfx_len);
+ evpn_overlay_free(evpn);
return -1;
}
p.prefix.prefix_addr.ip_prefix_length = ippfx_len;
}
bgp_withdraw(peer, (struct prefix *)&p, addpath_id, afi, safi,
ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL, &prd, &label, 1);
+ evpn_overlay_free(evpn);
}
return 0;
*/
if ((afi == AFI_L2VPN) && evpn)
bgp_attr_set_evpn_overlay(attr, evpn);
+ else
+ evpn_overlay_free(evpn);
bgp_adj_in_set(dest, peer, attr, addpath_id, &bgp_labels);
}
*/
if (soft_reconfig && (afi == AFI_L2VPN) && evpn)
bgp_attr_set_evpn_overlay(&new_attr, evpn);
+ else
+ evpn_overlay_free(evpn);
/* Apply incoming route-map.
* NB: new_attr may now contain newly allocated values from route-map