mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
tcp: record last received ipv6 flowlabel
In order to better estimate whether a data packet has been
retransmitted or is the result of a TLP, we save the last received
ipv6 flowlabel.
To make space for this field we resize the "ato" field in
inet_connection_sock as the current value of TCP_DELACK_MAX can be
fully contained in 8 bits and add a compile_time_assert ensuring this
field is the required size.
v2: addressed kernel bot feedback about dccp_delack_timer()
v3: addressed build error introduced by commit bbf80d713f ("tcp:
derive delack_max from rto_min")
Signed-off-by: David Morley <morleyd@google.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Tested-by: David Morley <morleyd@google.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
committed by
Paolo Abeni
parent
8cea95b0bd
commit
95b9a87c6a
@@ -114,7 +114,10 @@ struct inet_connection_sock {
|
||||
__u8 quick; /* Scheduled number of quick acks */
|
||||
__u8 pingpong; /* The session is interactive */
|
||||
__u8 retry; /* Number of attempts */
|
||||
__u32 ato; /* Predicted tick of soft clock */
|
||||
#define ATO_BITS 8
|
||||
__u32 ato:ATO_BITS, /* Predicted tick of soft clock */
|
||||
lrcv_flowlabel:20, /* last received ipv6 flowlabel */
|
||||
unused:4;
|
||||
unsigned long timeout; /* Currently scheduled timeout */
|
||||
__u32 lrcvtime; /* timestamp of last received data packet */
|
||||
__u16 last_seg_size; /* Size of last incoming segment */
|
||||
|
||||
Reference in New Issue
Block a user