1563 that tries to fix the edge case of "unnumbered IPv4, numbered IPv6" (#1562) forced me to realize how complex this particular can of worms is:
Enabling IPv4 AF over IPv6 EBGP session usually involves additional configuration, and none of the configuration templates (that I'm aware of) contain that logic as we always checked the "is this an interface EBGP session" flag
Some devices might support interface EBGP sessions, but not regular RFC8950 sessions (it all has to do with faked IPv4 next hops)
We might need an extra feature flag to say "device supports RFC8950 over numbered IPv6" as opposed to "device supports interface EBGP sessions", or modify the meaning of existing feature flags. We could go for "ipv6_lla" means "dual-stack interface EBGP" and "rfc8950" means "RFC 8950 over regular IPv6 BGP session"
We would need an extra integration test.
We have to decide whether to support RFC 8950 over regular IPv6 BGP sessions (and do all the above changes) or whether to say "that does not work, you must use IPv6 LLA sessions" and add a corresponding error to the BGP code.
1563 that tries to fix the edge case of "unnumbered IPv4, numbered IPv6" (#1562) forced me to realize how complex this particular can of worms is:
We have to decide whether to support RFC 8950 over regular IPv6 BGP sessions (and do all the above changes) or whether to say "that does not work, you must use IPv6 LLA sessions" and add a corresponding error to the BGP code.
Originally posted by @ipspace in https://github.com/ipspace/netlab/issues/1563#issuecomment-2499971070