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@