Message ID | 20240530131308.59737-3-kerneljasonxing@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | tcp/mptcp: count CLOSE-WAIT for CurrEstab | expand |
On Thu, May 30, 2024 at 3:13 PM Jason Xing <kerneljasonxing@gmail.com> wrote: > > From: Jason Xing <kernelxing@tencent.com> > > Like previous patch does in TCP, we need to adhere to RFC 1213: > > "tcpCurrEstab OBJECT-TYPE > ... > The number of TCP connections for which the current state > is either ESTABLISHED or CLOSE- WAIT." > > So let's consider CLOSE-WAIT sockets. > > The logic of counting > When we increment the counter? > a) Only if we change the state to ESTABLISHED. > > When we decrement the counter? > a) if the socket leaves ESTABLISHED and will never go into CLOSE-WAIT, > say, on the client side, changing from ESTABLISHED to FIN-WAIT-1. > b) if the socket leaves CLOSE-WAIT, say, on the server side, changing > from CLOSE-WAIT to LAST-ACK. > > Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") MPTCP was not part of linux at that time.
On Fri, May 31, 2024 at 2:26 PM Eric Dumazet <edumazet@google.com> wrote: > > On Thu, May 30, 2024 at 3:13 PM Jason Xing <kerneljasonxing@gmail.com> wrote: > > > > From: Jason Xing <kernelxing@tencent.com> > > > > Like previous patch does in TCP, we need to adhere to RFC 1213: > > > > "tcpCurrEstab OBJECT-TYPE > > ... > > The number of TCP connections for which the current state > > is either ESTABLISHED or CLOSE- WAIT." > > > > So let's consider CLOSE-WAIT sockets. > > > > The logic of counting > > When we increment the counter? > > a) Only if we change the state to ESTABLISHED. > > > > When we decrement the counter? > > a) if the socket leaves ESTABLISHED and will never go into CLOSE-WAIT, > > say, on the client side, changing from ESTABLISHED to FIN-WAIT-1. > > b) if the socket leaves CLOSE-WAIT, say, on the server side, changing > > from CLOSE-WAIT to LAST-ACK. > > > > Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") > > MPTCP was not part of linux at that time. Oh, right, thank you. It should be: Fixes: d9cd27b8cd19 ("mptcp: add CurrEstab MIB counter support") I'll fix it soon. Thanks, Jason
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 7d44196ec5b6..6d59c1c4baba 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2916,9 +2916,10 @@ void mptcp_set_state(struct sock *sk, int state) if (oldstate != TCP_ESTABLISHED) MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_CURRESTAB); break; - + case TCP_CLOSE_WAIT: + break; default: - if (oldstate == TCP_ESTABLISHED) + if (oldstate == TCP_ESTABLISHED || oldstate == TCP_CLOSE_WAIT) MPTCP_DEC_STATS(sock_net(sk), MPTCP_MIB_CURRESTAB); }