]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
mptcp: add the mib for data checksum
authorGeliang Tang <geliangtang@gmail.com>
Thu, 17 Jun 2021 23:46:18 +0000 (16:46 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 18 Jun 2021 18:40:11 +0000 (11:40 -0700)
This patch added the mib for the data checksum, MPTCP_MIB_DATACSUMERR.

Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Geliang Tang <geliangtang@gmail.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/subflow.c

index eb2dc6dbe212b15723da4f0c6e5ced9bf7cebcc0..e7e60bc1fb96c500dcbcd9bc734c68aea965571e 100644 (file)
@@ -25,6 +25,7 @@ static const struct snmp_mib mptcp_snmp_list[] = {
        SNMP_MIB_ITEM("MPJoinAckHMacFailure", MPTCP_MIB_JOINACKMAC),
        SNMP_MIB_ITEM("DSSNotMatching", MPTCP_MIB_DSSNOMATCH),
        SNMP_MIB_ITEM("InfiniteMapRx", MPTCP_MIB_INFINITEMAPRX),
+       SNMP_MIB_ITEM("DataCsumErr", MPTCP_MIB_DATACSUMERR),
        SNMP_MIB_ITEM("OFOQueueTail", MPTCP_MIB_OFOQUEUETAIL),
        SNMP_MIB_ITEM("OFOQueue", MPTCP_MIB_OFOQUEUE),
        SNMP_MIB_ITEM("OFOMerge", MPTCP_MIB_OFOMERGE),
index f0da4f060fe1a99da57ff14159efa727c7ba2fed..92e56c0cfbdd8f1f5955fb8ba9b2ab646bfa89a6 100644 (file)
@@ -18,6 +18,7 @@ enum linux_mptcp_mib_field {
        MPTCP_MIB_JOINACKMAC,           /* HMAC was wrong on ACK + MP_JOIN */
        MPTCP_MIB_DSSNOMATCH,           /* Received a new mapping that did not match the previous one */
        MPTCP_MIB_INFINITEMAPRX,        /* Received an infinite mapping */
+       MPTCP_MIB_DATACSUMERR,          /* The data checksum fail */
        MPTCP_MIB_OFOQUEUETAIL, /* Segments inserted into OoO queue tail */
        MPTCP_MIB_OFOQUEUE,             /* Segments inserted into OoO queue */
        MPTCP_MIB_OFOMERGE,             /* Segments merged in OoO queue */
index 9ccc4686d0d4d26ff0261e14b4f41d5d52e643bc..6b1cd4257edf75e6cef641d400201358650552d7 100644 (file)
@@ -900,8 +900,10 @@ static enum mapping_status validate_data_csum(struct sock *ssk, struct sk_buff *
        header.csum = 0;
 
        csum = csum_partial(&header, sizeof(header), subflow->map_data_csum);
-       if (unlikely(csum_fold(csum)))
+       if (unlikely(csum_fold(csum))) {
+               MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_DATACSUMERR);
                return subflow->mp_join ? MAPPING_INVALID : MAPPING_DUMMY;
+       }
 
        return MAPPING_OK;
 }