This is main routine to parse ip-link(8) configuration parameters. Move all code related to command line parsing and validation to it from iptables_modify(). As benefit we reduce number of arguments as well as checking for most of weired cases in single place to give benefit to iptables_parse() users.
See individual patch description message for more information. v4 Drop patches intended to reduce number of arguments to iptables_parse(): postpone to the series with real use cases. Save only ifi_index in iplink_vxcan.c and link_veth.c: no need to save whole ifinfomsg data structure. Note that there is no sense to introduce custom version of iplink_parse() to use in iplink_vxcan.c and link_veth.c because there is too much parameters we need to support (except VF and few others) making huge code duplication. v3 Move vxlan/veth ifinfomsg save/restore to separate patch to make clear change that perform most of request buffer setups and checks in iplink_parse(). Update commit message descriptions and extra new line from "utils: Introduce and use nodev() helper routine" patch. v2 Terminate via exit() when failing to parse command line arguments to help identify failing line in batch mode. Thanks, Serhii Serhey Popovych (4): utils: Introduce and use nodev() helper routine iplink: Use "dev" and "name" parameters interchangeable when possible iplink: Follow documented behaviour when "index" is given iplink: Perform most of request buffer setups and checks in iplink_parse() bridge/fdb.c | 17 ++---- bridge/link.c | 8 +-- bridge/mdb.c | 19 ++---- bridge/vlan.c | 7 +-- include/utils.h | 1 + ip/ip6tunnel.c | 6 +- ip/ip_common.h | 4 +- ip/ipaddress.c | 7 +-- ip/iplink.c | 163 +++++++++++++++++++++++++++---------------------- ip/iplink_bond.c | 4 +- ip/iplink_bridge.c | 7 +-- ip/iplink_vxcan.c | 23 ++----- ip/iplink_vxlan.c | 7 +-- ip/ipmroute.c | 7 +-- ip/ipneigh.c | 14 ++--- ip/ipntable.c | 6 +- ip/iproute.c | 36 ++++------- ip/iproute_lwtunnel.c | 4 +- ip/iptunnel.c | 6 +- ip/link_gre.c | 7 +-- ip/link_gre6.c | 7 +-- ip/link_ip6tnl.c | 4 +- ip/link_iptnl.c | 4 +- ip/link_veth.c | 23 ++----- ip/link_vti.c | 7 +-- ip/link_vti6.c | 7 +-- lib/utils.c | 6 ++ tc/m_mirred.c | 6 +- tc/tc_class.c | 14 ++--- tc/tc_filter.c | 18 ++---- tc/tc_qdisc.c | 12 ++-- 31 files changed, 196 insertions(+), 265 deletions(-) -- 1.7.10.4