netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/3] net: Remove more RTO_ONLINK users.
@ 2023-07-17 13:53 Guillaume Nault
  2023-07-17 13:53 ` [PATCH net-next 1/3] gtp: Set TOS and routing scope independently for fib lookups Guillaume Nault
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Guillaume Nault @ 2023-07-17 13:53 UTC (permalink / raw)
  To: David Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
  Cc: netdev, Pablo Neira Ayuso, Harald Welte, osmocom-net-gprs, dccp,
	Marcelo Ricardo Leitner, Xin Long, linux-sctp

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(-)

-- 
2.39.2


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH net-next 1/3] gtp: Set TOS and routing scope independently for fib lookups.
  2023-07-17 13:53 [PATCH net-next 0/3] net: Remove more RTO_ONLINK users Guillaume Nault
@ 2023-07-17 13:53 ` Guillaume Nault
  2023-07-17 13:53 ` [PATCH net-next 2/3] dccp: " Guillaume Nault
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Guillaume Nault @ 2023-07-17 13:53 UTC (permalink / raw)
  To: David Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
  Cc: netdev, Pablo Neira Ayuso, Harald Welte, osmocom-net-gprs

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);
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH net-next 2/3] dccp: Set TOS and routing scope independently for fib lookups.
  2023-07-17 13:53 [PATCH net-next 0/3] net: Remove more RTO_ONLINK users Guillaume Nault
  2023-07-17 13:53 ` [PATCH net-next 1/3] gtp: Set TOS and routing scope independently for fib lookups Guillaume Nault
@ 2023-07-17 13:53 ` Guillaume Nault
  2023-07-17 13:53 ` [PATCH net-next 3/3] sctp: " Guillaume Nault
  2023-07-19 11:40 ` [PATCH net-next 0/3] net: Remove more RTO_ONLINK users patchwork-bot+netdevbpf
  3 siblings, 0 replies; 6+ messages in thread
From: Guillaume Nault @ 2023-07-17 13:53 UTC (permalink / raw)
  To: David Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet; +Cc: netdev, dccp

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>
---
 net/dccp/ipv4.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/dccp/ipv4.c b/net/dccp/ipv4.c
index fa8079303cb0..8e919cfe6e23 100644
--- a/net/dccp/ipv4.c
+++ b/net/dccp/ipv4.c
@@ -474,7 +474,8 @@ static struct dst_entry* dccp_v4_route_skb(struct net *net, struct sock *sk,
 		.flowi4_oif = inet_iif(skb),
 		.daddr = iph->saddr,
 		.saddr = iph->daddr,
-		.flowi4_tos = RT_CONN_FLAGS(sk),
+		.flowi4_tos = ip_sock_rt_tos(sk),
+		.flowi4_scope = ip_sock_rt_scope(sk),
 		.flowi4_proto = sk->sk_protocol,
 		.fl4_sport = dccp_hdr(skb)->dccph_dport,
 		.fl4_dport = dccp_hdr(skb)->dccph_sport,
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH net-next 3/3] sctp: Set TOS and routing scope independently for fib lookups.
  2023-07-17 13:53 [PATCH net-next 0/3] net: Remove more RTO_ONLINK users Guillaume Nault
  2023-07-17 13:53 ` [PATCH net-next 1/3] gtp: Set TOS and routing scope independently for fib lookups Guillaume Nault
  2023-07-17 13:53 ` [PATCH net-next 2/3] dccp: " Guillaume Nault
@ 2023-07-17 13:53 ` Guillaume Nault
  2023-07-17 16:06   ` Xin Long
  2023-07-19 11:40 ` [PATCH net-next 0/3] net: Remove more RTO_ONLINK users patchwork-bot+netdevbpf
  3 siblings, 1 reply; 6+ messages in thread
From: Guillaume Nault @ 2023-07-17 13:53 UTC (permalink / raw)
  To: David Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
  Cc: netdev, Marcelo Ricardo Leitner, Xin Long, linux-sctp

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>
---
 net/sctp/protocol.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c
