From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754754AbcBGThZ (ORCPT ); Sun, 7 Feb 2016 14:37:25 -0500 Received: from mail-pa0-f54.google.com ([209.85.220.54]:36519 "EHLO mail-pa0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754703AbcBGThU (ORCPT ); Sun, 7 Feb 2016 14:37:20 -0500 Date: Sun, 7 Feb 2016 11:37:32 -0800 From: Stephen Hemminger To: Jarod Wilson Cc: linux-kernel@vger.kernel.org, "David S. Miller" , Eric Dumazet , Jiri Pirko , Daniel Borkmann , Tom Herbert , Jay Vosburgh , Veaceslav Falico , Andy Gospodarek , netdev@vger.kernel.org Subject: Re: [PATCH net v3 2/4] net: add rx_nohandler stat counter Message-ID: <20160207113732.25a88cc4@xeon-e3> In-Reply-To: <1454370667-2328-3-git-send-email-jarod@redhat.com> References: <1453996188-29965-1-git-send-email-jarod@redhat.com> <1454370667-2328-1-git-send-email-jarod@redhat.com> <1454370667-2328-3-git-send-email-jarod@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 1 Feb 2016 18:51:05 -0500 Jarod Wilson 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.