On 8/28/19 1:43 PM, Florian Westphal wrote:
> Hi Eric,
>
> The out-of-tree multipath TCP stack adds a few MIB counters to track
> (and debug) MTPCP behaviour. Examples:
>
> SNMP_MIB_ITEM("MPCapableSYNRX", MPTCP_MIB_MPCAPABLEPASSIVE),
> SNMP_MIB_ITEM("MPCapableSYNTX", MPTCP_MIB_MPCAPABLEACTIVE),
> [..]
> SNMP_MIB_ITEM("MPTCPRetrans", MPTCP_MIB_RETRANSSEGS),
> SNMP_MIB_ITEM("MPFailRX", MPTCP_MIB_MPFAILRX),
> SNMP_MIB_ITEM("MPCsumFail", MPTCP_MIB_CSUMFAIL),
>
> and so on.
>
> I think that such MIB counters would be good to have in the 'upstreaming'
> attempt as well.
>
> The out-of-tree code keeps them separate from the tcp mib counters and also
> exposes them in a different /proc file (/proc/net/mptcp_net/snmp).
>
> Would you be ok with mptcp-upstreaming adding its MIB counters to the
> existing TCP MIB instead?
>
> This would make 'nstat' and other tools pick them up automatically.
> It would also help TCP highlevel debugging to see if MPTCP is involved
> in any way.
>
> Let me know -- I can go with a separate MIB, its no problem, I just want
> to avoid going down the wrong path.
There are about 40 counters.
Space for that will be per netns : num_possible_cpus * 40 * 8 bytes
The cost of folding all the values will make nstat slower even if MPTCP is not
used.
Maybe find a way to not having to fold the MPTCP percpu counters if MPTCP is
not loaded ?