On Mon, 1 Feb 2016 18:51:05 -0500 Jarod Wilson <ja...@redhat.com> 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.