Page MenuHomeFreeBSD

netinet6: Remove ndpr_raf_ra_derived flag
Needs ReviewPublic

Authored by hrs on Aug 26 2024, 5:47 PM.
Tags
None
Referenced Files
F102036692: D46441.diff
Wed, Nov 6, 7:46 PM
Unknown Object (File)
Tue, Oct 29, 11:49 AM
Unknown Object (File)
Oct 2 2024, 11:21 AM
Unknown Object (File)
Oct 2 2024, 9:32 AM
Unknown Object (File)
Oct 2 2024, 4:51 AM
Unknown Object (File)
Oct 1 2024, 10:13 PM
Unknown Object (File)
Oct 1 2024, 7:50 PM
Unknown Object (File)
Sep 21 2024, 2:21 PM

Details

Reviewers
melifaro
Summary

This flag was introduced at 8036234c72c9361711e867cc1a0c6a7fe0babd84 to
prevent the SIOCSPFXFLUSH_IN6 ioctl from removing manually-added entries.
However, this flag did not work well with transitions such as that
the same prefix was manually configured before or after receiving RAs.
Adding an alias manually to one using SLAAC is a typical configuration.

This patch removes the flag because a prefix is derived from an RA
always has an entry in the ndpr_advrtrs member in the struct nd_prefix
or in NDPRF_DETACHED state with no router after the node is attached
to another network. Having a separate flag is not a good idea
because it can cause a mismatch between the flag and the actual situation.

This also removes a prefix check in the ICMPV6CTL_ND6_PRLIST sysctl to
exclude manually-added entries. This ioctl is designed to list all entries,
and there is no relationship to SIOCSPFXFLUSH_IN6.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 59182
Build 56069: arc lint + arc unit

Event Timeline

hrs requested review of this revision.Aug 26 2024, 5:47 PM

@melifaro Could you explain the motivation for excluding manually-added prefixes from ICMPV6CTL_ND6_PRLIST? I could not find the reason in the review comments for the original change. As I wrote in the description, this sysctl is to list all prefixes in kernel. If a use case needs to pick up a subset of prefixes, it should be handled after getting the whole list.