Message ID | 35eacc8955003e434afb1365d404193cc98a9579.1731064982.git.gnault@redhat.com (mailing list archive) |
---|---|
State | Accepted |
Commit | bfe086be5c4c644602e26840683dfdd893f22d04 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | ipv4: Prepare bpf helpers to .flowi4_tos conversion. | expand |
On Fri, Nov 08, 2024 at 05:47:12PM +0100, Guillaume Nault wrote: > 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>
diff --git a/net/core/filter.c b/net/core/filter.c index 82f92ed0dc72..c3a722134ca1 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -2355,7 +2355,7 @@ static int __bpf_redirect_neigh_v4(struct sk_buff *skb, struct net_device *dev, struct flowi4 fl4 = { .flowi4_flags = FLOWI_FLAG_ANYSRC, .flowi4_mark = skb->mark, - .flowi4_tos = ip4h->tos & INET_DSCP_MASK, + .flowi4_tos = inet_dscp_to_dsfield(ip4h_dscp(ip4h)), .flowi4_oif = dev->ifindex, .flowi4_proto = ip4h->protocol, .daddr = ip4h->daddr,
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> --- net/core/filter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)