]> git.proxmox.com Git - mirror_iproute2.git/commitdiff
iplink: Use ll_name_to_index() instead of if_nametoindex()
authorSerhey Popovych <serhe.popovych@gmail.com>
Fri, 19 Jan 2018 16:44:03 +0000 (18:44 +0200)
committerStephen Hemminger <stephen@networkplumber.org>
Tue, 23 Jan 2018 22:50:59 +0000 (14:50 -0800)
While benefit from using ll_name_to_index() with populated
cache can potentially be exploited only in few places
(e.g. bridge fdb/mdb/vlan show routines) there is another
advantage of ll_name_to_index() over plain if_nametoindex():

  in case of if_nametoindex() failure ll_name_to_index()
  will attempt to get index from common name in form "if%d"
  that may be returned from ll_index_to_name().

This makes output from ip(8) coherent with it's input.

Note that most of the code already switched from plain
if_nametoindex() to ll_name_to_index() to cached variant.

Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
13 files changed:
bridge/fdb.c
bridge/mdb.c
bridge/vlan.c
ip/iplink_bond.c
ip/iplink_bridge.c
ip/iplink_vxlan.c
ip/iproute_lwtunnel.c
ip/link_gre.c
ip/link_gre6.c
ip/link_ip6tnl.c
ip/link_iptnl.c
ip/link_vti.c
ip/link_vti6.c

