Skip to content

Commit

Permalink
bgpd: Requests SRv6 locator after zebra connection
Browse files Browse the repository at this point in the history
When SRv6 is enabled and an SRv6 locator is specified in the BGP
configuration, BGP may attempt to request SRv6 locator information from
zebra before the connection is fully established. If this occurs, the
request fails with the following error:

```
2025/02/06 16:37:32 BGP: [HR66R-TWQYD][EC 100663302] srv6_manager_get_locator: invalid zclient socket
````

As a result, BGP is unable to obtain the locator information,
preventing SRv6 VPN from working.

This commit fixes the issue by ensuring BGP requests SRv6 locator
information once the connection with zebra is successfully established.

Signed-off-by: Carmine Scarpitta <[email protected]>
  • Loading branch information
cscarpitta committed Feb 8, 2025
1 parent 2ef76a3 commit 99ce5bb
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions bgpd/bgp_zebra.c
Original file line number Diff line number Diff line change
Expand Up @@ -2349,6 +2349,13 @@ void bgp_zebra_instance_register(struct bgp *bgp)
bgp_zebra_advertise_all_vni(bgp, 1);

bgp_nht_register_nexthops(bgp);

/*
* Request SRv6 locator information from Zebra, if SRv6 is enabled
* and a locator is configured for this BGP instance.
*/
if (bgp->srv6_enabled && bgp->srv6_locator_name[0] != '\0' && !bgp->srv6_locator)
bgp_zebra_srv6_manager_get_locator(bgp->srv6_locator_name);
}

/* Deregister this instance with Zebra. Invoked upon the instance
Expand Down

0 comments on commit 99ce5bb

Please sign in to comment.