index 274d07bd774f..33c0895e101c 100644
--- a/net/sctp/protocol.c
+++ b/net/sctp/protocol.c
@@ -435,7 +435,8 @@ static void sctp_v4_get_dst(struct sctp_transport *t, union sctp_addr *saddr,
 	fl4->fl4_dport = daddr->v4.sin_port;
 	fl4->flowi4_proto = IPPROTO_SCTP;
 	if (asoc) {
-		fl4->flowi4_tos = RT_CONN_FLAGS_TOS(asoc->base.sk, tos);
+		fl4->flowi4_tos = RT_TOS(tos);
+		fl4->flowi4_scope = ip_sock_rt_scope(asoc->base.sk);
 		fl4->flowi4_oif = asoc->base.sk->sk_bound_dev_if;
 		fl4->fl4_sport = htons(asoc->base.bind_addr.port);
 	}
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH net-next 3/3] sctp: Set TOS and routing scope independently for fib lookups.
  2023-07-17 13:53 ` [PATCH net-next 3/3] sctp: " Guillaume Nault
@ 2023-07-17 16:06   ` Xin Long
  0 siblings, 0 replies; 6+ messages in thread
From: Xin Long @ 2023-07-17 16:06 UTC (permalink / raw)
  To: Guillaume Nault
  Cc: David Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet, netdev,
	Marcelo Ricardo Leitner, linux-sctp

On Mon, Jul 17, 2023 at 9:53 AM Guillaume Nault <gnault@redhat.com> wrote:
>
> 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>
> ---
>  net/sctp/protocol.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c
> index 274d07bd774f..33c0895e101c 100644
> --- a/net/sctp/protocol.c
> +++ b/net/sctp/protocol.c
> @@ -435,7 +435,8 @@ static void sctp_v4_get_dst(struct sctp_transport *t, union sctp_addr *saddr,
>         fl4->fl4_dport = daddr->v4.sin_port;
>         fl4->flowi4_proto = IPPROTO_SCTP;
>         if (asoc) {
> -               fl4->flowi4_tos = RT_CONN_FLAGS_TOS(asoc->base.sk, tos);
> +               fl4->flowi4_tos = RT_TOS(tos);
> +               fl4->flowi4_scope = ip_sock_rt_scope(asoc->base.sk);
>                 fl4->flowi4_oif = asoc->base.sk->sk_bound_dev_if;
>                 fl4->fl4_sport = htons(asoc->base.bind_addr.port);
>         }
> --
> 2.39.2
Reviewed-by: Xin Long <lucien.xin@gmail.com>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH net-next 0/3] net: Remove more RTO_ONLINK users.
  2023-07-17 13:53 [PATCH net-next 0/3] net: Remove more RTO_ONLINK users Guillaume Nault
                   ` (2 preceding siblings ...)
  2023-07-17 13:53 ` [PATCH net-next 3/3] sctp: " Guillaume Nault
@ 2023-07-19 11:40 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 6+ messages in thread
From: patchwork-bot+netdevbpf @ 2023-07-19 11:40 UTC (permalink / raw)
  To: Guillaume Nault
  Cc: davem, kuba, pabeni, edumazet, netdev, pablo, laforge,
	osmocom-net-gprs, dccp, marcelo.leitner, lucien.xin, linux-sctp

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!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-07-19 11:40 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-17 13:53 [PATCH net-next 0/3] net: Remove more RTO_ONLINK users Guillaume Nault
2023-07-17 13:53 ` [PATCH net-next 1/3] gtp: Set TOS and routing scope independently for fib lookups Guillaume Nault
2023-07-17 13:53 ` [PATCH net-next 2/3] dccp: " Guillaume Nault
2023-07-17 13:53 ` [PATCH net-next 3/3] sctp: " Guillaume Nault
2023-07-17 16:06   ` Xin Long
2023-07-19 11:40 ` [PATCH net-next 0/3] net: Remove more RTO_ONLINK users patchwork-bot+netdevbpf

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).