Skip to content

infra: use IFA_F_NODAD for control plane tap addresses - #679

Open
rjarry wants to merge 1 commit into
DPDK:mainfrom
rjarry:ospf6-dad-fix-again
Open

infra: use IFA_F_NODAD for control plane tap addresses#679
rjarry wants to merge 1 commit into
DPDK:mainfrom
rjarry:ospf6-dad-fix-again

Conversation

@rjarry

@rjarry rjarry commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

The accept_dad sysctl set on the control plane tap is ineffective because the kernel evaluates max(conf/all/accept_dad, conf//accept_dad). Since conf/all/accept_dad defaults to 1, DAD still runs after link flaps.

When DAD runs, the kernel sends a NS probe on the control plane tap. Grout's datapath answers with a NA (it owns the same address), and the kernel marks the address as dadfailed. The address never recovers, sendmsg() returns EINVAL permanently and OSPF6 never converges.

Set IFA_F_NODAD in the netlink RTM_NEWADDR message when adding IPv6 addresses to the control plane tap. This is a per-address flag that unconditionally prevents DAD regardless of any sysctl setting.

Fixes: 0480bdf ("infra: disable DAD on control plane TAPs")

The accept_dad sysctl set on the control plane tap is ineffective
because the kernel evaluates max(conf/all/accept_dad,
conf/<iface>/accept_dad). Since conf/all/accept_dad defaults to 1,
DAD still runs after link flaps.

When DAD runs, the kernel sends a NS probe on the control plane tap.
Grout's datapath answers with a NA (it owns the same address), and the
kernel marks the address as dadfailed. The address never recovers,
sendmsg() returns EINVAL permanently and OSPF6 never converges.

Set IFA_F_NODAD in the netlink RTM_NEWADDR message when adding IPv6
addresses to the control plane tap. This is a per-address flag that
unconditionally prevents DAD regardless of any sysctl setting.

Fixes: 0480bdf ("infra: disable DAD on control plane TAPs")
Signed-off-by: Robin Jarry <rjarry@redhat.com>
@coderabbitai

This comment was marked as spam.

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