Re: [PATCH] iproute2: Ignore EADDRNOTAVAIL errors during address flush operation

Stephen Hemminger
2015-11-23T23:59:29Z

On Thu, 5 Nov 2015 14:54:17 -0500
Neil Horman <nhorman@tuxdriver.com> wrote:

> I found recently that, if I disabled address promotion in the kernel, that
> ip addr flush dev <dev>
>
> would fail with an EADDRNOTAVAIL errno (though the flush operation would in fact
> flush all addresses from an interface properly)
>
> Whats happening is that, if I add a primary and multiple secondary addresses to
> an interface, the flush operation first ennumerates them all with a GETADDR |
> DUMP operation, then sends a delete request for each address. But the kernel,
> having promotion disabled, deletes all secondary addresses when the primary is
> removed. That means, that several delete requests may still be pending in the
> netlink request for addresses that have been removed on our behalf, resulting in
> EADDRNOTAVAIL return codes.
>
> It seems the simplest thing to do is to understand that EADDRUNAVAIL isn't a
> fatal outcome on a flush operation, as it just indicates that an address which
> you want to remove is already removed, so it can safely be ignored.
>
> Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
> CC: Stephen Hemminger <stephen@networkplumber.org>
> CC: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>

Applied, thanks