ip: Treat IPv4 segment's lowest address as unicast
authorSeth David Schoen <schoen@loyalty.org>
Thu, 13 May 2021 04:37:49 +0000 (21:37 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 17 May 2021 20:47:58 +0000 (13:47 -0700)
Treat only the highest, not the lowest, IPv4 address within a local
subnet as a broadcast address.

Signed-off-by: Seth David Schoen <schoen@loyalty.org>
Suggested-by: John Gilmore <gnu@toad.com>
Acked-by: Dave Taht <dave.taht@gmail.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/fib_frontend.c

index 84bb707bd88d84218b9b67996ed26f7c1423ade1..bfb345c88271e90e11df37f12a2727e149f1d8c1 100644 (file)
@@ -1122,10 +1122,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);
                }