enum linux_mptcp_mib_field {
MPTCP_MIB_NUM = 0,
MPTCP_MIB_MPCAPABLEPASSIVE,
MPTCP_MIB_MPCAPABLEPASSIVEACK,
MPTCP_MIB_MPCAPABLEPASSIVEFALLBACK,
MPTCP_MIB_MPCAPABLEACTIVEFALLBACK,
MPTCP_MIB_RETRANSSEGS,
MPTCP_MIB_JOINNOTOKEN,
MPTCP_MIB_JOINSYNRX,
MPTCP_MIB_JOINSYNACKRX,
MPTCP_MIB_JOINSYNACKMAC,
MPTCP_MIB_JOINACKRX,
MPTCP_MIB_JOINACKMAC,
MPTCP_MIB_DSSNOMATCH,
MPTCP_MIB_INFINITEMAPRX,
MPTCP_MIB_OFOQUEUETAIL,
MPTCP_MIB_OFOQUEUE,
MPTCP_MIB_OFOMERGE,
MPTCP_MIB_NODSSWINDOW,
MPTCP_MIB_DUPDATA,
MPTCP_MIB_ADDADDR,
MPTCP_MIB_ECHOADD,
MPTCP_MIB_RMADDR,
MPTCP_MIB_RMSUBFLOW,
__MPTCP_MIB_MAX
};
#define LINUX_MIB_MPTCP_MAX __MPTCP_MIB_MAX
struct mptcp_mib {
unsigned long mibs[LINUX_MIB_MPTCP_MAX];
};
static inline void MPTCP_INC_STATS(struct net *net,
enum linux_mptcp_mib_field field)
{
if (likely(net->mib.mptcp_statistics))
SNMP_INC_STATS(net->mib.mptcp_statistics, field);
}
static inline void __MPTCP_INC_STATS(struct net *net,
enum linux_mptcp_mib_field field)
{
if (likely(net->mib.mptcp_statistics))
__SNMP_INC_STATS(net->mib.mptcp_statistics, field);
}
bool mptcp_mib_alloc(struct net *net);