summary refs log tree commit diff
path: root/include
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2019-09-24 08:01:16 -0700
committerDavid S. Miller <davem@davemloft.net>2019-09-27 12:05:02 +0200
commitf6c0f5d209fa80eb808e08aa4206f6e264041ef6 (patch)
treea3c9c3a820ff3b8cc28671d498fad022142f74ff /include
parente9a5dceee56cb527a3498f1a59bd8726baa1e717 (diff)
downloadlinux-f6c0f5d209fa80eb808e08aa4206f6e264041ef6.tar.gz
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')
-rw-r--r--include/net/inet_timewait_sock.h1
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;
 };