ipv4: Drop tos parameter from flowi4_update_output()
authorGuillaume Nault <gnault@redhat.com>
Thu, 1 Jun 2023 16:37:46 +0000 (18:37 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 2 Jun 2023 09:52:38 +0000 (10:52 +0100)
commit3f06760c00f56c5fe6c7f3361c2cf64becee1174
tree8b637b6bbeb3ec33ea2bb8a39292b4ee56731a40
parent0f0f5868689ecbf643b723fae1a353c5a11a8e46
ipv4: Drop tos parameter from flowi4_update_output()

Callers of flowi4_update_output() never try to update ->flowi4_tos:

  * ip_route_connect() updates ->flowi4_tos with its own current
    value.

  * ip_route_newports() has two users: tcp_v4_connect() and
    dccp_v4_connect. Both initialise fl4 with ip_route_connect(), which
    in turn sets ->flowi4_tos with RT_TOS(inet_sk(sk)->tos) and
    ->flowi4_scope based on SOCK_LOCALROUTE.

    Then ip_route_newports() updates ->flowi4_tos with
    RT_CONN_FLAGS(sk), which is the same as RT_TOS(inet_sk(sk)->tos),
    unless SOCK_LOCALROUTE is set on the socket. In that case, the
    lowest order bit is set to 1, to eventually inform
    ip_route_output_key_hash() to restrict the scope to RT_SCOPE_LINK.
    This is equivalent to properly setting ->flowi4_scope as
    ip_route_connect() did.

  * ip_vs_xmit.c initialises ->flowi4_tos with memset(0), then calls
    flowi4_update_output() with tos=0.

  * sctp_v4_get_dst() uses the same RT_CONN_FLAGS_TOS() when
    initialising ->flowi4_tos and when calling flowi4_update_output().

In the end, ->flowi4_tos never changes. So let's just drop the tos
parameter. This will simplify the conversion of ->flowi4_tos from __u8
to dscp_t.

Signed-off-by: Guillaume Nault <gnault@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/flow.h
include/net/route.h
net/netfilter/ipvs/ip_vs_xmit.c
net/sctp/protocol.c