diff options
author | Vlad Buslov <vladbu@mellanox.com> | 2020-05-15 14:40:12 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-05-15 20:23:11 +0300 |
commit | ca44b738e59420ae73d9e04a1be630a405e3a0f1 (patch) | |
tree | 784b626e5506912ca66f140dfdbf28d0e4ab73a6 /include | |
parent | f8ab1807a9c9aa14478920e64d1c9d3685aae26f (diff) | |
download | linux-ca44b738e59420ae73d9e04a1be630a405e3a0f1.tar.xz |
net: sched: implement terse dump support in act
Extend tcf_action_dump() with boolean argument 'terse' that is used to
request terse-mode action dump. In terse mode only essential data needed to
identify particular action (action kind, cookie, etc.) and its stats is put
to resulting skb and everything else is omitted. Implement
tcf_exts_terse_dump() helper in cls API that is intended to be used to
request terse dump of all exts (actions) attached to the filter.
Signed-off-by: Vlad Buslov <vladbu@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/act_api.h | 2 | ||||
-rw-r--r-- | include/net/pkt_cls.h | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/include/net/act_api.h b/include/net/act_api.h index c24d7643548e..1b4bfc4437be 100644 --- a/include/net/act_api.h +++ b/include/net/act_api.h @@ -193,7 +193,7 @@ struct tc_action *tcf_action_init_1(struct net *net, struct tcf_proto *tp, bool rtnl_held, struct netlink_ext_ack *extack); int tcf_action_dump(struct sk_buff *skb, struct tc_action *actions[], int bind, - int ref); + int ref, bool terse); int tcf_action_dump_old(struct sk_buff *skb, struct tc_action *a, int, int); int tcf_action_dump_1(struct sk_buff *skb, struct tc_action *a, int, int); diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h index 04aa0649f3b0..ed65619cbc47 100644 --- a/include/net/pkt_cls.h +++ b/include/net/pkt_cls.h @@ -325,6 +325,7 @@ int tcf_exts_validate(struct net *net, struct tcf_proto *tp, void tcf_exts_destroy(struct tcf_exts *exts); void tcf_exts_change(struct tcf_exts *dst, struct tcf_exts *src); int tcf_exts_dump(struct sk_buff *skb, struct tcf_exts *exts); +int tcf_exts_terse_dump(struct sk_buff *skb, struct tcf_exts *exts); int tcf_exts_dump_stats(struct sk_buff *skb, struct tcf_exts *exts); /** |