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

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/bridge/br_netfilter_hooks.c

index 8f9c19d992ac5ce333f8d59ff7628a2335f8cdfc..0e8bc0ea6175066481c38963b22c2375c8a15d23 100644 (file)
@@ -36,6 +36,7 @@
 #include <net/route.h>
 #include <net/netfilter/br_netfilter.h>
 #include <net/netns/generic.h>
+#include <net/inet_dscp.h>
 
 #include <linux/uaccess.h>
 #include "br_private.h"
@@ -402,7 +403,7 @@ static int br_nf_pre_routing_finish(struct net *net, struct sock *sk, struct sk_
                                goto free_skb;
 
                        rt = ip_route_output(net, iph->daddr, 0,
-                                            RT_TOS(iph->tos), 0,
+                                            iph->tos & INET_DSCP_MASK, 0,
                                             RT_SCOPE_UNIVERSE);
                        if (!IS_ERR(rt)) {
                                /* - Bridged-and-DNAT'ed traffic doesn't