iproute2/ip
Phil Sutter ff9463e048 ipaddress: Simplify vf_info parsing
Commit 7b8179c780 ("iproute2: Add new command to ip link to
enable/disable VF spoof check") tried to add support for
IFLA_VF_SPOOFCHK in a backwards-compatible manner, but aparently overdid
it: parse_rtattr_nested() handles missing attributes perfectly fine in
that it will leave the relevant field unassigned so calling code can
just compare against NULL. There is no need to layback from the previous
(IFLA_VF_TX_RATE) attribute to the next to check if IFLA_VF_SPOOFCHK is
present or not. To the contrary, it establishes a potentially incorrect
assumption of these two attributes directly following each other which
may not be the case (although up to now, kernel aligns them this way).

This patch cleans up the code to adhere to the common way of checking
for attribute existence. It has been tested to return correct results
regardless of whether the kernel exports IFLA_VF_SPOOFCHK or not.

Signed-off-by: Phil Sutter <phil@nwl.cc>
Reviewed-by: Greg Rose <grose@lightfleet.com>
2016-11-29 11:41:58 -08:00
..
.gitignore Another .gitignore file. 2006-08-08 12:11:23 -07:00
Makefile ila: Support for configuring ila to use netfilter hook 2016-08-12 12:50:15 -07:00
ifcfg Remove trailing whitespace 2006-12-05 10:10:22 -08:00
ip.c ila: Support for configuring ila to use netfilter hook 2016-08-12 12:50:15 -07:00
ip6tunnel.c tunnels: use macros for IPv6 address comparison 2016-09-21 16:35:05 -07:00
ip_common.h iproute2: build nsid-name cache only for commands that need it 2016-10-09 18:56:47 -07:00
ipaddress.c ipaddress: Simplify vf_info parsing 2016-11-29 11:41:58 -08:00
ipaddrlabel.c Use C99 style initializers everywhere 2016-07-20 12:05:24 -07:00
ipfou.c fou: show usage even if the module is not available 2016-08-17 14:00:22 -07:00
ipila.c ila: show usage even if the module is not available 2016-08-17 14:00:28 -07:00
ipl2tp.c libgenl: introduce genl_init_handle 2016-08-17 13:59:21 -07:00
iplink.c iplink: cleanup style errors 2016-10-09 19:24:38 -07:00
iplink_bond.c lib/utils: introduce rt_addr_n2a_rta() 2016-03-27 10:37:35 -07:00
iplink_bond_slave.c ip: Use specific slave id 2016-09-22 16:39:55 -07:00
iplink_bridge.c iplink: bridge: remove unnecessary returns 2016-02-21 12:00:47 -08:00
iplink_bridge_slave.c bridge: add support for the multicast flood flag 2016-10-17 05:29:24 -07:00
iplink_can.c Use C99 style initializers everywhere 2016-07-20 12:05:24 -07:00
iplink_geneve.c tunnels: use macros for IPv6 address comparison 2016-09-21 16:35:05 -07:00
iplink_hsr.c Added support for selection of new HSR version 2016-05-31 12:09:29 -07:00
iplink_ipoib.c ip: code cleanup 2016-03-21 11:52:19 -07:00
iplink_ipvlan.c ip: (ipvlan) introduce L3s mode 2016-09-20 09:50:45 -07:00
iplink_macvlan.c cleanup debris from revert 2016-10-26 11:19:11 -07:00
iplink_vlan.c ip: code cleanup 2016-03-21 11:52:19 -07:00
iplink_vrf.c ip: Use specific slave id 2016-09-22 16:39:55 -07:00
iplink_vxlan.c tunnels: use macros for IPv6 address comparison 2016-09-21 16:35:05 -07:00
ipmacsec.c ip: Use specific slave id 2016-09-22 16:39:55 -07:00
ipmaddr.c Use C99 style initializers everywhere 2016-07-20 12:05:24 -07:00
ipmonitor.c iproute2: build nsid-name cache only for commands that need it 2016-10-09 18:56:47 -07:00
ipmroute.c ipmroute: add support for age dumping 2016-10-09 19:09:31 -07:00
ipneigh.c Use C99 style initializers everywhere 2016-07-20 12:05:24 -07:00
ipnetconf.c Use C99 style initializers everywhere 2016-07-20 12:05:24 -07:00
ipnetns.c iproute2: build nsid-name cache only for commands that need it 2016-10-09 18:56:47 -07:00
ipntable.c Use C99 style initializers everywhere 2016-07-20 12:05:24 -07:00
ipprefix.c lib/utils: introduce rt_addr_n2a_rta() 2016-03-27 10:37:35 -07:00
iproute.c ip route: check ftell, fseek return value 2016-09-20 09:52:35 -07:00
iproute_lwtunnel.c ila: Support for checksum neutral translation 2016-08-12 12:49:30 -07:00
iproute_lwtunnel.h lwtunnel: Add encapsulation support to ip route 2015-10-16 16:13:22 -07:00
iprule.c ip: iprule style cleanup 2016-10-09 19:29:24 -07:00
iptoken.c Use C99 style initializers everywhere 2016-07-20 12:05:24 -07:00
iptunnel.c Use C99 style initializers everywhere 2016-07-20 12:05:24 -07:00
iptuntap.c tuntap: Add name attribute to usage text 2016-09-08 14:31:33 -07:00
ipxfrm.c Use C99 style initializers everywhere 2016-07-20 12:05:24 -07:00
link_gre.c gre6: Support for fou encapsulation 2016-08-12 12:51:18 -07:00
link_gre6.c gre6: Support for fou encapsulation 2016-08-12 12:51:18 -07:00
link_ip6tnl.c iptnl: add support for collect_md flag in IPv4 and IPv6 tunnels 2016-09-21 16:36:24 -07:00
link_iptnl.c iptnl: add support for collect_md flag in IPv4 and IPv6 tunnels 2016-09-21 16:36:24 -07:00
link_veth.c ip: code cleanup 2016-03-21 11:52:19 -07:00
link_vti.c Use C99 style initializers everywhere 2016-07-20 12:05:24 -07:00
link_vti6.c Use C99 style initializers everywhere 2016-07-20 12:05:24 -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 ip: code cleanup 2016-03-21 11:52:19 -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 libgenl: introduce genl_init_handle 2016-08-17 13:59:21 -07:00
tunnel.c ip: code cleanup 2016-03-21 11:52:19 -07:00
tunnel.h ip{,6}tunnel: have a shared stats parser/printer 2015-12-18 11:46:21 -08:00
xfrm.h Fix FSF address in file headers 2013-12-06 15:05:07 -08:00
xfrm_monitor.c utils: make rt_addr_n2a() non-reentrant by default 2016-03-27 10:37:34 -07:00
xfrm_policy.c Use C99 style initializers everywhere 2016-07-20 12:05:24 -07:00
xfrm_state.c Use C99 style initializers everywhere 2016-07-20 12:05:24 -07:00