sctp: Set TOS and routing scope independently for fib lookups.
authorGuillaume Nault <gnault@redhat.com>
Mon, 17 Jul 2023 13:53:40 +0000 (15:53 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 19 Jul 2023 11:32:07 +0000 (12:32 +0100)
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>
Reviewed-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sctp/protocol.c

index 274d07b..33c0895 100644 (file)
@@ -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);
        }