Re: [PATCH v5] net: ip, diag -- Add diag interface for raw sockets

From: Jamal Hadi Salim
Date: Wed Sep 28 2016 - 08:27:32 EST

On 16-09-28 08:16 AM, David Miller wrote:
From: Jamal Hadi Salim <jhs@xxxxxxxxxxxx>
Date: Wed, 28 Sep 2016 08:09:28 -0400

On 16-09-28 08:07 AM, David Miller wrote:

Right, it would be legal for an existing user to have code that
explicitly initializes every member of the structure, including 'pad'.
So we have to keep that member around, at a minimum, for their sake.

I think we need to start labelling any new pad fields added as
"Not UAPI. Do not fsck fondle this".

They must initialize it to zero.

What if in the future actually meant to use 0 for
something?;-> For example in Cyrill's case it means PROTO_IP
Not sure if it useful to interpret or not but it is part of the
enum for protocols.

Maybe we shouldnt be adding pad fields in these netlink
structure definitions then one can liberally add new ones.
Note: inet_diag somewhere has a netlink structure that
has a hole. I pointed it out to Eric D. and he said we cant
add it now because it would break ABI.
So where do we draw the line for future extensions?