Hi! This series updates the GRED Qdisc. The Qdisc matches nfp offload very well, but before we can offload it there are a number of improvements to make.
First few patches add extack messages to the Qdisc and pass extack to netlink validation. Next a new netlink attribute group is added, to allow GRED to be extended more easily. Currently GRED passes C structures as attributes, and even an array of C structs for virtual queue configuration. User space has hard coded the expected length of that array, so adding new fields is not possible. New two-level attribute group is added: [TCA_GRED_VQ_LIST] [TCA_GRED_VQ_ENTRY] [TCA_GRED_VQ_DP] [TCA_GRED_VQ_FLAGS] [TCA_GRED_VQ_STAT_*] [TCA_GRED_VQ_ENTRY] [TCA_GRED_VQ_DP] [TCA_GRED_VQ_FLAGS] [TCA_GRED_VQ_STAT_*] [TCA_GRED_VQ_ENTRY] ... Statistics are dump only. Patch 4 switches the byte counts to be 64 bit, and patch 5 introduces the new stats attributes for dump. Patch 6 switches RED flags to be per-virtual queue, and patch 7 allows them to be dumped and set at virtual queue granularity. Jakub Kicinski (7): net: sched: gred: separate error and non-error path in gred_change() net: sched: gred: pass extack to nla_parse_nested() net: sched: gred: use extack to provide more details on configuration errors net: sched: gred: store bytesin as a 64 bit value net: sched: gred: provide a better structured dump and expose stats net: sched: gred: store red flags per virtual queue net: sched: gred: allow manipulating per-DP RED flags include/uapi/linux/pkt_sched.h | 27 ++++ net/sched/sch_gred.c | 281 +++++++++++++++++++++++++++++---- 2 files changed, 281 insertions(+), 27 deletions(-) -- 2.17.1