Takashi Iwai b19e25
From 3d9d9a77cdbe2a772763f1a4da68871ffe1550f8 Mon Sep 17 00:00:00 2001
Takashi Iwai b19e25
From: Stephen Suryaputra <ssuryaextr@gmail.com>
Takashi Iwai b19e25
Date: Wed, 20 Oct 2021 16:06:18 -0400
Takashi Iwai b19e25
Subject: [PATCH] gre/sit: Don't generate link-local addr if addr_gen_mode is IN6_ADDR_GEN_MODE_NONE
Takashi Iwai b19e25
Git-commit: 61e18ce7348bfefb5688a8bcd4b4d6b37c0f9b2a
Takashi Iwai b19e25
Patch-mainline: v5.16-rc1
Takashi Iwai b19e25
References: stable-5.14.19
Takashi Iwai b19e25
Takashi Iwai b19e25
[ Upstream commit 61e18ce7348bfefb5688a8bcd4b4d6b37c0f9b2a ]
Takashi Iwai b19e25
Takashi Iwai b19e25
When addr_gen_mode is set to IN6_ADDR_GEN_MODE_NONE, the link-local addr
Takashi Iwai b19e25
should not be generated. But it isn't the case for GRE (as well as GRE6)
Takashi Iwai b19e25
and SIT tunnels. Make it so that tunnels consider the addr_gen_mode,
Takashi Iwai b19e25
especially for IN6_ADDR_GEN_MODE_NONE.
Takashi Iwai b19e25
Takashi Iwai b19e25
Do this in add_v4_addrs() to cover both GRE and SIT only if the addr
Takashi Iwai b19e25
scope is link.
Takashi Iwai b19e25
Takashi Iwai b19e25
Signed-off-by: Stephen Suryaputra <ssuryaextr@gmail.com>
Takashi Iwai b19e25
Acked-by: Antonio Quartulli <a@unstable.cc>
Takashi Iwai b19e25
Link: https://lore.kernel.org/r/20211020200618.467342-1-ssuryaextr@gmail.com
Takashi Iwai b19e25
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Takashi Iwai b19e25
Signed-off-by: Sasha Levin <sashal@kernel.org>
Takashi Iwai b19e25
Acked-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai b19e25
Takashi Iwai b19e25
---
Takashi Iwai b19e25
 net/ipv6/addrconf.c | 3 +++
Takashi Iwai b19e25
 1 file changed, 3 insertions(+)
Takashi Iwai b19e25
Takashi Iwai b19e25
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
Takashi Iwai b19e25
index 3bf685fe64b9..eb745213561c 100644
Takashi Iwai b19e25
--- a/net/ipv6/addrconf.c
Takashi Iwai b19e25
+++ b/net/ipv6/addrconf.c
Takashi Iwai b19e25
@@ -3100,6 +3100,9 @@ static void sit_add_v4_addrs(struct inet6_dev *idev)
Takashi Iwai b19e25
 	memcpy(&addr.s6_addr32[3], idev->dev->dev_addr, 4);
Takashi Iwai b19e25
 
Takashi Iwai b19e25
 	if (idev->dev->flags&IFF_POINTOPOINT) {
Takashi Iwai b19e25
+		if (idev->cnf.addr_gen_mode == IN6_ADDR_GEN_MODE_NONE)
Takashi Iwai b19e25
+			return;
Takashi Iwai b19e25
+
Takashi Iwai b19e25
 		addr.s6_addr32[0] = htonl(0xfe800000);
Takashi Iwai b19e25
 		scope = IFA_LINK;
Takashi Iwai b19e25
 		plen = 64;
Takashi Iwai b19e25
-- 
Takashi Iwai b19e25
2.26.2
Takashi Iwai b19e25