iproute2/ip
Neil Horman e149d4e843 iproute2: Ignore EADDRNOTAVAIL errors during address flush operation
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>
2015-11-23 15:59:08 -08:00
..
.gitignore Another .gitignore file. 2006-08-08 12:11:23 -07:00
Makefile lwtunnel: Add encapsulation support to ip route 2015-10-16 16:13:22 -07:00
ifcfg Remove trailing whitespace 2006-12-05 10:10:22 -08:00
ip.c add support for brief output for link and addresses 2015-08-31 16:24:10 -07:00
ip6tunnel.c ip{,6}tunnel: put spaces around non-unary operators 2015-11-23 15:26:37 -08:00
ip_common.h ip_common.h header cleanup 2015-11-23 15:44:03 -08:00
ipaddress.c iproute2: Ignore EADDRNOTAVAIL errors during address flush operation 2015-11-23 15:59:08 -08:00
ipaddrlabel.c ip: remove extra newlines at end-of-file 2015-10-23 15:41:58 -07:00
ipfou.c ip: remove extra newlines at end-of-file 2015-10-23 15:41:58 -07:00
ipl2tp.c l2tp: add missing newline on show output 2015-09-11 15:26:58 -07:00
iplink.c ip: allow using a device "help" (or a prefix thereof) 2015-10-07 10:35:17 +01:00
iplink_bond.c ip link: missing options in bond usage 2015-09-21 14:36:02 -07:00
iplink_bond_slave.c ip: remove extra newlines at end-of-file 2015-10-23 15:41:58 -07:00
iplink_bridge.c iplink: Add support for IFLA_BR_VLAN_PROTOCOL attribute 2015-08-31 16:35:25 -07:00
iplink_bridge_slave.c iplink: shortify printing the usage of link type 2015-08-12 09:05:57 -07:00
iplink_can.c can: Add support for CAN FD non-ISO feature 2015-02-05 10:35:24 -08:00
iplink_geneve.c iplink_geneve: add tos configuration at link creation 2015-06-25 15:16:31 -04:00
iplink_hsr.c ip link: Shortify printing the usage of link type 2014-10-09 08:29:47 -07:00
iplink_ipoib.c ip link: Shortify printing the usage of link type 2014-10-09 08:29:47 -07:00
iplink_ipvlan.c ip link: Add ipvlan support to the iproute2/ip util 2014-12-03 09:37:37 -08:00
iplink_macvlan.c ip: macvlan: support MACVLAN_FLAG_NOPROMISC flag 2015-10-12 09:46:55 -07:00
iplink_vlan.c ip link: Shortify printing the usage of link type 2014-10-09 08:29:47 -07:00
iplink_vrf.c add support for VRF device 2015-08-23 10:14:16 -07:00
iplink_vxlan.c vxlan: Group policy extension 2015-02-05 10:31:43 -08:00
ipmaddr.c ip: allow using a device "help" (or a prefix thereof) 2015-10-07 10:35:17 +01:00
ipmonitor.c ipmonitor: allows to monitor in several netns 2015-05-21 15:28:56 -07:00
ipmroute.c mroute: "ip mroute show" not working when "to" and/or "from" is given 2015-06-25 08:47:07 -04:00
ipneigh.c Merge branch 'master' into net-next 2015-10-16 16:03:32 -07:00
ipnetconf.c libnetlink: introduce rtnl_listen_filter_t 2015-05-21 15:28:56 -07:00
ipnetns.c ipnetns: make net namespace cache variable size 2015-08-12 08:53:31 -07:00
ipntable.c ip_common.h header cleanup 2015-11-23 15:44:03 -08:00
ipprefix.c ip: remove extra newlines at end-of-file 2015-10-23 15:41:58 -07:00
iproute.c Merge branch 'master' into net-next 2015-10-23 15:46:08 -07:00
iproute_lwtunnel.c lwtunnel: Add encapsulation support to ip route 2015-10-16 16:13:22 -07:00
iproute_lwtunnel.h lwtunnel: Add encapsulation support to ip route 2015-10-16 16:13:22 -07:00
iprule.c ip, realms: also allow to pass in raw realms value 2015-10-22 23:40:51 -07:00
iptoken.c libnetlink: add size argument to rtnl_talk 2015-05-27 13:00:21 -07:00
iptunnel.c ip{,6}tunnel: put spaces around non-unary operators 2015-11-23 15:26:37 -08:00
iptuntap.c ip tuntap: Added missing commands in usage 2014-09-28 16:19:31 -07:00
ipxfrm.c xfrm: remove duplicated include 2015-07-27 14:36:53 -07:00
link_gre.c libnetlink: add size argument to rtnl_talk 2015-05-27 13:00:21 -07:00
link_gre6.c libnetlink: add size argument to rtnl_talk 2015-05-27 13:00:21 -07:00
link_ip6tnl.c libnetlink: add size argument to rtnl_talk 2015-05-27 13:00:21 -07:00
link_iptnl.c libnetlink: add size argument to rtnl_talk 2015-05-27 13:00:21 -07:00
link_veth.c ip link: Shortify printing the usage of link type 2014-10-09 08:29:47 -07:00
link_vti.c libnetlink: add size argument to rtnl_talk 2015-05-27 13:00:21 -07:00
link_vti6.c libnetlink: add size argument to rtnl_talk 2015-05-27 13:00:21 -07:00
routef ip/routef lifesaver 2007-07-10 18:29:20 -07:00
routel (Logical change 1.3) 2004-04-15 20:56:59 +00:00
rtm_map.c ip, realms: also allow to pass in raw realms value 2015-10-22 23:40:51 -07:00
rtmon.c libnetlink: introduce rtnl_listen_filter_t 2015-05-21 15:28:56 -07:00
rtpr (Logical change 1.3) 2004-04-15 20:56:59 +00:00
static-syms.c Fix build when shared libraries are disabled 2013-03-13 08:29:59 -07:00
tcp_metrics.c ip: remove extra newlines at end-of-file 2015-10-23 15:41:58 -07:00
tunnel.c ip/tunnel: introduce tnl_parse_key() 2015-11-23 15:26:37 -08:00
tunnel.h ip/tunnel: introduce tnl_parse_key() 2015-11-23 15:26:37 -08:00
xfrm.h Fix FSF address in file headers 2013-12-06 15:05:07 -08:00
xfrm_monitor.c xfrm: remove duplicated include 2015-07-27 14:36:53 -07:00
xfrm_policy.c xfrm: remove duplicated include 2015-07-27 14:36:53 -07:00
xfrm_state.c xfrm: remove duplicated include 2015-07-27 14:36:53 -07:00