From: Ido Schimmel Date: Tue, 3 Sep 2024 13:53:24 +0000 (+0300) Subject: ipv4: Unmask upper DSCP bits in __ip_queue_xmit() X-Git-Tag: v6.12-rc1~232^2~106^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=71f1fea4f65deeb0e1a4442fe661cfc5a541a036;p=thirdparty%2Fkernel%2Flinux.git ipv4: Unmask upper DSCP bits in __ip_queue_xmit() The function is passed the full DS field in its 'tos' argument by its two callers. It then masks the upper DSCP bits using RT_TOS() when passing it to ip_route_output_ports(). Unmask the upper DSCP bits when passing 'tos' to ip_route_output_ports() so that in the future it could perform the FIB lookup according to the full DSCP value. Signed-off-by: Ido Schimmel Reviewed-by: Guillaume Nault Reviewed-by: David Ahern Link: https://patch.msgid.link/20240903135327.2810535-2-idosch@nvidia.com Signed-off-by: Jakub Kicinski --- diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index eea443b7f65e2..49811c9281d42 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c @@ -494,7 +494,7 @@ int __ip_queue_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl, inet->inet_dport, inet->inet_sport, sk->sk_protocol, - RT_TOS(tos), + tos & INET_DSCP_MASK, sk->sk_bound_dev_if); if (IS_ERR(rt)) goto no_route;