From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf0-f66.google.com ([209.85.215.66]:44705 "EHLO mail-lf0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751570AbeBZPoS (ORCPT ); Mon, 26 Feb 2018 10:44:18 -0500 Received: by mail-lf0-f66.google.com with SMTP id v9so22879484lfa.11 for ; Mon, 26 Feb 2018 07:44:17 -0800 (PST) Subject: Re: [PATCH iproute2-next v3 8/8] iplink: Reduce number of arguments to iplink_parse() To: David Ahern , netdev@vger.kernel.org References: <1519304526-18848-1-git-send-email-serhe.popovych@gmail.com> <1519304526-18848-9-git-send-email-serhe.popovych@gmail.com> <8f84887e-e0a7-fe3a-d2a3-21ab7544133a@gmail.com> From: Serhey Popovych Message-ID: <523e40c8-d2e2-2f02-f31b-43850bc5f818@gmail.com> Date: Mon, 26 Feb 2018 17:44:03 +0200 MIME-Version: 1.0 In-Reply-To: <8f84887e-e0a7-fe3a-d2a3-21ab7544133a@gmail.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="OqYnNmGj1wO0YeLUHSlJX77pj4bygOAf4" Sender: netdev-owner@vger.kernel.org List-ID: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --OqYnNmGj1wO0YeLUHSlJX77pj4bygOAf4 Content-Type: multipart/mixed; boundary="cAjpXvcXrTUEMbH0RM9V90U8OgjCKMxnb"; protected-headers="v1" From: Serhey Popovych To: David Ahern , netdev@vger.kernel.org Message-ID: <523e40c8-d2e2-2f02-f31b-43850bc5f818@gmail.com> Subject: Re: [PATCH iproute2-next v3 8/8] iplink: Reduce number of arguments to iplink_parse() References: <1519304526-18848-1-git-send-email-serhe.popovych@gmail.com> <1519304526-18848-9-git-send-email-serhe.popovych@gmail.com> <8f84887e-e0a7-fe3a-d2a3-21ab7544133a@gmail.com> In-Reply-To: <8f84887e-e0a7-fe3a-d2a3-21ab7544133a@gmail.com> --cAjpXvcXrTUEMbH0RM9V90U8OgjCKMxnb Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable David Ahern wrote: > On 2/22/18 6:02 AM, Serhey Popovych wrote: >> Introduce new @struct iplink_parse_args data structure to consolidate >> arguments to iplink_parse(). This will reduce number of arguments >> passed to it. >> >> Pass this data structure to ->parse_opt() in iplink specific modules: >> it may be used to get network device name and other information. >> >> Signed-off-by: Serhey Popovych >> --- >> ip/ip_common.h | 16 +++++++++++++--- >> ip/iplink.c | 34 ++++++++++++++++++++++------------ >> ip/iplink_bond.c | 4 +++- >> ip/iplink_bond_slave.c | 4 +++- >> ip/iplink_bridge.c | 4 +++- >> ip/iplink_bridge_slave.c | 4 +++- >> ip/iplink_can.c | 4 +++- >> ip/iplink_geneve.c | 4 +++- >> ip/iplink_hsr.c | 4 +++- >> ip/iplink_ipoib.c | 4 +++- >> ip/iplink_ipvlan.c | 4 +++- >> ip/iplink_macvlan.c | 4 +++- >> ip/iplink_vlan.c | 4 +++- >> ip/iplink_vrf.c | 5 ++++- >> ip/iplink_vxcan.c | 14 ++++++-------- >> ip/iplink_vxlan.c | 4 +++- >> ip/ipmacsec.c | 4 +++- >> ip/link_gre.c | 6 ++++-- >> ip/link_gre6.c | 6 ++++-- >> ip/link_ip6tnl.c | 6 ++++-- >> ip/link_iptnl.c | 6 ++++-- >> ip/link_veth.c | 14 ++++++-------- >> ip/link_vti.c | 6 ++++-- >> ip/link_vti6.c | 6 ++++-- >> 24 files changed, 114 insertions(+), 57 deletions(-) >> >=20 > Seems like a lot of churn for no benefit. >=20 I plan to extend iplink_get() to be used in tunnels and replace lot of duplicated code. Since iplink_get() needs interface name and there is no easy way to get it from netlink buffer provided via @struct nlmsghdr n, I do all this stuff. Same applies to name_is_vrf() and ipvrf_get_table(): they do nearly the same things and can be consolidated. They also use interface name. On the other hand at same point I want to start RFC to submit IFLA_IFNAME by default for all netlink commands instead of ll_name_to_index() in userspace and giving index to kernel: it is subject to race, interface might disappear, another interface could be created before we send netlink message with ifindex. Kernel knowns better how to translate name to network device and does this with proper synchronization (RTNL). >=20 --cAjpXvcXrTUEMbH0RM9V90U8OgjCKMxnb-- --OqYnNmGj1wO0YeLUHSlJX77pj4bygOAf4 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQEcBAEBAgAGBQJalCtOAAoJEBTawMmQ61bBOsEH/3W2aqpKpWUwoJ8MWcE6HY52 hPoRDfdug90qOHDRUQsdM9DSlsh1r2qT4cxnMH9FXaIvurYx7Ve1AwdA5fiCE2xo v1rRMj8wiSYfPrSI3+23rmvEycmzbkFxiSJbLFIFiuems5Jm8rW85iePMSsNtkfl n4+sHlcCb7tsV9/X3wpEl9eg54u5sfKTrigNhj3ERvCJsrrXIb8akIaE8AqsNpUF TmMYrVtFkUBDXrjpisNwro4yxX0LQ2vvVvIwobAaD4DNZWjBTs2lJa9P+7RddHUY ESxTGch3MgpFiXJLT5946Rs5qT5wKCFYot0jxXKgs7JkSFQYZh4YSOOA00/wDNM= =H83Z -----END PGP SIGNATURE----- --OqYnNmGj1wO0YeLUHSlJX77pj4bygOAf4--