OSDN Git Service

mptcp: add mib for xmit window sharing
authorPaolo Abeni <pabeni@redhat.com>
Wed, 4 May 2022 21:54:05 +0000 (14:54 -0700)
committerJakub Kicinski <kuba@kernel.org>
Fri, 6 May 2022 02:00:15 +0000 (19:00 -0700)
Bump a counter for counter when snd_wnd is shared among subflow,
for observability's sake.

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/mptcp/mib.c
net/mptcp/mib.h
net/mptcp/protocol.c

index d93a8c9..6a6f815 100644 (file)
@@ -56,6 +56,7 @@ static const struct snmp_mib mptcp_snmp_list[] = {
        SNMP_MIB_ITEM("RcvPruned", MPTCP_MIB_RCVPRUNED),
        SNMP_MIB_ITEM("SubflowStale", MPTCP_MIB_SUBFLOWSTALE),
        SNMP_MIB_ITEM("SubflowRecover", MPTCP_MIB_SUBFLOWRECOVER),
+       SNMP_MIB_ITEM("SndWndShared", MPTCP_MIB_SNDWNDSHARED),
        SNMP_MIB_SENTINEL
 };
 
index 529d07a..2411510 100644 (file)
@@ -49,6 +49,7 @@ enum linux_mptcp_mib_field {
        MPTCP_MIB_RCVPRUNED,            /* Incoming packet dropped due to memory limit */
        MPTCP_MIB_SUBFLOWSTALE,         /* Subflows entered 'stale' status */
        MPTCP_MIB_SUBFLOWRECOVER,       /* Subflows returned to active status after being stale */
+       MPTCP_MIB_SNDWNDSHARED,         /* Subflow snd wnd is overridden by msk's one */
        __MPTCP_MIB_MAX
 };
 
index 0e7f556..961c2ab 100644 (file)
@@ -1153,8 +1153,10 @@ static int mptcp_check_allowed_size(const struct mptcp_sock *msk, struct sock *s
        mptcp_snd_wnd = window_end - data_seq;
        avail_size = min_t(unsigned int, mptcp_snd_wnd, avail_size);
 
-       if (unlikely(tcp_sk(ssk)->snd_wnd < mptcp_snd_wnd))
+       if (unlikely(tcp_sk(ssk)->snd_wnd < mptcp_snd_wnd)) {
                tcp_sk(ssk)->snd_wnd = min_t(u64, U32_MAX, mptcp_snd_wnd);
+               MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_SNDWNDSHARED);
+       }
 
        return avail_size;
 }