index 4d55fb04b009a23165f4ffdbb8005bbee28f0f99..8b133f9c1c8da8f01030681f1cb52b4ce081c0b2 100644 (file)
@@ -374,7 +374,7 @@ static int fdb_show(int argc, char **argv)
 
        /*we'll keep around filter_dev for older kernels */
        if (filter_dev) {
-               filter_index = if_nametoindex(filter_dev);
+               filter_index = ll_name_to_index(filter_dev);
                if (filter_index == 0) {
                        fprintf(stderr, "Cannot find device \"%s\"\n",
                                filter_dev);
@@ -463,7 +463,7 @@ static int fdb_modify(int cmd, int flags, int argc, char **argv)
                                invarg("invalid VNI\n", *argv);
                } else if (strcmp(*argv, "via") == 0) {
                        NEXT_ARG();
-                       via = if_nametoindex(*argv);
+                       via = ll_name_to_index(*argv);
                        if (via == 0)
                                invarg("invalid device\n", *argv);
                } else if (strcmp(*argv, "self") == 0) {
index 7b7b81f4692fb0b0fcc4b1b37fd10ba9e3f32cda..62dc8a0c58c3b6956f535c9cb397ecfe75b112f8 100644 (file)
@@ -311,7 +311,7 @@ static int mdb_show(int argc, char **argv)
        }
 
        if (filter_dev) {
-               filter_index = if_nametoindex(filter_dev);
+               filter_index = ll_name_to_index(filter_dev);
                if (filter_index == 0) {
                        fprintf(stderr, "Cannot find device \"%s\"\n",
                                filter_dev);
index 69fb5425e2b53cc370765193c9b3bc50de220b95..f42d7e6ba2441a4970b502fdf3bd92b27d574058 100644 (file)
@@ -567,7 +567,7 @@ static int vlan_show(int argc, char **argv)
        }
 
        if (filter_dev) {
-               filter_index = if_nametoindex(filter_dev);
+               filter_index = ll_name_to_index(filter_dev);
                if (filter_index == 0) {
                        fprintf(stderr, "Cannot find device \"%s\"\n",
                                filter_dev);
index f01fd8da52dae7a9b283c729bd4e8e6ff8ef4493..8e8723a99fff5206c53ff35d6b843e76ff1ae24e 100644 (file)
@@ -177,7 +177,7 @@ static int bond_parse_opt(struct link_util *lu, int argc, char **argv,
                        addattr8(n, 1024, IFLA_BOND_MODE, mode);
                } else if (matches(*argv, "active_slave") == 0) {
                        NEXT_ARG();
-                       ifindex = if_nametoindex(*argv);
+                       ifindex = ll_name_to_index(*argv);
                        if (!ifindex)
                                return -1;
                        addattr32(n, 1024, IFLA_BOND_ACTIVE_SLAVE, ifindex);
@@ -240,7 +240,7 @@ static int bond_parse_opt(struct link_util *lu, int argc, char **argv,
                        addattr32(n, 1024, IFLA_BOND_ARP_ALL_TARGETS, arp_all_targets);
                } else if (matches(*argv, "primary") == 0) {
                        NEXT_ARG();
-                       ifindex = if_nametoindex(*argv);
+                       ifindex = ll_name_to_index(*argv);
                        if (!ifindex)
                                return -1;
                        addattr32(n, 1024, IFLA_BOND_PRIMARY, ifindex);
index d3250980c68d41a9ae661b322d8452597e48d6fd..06ec092f1ae456fd7e8458821ed7a84fb3721cce 100644 (file)
@@ -792,7 +792,7 @@ int bridge_parse_xstats(struct link_util *lu, int argc, char **argv)
                        xstats_print_attr = BRIDGE_XSTATS_MCAST;
                } else if (strcmp(*argv, "dev") == 0) {
                        NEXT_ARG();
-                       filter_index = if_nametoindex(*argv);
+                       filter_index = ll_name_to_index(*argv);
                        if (filter_index == 0) {
                                fprintf(stderr, "Cannot find device \"%s\"\n",
                                        *argv);
index 88b5662573ce04e24ca3bb33ff4c5ad3bb01108f..7ea908e6c8912b89cf0c8b3de18a0599179bf3dd 100644 (file)
@@ -151,7 +151,7 @@ static int vxlan_parse_opt(struct link_util *lu, int argc, char **argv,
 
                        NEXT_ARG();
                        check_duparg(&attrs, IFLA_VXLAN_LINK, "dev", *argv);
-                       link = if_nametoindex(*argv);
+                       link = ll_name_to_index(*argv);
                        if (link == 0) {
                                fprintf(stderr, "Cannot find device \"%s\"\n",
                                        *argv);
index a1d36ba2409d75ef9a1ddc1ca90dfa075348f2e7..da6ebb8e04cd5b133675aabb71bb6742c9e1dc16 100644 (file)
@@ -556,7 +556,7 @@ static int parse_encap_seg6local(struct rtattr *rta, size_t len, int *argcp,
                        NEXT_ARG();
                        if (iif_ok++)
                                duparg2("iif", *argv);
-                       iif = if_nametoindex(*argv);
+                       iif = ll_name_to_index(*argv);
                        if (!iif)
                                invarg("\"iif\" interface not found\n", *argv);
                        rta_addattr32(rta, len, SEG6_LOCAL_IIF, iif);
@@ -564,7 +564,7 @@ static int parse_encap_seg6local(struct rtattr *rta, size_t len, int *argcp,
                        NEXT_ARG();
                        if (oif_ok++)
                                duparg2("oif", *argv);
-                       oif = if_nametoindex(*argv);
+                       oif = ll_name_to_index(*argv);
                        if (!oif)
                                invarg("\"oif\" interface not found\n", *argv);
                        rta_addattr32(rta, len, SEG6_LOCAL_OIF, oif);
index 009ddfc753c8bbdb303dc764034c655e6d77b7ea..512695d825919c75f2d866fdf05f6d579b33abae 100644 (file)
@@ -222,7 +222,7 @@ get_failed:
                        saddr = get_addr32(*argv);
                } else if (!matches(*argv, "dev")) {
                        NEXT_ARG();
-                       link = if_nametoindex(*argv);
+                       link = ll_name_to_index(*argv);
                        if (link == 0) {
                                fprintf(stderr, "Cannot find device \"%s\"\n",
                                        *argv);
index 3d02e1677501b08fec5665c551254e2968927171..29846cf13a1002b881968c7f7743b8e11cffb3fb 100644 (file)
@@ -231,7 +231,7 @@ get_failed:
                        memcpy(&laddr, &addr.data, sizeof(laddr));
                } else if (!matches(*argv, "dev")) {
                        NEXT_ARG();
-                       link = if_nametoindex(*argv);
+                       link = ll_name_to_index(*argv);
                        if (link == 0) {
                                fprintf(stderr, "Cannot find device \"%s\"\n",
                                        *argv);
index f6c52acc80749fb3659bd58398e5d92ca98ccc9c..fdf113e032c320d81bf3ac8e1f86f0997a30de90 100644 (file)
@@ -193,7 +193,7 @@ get_failed:
                        memcpy(&laddr, addr.data, sizeof(laddr));
                } else if (matches(*argv, "dev") == 0) {
                        NEXT_ARG();
-                       link = if_nametoindex(*argv);
+                       link = ll_name_to_index(*argv);
                        if (link == 0)
                                invarg("\"dev\" is invalid", *argv);
                } else if (strcmp(*argv, "ttl") == 0 ||
index a6213d28369244576dceb82403dc4a3314eb4e3f..96048e2e97a4ef4e099d1429b761a9f07ec38a31 100644 (file)
@@ -200,7 +200,7 @@ get_failed:
                        laddr = get_addr32(*argv);
                } else if (matches(*argv, "dev") == 0) {
                        NEXT_ARG();
-                       link = if_nametoindex(*argv);
+                       link = ll_name_to_index(*argv);
                        if (link == 0)
                                invarg("\"dev\" is invalid", *argv);
                } else if (strcmp(*argv, "ttl") == 0 ||
index 6a088c6f32f92f5510020cbca7b650ac86c38cc5..f1a1123458c188418dc62250fecade9a8fb126e5 100644 (file)
@@ -137,7 +137,7 @@ get_failed:
                        saddr = get_addr32(*argv);
                } else if (!matches(*argv, "dev")) {
                        NEXT_ARG();
-                       link = if_nametoindex(*argv);
+                       link = ll_name_to_index(*argv);
                        if (link == 0) {
                                fprintf(stderr, "Cannot find device \"%s\"\n",
                                        *argv);
index a11f389cdd91f2142f7b8c21db29ac3e362c850d..c394dbca62824344d8ed70f3a5a2213b7f565ec5 100644 (file)
@@ -143,7 +143,7 @@ get_failed:
                        memcpy(&saddr, addr.data, sizeof(saddr));
                } else if (!matches(*argv, "dev")) {
                        NEXT_ARG();
-                       link = if_nametoindex(*argv);
+                       link = ll_name_to_index(*argv);
                        if (link == 0) {
                                fprintf(stderr, "Cannot find device \"%s\"\n",
                                        *argv);