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 <rshea...@brocade.com> > 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!.