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))
|
||||
route_change = 0;
|
||||
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. */
|
||||
/* Add (or update) attribute to hash. */
|
||||
attr_new = bgp_attr_intern(attr);
|
||||
|
Loading…
Reference in New Issue
Block a user