From: Ido Schimmel <idosch@nvidia.com>
To: <netdev@vger.kernel.org>
Cc: <davem@davemloft.net>, <kuba@kernel.org>, <pabeni@redhat.com>,
<edumazet@google.com>, <gnault@redhat.com>, <dsahern@kernel.org>,
<ast@kernel.org>, <daniel@iogearbox.net>, <martin.lau@linux.dev>,
<john.fastabend@gmail.com>, <steffen.klassert@secunet.com>,
<herbert@gondor.apana.org.au>, <bpf@vger.kernel.org>,
Ido Schimmel <idosch@nvidia.com>
Subject: [PATCH net-next 07/12] xfrm: Unmask upper DSCP bits in xfrm_get_tos()
Date: Tue, 27 Aug 2024 14:18:08 +0300 [thread overview]
Message-ID: <20240827111813.2115285-8-idosch@nvidia.com> (raw)
In-Reply-To: <20240827111813.2115285-1-idosch@nvidia.com>
The function returns a value that is used to initialize 'flowi4_tos'
before being passed to the FIB lookup API in the following call chain:
xfrm_bundle_create()
tos = xfrm_get_tos(fl, family)
xfrm_dst_lookup(..., tos, ...)
__xfrm_dst_lookup(..., tos, ...)
xfrm4_dst_lookup(..., tos, ...)
__xfrm4_dst_lookup(..., tos, ...)
fl4->flowi4_tos = tos
__ip_route_output_key(net, fl4)
Unmask the upper DSCP bits so that in the future the output route lookup
could be performed according to the full DSCP value.
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
net/xfrm/xfrm_policy.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index c56c61b0c12e..b22767c0c078 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -45,6 +45,7 @@
#ifdef CONFIG_XFRM_ESPINTCP
#include <net/espintcp.h>
#endif
+#include <net/inet_dscp.h>
#include "xfrm_hash.h"
@@ -2561,7 +2562,7 @@ xfrm_tmpl_resolve(struct xfrm_policy **pols, int npols, const struct flowi *fl,
static int xfrm_get_tos(const struct flowi *fl, int family)
{
if (family == AF_INET)
- return IPTOS_RT_MASK & fl->u.ip4.flowi4_tos;
+ return fl->u.ip4.flowi4_tos & INET_DSCP_MASK;
return 0;
}
--
2.46.0
next prev parent reply other threads:[~2024-08-27 11:19 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-27 11:18 [PATCH net-next 00/12] Unmask upper DSCP bits - part 2 Ido Schimmel
2024-08-27 11:18 ` [PATCH net-next 01/12] ipv4: Unmask upper DSCP bits in RTM_GETROUTE output route lookup Ido Schimmel
2024-08-27 13:55 ` Guillaume Nault
2024-08-27 11:18 ` [PATCH net-next 02/12] ipv4: Unmask upper DSCP bits in ip_route_output_key_hash() Ido Schimmel
2024-08-27 13:57 ` Guillaume Nault
2024-08-27 11:18 ` [PATCH net-next 03/12] ipv4: icmp: Unmask upper DSCP bits in icmp_route_lookup() Ido Schimmel
2024-08-27 14:16 ` Guillaume Nault
2024-08-27 11:18 ` [PATCH net-next 04/12] ipv4: Unmask upper DSCP bits in ip_sock_rt_tos() Ido Schimmel
2024-08-27 14:29 ` Guillaume Nault
2024-08-27 11:18 ` [PATCH net-next 05/12] ipv4: Unmask upper DSCP bits in get_rttos() Ido Schimmel
2024-08-27 14:43 ` Guillaume Nault
2024-08-27 11:18 ` [PATCH net-next 06/12] ipv4: Unmask upper DSCP bits when building flow key Ido Schimmel
2024-08-27 14:51 ` Guillaume Nault
2024-08-27 15:37 ` Ido Schimmel
2024-08-27 11:18 ` Ido Schimmel [this message]
2024-08-27 14:54 ` [PATCH net-next 07/12] xfrm: Unmask upper DSCP bits in xfrm_get_tos() Guillaume Nault
2024-08-27 11:18 ` [PATCH net-next 08/12] ipv4: Unmask upper DSCP bits in ip_send_unicast_reply() Ido Schimmel
2024-08-27 15:09 ` Guillaume Nault
2024-08-27 11:18 ` [PATCH net-next 09/12] ipv6: sit: Unmask upper DSCP bits in ipip6_tunnel_xmit() Ido Schimmel
2024-08-27 15:17 ` Guillaume Nault
2024-08-27 11:18 ` [PATCH net-next 10/12] ipvlan: Unmask upper DSCP bits in ipvlan_process_v4_outbound() Ido Schimmel
2024-08-27 15:19 ` Guillaume Nault
2024-08-27 11:18 ` [PATCH net-next 11/12] vrf: Unmask upper DSCP bits in vrf_process_v4_outbound() Ido Schimmel
2024-08-27 15:22 ` Guillaume Nault
2024-08-27 11:18 ` [PATCH net-next 12/12] bpf: Unmask upper DSCP bits in __bpf_redirect_neigh_v4() Ido Schimmel
2024-08-27 13:47 ` [PATCH net-next 00/12] Unmask upper DSCP bits - part 2 Guillaume Nault
2024-08-27 15:45 ` Ido Schimmel
2024-08-28 12:09 ` Ido Schimmel
2024-08-29 11:54 ` Guillaume Nault
2024-08-29 14:52 ` Ido Schimmel
2024-08-29 15:10 ` Guillaume Nault
2024-08-29 11:30 ` Guillaume Nault
2024-08-29 14:43 ` Ido Schimmel
2024-08-29 15:08 ` Guillaume Nault
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240827111813.2115285-8-idosch@nvidia.com \
--to=idosch@nvidia.com \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=dsahern@kernel.org \
--cc=edumazet@google.com \
--cc=gnault@redhat.com \
--cc=herbert@gondor.apana.org.au \
--cc=john.fastabend@gmail.com \
--cc=kuba@kernel.org \
--cc=martin.lau@linux.dev \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=steffen.klassert@secunet.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).