Commit 010c439d authored by Seth David Schoen's avatar Seth David Schoen Committed by Liu Jian
Browse files

ip: Treat IPv4 segment's lowest address as unicast

mainline inclusion
from mainline-v5.14-rc1
commit 94c821c7
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I9PX8J

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=94c821c74bf5fe0c25e09df5334a16f98608db90



---------------------------

Treat only the highest, not the lowest, IPv4 address within a local
subnet as a broadcast address.

Signed-off-by: default avatarSeth David Schoen <schoen@loyalty.org>
Suggested-by: default avatarJohn Gilmore <gnu@toad.com>
Acked-by: default avatarDave Taht <dave.taht@gmail.com>
Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>

Conflicts:
	net/ipv4/fib_frontend.c
[There is no conflict when cherry-picking. But we backport newer commit
0c51e12e causing the checkconflict CI fail.]
Signed-off-by: default avatarLiu Jian <liujian56@huawei.com>
parent 04dd32cb
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -1132,10 +1132,8 @@ void fib_add_ifaddr(struct in_ifaddr *ifa)
				  prefix, ifa->ifa_prefixlen, prim,
				  ifa->ifa_rt_priority);

		/* Add network specific broadcasts, when it takes a sense */
		/* Add the network broadcast address, when it makes sense */
		if (ifa->ifa_prefixlen < 31) {
			fib_magic(RTM_NEWROUTE, RTN_BROADCAST, prefix, 32,
				  prim, 0);
			fib_magic(RTM_NEWROUTE, RTN_BROADCAST, prefix | ~mask,
				  32, prim, 0);
			arp_invalidate(dev, prefix | ~mask, false);