mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-03 13:01:59 +00:00
bgp: fix misc evpn prefix match problems caused by using incorrect prefixlen
The evpn route prefix len was being hardcoded to 224 bits while the length of a mac-ip addr is actually 288. Because of this many problems were seen in the evpn-tests. The sample below is from a test that does a vm-move to verify extended-evpn-mac-mobility - IP1-M1 => IP2->M1. You can see two local neighs but only one was inserted into the per-vni route table. root@TORC11:~# net show evpn arp vni 1001 |grep "2001:fee1:0:1::10\|2001:fee1:0:1::11" 2001:fee1:0:1::10 local active 00:54:6f:7c:74:64 2001:fee1:0:1::11 local active 00:54:6f:7c:74:64 root@TORC11:~# net show bgp l2vpn evpn route vni 1001 |grep "2001:fee1:0:1::10\|2001:fee1:0:1::11" *> [2]:[0]:[48]:[00:54:6f:7c:74:64]:[128]:[2001:fee1:0:1::11] root@TORC11:~# Similarly other traffic loss problems were seen because of one prefix updating another prefix's route. I think the 224-bits came from the packet format definition of type-2 routes. However the way FRR maintains the key is very different than the format in the packet so it seems best to just sizeof the addr. Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
This commit is contained in:
parent
50b9931b0a
commit
2f04c4f033
@ -30,8 +30,9 @@
|
||||
|
||||
#define RT_ADDRSTRLEN 28
|
||||
|
||||
/* EVPN prefix lengths. This reprsent the sizeof struct prefix_evpn */
|
||||
#define EVPN_ROUTE_PREFIXLEN 224
|
||||
/* EVPN prefix lengths. This represents the sizeof struct evpn_addr
|
||||
* in bits */
|
||||
#define EVPN_ROUTE_PREFIXLEN (sizeof(struct evpn_addr) * 8)
|
||||
|
||||
/* EVPN route types. */
|
||||
typedef enum {
|
||||
|
Loading…
Reference in New Issue
Block a user