summaryrefslogtreecommitdiffstats
path: root/include/net/pkt_cls.h
diff options
context:
space:
mode:
authorJiri Pirko2017-05-17 11:08:01 +0200
committerDavid S. Miller2017-05-17 21:22:13 +0200
commit5bc1701881e395cec51811d07ec6961f3d1b2612 (patch)
treec53b1858405d97b67ded8b21e061c4b321116409 /include/net/pkt_cls.h
parentnet: sched: push chain dump to a separate function (diff)
downloadkernel-qcow2-linux-5bc1701881e395cec51811d07ec6961f3d1b2612.tar.gz
kernel-qcow2-linux-5bc1701881e395cec51811d07ec6961f3d1b2612.tar.xz
kernel-qcow2-linux-5bc1701881e395cec51811d07ec6961f3d1b2612.zip
net: sched: introduce multichain support for filters
Instead of having only one filter per block, introduce a list of chains for every block. Create chain 0 by default. UAPI is extended so the user can specify which chain he wants to change. If the new attribute is not specified, chain 0 is used. That allows to maintain backward compatibility. If chain does not exist and user wants to manipulate with it, new chain is created with specified index. Also, when last filter is removed from the chain, the chain is destroyed. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Acked-by: Jamal Hadi Salim <jhs@mojatatu.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/pkt_cls.h')
-rw-r--r--include/net/pkt_cls.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h
index e56e7157c280..2c213a69c196 100644
--- a/include/net/pkt_cls.h
+++ b/include/net/pkt_cls.h
@@ -18,6 +18,8 @@ int register_tcf_proto_ops(struct tcf_proto_ops *ops);
int unregister_tcf_proto_ops(struct tcf_proto_ops *ops);
#ifdef CONFIG_NET_CLS
+struct tcf_chain *tcf_chain_get(struct tcf_block *block, u32 chain_index);
+void tcf_chain_put(struct tcf_chain *chain);
int tcf_block_get(struct tcf_block **p_block,
struct tcf_proto __rcu **p_filter_chain);
void tcf_block_put(struct tcf_block *block);