]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
ipv4: Prepare ip_rt_get_source() to future .flowi4_tos conversion.
authorGuillaume Nault <gnault@redhat.com>
Tue, 22 Oct 2024 09:48:23 +0000 (11:48 +0200)
committerJakub Kicinski <kuba@kernel.org>
Tue, 29 Oct 2024 18:21:06 +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/0a13a200f31809841975e38633914af1061e0c04.1729530028.git.gnault@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ipv4/route.c

index 18a08b4f4a5a00819ac46956f8e2cc88043f91c6..763398e08b7dca6fef7436e0077c49dca5c4f7a6 100644 (file)
@@ -1263,7 +1263,7 @@ void ip_rt_get_source(u8 *addr, struct sk_buff *skb, struct rtable *rt)
                struct flowi4 fl4 = {
                        .daddr = iph->daddr,
                        .saddr = iph->saddr,
-                       .flowi4_tos = iph->tos & INET_DSCP_MASK,
+                       .flowi4_tos = inet_dscp_to_dsfield(ip4h_dscp(iph)),
                        .flowi4_oif = rt->dst.dev->ifindex,
                        .flowi4_iif = skb->dev->ifindex,
                        .flowi4_mark = skb->mark,