Re: [PATCH net-next v2] ipv6: don't generate link-local addr in random or privacy mode
From: Lorenzo Colitti <hidden>
Date: 2021-11-17 05:09:39
Also in:
linux-mediatek, lkml, netdev
On Tue, Nov 16, 2021 at 3:15 PM Rocco Yue [off-list ref] wrote:
In the 3GPP TS 29.061, here is a description as follows: "In order to avoid any conflict between the link-local address of the MS and that of the GGSN, the Interface-Identifier used by the MS to build its link-local address shall be assigned by the GGSN. [...] 1) IN6_ADDR_GEN_MODE_STABLE_PRIVACY_NO_LLA, this mode is suitable for cellular networks that support RFC7217. In this mode, the kernel doesn't generate a link-local address for the cellular NIC, and generates an ipv6 stable privacy global address after receiving the RA message.
It sounds like this would violate RFC 4291 section 2.1 which says "All interfaces are required to have at least one Link-Local unicast address. It is also not what 3GPP requires. 3GPP *does* require a link-local address. It just requires that that the bottom 64 bits of that link-local address be assigned by the network, not randomly. Given that the kernel already supports tokenized interface addresses, a better option here would be to add new addrgen modes where the link-local address is formed from the interface token (idev->token), and the other addresses are formed randomly or via RFC7217. These modes could be called IN6_ADDR_GEN_MODE_RANDOM_LL_TOKEN and IN6_ADDR_GEN_MODE_STABLE_PRIVACY_LL_TOKEN. When setting up the interface, userspace could set disable_ipv6 to 1, then set the interface token and the address generation mode via RTM_SETLINK, then set disable_ipv6 to 0 to start autoconf. The kernel would then form the link-local address via the token (which comes from the network), and then set the global addresses either randomly or via RFC 7217. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel