mbox series

[PATCHv3,net-next,00/14] net: sched: sch: introduce extack support

Message ID 20171218224513.29836-1-aring@mojatatu.com
Headers show
Series net: sched: sch: introduce extack support | expand

Message

Alexander Aring Dec. 18, 2017, 10:44 p.m. UTC
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 <dsahern@gmail.com>

changes since v3:
 - remove patch 2/2 lib: nlattr: set extack msg if validate_nla fails since
   David Ahren has a better solution
 - Remove check on net admin permission since -EPERM indicates it already
 - Change rtab to "rate table" - this is what it's stands for
 - Fix cbs *not* support messages
 - Fix tcf block error message for allocation, allocation will be still there
   because there are multiple places which returns -ENOMEM
 - Finnally also took care about sch_atm, sorry somehow I forgot this one and
   I hope I didn't forgot any sch implementation to add new callback parameters

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 (14):
  net: sched: fix coding style issues
  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 ++++--
 net/sched/act_police.c    |   4 +-
 net/sched/cls_api.c       |  17 +++--
 net/sched/sch_api.c       | 172 ++++++++++++++++++++++++++++++++--------------
 net/sched/sch_atm.c       |  23 ++++---
 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 +-
 35 files changed, 486 insertions(+), 265 deletions(-)

Comments

Jamal Hadi Salim Dec. 19, 2017, 12:45 p.m. UTC | #1
Saw some tiny typos in the commit log but lets please not hold
back the submission so we can have the rest of the
(many) outstanding patches coming in. So for this patch set:

Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>


cheers,
jamal

On 17-12-18 05:44 PM, Alexander Aring wrote:
> 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 <dsahern@gmail.com>
> 
> changes since v3:
>   - remove patch 2/2 lib: nlattr: set extack msg if validate_nla fails since
>     David Ahren has a better solution
>   - Remove check on net admin permission since -EPERM indicates it already
>   - Change rtab to "rate table" - this is what it's stands for
>   - Fix cbs *not* support messages
>   - Fix tcf block error message for allocation, allocation will be still there
>     because there are multiple places which returns -ENOMEM
>   - Finnally also took care about sch_atm, sorry somehow I forgot this one and
>     I hope I didn't forgot any sch implementation to add new callback parameters
> 
> 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 (14):
>    net: sched: fix coding style issues
>    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 ++++--
>   net/sched/act_police.c    |   4 +-
>   net/sched/cls_api.c       |  17 +++--
>   net/sched/sch_api.c       | 172 ++++++++++++++++++++++++++++++++--------------
>   net/sched/sch_atm.c       |  23 ++++---
>   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 +-
>   35 files changed, 486 insertions(+), 265 deletions(-)
>
David Miller Dec. 20, 2017, 4:32 p.m. UTC | #2
From: Alexander Aring <aring@mojatatu.com>
Date: Mon, 18 Dec 2017 17:44:59 -0500

> 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.

This patch series doesn't apply cleanly to net-next.
Alexander Aring Dec. 20, 2017, 4:35 p.m. UTC | #3
Hi,

On Wed, Dec 20, 2017 at 11:32 AM, David Miller <davem@davemloft.net> wrote:
> From: Alexander Aring <aring@mojatatu.com>
> Date: Mon, 18 Dec 2017 17:44:59 -0500
>
>> 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.
>
> This patch series doesn't apply cleanly to net-next.

okay, I will rebase it and send v4.

Thanks.

- Alex