net: sched: introduce chain templates
Allow user to set a template for newly created chains. Template lock down the chain for particular classifier type/options combinations. The classifier needs to support templates, otherwise kernel would reply with error. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
32a4f5ecd7
commit
9f407f1768
@@ -238,6 +238,8 @@ struct tcf_result {
|
||||
};
|
||||
};
|
||||
|
||||
struct tcf_chain;
|
||||
|
||||
struct tcf_proto_ops {
|
||||
struct list_head head;
|
||||
char kind[IFNAMSIZ];
|
||||
@@ -263,10 +265,18 @@ struct tcf_proto_ops {
|
||||
tc_setup_cb_t *cb, void *cb_priv,
|
||||
struct netlink_ext_ack *extack);
|
||||
void (*bind_class)(void *, u32, unsigned long);
|
||||
void * (*tmplt_create)(struct net *net,
|
||||
struct tcf_chain *chain,
|
||||
struct nlattr **tca,
|
||||
struct netlink_ext_ack *extack);
|
||||
void (*tmplt_destroy)(void *tmplt_priv);
|
||||
|
||||
/* rtnetlink specific */
|
||||
int (*dump)(struct net*, struct tcf_proto*, void *,
|
||||
struct sk_buff *skb, struct tcmsg*);
|
||||
int (*tmplt_dump)(struct sk_buff *skb,
|
||||
struct net *net,
|
||||
void *tmplt_priv);
|
||||
|
||||
struct module *owner;
|
||||
};
|
||||
@@ -305,6 +315,8 @@ struct tcf_chain {
|
||||
u32 index; /* chain index */
|
||||
unsigned int refcnt;
|
||||
bool explicitly_created;
|
||||
const struct tcf_proto_ops *tmplt_ops;
|
||||
void *tmplt_priv;
|
||||
};
|
||||
|
||||
struct tcf_block {
|
||||
|
Reference in New Issue
Block a user