mptcp: add the mibs for MP_FAIL
authorGeliang Tang <geliangtang@xiaomi.com>
Tue, 24 Aug 2021 23:26:18 +0000 (16:26 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 25 Aug 2021 10:02:35 +0000 (11:02 +0100)
This patch added the mibs for MP_FAIL: MPTCP_MIB_MPFAILTX and
MPTCP_MIB_MPFAILRX.

Signed-off-by: Geliang Tang <geliangtang@xiaomi.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/mptcp/mib.c
net/mptcp/mib.h
net/mptcp/options.c
net/mptcp/subflow.c

index 3a7c4e7b2d790d5c03ef097f18aa16beec2e6014..b21ff9be04c61772c8a7648d9540b48907de9115 100644 (file)
@@ -44,6 +44,8 @@ static const struct snmp_mib mptcp_snmp_list[] = {
        SNMP_MIB_ITEM("RmSubflow", MPTCP_MIB_RMSUBFLOW),
        SNMP_MIB_ITEM("MPPrioTx", MPTCP_MIB_MPPRIOTX),
        SNMP_MIB_ITEM("MPPrioRx", MPTCP_MIB_MPPRIORX),
+       SNMP_MIB_ITEM("MPFailTx", MPTCP_MIB_MPFAILTX),
+       SNMP_MIB_ITEM("MPFailRx", MPTCP_MIB_MPFAILRX),
        SNMP_MIB_ITEM("RcvPruned", MPTCP_MIB_RCVPRUNED),
        SNMP_MIB_ITEM("SubflowStale", MPTCP_MIB_SUBFLOWSTALE),
        SNMP_MIB_ITEM("SubflowRecover", MPTCP_MIB_SUBFLOWRECOVER),
index 8ec16c991aac01915eb5a53f7c47e4d80eb9b1d5..ecd3d8b117e0befe93c898803e240d68d0485014 100644 (file)
@@ -37,6 +37,8 @@ enum linux_mptcp_mib_field {
        MPTCP_MIB_RMSUBFLOW,            /* Remove a subflow */
        MPTCP_MIB_MPPRIOTX,             /* Transmit a MP_PRIO */
        MPTCP_MIB_MPPRIORX,             /* Received a MP_PRIO */
+       MPTCP_MIB_MPFAILTX,             /* Transmit a MP_FAIL */
+       MPTCP_MIB_MPFAILRX,             /* Received a MP_FAIL */
        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 */
index fa287a49dc847e3602526a0c031934cd5beca041..bec3ed82e2537d07535a5fea0aeb24f0b2afc6d2 100644 (file)
@@ -1158,6 +1158,7 @@ bool mptcp_incoming_options(struct sock *sk, struct sk_buff *skb)
 
        if (mp_opt.mp_fail) {
                mptcp_pm_mp_fail_received(sk, mp_opt.fail_seq);
+               MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_MPFAILRX);
                mp_opt.mp_fail = 0;
        }
 
index dba8ad700fb801fc515be7f7a3e29cd720c73518..54b7ffc21861547b4914d43b63f801895455a04f 100644 (file)
@@ -911,6 +911,7 @@ static enum mapping_status validate_data_csum(struct sock *ssk, struct sk_buff *
        if (unlikely(csum_fold(csum))) {
                MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_DATACSUMERR);
                subflow->send_mp_fail = 1;
+               MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_MPFAILTX);
                return subflow->mp_join ? MAPPING_INVALID : MAPPING_DUMMY;
        }