ipv4: Unmask upper DSCP bits in RTM_GETROUTE input route lookup
authorIdo Schimmel <idosch@nvidia.com>
Wed, 21 Aug 2024 12:52:48 +0000 (15:52 +0300)
committerJakub Kicinski <kuba@kernel.org>
Thu, 22 Aug 2024 23:59:57 +0000 (16:59 -0700)
Unmask the upper DSCP bits when looking up an input route via the
RTM_GETROUTE netlink message so that in the future the lookup could be
performed according to the full DSCP value.

No functional changes intended since the upper DSCP bits are masked when
comparing against the TOS selectors in FIB rules and routes.

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Guillaume Nault <gnault@redhat.com>
Acked-by: Florian Westphal <fw@strlen.de>
Reviewed-by: David Ahern <dsahern@kernel.org>
Link: https://patch.msgid.link/20240821125251.1571445-10-idosch@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ipv4/route.c

index 73bb61162445fb9c3275db2dd1ef9410c7617b5b..524b70ab77a0e86493547955e7447e8a4e5d7ed4 100644 (file)
@@ -3286,7 +3286,7 @@ static int inet_rtm_getroute(struct sk_buff *in_skb, struct nlmsghdr *nlh,
                skb->dev        = dev;
                skb->mark       = mark;
                err = ip_route_input_rcu(skb, dst, src,
-                                        rtm->rtm_tos & IPTOS_RT_MASK, dev,
+                                        rtm->rtm_tos & INET_DSCP_MASK, dev,
                                         &res);
 
                rt = skb_rtable(skb);