CVS: cvs.openbsd.org: src

Bjorn Ketelaars <[email protected]> Tue, 21 Jul 2026 08:20:37 -0600 (MDT)
Newsgroups gmane.os.openbsd.cvs
Message-ID <[email protected]>
CVSROOT:	/cvs
Module name:	src
Changes by:	[email protected]	2026/07/21 08:20:37

Modified files:
	sys/netinet6   : in6_ifattach.c 

Log message:
netinet6: keep negotiated IPv6CP IFID unchanged for link-local address

When sppp/PPPoE installs a peer-suggested IPv6CP interface identifier,
in6_ifattach_linklocal() forced EUI64 G/U bit adjustments on the
provided IFID. This unconditionally set the universal bit, rewriting a
valid negotiated IFID like ::1 into ::200:0:0:1, yielding
fe80::200:0:0:1 instead of fe80::1.

RFC 5072 Section 5 specifies that the PPP link-local address is formed
using the negotiated Interface Identifier as-is. Skip EUI64 bit
modification on point-to-point interfaces. Non-P2P callers retain
existing behaviour, while callers passing NULL continue using
in6_get_ifid().

Reported by Martin Crossley <admin AT crossleys DOT biz>.

OK stsp@