Commit b6791ac5 authored by Ido Schimmel's avatar Ido Schimmel Committed by Jakub Kicinski

ipv4: udp: Unmask upper DSCP bits during early demux

Unmask the upper DSCP bits when performing source validation for
multicast packets during early demux. In the future, this will allow us
to perform the FIB lookup which is performed as part of source
validation 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: default avatarIdo Schimmel <idosch@nvidia.com>
Reviewed-by: default avatarGuillaume Nault <gnault@redhat.com>
Acked-by: default avatarFlorian Westphal <fw@strlen.de>
Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
Link: https://patch.msgid.link/20240821125251.1571445-12-idosch@nvidia.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 1c6f50b3
...@@ -115,6 +115,7 @@ ...@@ -115,6 +115,7 @@
#include <net/addrconf.h> #include <net/addrconf.h>
#include <net/udp_tunnel.h> #include <net/udp_tunnel.h>
#include <net/gro.h> #include <net/gro.h>
#include <net/inet_dscp.h>
#if IS_ENABLED(CONFIG_IPV6) #if IS_ENABLED(CONFIG_IPV6)
#include <net/ipv6_stubs.h> #include <net/ipv6_stubs.h>
#endif #endif
...@@ -2618,7 +2619,7 @@ int udp_v4_early_demux(struct sk_buff *skb) ...@@ -2618,7 +2619,7 @@ int udp_v4_early_demux(struct sk_buff *skb)
if (!inet_sk(sk)->inet_daddr && in_dev) if (!inet_sk(sk)->inet_daddr && in_dev)
return ip_mc_validate_source(skb, iph->daddr, return ip_mc_validate_source(skb, iph->daddr,
iph->saddr, iph->saddr,
iph->tos & IPTOS_RT_MASK, iph->tos & INET_DSCP_MASK,
skb->dev, in_dev, &itag); skb->dev, in_dev, &itag);
} }
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment