[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20221110091200.157c97bf@kernel.org>
Date: Thu, 10 Nov 2022 09:12:00 -0800
From: Jakub Kicinski <kuba@...nel.org>
To: Hangbin Liu <liuhangbin@...il.com>
Cc: Jamal Hadi Salim <jhs@...atatu.com>,
Marcelo Ricardo Leitner <marcelo.leitner@...il.com>,
Cong Wang <xiyou.wangcong@...il.com>, netdev@...r.kernel.org,
Jiri Pirko <jiri@...nulli.us>,
"David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Paolo Abeni <pabeni@...hat.com>,
David Ahern <dsahern@...nel.org>
Subject: Re: [PATCH (repost) net-next] sched: add extack for tfilter_notify
On Thu, 10 Nov 2022 14:29:29 +0800 Hangbin Liu wrote:
> On Wed, Nov 09, 2022 at 06:20:53PM -0800, Jakub Kicinski wrote:
> > Unless we want to create a separate netlink multicast channel for
> > just ext acks of a family. That's fine by me, I guess. I'm mostly
> > objecting to pretending notifications are multi-msg just to reuse
> > NLMSG_DONE, and forcing all notification listeners to deal with it.
>
> Actually I'm a little curious about how should we use NLMSG_DONE.
> Does a normal nlmsg(with NLM_F_MULTI flag) + a NLMSG_DONE msg illegal?
> Should we need at least 2 nlmsgs + a NLMSG_DONE message.
>
> Because when I wrote this patch, I saw some functions, like
> team_nl_send_options_get(), team_nl_send_port_list_get() in team driver,
> devlink_dpipe_tables_fill() in netlink.c, even netlink_dump_done(), could
> *possible* only have 1 nlmsg + 1 NLMSG_DONE message.
>
> In my understand, we can send only 1 nlmsg without NLM_F_MULTI flag. But if
> there is 1 nlmsg + 1 NLMSG_DONE message. It should be considered as multi
> message, and the first nlmsg need to add NLM_F_MULTI flag. Maybe there is
> a little abuse of using NLMSG_DONE, but should be legal.
>
> What do you think? Did I miss something?
No, I mean, it's perfectly legal to send a single message with MULTI
and NLMSG_DONE, but it's hard to deserialize that. You can hand parse
anything, but how would you describe that in terms of abstract objects
that a normal high level language can consume directly?
Powered by blists - more mailing lists