mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 19:43:40 +02:00
tcp: add LINUX_MIB_PAWS_TW_REJECTED counter
When TCP is in TIME_WAIT state, PAWS verification uses LINUX_PAWSESTABREJECTED, which is ambiguous and cannot be distinguished from other PAWS verification processes. We added a new counter, like the existing PAWS_OLD_ACK one. Also we update the doc with previously missing PAWS_OLD_ACK. usage: ''' nstat -az | grep PAWSTimewait TcpExtPAWSTimewait 1 0.0 ''' Suggested-by: Eric Dumazet <edumazet@google.com> Signed-off-by: Jiayuan Chen <jiayuan.chen@linux.dev> Reviewed-by: Eric Dumazet <edumazet@google.com> Link: https://patch.msgid.link/20250409112614.16153-3-jiayuan.chen@linux.dev Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
0427141112
commit
c449d5f3a3
|
|
@ -37,6 +37,8 @@ unsigned_long LINUX_MIB_TIMEWAITKILLED
|
|||
unsigned_long LINUX_MIB_PAWSACTIVEREJECTED
|
||||
unsigned_long LINUX_MIB_PAWSESTABREJECTED
|
||||
unsigned_long LINUX_MIB_TSECR_REJECTED
|
||||
unsigned_long LINUX_MIB_PAWS_OLD_ACK
|
||||
unsigned_long LINUX_MIB_PAWS_TW_REJECTED
|
||||
unsigned_long LINUX_MIB_DELAYEDACKLOST
|
||||
unsigned_long LINUX_MIB_LISTENOVERFLOWS
|
||||
unsigned_long LINUX_MIB_LISTENDROPS
|
||||
|
|
|
|||
|
|
@ -287,6 +287,7 @@ enum skb_drop_reason {
|
|||
/**
|
||||
* @SKB_DROP_REASON_TCP_RFC7323_TW_PAWS: PAWS check, socket is in
|
||||
* TIME_WAIT state.
|
||||
* Corresponds to LINUX_MIB_PAWS_TW_REJECTED.
|
||||
*/
|
||||
SKB_DROP_REASON_TCP_RFC7323_TW_PAWS,
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -188,6 +188,7 @@ enum
|
|||
LINUX_MIB_PAWSESTABREJECTED, /* PAWSEstabRejected */
|
||||
LINUX_MIB_TSECRREJECTED, /* TSEcrRejected */
|
||||
LINUX_MIB_PAWS_OLD_ACK, /* PAWSOldAck */
|
||||
LINUX_MIB_PAWS_TW_REJECTED, /* PAWSTimewait */
|
||||
LINUX_MIB_DELAYEDACKS, /* DelayedACKs */
|
||||
LINUX_MIB_DELAYEDACKLOCKED, /* DelayedACKLocked */
|
||||
LINUX_MIB_DELAYEDACKLOST, /* DelayedACKLost */
|
||||
|
|
|
|||
|
|
@ -191,6 +191,7 @@ static const struct snmp_mib snmp4_net_list[] = {
|
|||
SNMP_MIB_ITEM("PAWSEstab", LINUX_MIB_PAWSESTABREJECTED),
|
||||
SNMP_MIB_ITEM("TSEcrRejected", LINUX_MIB_TSECRREJECTED),
|
||||
SNMP_MIB_ITEM("PAWSOldAck", LINUX_MIB_PAWS_OLD_ACK),
|
||||
SNMP_MIB_ITEM("PAWSTimewait", LINUX_MIB_PAWS_TW_REJECTED),
|
||||
SNMP_MIB_ITEM("DelayedACKs", LINUX_MIB_DELAYEDACKS),
|
||||
SNMP_MIB_ITEM("DelayedACKLocked", LINUX_MIB_DELAYEDACKLOCKED),
|
||||
SNMP_MIB_ITEM("DelayedACKLost", LINUX_MIB_DELAYEDACKLOST),
|
||||
|
|
|
|||
|
|
@ -248,7 +248,7 @@ tcp_timewait_state_process(struct inet_timewait_sock *tw, struct sk_buff *skb,
|
|||
|
||||
if (paws_reject) {
|
||||
*drop_reason = SKB_DROP_REASON_TCP_RFC7323_TW_PAWS;
|
||||
__NET_INC_STATS(twsk_net(tw), LINUX_MIB_PAWSESTABREJECTED);
|
||||
__NET_INC_STATS(twsk_net(tw), LINUX_MIB_PAWS_TW_REJECTED);
|
||||
}
|
||||
|
||||
if (!th->rst) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user