Skip to content

FRR: Add SRv6 bgp support#3263

Open
jbemmel wants to merge 10 commits intoipspace:devfrom
jbemmel:srv6-bgp
Open

FRR: Add SRv6 bgp support#3263
jbemmel wants to merge 10 commits intoipspace:devfrom
jbemmel:srv6-bgp

Conversation

@jbemmel
Copy link
Copy Markdown
Collaborator

@jbemmel jbemmel commented Mar 31, 2026

Following the upgrade to the latest FRR 10.6 release, we can now do SRv6 with BGP as IGP

Conceptually this still somewhat mixes EBGP as an IGP underlay for SRv6 and BGP v4/v6 in the overlay, we may want to clean that up. I'm sharing an early draft with key knobs to enable this use case (and I know how much you love IBGP-over-EBGP designs, that could be changed too of course)

jbemmel added 10 commits March 31, 2026 13:05
Adds 03-srv6-bgp-ipv4.yml: IPv6-only core with BGP+SRv6, eBGP for SID
prefix exchange with the core, and IPv4 overlay validation.

Made-with: Cursor
- Configure neighbor activate from srv6.bgp and srv6.igp (IPv6 eBGP
  when igp includes bgp)
- Add bgp to srv6.igp valid_values for BGP-only underlay

Made-with: Cursor
Enable features.srv6.bgp for FRR device (BGP-based SRv6 underlay).

Made-with: Cursor
- frr.bgp.j2: when srv6.igp includes bgp, set locator on SRv6 dummy and
  originate locator in IPv6 unicast; add encapsulation-srv6 on neighbors;
  render srv6.bgp AFs with sid export auto; keep VPN AFs when srv6.vpn
- frr.j2: create vrf-srv6; include BGP SRv6 block when srv6.bgp is set

Made-with: Cursor
Use SRv6_VRF_DEV; create vrf-srv6 only when srv6.igp includes bgp.

Made-with: Cursor
- Expand bgp.session plugin comment for PE transit via P AS
- Set defaults.bgp.warnings.missing_igp: False (BGP-only underlay)

Made-with: Cursor
IPv6 customer loopbacks and overlay (srv6.bgp ipv6), BGP-only underlay
with eBGP SID exchange and allowas_in on core links; IPv6 ping validation.

Made-with: Cursor
Remove dead srv6.vpn lookup and stale comment; activation logic is
unchanged.

Made-with: Cursor
@ipspace
Copy link
Copy Markdown
Owner

ipspace commented Apr 2, 2026

Nice starting point, thanks a million! Unfortunately, you mixed two completely independent things in a single PR:

  1. Support for SRv6 next hops for the global BGP routes (building BGP-free core with SRv6)
  2. Support for SRv6 locators advertised with BGP.

At the very minimum, this should be split in two independent PRs, and I'm sure there are other devices out there supporting BGP as the routing protocol for SRv6 locators, so it would be nice to have two interoperable implementations (and yeah, I know that's a lot to wish for).

Once I got a bit of time (and some willpower), I can do the refactoring.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants