Re: [PATCH net-next 2/5] net sched actions: add new tc_action_ops callback
David Millerwrites: > From: Roman Mashak > Date: Fri, 2 Mar 2018 17:01:40 -0500 > >> diff --git a/net/sched/act_api.c b/net/sched/act_api.c >> index acac92a..6f3307f 100644 >> --- a/net/sched/act_api.c >> +++ b/net/sched/act_api.c >> @@ -136,6 +136,14 @@ static size_t tcf_action_full_attrs_size(size_t sz) >> + sz; >> } >> >> +static size_t tcf_action_fill_size(const struct tc_action *act) >> +{ >> +if (act->ops->get_fill_size) >> +return act->ops->get_fill_size(act) + >> +tcf_action_shared_attrs_size(act); >> +return 0; >> +} >> + > > Again, a static functions with no users generates compiler warnings. Thanks, will fix in v2.
Re: [PATCH net-next 2/5] net sched actions: add new tc_action_ops callback
From: Roman MashakDate: Fri, 2 Mar 2018 17:01:40 -0500 > diff --git a/net/sched/act_api.c b/net/sched/act_api.c > index acac92a..6f3307f 100644 > --- a/net/sched/act_api.c > +++ b/net/sched/act_api.c > @@ -136,6 +136,14 @@ static size_t tcf_action_full_attrs_size(size_t sz) > + sz; > } > > +static size_t tcf_action_fill_size(const struct tc_action *act) > +{ > + if (act->ops->get_fill_size) > + return act->ops->get_fill_size(act) + > + tcf_action_shared_attrs_size(act); > + return 0; > +} > + Again, a static functions with no users generates compiler warnings.
[PATCH net-next 2/5] net sched actions: add new tc_action_ops callback
Add a new callback in tc_action_ops, it will be needed by the tc actions to compute its size when a ADD/DELETE notification message is constructed. This routine has to take into account optional/variable size TLVs specific per action. Signed-off-by: Roman Mashak--- include/net/act_api.h | 1 + net/sched/act_api.c | 8 2 files changed, 9 insertions(+) diff --git a/include/net/act_api.h b/include/net/act_api.h index 9c2f226..0a56465 100644 --- a/include/net/act_api.h +++ b/include/net/act_api.h @@ -97,6 +97,7 @@ struct tc_action_ops { const struct tc_action_ops *, struct netlink_ext_ack *); void(*stats_update)(struct tc_action *, u64, u32, u64); + size_t (*get_fill_size)(const struct tc_action *act); struct net_device *(*get_dev)(const struct tc_action *a); }; diff --git a/net/sched/act_api.c b/net/sched/act_api.c index acac92a..6f3307f 100644 --- a/net/sched/act_api.c +++ b/net/sched/act_api.c @@ -136,6 +136,14 @@ static size_t tcf_action_full_attrs_size(size_t sz) + sz; } +static size_t tcf_action_fill_size(const struct tc_action *act) +{ + if (act->ops->get_fill_size) + return act->ops->get_fill_size(act) + + tcf_action_shared_attrs_size(act); + return 0; +} + static int tcf_dump_walker(struct tcf_idrinfo *idrinfo, struct sk_buff *skb, struct netlink_callback *cb) { -- 2.7.4