[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1519929931-1119-3-git-send-email-mrv@mojatatu.com>
Date: Thu, 1 Mar 2018 13:45:28 -0500
From: Roman Mashak <mrv@...atatu.com>
To: davem@...emloft.net
Cc: netdev@...r.kernel.org, jhs@...atatu.com, jiri@...nulli.us,
xiyou.wangcong@...il.com, Roman Mashak <mrv@...atatu.com>
Subject: [PATCH 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 <mrv@...atatu.com>
---
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
Powered by blists - more mailing lists