Wed, Apr 24, 2019 at 11:34:21PM CEST, mkubecek@xxxxxxx wrote: >One of the comments in recent review of the ethtool netlink series pointed >out that proposed ethnl_nest_start() helper which adds NLA_F_NESTED to >second argument of nla_nest_start() is not really specific to ethtool >netlink code. That is hard to argue with as closer inspection revealed that >exactly the same helper already exists in ipset code (except it's a macro >rather than an inline function). > >Another observation was that even if NLA_F_NESTED flag was introduced in >2007, only few netlink based interfaces set it in kernel generated messages >and even many recently added APIs omit it. That is unfortunate as without >the flag, message parsers not familiar with attribute semantics cannot >recognize nested attributes and do not see message structure; this affects >e.g. wireshark dissector or mnl_nlmsg_fprintf() from libmnl. > >This is why I'm suggesting to rename existing nla_nest_start() to different >name (nla_nest_start_noflag) and reintroduce nla_nest_start() as a wrapper >adding NLA_F_NESTED flag. This is implemented in first patch which is >mostly generated by spatch. Second patch drops ipset helper macros which >lose their purpose. Third patch cleans up minor coding style issues found >by checkpatch.pl in first patch. > >If this approach is considered too intrusive, we can leave nla_nest_start() >untouched and simply add a wrapper adding NLA_F_NESTED but that would >probably preserve the state when even most new code doesn't set the flag. I like this. Long overdue...