Code that initialise a flowi4 structure manually before doing a fib lookup can easily avoid overloading ->flowi4_tos with the RTO_ONLINK bit. They can just set ->flowi4_scope correctly instead.
Properly separating the routing scope from ->flowi4_tos will allow to eventually convert this field to dscp_t (to ensure proper separation between DSCP and ECN).
Guillaume Nault (3): gtp: Set TOS and routing scope independently for fib lookups. dccp: Set TOS and routing scope independently for fib lookups. sctp: Set TOS and routing scope independently for fib lookups.
drivers/net/gtp.c | 3 ++- net/dccp/ipv4.c | 3 ++- net/sctp/protocol.c | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-)
There's no reason for setting the RTO_ONLINK flag in ->flowi4_tos as RT_CONN_FLAGS() does. We can easily set ->flowi4_scope properly instead. This makes the code more explicit and will allow to convert ->flowi4_tos to dscp_t in the future.
Signed-off-by: Guillaume Nault gnault@redhat.com --- drivers/net/gtp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c index acb20ad4e37e..144ec626230d 100644 --- a/drivers/net/gtp.c +++ b/drivers/net/gtp.c @@ -243,7 +243,8 @@ 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 = RT_CONN_FLAGS(sk); + fl4->flowi4_tos = ip_sock_rt_tos(sk); + fl4->flowi4_scope = ip_sock_rt_scope(sk); fl4->flowi4_proto = sk->sk_protocol;
return ip_route_output_key(sock_net(sk), fl4);
Hello:
This series was applied to netdev/net-next.git (main) by David S. Miller davem@davemloft.net:
On Mon, 17 Jul 2023 15:53:24 +0200 you wrote:
Code that initialise a flowi4 structure manually before doing a fib lookup can easily avoid overloading ->flowi4_tos with the RTO_ONLINK bit. They can just set ->flowi4_scope correctly instead.
Properly separating the routing scope from ->flowi4_tos will allow to eventually convert this field to dscp_t (to ensure proper separation between DSCP and ECN).
[...]
Here is the summary with links: - [net-next,1/3] gtp: Set TOS and routing scope independently for fib lookups. https://git.kernel.org/netdev/net-next/c/b16b50476714 - [net-next,2/3] dccp: Set TOS and routing scope independently for fib lookups. https://git.kernel.org/netdev/net-next/c/2d6c85ca3eb8 - [net-next,3/3] sctp: Set TOS and routing scope independently for fib lookups. https://git.kernel.org/netdev/net-next/c/ba80e20d7f3f
You are awesome, thank you!
osmocom-net-gprs@lists.osmocom.org