mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-11 16:39:33 +00:00
bgpd: update the VNI labels in type-2 routes when l3vni gets deleted
When an l3-vni is enabled, type-2 routes are sent with 2 labels (l2vni and l3vni). When it gets deleted, we need to update type-2 routes and send them with only one label (l2vni). Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
This commit is contained in:
parent
12eeac84ff
commit
7fdaec8894
@ -1209,6 +1209,23 @@ static int update_evpn_route_entry(struct bgp *bgp, struct bgpevpn *vpn,
|
|||||||
&& !CHECK_FLAG(tmp_ri->flags, BGP_INFO_REMOVED))
|
&& !CHECK_FLAG(tmp_ri->flags, BGP_INFO_REMOVED))
|
||||||
route_change = 0;
|
route_change = 0;
|
||||||
else {
|
else {
|
||||||
|
/*
|
||||||
|
* The attributes have changed, type-2 routes needs to
|
||||||
|
* be advertised with right labels.
|
||||||
|
*/
|
||||||
|
vni2label(vpn->vni, &label[0]);
|
||||||
|
if (evp->prefix.route_type == BGP_EVPN_MAC_IP_ROUTE) {
|
||||||
|
vni_t l3vni;
|
||||||
|
|
||||||
|
l3vni = bgpevpn_get_l3vni(vpn);
|
||||||
|
if (l3vni) {
|
||||||
|
vni2label(l3vni, &label[1]);
|
||||||
|
num_labels++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
memcpy(&tmp_ri->extra->label, label, sizeof(label));
|
||||||
|
tmp_ri->extra->num_labels = num_labels;
|
||||||
|
|
||||||
/* The attribute has changed. */
|
/* The attribute has changed. */
|
||||||
/* Add (or update) attribute to hash. */
|
/* Add (or update) attribute to hash. */
|
||||||
attr_new = bgp_attr_intern(attr);
|
attr_new = bgp_attr_intern(attr);
|
||||||
|
Loading…
Reference in New Issue
Block a user