]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
netfilter: rpfilter: Convert rpfilter_mt() to dscp_t.
authorGuillaume Nault <gnault@redhat.com>
Thu, 14 Nov 2024 16:03:38 +0000 (17:03 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 15 Nov 2024 10:00:29 +0000 (11:00 +0100)
Use ip4h_dscp() instead of reading iph->tos directly.

ip4h_dscp() returns a dscp_t value which is temporarily converted back
to __u8 with inet_dscp_to_dsfield(). When converting ->flowi4_tos to
dscp_t in the future, we'll only have to remove that
inet_dscp_to_dsfield() call.

Signed-off-by: Guillaume Nault <gnault@redhat.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/ipv4/netfilter/ipt_rpfilter.c

index 1ce7a1655b974cd45666bc348b58a8573bc7666e..a27782d7653eb504dfd035df74f75db58ebdae08 100644 (file)
@@ -76,7 +76,7 @@ static bool rpfilter_mt(const struct sk_buff *skb, struct xt_action_param *par)
        flow.daddr = iph->saddr;
        flow.saddr = rpfilter_get_saddr(iph->daddr);
        flow.flowi4_mark = info->flags & XT_RPFILTER_VALID_MARK ? skb->mark : 0;
-       flow.flowi4_tos = iph->tos & INET_DSCP_MASK;
+       flow.flowi4_tos = inet_dscp_to_dsfield(ip4h_dscp(iph));
        flow.flowi4_scope = RT_SCOPE_UNIVERSE;
        flow.flowi4_l3mdev = l3mdev_master_ifindex_rcu(xt_in(par));
        flow.flowi4_uid = sock_net_uid(xt_net(par), NULL);