Hi, this patch series basically add support for extack in common qdisc handling. Additional it adds extack pointer to common qdisc callback handling this offers per qdisc implementation to setting the extack message for each failure over netlink.
The extack message will be set deeper in qdisc functions but going not deeper as net core api. For qdisc module callback handling, the extack will not be set. This will be part of per qdisc extack handling. I also want to prepare patches to handle extack per qdisc module... so there will come a lot of more patches, just cut them down to make it reviewable. There are some above 80-chars width warnings, which I ignore because it looks more ugly otherwise. This patch-series based on patches by David Ahren which gave me some hints how to deal with extack support. Cc: David Ahern <dsah...@gmail.com> changes since v2: - add fix coding style patch to catch all checkpatch warnings - add patch for setting netlink extack msg if validate_nla fails - changes in handle generic qdisc errors - remove NL_SET_ERR_MSG from memory allocation errors - remove NL_SET_ERR_MSG from device not found - change STAB to table size - add various new patches to add extack support for common TC functions like qdisc_get_rtab, tcf_block_get, qdisc_alloc and qdisc_create_dflt - users which are interessted in the detailed error messages can assign extack, otherwise NULL. - Add sch_cbq as example for qdisc_ops callback: init, qdisc_class_ops callbacks: change and graft - Add sch_cbs as example for qdisc_ops callback: change - Add sch_drr as example for qdisc_class ops callbacks: tcf_block - Alex Alexander Aring (15): net: sched: fix coding style issues lib: nlattr: set extack msg if validate_nla fails net: sched: sch_api: handle generic qdisc errors net: sched: sch: add extack for init callback net: sched: sch: add extack for change qdisc ops net: sched: sch: add extack to change class net: sched: sch: add extack for block callback net: sched: sch: add extack for graft callback net: sch: api: add extack support in qdisc_get_rtab net: sch: api: add extack support in tcf_block_get net: sch: api: add extack support in qdisc_alloc net: sch: api: add extack support in qdisc_create_dflt net: sch: sch_cbq: add extack support net: sch: sch_cbs: add extack support net: sch: sch_drr: add extack support include/net/pkt_cls.h | 6 +- include/net/pkt_sched.h | 6 +- include/net/sch_generic.h | 21 ++++-- lib/nlattr.c | 4 +- net/sched/act_police.c | 4 +- net/sched/cls_api.c | 17 +++-- net/sched/sch_api.c | 180 ++++++++++++++++++++++++++++++++-------------- net/sched/sch_atm.c | 3 +- net/sched/sch_cbq.c | 78 +++++++++++++------- net/sched/sch_cbs.c | 31 +++++--- net/sched/sch_choke.c | 8 ++- net/sched/sch_codel.c | 8 ++- net/sched/sch_drr.c | 40 +++++++---- net/sched/sch_dsmark.c | 19 +++-- net/sched/sch_fifo.c | 11 +-- net/sched/sch_fq.c | 8 ++- net/sched/sch_fq_codel.c | 13 ++-- net/sched/sch_generic.c | 25 ++++--- net/sched/sch_gred.c | 13 ++-- net/sched/sch_hfsc.c | 28 ++++---- net/sched/sch_hhf.c | 8 ++- net/sched/sch_htb.c | 29 ++++---- net/sched/sch_ingress.c | 20 ++++-- net/sched/sch_mq.c | 8 ++- net/sched/sch_mqprio.c | 7 +- net/sched/sch_multiq.c | 19 ++--- net/sched/sch_netem.c | 10 +-- net/sched/sch_pie.c | 8 ++- net/sched/sch_plug.c | 6 +- net/sched/sch_prio.c | 18 +++-- net/sched/sch_qfq.c | 22 +++--- net/sched/sch_red.c | 13 ++-- net/sched/sch_sfb.c | 20 +++--- net/sched/sch_sfq.c | 8 ++- net/sched/sch_tbf.c | 21 +++--- net/sched/sch_teql.c | 3 +- 36 files changed, 482 insertions(+), 261 deletions(-) -- 2.11.0