Page MenuHomeFreeBSD

netinet6: fix SIOCSPFXFLUSH_IN6 by skipping manually-configured prefixes
ClosedPublic

Authored by melifaro on Aug 23 2022, 2:00 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Apr 9, 11:44 AM
Unknown Object (File)
Mon, Apr 1, 1:12 PM
Unknown Object (File)
Jan 27 2024, 1:54 PM
Unknown Object (File)
Dec 23 2023, 12:02 AM
Unknown Object (File)
Dec 11 2023, 3:21 AM
Unknown Object (File)
Nov 27 2023, 7:00 PM
Unknown Object (File)
Nov 10 2023, 5:22 AM
Unknown Object (File)
Oct 9 2023, 5:58 PM

Details

Summary

Currently netinet6/ code allocates IPv6 prefixes (nd_prefix) for
both manually-assigned addresses and advertised prefixes. As a result,
prefixes from manually-assigned prefixes can be seen in ndp -p list
and be cleared via ndp -P. The latter relies on the SIOCSPFXFLUSH_IN6
ioctl to clear to prefix list.
The original intent of the SIOCSPFXFLUSH_IN6 was to clear prefixes
originated from the advertising routers:

1998-09-02  JINMEI, Tatuya  <jinmei@isl.rdc.toshiba.co.jp>
	* nd6.c (nd6_ioctl): added 2 new ioctls; SIOCSRTRFLUSH_IN6 and
	SIOCSPFXFLUSH_IN6. The former is to flush all default routers
	in the default router list, and the latter is to flush all the
	prefixes and the addresses derived from them in the prefix list.

Restore the intent by marking prefixes derived from the manual
configuration via newly-added ndpr_flags.manual flag and skip prefixes
with such flag during deletion.

MFC after: 2 weeks

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

The linklocal address is not derived from RA and should be marked as manual.

Manual prefixes should be excluded from ICMPV6CTL_ND6_PRLIST.

Looks good to me now, thanks.

This revision is now accepted and ready to land.Aug 23 2022, 7:14 PM

Restore the intent by marking prefixes derived from the manual
configuration via newly-added ndpr_flags.manual flag and skip prefixes
with such flag during deletion.

The summary or commit message should be update correspondingly.