Skip to content

Commit f153b9a

Browse files
committed
bgpd: Ignore auto created VRF BGP instances
Configuration: ``` vtysh <<EOF configure vrf vrf100 vni 10100 exit-vrf router bgp 50 address-family l2vpn evpn advertise-all-vni exit-address-family exit router bgp 100 vrf vrf100 exit EOF ``` TL;DR; When we configure `advertise-all-vni` (in this case), a new BGP instance is created with the name vrf100, and ASN 50. Next, when we create `router bgp 100 vrf vrf100`, we look for the BGP instance with the same name and we found it, but ASNs are different 50 vs. 100. Every such a new auto created instance is flagged with BGP_VRF_AUTO. After the fix: ``` router bgp 50 ! address-family l2vpn evpn advertise-all-vni exit-address-family exit ! router bgp 100 vrf vrf100 exit ! end donatas.net(config)# router bgp 51 BGP is already running; AS is 50 donatas.net(config)# router bgp 50 donatas.net(config-router)# router bgp 101 vrf vrf100 BGP is already running; AS is 100 donatas.net(config)# router bgp 100 vrf vrf100 donatas.net(config-router)# ``` Fixes: FRRouting/frr#16152 Fixes: FRRouting/frr#9537 Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
1 parent 17e1f7c commit f153b9a

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

bgpd/bgpd.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3620,10 +3620,13 @@ struct bgp *bgp_lookup_by_name(const char *name)
36203620
struct bgp *bgp;
36213621
struct listnode *node, *nnode;
36223622

3623-
for (ALL_LIST_ELEMENTS(bm->bgp, node, nnode, bgp))
3623+
for (ALL_LIST_ELEMENTS(bm->bgp, node, nnode, bgp)) {
3624+
if (CHECK_FLAG(bgp->vrf_flags, BGP_VRF_AUTO))
3625+
continue;
36243626
if ((bgp->name == NULL && name == NULL)
36253627
|| (bgp->name && name && strcmp(bgp->name, name) == 0))
36263628
return bgp;
3629+
}
36273630
return NULL;
36283631
}
36293632

0 commit comments

Comments
 (0)