Subject: Re: [PATCH] netlink: Change rtnl_dump_done to always show error

From: Stephen Hemminger <[email-masked]>
Date: Tue, 30 May 2017 17:35:08 -0700

On Tue, 16 May 2017 14:22:46 -0700
David Ahern <[email-masked]> wrote:

> The original code which became rtnl_dump_done only shows netlink errors
> if the protocol is NETLINK_SOCK_DIAG, but netlink dumps always appends
> the length which contains any error encountered during the dump. Update
> rtnl_dump_done to always show the error if there is one.
> 
> As an *example* without this patch, dumping a route object that exceeds
> the internal buffer size terminates with no message to the user -- the
> dump just ends because the NLMSG_DONE attribute was received. With this
> patch the user at least gets a message that the dump was aborted.
> 
> $ ip ro ls
> default via 10.0.2.2 dev eth0
> 10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15
> 10.10.0.0/16 dev veth1 proto kernel scope link src 10.10.0.1
> 172.16.1.0/24 dev br0.11 proto kernel scope link src 172.16.1.1
> Error: Buffer too small for object
> Dump terminated
> 
> The point of this patch is to notify the user of a failure versus
> silently exiting on a partial dump. Because the NLMSG_DONE attribute
> was received, the entire dump needs to be restarted to use a larger
> buffer for EMSGSIZE errors. That could be done automatically but it
> has other user impacts (e.g., duplicate output if the dump is
> restarted) and should be the subject of a different patch.
> 
> Signed-off-by: David Ahern <[email-masked]>

Applied.

It is easier to seen iproute2 patches with:

Subject: [PATCH iproute2] netlink: Change rtnl_dump_done to always show error