]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ipv4: udp_tunnel: Unmask upper DSCP bits in udp_tunnel_dst_lookup()
authorIdo Schimmel <idosch@nvidia.com>
Thu, 5 Sep 2024 16:51:39 +0000 (19:51 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 9 Sep 2024 13:14:53 +0000 (14:14 +0100)
Unmask the upper DSCP bits when calling ip_route_output_key() so that in
the future it could perform the FIB lookup according to the full DSCP
value.

Note that callers of udp_tunnel_dst_lookup() pass the entire DS field in
the 'tos' argument.

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Guillaume Nault <gnault@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/udp_tunnel_core.c

index e4e0fa869fa4b9650e1a9ab5ba9f138e640c0b19..619a53eb672dae8d185f465b4096e4ea7a64211b 100644 (file)
@@ -6,6 +6,7 @@
 #include <net/dst_metadata.h>
 #include <net/udp.h>
 #include <net/udp_tunnel.h>
+#include <net/inet_dscp.h>
 
 int udp_sock_create4(struct net *net, struct udp_port_cfg *cfg,
                     struct socket **sockp)
@@ -232,7 +233,7 @@ struct rtable *udp_tunnel_dst_lookup(struct sk_buff *skb,
        fl4.saddr = key->u.ipv4.src;
        fl4.fl4_dport = dport;
        fl4.fl4_sport = sport;
-       fl4.flowi4_tos = RT_TOS(tos);
+       fl4.flowi4_tos = tos & INET_DSCP_MASK;
        fl4.flowi4_flags = key->flow_flags;
 
        rt = ip_route_output_key(net, &fl4);