Re: [PATCH net-next 1/2] mpls: packet stats
From: Roopa Prabhu <hidden>
Date: 2016-07-29 05:19:59
On 2/5/16, 11:27 AM, Robert Shearman wrote:
Having MPLS packet stats is useful for observing network operation and for diagnosing network problems. In the absence of anything better, use RFCs for MIBs defining MPLS stats for guidance on the semantics of the stats to expose. RFC3813 details two per-interface packet stats that should be provided (label lookup failures and fragmented packets) and also provides interpretation of RFC2863 for other per-interface stats (in/out ucast, mcast and bcast, in/out discards and errors and in unknown protos). Multicast, fragment and broadcast packet counters are printed, but not stored to allow for future implementation of current standards or future standards without user-space having to change. All the introduced fields are 64-bit, even error ones, to ensure no overflow with long uptimes. Per-CPU counters are used to avoid cache-line contention on the commonly used fields. The other fields have also been made per-CPU for code to avoid performance problems in error conditions on the assumption that on some platforms the cost of atomic operations could be more pexpensive than sending the packet (which is what would be done in the success case). If that's not the case, we could instead not use per-CPU counters for these fields. The IPv6 proc code was used as an inspiration for the proc code here, both in terms of the implementation as well as the location of the per-device stats proc files: /proc/net/dev_snmp_mpls/<dev>. Signed-off-by: Robert Shearman <redacted>
Robert, any interest in moving this to the new stats api ?. I had done some work for AF_<family> stats. Did not eventually end up including it in the final version. The AF_<family> infra patch is here: https://github.com/CumulusNetworks/net-next/commits/mpls-stats Thanks!.