net/sched: netem: add per-impairment extended statistics

Add 64-bit counters for each impairment netem applies (delay, loss,
ECN marking, corruption, duplication, reordering) and for skb
allocation failures during enqueue. Exposed through TCA_STATS_APP
as struct tc_netem_xstats.

Counters increment when an impairment is occurs, independent of later
events that may mask its on-wire effect. Added allocation_errors
(similar to sch_fq) to account for when impairment could not be
applied due to memory pressure, etc.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Link: https://patch.msgid.link/20260509171123.307549-6-stephen@networkplumber.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
Stephen Hemminger
2026-05-09 10:03:26 -07:00
committed by Paolo Abeni
parent e8be7cdedc
commit a2f6ed7b48
2 changed files with 59 additions and 6 deletions

View File

@@ -569,6 +569,16 @@ struct tc_netem_gemodel {
#define NETEM_DIST_SCALE 8192
#define NETEM_DIST_MAX 16384
struct tc_netem_xstats {
__u64 delayed; /* packets delayed */
__u64 dropped; /* packets dropped by loss model */
__u64 corrupted; /* packets with bit errors injected */
__u64 duplicated; /* duplicate packets generated */
__u64 reordered; /* packets sent out of order */
__u64 ecn_marked; /* packets ECN CE-marked (not dropped)*/
__u64 allocation_errors;
};
/* DRR */
enum {