Skip to content

add VPP patch to preserve interface self LL receive DPO#914

Merged
sknat merged 1 commit intomasterfrom
abasu-fix-ll-route
Feb 26, 2026
Merged

add VPP patch to preserve interface self LL receive DPO#914
sknat merged 1 commit intomasterfrom
abasu-fix-ll-route

Conversation

@aritrbas
Copy link
Copy Markdown
Collaborator

Nodes can lose the local IPv6 link-local receive route (dpo-receive) from the ip6-ll FIB, which breaks all link-local control traffic (DHCPv6, NDP) to the interface's own address until the link-local /128 is manually re-added using set int ip addr <intf> fe80::<addr>/128

Root cause in VPP:

  • ip6_link installs the interface LL /128 as local (FIB_ROUTE_PATH_LOCAL) in the ip6-ll table.
  • ip_neighbor and teib can also update/delete LL /128 entries as non-local adjacency paths (FIB_ROUTE_PATH_FLAG_NONE).
  • All such operations share FIB_SOURCE_IP6_ND in the same LL FIB.
  • A self-LL entry (same peer IP as interface's own LL on same sw_if) can overwrite local receive semantics; later age-out/ delete operations can remove the /128 entirely.

The patch detects self-link-local in ip_neighbor/teib, skips non-local LL add/remove for self-entries, and restores local LL route as safeguard.

@aritrbas aritrbas self-assigned this Feb 20, 2026
Nodes can lose the local IPv6 link-local receive route
(dpo-receive) from the ip6-ll FIB, which breaks all link-local
control traffic (DHCPv6, NDP) to the interface's own address
until the link-local /128 is manually re-added.

Root cause in VPP:
- ip6_link installs the interface LL /128 as local
  (FIB_ROUTE_PATH_LOCAL) in the ip6-ll table.
- ip_neighbor and teib can also update/delete LL /128 entries
  as non-local adjacency paths (FIB_ROUTE_PATH_FLAG_NONE).
- All such operations share FIB_SOURCE_IP6_ND in the same LL FIB.
- A self-LL entry (same peer IP as interface's own LL on same
  sw_if) can overwrite local receive semantics; later age-out/
  delete operations can remove the /128 entirely.

The patch detects self-link-local in ip_neighbor/teib, skips
non-local LL add/remove for self entries, and restores local
LL route as safeguard.

Signed-off-by: Aritra Basu <aritrbas@cisco.com>
@aritrbas aritrbas marked this pull request as ready for review February 24, 2026 02:22
@sknat sknat merged commit f6d842a into master Feb 26, 2026
5 checks passed
@sknat sknat deleted the abasu-fix-ll-route branch February 26, 2026 16:18
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