From: Vlad Buslov <vladbu@mellanox.com>
To: Jamal Hadi Salim <jhs@mojatatu.com>
Cc: Vlad Buslov <vladbu@mellanox.com>, Jiri Pirko <jiri@resnulli.us>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"xiyou.wangcong@gmail.com" <xiyou.wangcong@gmail.com>,
"davem@davemloft.net" <davem@davemloft.net>,
"mleitner@redhat.com" <mleitner@redhat.com>,
"dcaratti@redhat.com" <dcaratti@redhat.com>,
Eric Dumazet <edumazet@google.com>
Subject: Re: [PATCH net-next 00/13] Control action percpu counters allocation by netlink flag
Date: Fri, 25 Oct 2019 16:27:16 +0000 [thread overview]
Message-ID: <vbfo8y4u6xq.fsf@mellanox.com> (raw)
In-Reply-To: <43d4c598-88eb-27b3-a4bd-c777143acf89@mojatatu.com>
On Fri 25 Oct 2019 at 19:06, Jamal Hadi Salim <jhs@mojatatu.com> wrote:
> On 2019-10-25 11:43 a.m., Jamal Hadi Salim wrote:
>> On 2019-10-25 11:18 a.m., Vlad Buslov wrote:
>>>
>>
>>> The problem with this approach is that it only works when actions are
>>> created through act API, and not when they are created together with
>>> filter by cls API which doesn't expect or parse TCA_ROOT. That is why I
>>> wanted to have something in tcf_action_init_1() which is called by both
>>> of them.
>>>
>>
>> Aha. So the call path for tcf_action_init_1() via cls_api also needs
>> to have this infra. I think i understand better what you wanted
>> to do earlier with changing those enums.
>>
>
> Hold on. Looking more at the code, direct call for tcf_action_init_1()
> from the cls code path is for backward compat of old policer approach.
> I think even modern iproute2 doesnt support that kind of call
> anymore. So you can pass NULL there for the *flags.
>
> But: for direct call to tcf_action_init() we would have
> to extract the flag from the TLV.
> The TLV already has TCA_ROOT_FLAGS in it.
After re-reading the code I think what you suggesting is that I can
somehow parse TCA_ROOT_FLAGS in following functions:
int tcf_action_init(struct net *net, struct tcf_proto *tp, struct nlattr *nla,
struct nlattr *est, char *name, int ovr, int bind,
struct tc_action *actions[], size_t *attr_size,
bool rtnl_held, struct netlink_ext_ack *extack)
{
struct nlattr *tb[TCA_ACT_MAX_PRIO + 1];
struct tc_action *act;
size_t sz = 0;
int err;
int i;
-> err = nla_parse_nested_deprecated(tb, TCA_ACT_MAX_PRIO, nla, NULL,
extack);
if (err < 0)
return err;
for (i = 1; i <= TCA_ACT_MAX_PRIO && tb[i]; i++) {
act = tcf_action_init_1(net, tp, tb[i], est, name, ovr, bind,
rtnl_held, extack);
if (IS_ERR(act)) {
err = PTR_ERR(act);
goto err;
}
act->order = i;
sz += tcf_action_fill_size(act);
/* Start from index 0 */
actions[i - 1] = act;
}
*attr_size = tcf_action_full_attrs_size(sz);
return i - 1;
err:
tcf_action_destroy(actions, bind);
return err;
}
Again, I'm not too familiar with netlink, but looking at that I assume
that the code parses up to TCA_ACT_MAX_PRIO nested TCA_ACT attributes
and passes them one-by-one to tcf_action_init_1(). Are you suggesting
that it also somehow includes TCA_ROOT?
Regards,
Vlad
next prev parent reply other threads:[~2019-10-25 16:27 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-22 14:17 [PATCH net-next 00/13] Control action percpu counters allocation by netlink flag Vlad Buslov
2019-10-22 14:17 ` [PATCH net-next 01/13] net: sched: extract common action counters update code into function Vlad Buslov
2019-10-22 14:17 ` [PATCH net-next 02/13] net: sched: extract bstats " Vlad Buslov
2019-10-22 14:17 ` [PATCH net-next 03/13] net: sched: extract qstats update code into functions Vlad Buslov
2019-10-22 14:17 ` [PATCH net-next 04/13] net: sched: don't expose action qstats to skb_tc_reinsert() Vlad Buslov
2019-10-22 14:17 ` [PATCH net-next 05/13] net: sched: modify stats helper functions to support regular stats Vlad Buslov
2019-10-22 14:17 ` [PATCH net-next 06/13] net: sched: add action fast initialization flag Vlad Buslov
2019-10-22 14:17 ` [PATCH net-next 07/13] net: sched: act_gact: support fast init flag to skip pcpu allocation Vlad Buslov
2019-10-22 14:17 ` [PATCH net-next 08/13] net: sched: act_csum: " Vlad Buslov
2019-10-22 14:18 ` [PATCH net-next 09/13] net: sched: act_mirred: support fast init flag to skip pcpu alloc Vlad Buslov
2019-10-22 14:18 ` [PATCH net-next 10/13] net: sched: tunnel_key: " Vlad Buslov
2019-10-22 14:18 ` [PATCH net-next 11/13] net: sched: act_vlan: support fast init flag to skip pcpu allocation Vlad Buslov
2019-10-22 14:18 ` [PATCH net-next 12/13] net: sched: act_ct: " Vlad Buslov
2019-10-22 14:18 ` [PATCH net-next 13/13] tc-testing: implement tests for new fast_init action flag Vlad Buslov
2019-10-22 14:28 ` [PATCH iproute2-next] tc: implement support for action flags Vlad Buslov
2019-10-22 14:35 ` [PATCH net-next 00/13] Control action percpu counters allocation by netlink flag Marcelo Ricardo Leitner
2019-10-22 14:52 ` Vlad Buslov
2019-10-22 18:17 ` Roman Mashak
2019-10-23 6:38 ` Vlad Buslov
2019-10-23 13:02 ` Jamal Hadi Salim
2019-10-23 13:08 ` Vlad Buslov
2019-10-22 15:15 ` Marcelo Ricardo Leitner
2019-10-22 15:52 ` Vlad Buslov
2019-10-22 17:09 ` Marcelo Ricardo Leitner
2019-10-23 6:42 ` Vlad Buslov
2019-10-24 15:12 ` Roopa Prabhu
2019-10-24 15:18 ` Vlad Buslov
2019-10-24 17:31 ` Marcelo Ricardo Leitner
2019-10-24 18:03 ` Vlad Buslov
2019-10-23 12:49 ` Jamal Hadi Salim
2019-10-23 13:04 ` Vlad Buslov
2019-10-23 14:21 ` Jamal Hadi Salim
2019-10-23 15:04 ` Vlad Buslov
2019-10-24 7:35 ` Jiri Pirko
2019-10-24 15:23 ` Vlad Buslov
2019-10-24 16:12 ` Jamal Hadi Salim
2019-10-24 16:44 ` Vlad Buslov
2019-10-24 17:17 ` Jamal Hadi Salim
2019-10-24 18:05 ` Vlad Buslov
2019-10-25 11:46 ` Jamal Hadi Salim
2019-10-25 11:55 ` Vlad Buslov
2019-10-25 14:26 ` Vlad Buslov
2019-10-25 14:57 ` Jamal Hadi Salim
2019-10-25 15:08 ` Jamal Hadi Salim
2019-10-25 15:18 ` Vlad Buslov
2019-10-25 15:43 ` Jamal Hadi Salim
2019-10-25 16:06 ` Jamal Hadi Salim
2019-10-25 16:10 ` Vlad Buslov
2019-10-25 16:29 ` Jamal Hadi Salim
2019-10-25 16:53 ` Vlad Buslov
2019-10-25 18:17 ` Jamal Hadi Salim
2019-10-25 21:05 ` Jamal Hadi Salim
2019-10-25 21:10 ` Jamal Hadi Salim
2019-10-25 21:52 ` Jamal Hadi Salim
2019-10-26 9:44 ` Vlad Buslov
2019-10-26 12:26 ` Jamal Hadi Salim
2019-10-26 14:52 ` Roman Mashak
2019-10-26 16:06 ` Jamal Hadi Salim
2019-10-26 16:42 ` Vlad Buslov
2019-10-26 18:38 ` Jamal Hadi Salim
2019-10-27 8:31 ` Vlad Buslov
2019-10-27 9:13 ` Jamal Hadi Salim
2019-10-25 16:27 ` Vlad Buslov [this message]
2019-10-25 16:08 ` Vlad Buslov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=vbfo8y4u6xq.fsf@mellanox.com \
--to=vladbu@mellanox.com \
--cc=davem@davemloft.net \
--cc=dcaratti@redhat.com \
--cc=edumazet@google.com \
--cc=jhs@mojatatu.com \
--cc=jiri@resnulli.us \
--cc=mleitner@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=xiyou.wangcong@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).