]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
ipv4: Prepare icmp_reply() to future .flowi4_tos conversion.
authorGuillaume Nault <gnault@redhat.com>
Tue, 22 Oct 2024 09:48:08 +0000 (11:48 +0200)
committerJakub Kicinski <kuba@kernel.org>
Tue, 29 Oct 2024 18:21:05 +0000 (11:21 -0700)
Use ip4h_dscp() to get the DSCP from the IPv4 header, then convert the
dscp_t value to __u8 with inet_dscp_to_dsfield().

Then, when we'll convert .flowi4_tos to dscp_t, we'll just have to drop
the inet_dscp_to_dsfield() call.

Signed-off-by: Guillaume Nault <gnault@redhat.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/61b7563563f8b0a562b5b62032fe5260034d0aac.1729530028.git.gnault@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ipv4/icmp.c

index 23664434922edef7a553cb4d4c93a17524b28eff..33eec844a5a0de2e377ae3e7d9f887fc1bd7a1c3 100644 (file)
@@ -445,7 +445,7 @@ static void icmp_reply(struct icmp_bxm *icmp_param, struct sk_buff *skb)
        fl4.saddr = saddr;
        fl4.flowi4_mark = mark;
        fl4.flowi4_uid = sock_net_uid(net, NULL);
-       fl4.flowi4_tos = ip_hdr(skb)->tos & INET_DSCP_MASK;
+       fl4.flowi4_tos = inet_dscp_to_dsfield(ip4h_dscp(ip_hdr(skb)));
        fl4.flowi4_proto = IPPROTO_ICMP;
        fl4.flowi4_oif = l3mdev_master_ifindex(skb->dev);
        security_skb_classify_flow(skb, flowi4_to_flowi_common(&fl4));