• Guillaume Nault's avatar
    ipv4: Drop tos parameter from flowi4_update_output() · 3f06760c
    Guillaume Nault authored
    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: default avatarGuillaume Nault <gnault@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    3f06760c
flow.h 4.96 KB