Re: [PATCH RFC v2 net-next 03/25] netlink: introduce NLM_F_DUMP_PROPER_HDR flag
From: Christian Brauner <christian@brauner.io>
Date: 2018-10-02 18:01:26
On Tue, Oct 02, 2018 at 01:06:14PM +0200, Jiri Benc wrote:
On Mon, 1 Oct 2018 17:28:29 -0700, David Ahern wrote:quoted
Add a new flag, NLM_F_DUMP_PROPER_HDR, for userspace to indicate to the kernel that it believes it is sending the right header struct for the dump message type (ifinfomsg, ifaddrmsg, rtmsg, fib_rule_hdr, ...).Why is this limited to dumps? Other kind of netlink messages contain the common struct, too. When introducing such mechanism, please make it generic. Last time when we were discussing strict checking in netlink, it was suggested to add a socket option instead of adding NLM flags[1].
I didn't find this in the linked thread. What I find interesting and convincing is one of Dave's points: "I'm beginning to wonder if we can just change this unilaterally to not ignore unrecognized attributes. I am increasingly certain that things that would "break" we wouldn't want to succeed anyways." [1] :) But a socket option or this header flag both sound acceptable to me. Was there any more detail on how a socket option would look like, i.e. an api proposal or something? [1]: https://marc.info/?l=linux-netdev&m=144522081220166&w=2
It makes a lot of sense: the number of flags is very limited and we'd run out of them pretty fast. It's not just the header structure that is currently checked sloppily. It's also attributes, flags in attributes, etc. We can't assign a flag to all of them. You should also consider a different name for the flag: it should reflect what the effect of the flag is. "Proper header" is not an effect, it's a requirement for the message to pass. The effect is enforced strict checking of the header. Jiri [1] https://marc.info/?l=linux-netdev&m=144492718118955