Skip to content

Ipv6 ra rx - #660

Open
rjarry wants to merge 4 commits into
DPDK:mainfrom
rjarry:ipv6-ra-rx
Open

Ipv6 ra rx#660
rjarry wants to merge 4 commits into
DPDK:mainfrom
rjarry:ipv6-ra-rx

Conversation

@rjarry

@rjarry rjarry commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator

@chdxD1 fyi

Summary

  • Added IPv6 Router Advertisement datapath handling with validation for hop limit, ICMP code, packet length, and link-local source address; valid packets proceed to control-plane loopback, while invalid packets are dropped.
  • Added a smoke test for BGP unnumbered IPv6 peering using Router Advertisement-discovered link-local neighbors.
  • Updated FRR integration for version-specific route cleanup APIs and routed IPv4 link-local neighbor updates through the dplane abstraction.
  • Registered the required FRR patches for supported dependency versions.

FRR master added a table_id argument to
rib_meta_queue_early_route_cleanup(). Pass RT_TABLE_MAIN for the
sync marker cleanup path.

Link: FRRouting/frr@50ed71b6d7dd1
Signed-off-by: Robin Jarry <rjarry@redhat.com>
@coderabbitai

This comment was marked as spam.

rjarry added 3 commits July 23, 2026 18:01
Received IPv6 Router Advertisements are dropped by icmp6_input
because no callback is registered for type 134. This prevents FRR
BGP unnumbered from working since it relies on RAs to discover the
peer's link-local address.

Add a ndp_ra_input datapath node that validates RAs per RFC 4861
section 6.1.2 and forwards them to l4_loopback_output so they
reach the TAP control plane device.

Closes: DPDK#657
Signed-off-by: Robin Jarry <rjarry@redhat.com>
FRR's if_nbr_mac_to_ipv4ll_neigh_update() calls
kernel_neigh_update() directly, bypassing the dplane abstraction.
This crashes zebra when using dplane_grout because the netlink
socket is not initialized.

Carry patches for FRR 10.5-10.6 and 10.7+ that route these
neighbor updates through the dplane API instead.

Link: FRRouting/frr#22773
Signed-off-by: Robin Jarry <rjarry@redhat.com>
Verify that BGP unnumbered (RFC 5549) works between FRR+grout and
a pure FRR peer. The BGP session establishment proves that
received RAs are properly punted to the control plane TAP.

Signed-off-by: Robin Jarry <rjarry@redhat.com>
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.

1 participant