Re: [PATCH net v3 2/4] net: add rx_nohandler stat counter

From: David Miller
Date: Sun Feb 07 2016 - 14:46:58 EST


From: Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx>
Date: Sun, 7 Feb 2016 11:37:32 -0800

> On Mon, 1 Feb 2016 18:51:05 -0500
> Jarod Wilson <jarod@xxxxxxxxxx> wrote:
>
>> --- a/include/uapi/linux/if_link.h
>> +++ b/include/uapi/linux/if_link.h
>> @@ -35,6 +35,8 @@ struct rtnl_link_stats {
>> /* for cslip etc */
>> __u32 rx_compressed;
>> __u32 tx_compressed;
>> +
>> + __u32 rx_nohandler; /* dropped, no handler found */
>> };
>>
>> /* The main device statistics structure */
>> @@ -68,6 +70,8 @@ struct rtnl_link_stats64 {
>> /* for cslip etc */
>> __u64 rx_compressed;
>> __u64 tx_compressed;
>> +
>> + __u64 rx_nohandler; /* dropped, no handler found */
>> };
>
> Why was this userspace ABI change allowed?
> The stats structure is exposed to user space via netlink
> and changing the size of responses will break iproute2 commands.
>
> The code will be expecting one size and the response will vary and
> break existing code. Yes, the code should check the size
> of the response, but it doesn't and I am sure iproute2 is not
> the only code that does this.

Jarod, please look into this.