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

From: Eric Dumazet
Date: Sun Feb 07 2016 - 15:19:40 EST


On Sun, 2016-02-07 at 14:46 -0500, David Miller wrote:

> > 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.

I do not think it breaks anything.

iproute2 always assumed kernel was sending at least 23 u64, and does not
check at all if the kernel sends more. (or less, so iproute2 can print
garbage if kernel is malicious)

an iproute2 patch will be needed to automatically detect if new kernels
are sending more data and print it accordingly.

> >
> > 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.

Running latest net-next, and old iproute2 is just fine.

# ip -s link sh dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq portid
001a11fffec30d80 state UP mode DEFAULT group default qlen 16000
link/ether 00:1a:11:c3:0d:7f brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
533766 1875 0 0 0 135
TX: bytes packets errors dropped carrier collsns
209204 1858 0 0 0 0