net: sched: introduce shared filter blocks infrastructure
authorJiri Pirko <jiri@mellanox.com>
Wed, 17 Jan 2018 10:46:46 +0000 (11:46 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 17 Jan 2018 19:53:56 +0000 (14:53 -0500)
commit4861738775d70e0165d04fe014f32b41bcb5414a
tree496b129c4d9aee0385f924d1e20fc1b0ea854795
parenta9b19443edbaac97c5c094f3cc903c1f1548b3f5
net: sched: introduce shared filter blocks infrastructure

Allow qdiscs to share filter blocks among them. Each qdisc type has to
use block get/put extended modifications that enable sharing.
Shared blocks are tracked within each net namespace and identified
by u32 index. This index is passed from user during the qdisc creation.
If user passes index that is not used by any other qdisc, new block
is created. If user passes index that is already used, the existing
block will be re-used.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Acked-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/pkt_cls.h
include/net/sch_generic.h
net/sched/cls_api.c