net_sched: reintroduce dev->qdisc for use by sch_api
Currently the multiqueue integration with the qdisc API suffers from a few problems: - with multiple queues, all root qdiscs use the same handle. This means they can't be exposed to userspace in a backwards compatible fashion. - all API operations always refer to queue number 0. Newly created qdiscs are automatically shared between all queues, its not possible to address individual queues or restore multiqueue behaviour once a shared qdisc has been attached. - Dumps only contain the root qdisc of queue 0, in case of non-shared qdiscs this means the statistics are incomplete. This patch reintroduces dev->qdisc, which points to the (single) root qdisc from userspace's point of view. Currently it either points to the first (non-shared) default qdisc, or a qdisc shared between all queues. The following patches will introduce a classful dummy qdisc, which will be used as root qdisc and contain the per-queue qdiscs as children. Signed-off-by:Patrick McHardy <kaber@trash.net> Signed-off-by:
David S. Miller <davem@davemloft.net>
Showing
- include/linux/netdevice.h 3 additions, 0 deletionsinclude/linux/netdevice.h
- net/core/rtnetlink.c 2 additions, 4 deletionsnet/core/rtnetlink.c
- net/sched/cls_api.c 2 additions, 5 deletionsnet/sched/cls_api.c
- net/sched/sch_api.c 16 additions, 25 deletionsnet/sched/sch_api.c
- net/sched/sch_generic.c 11 additions, 14 deletionsnet/sched/sch_generic.c
Loading
Please register or sign in to comment