]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
gre: Prepare ipgre_open() to .flowi4_tos conversion.
authorGuillaume Nault <gnault@redhat.com>
Wed, 15 Jan 2025 11:53:55 +0000 (12:53 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 17 Jan 2025 00:51:57 +0000 (16:51 -0800)
Use ip4h_dscp() to get the tunnel DSCP option as dscp_t, instead of
manually masking the raw tos field with INET_DSCP_MASK. This will ease
the conversion of fl4->flowi4_tos to dscp_t, which just becomes a
matter of dropping 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/6c05a11afdc61530f1a4505147e0909ad51feb15.1736941806.git.gnault@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ipv4/ip_gre.c

index a020342f618d6141f0e8a00fcb4bfabaf2f248bd..ed1b6b44faf8049e3f1777c1a32b22b5ed84e4df 100644 (file)
@@ -926,7 +926,7 @@ static int ipgre_open(struct net_device *dev)
        if (ipv4_is_multicast(t->parms.iph.daddr)) {
                struct flowi4 fl4 = {
                        .flowi4_oif = t->parms.link,
-                       .flowi4_tos = t->parms.iph.tos & INET_DSCP_MASK,
+                       .flowi4_tos = inet_dscp_to_dsfield(ip4h_dscp(&t->parms.iph)),
                        .flowi4_scope = RT_SCOPE_UNIVERSE,
                        .flowi4_proto = IPPROTO_GRE,
                        .saddr = t->parms.iph.saddr,