diff options
author | Eric Dumazet <edumazet@google.com> | 2019-09-24 17:01:16 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-09-27 12:05:02 +0200 |
commit | f6c0f5d209fa80eb808e08aa4206f6e264041ef6 (patch) | |
tree | a3c9c3a820ff3b8cc28671d498fad022142f74ff /include/net | |
parent | ipv6: tcp: provide sk->sk_priority to ctl packets (diff) | |
download | linux-f6c0f5d209fa80eb808e08aa4206f6e264041ef6.tar.xz linux-f6c0f5d209fa80eb808e08aa4206f6e264041ef6.zip |
tcp: honor SO_PRIORITY in TIME_WAIT state
ctl packets sent on behalf of TIME_WAIT sockets currently
have a zero skb->priority, which can cause various problems.
In this patch we :
- add a tw_priority field in struct inet_timewait_sock.
- populate it from sk->sk_priority when a TIME_WAIT is created.
- For IPv4, change ip_send_unicast_reply() and its two
callers to propagate tw_priority correctly.
ip_send_unicast_reply() no longer changes sk->sk_priority.
- For IPv6, make sure TIME_WAIT sockets pass their tw_priority
field to tcp_v6_send_response() and tcp_v6_send_ack().
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/inet_timewait_sock.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/net/inet_timewait_sock.h b/include/net/inet_timewait_sock.h index aef38c140014..dfd919b3119e 100644 --- a/include/net/inet_timewait_sock.h +++ b/include/net/inet_timewait_sock.h @@ -71,6 +71,7 @@ struct inet_timewait_sock { tw_pad : 2, /* 2 bits hole */ tw_tos : 8; u32 tw_txhash; + u32 tw_priority; struct timer_list tw_timer; struct inet_bind_bucket *tw_tb; }; |