Use inet_sk_dscp() to get the socket DSCP value as dscp_t, instead of ip_sock_rt_tos() which returns a __u8. This will ease the conversion of fl4->flowi4_tos to dscp_t, as it will just require to drop the inet_dscp_to_dsfield() call.
Signed-off-by: Guillaume Nault gnault@redhat.com --- drivers/net/gtp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c index 89a996ad8cd0..03d886014f5a 100644 --- a/drivers/net/gtp.c +++ b/drivers/net/gtp.c @@ -23,6 +23,8 @@
#include <net/net_namespace.h> #include <net/protocol.h> +#include <net/inet_dscp.h> +#include <net/inet_sock.h> #include <net/ip.h> #include <net/ipv6.h> #include <net/udp.h> @@ -350,7 +352,7 @@ static struct rtable *ip4_route_output_gtp(struct flowi4 *fl4, fl4->flowi4_oif = sk->sk_bound_dev_if; fl4->daddr = daddr; fl4->saddr = saddr; - fl4->flowi4_tos = ip_sock_rt_tos(sk); + fl4->flowi4_tos = inet_dscp_to_dsfield(inet_sk_dscp(inet_sk((sk)))); fl4->flowi4_scope = ip_sock_rt_scope(sk); fl4->flowi4_proto = sk->sk_protocol;
On Tue, Jan 14, 2025 at 05:12:12PM +0100, Guillaume Nault wrote:
Use inet_sk_dscp() to get the socket DSCP value as dscp_t, instead of ip_sock_rt_tos() which returns a __u8. This will ease the conversion of fl4->flowi4_tos to dscp_t, as it will just require to drop the inet_dscp_to_dsfield() call.
Signed-off-by: Guillaume Nault gnault@redhat.com
drivers/net/gtp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c index 89a996ad8cd0..03d886014f5a 100644 --- a/drivers/net/gtp.c +++ b/drivers/net/gtp.c @@ -23,6 +23,8 @@
#include <net/net_namespace.h> #include <net/protocol.h> +#include <net/inet_dscp.h> +#include <net/inet_sock.h> #include <net/ip.h> #include <net/ipv6.h> #include <net/udp.h> @@ -350,7 +352,7 @@ static struct rtable *ip4_route_output_gtp(struct flowi4 *fl4, fl4->flowi4_oif = sk->sk_bound_dev_if; fl4->daddr = daddr; fl4->saddr = saddr;
- fl4->flowi4_tos = ip_sock_rt_tos(sk);
- fl4->flowi4_tos = inet_dscp_to_dsfield(inet_sk_dscp(inet_sk((sk))));
There seems to be an unnecessary pair of parenthesis here like in the other patch. I assume you will take care of that in v2?
fl4->flowi4_scope = ip_sock_rt_scope(sk); fl4->flowi4_proto = sk->sk_protocol;
-- 2.39.2
On Wed, Jan 15, 2025 at 11:08:38AM +0200, Ido Schimmel wrote:
On Tue, Jan 14, 2025 at 05:12:12PM +0100, Guillaume Nault wrote:
Use inet_sk_dscp() to get the socket DSCP value as dscp_t, instead of ip_sock_rt_tos() which returns a __u8. This will ease the conversion of fl4->flowi4_tos to dscp_t, as it will just require to drop the inet_dscp_to_dsfield() call.
Signed-off-by: Guillaume Nault gnault@redhat.com
drivers/net/gtp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c index 89a996ad8cd0..03d886014f5a 100644 --- a/drivers/net/gtp.c +++ b/drivers/net/gtp.c @@ -23,6 +23,8 @@
#include <net/net_namespace.h> #include <net/protocol.h> +#include <net/inet_dscp.h> +#include <net/inet_sock.h> #include <net/ip.h> #include <net/ipv6.h> #include <net/udp.h> @@ -350,7 +352,7 @@ static struct rtable *ip4_route_output_gtp(struct flowi4 *fl4, fl4->flowi4_oif = sk->sk_bound_dev_if; fl4->daddr = daddr; fl4->saddr = saddr;
- fl4->flowi4_tos = ip_sock_rt_tos(sk);
- fl4->flowi4_tos = inet_dscp_to_dsfield(inet_sk_dscp(inet_sk((sk))));
There seems to be an unnecessary pair of parenthesis here like in the other patch. I assume you will take care of that in v2?
Yes, I'll send a v2 tomorrow for both the gtp and dccp patches.
fl4->flowi4_scope = ip_sock_rt_scope(sk); fl4->flowi4_proto = sk->sk_protocol;
-- 2.39.2
osmocom-net-gprs@lists.osmocom.org