Whamcloud - gitweb
LU-10391 lnet: add iface index to struct lnet_inetdev 69/48569/2
authorMr NeilBrown <neilb@suse.de>
Thu, 15 Sep 2022 01:47:55 +0000 (11:47 +1000)
committerOleg Drokin <green@whamcloud.com>
Tue, 4 Oct 2022 19:32:56 +0000 (19:32 +0000)
When getting list of interfaces, get the index as well, as this can be
useful and avoid search the list of interfaces again to find it.

Test-Parameters: trivial testlist=sanity-lnet
Test-Parameters: serverversion=2.12 serverdistro=el7.9 testlist=runtests
Test-Parameters: clientversion=2.12 testlist=runtests
Signed-off-by: Mr NeilBrown <neilb@suse.de>
Change-Id: I9b3b2516fd4ec1b83e2ec31e1318326ed22cb31b
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/48569
Reviewed-by: jsimmons <jsimmons@infradead.org>
Reviewed-by: Serguei Smirnov <ssmirnov@whamcloud.com>
Reviewed-by: Frank Sehr <fsehr@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
lnet/include/lnet/lib-lnet.h
lnet/klnds/socklnd/socklnd.c
lnet/lnet/config.c

index 3398402..119b1f4 100644 (file)
@@ -903,6 +903,7 @@ struct lnet_inetdev {
        u32     li_flags;
        u32     li_ipaddr;
        u32     li_netmask;
+       u32     li_index;
        char    li_name[IFNAMSIZ];
 };
 
index f3fff31..b7e8240 100644 (file)
@@ -2506,11 +2506,11 @@ ksocknal_startup(struct lnet_ni *ni)
        }
 
        ni->ni_dev_cpt = ifaces[i].li_cpt;
+       ksi->ksni_index = ifaces[i].li_index;
        sa = (void *)&ksi->ksni_addr;
        memset(sa, 0, sizeof(*sa));
        sa->sin_family = AF_INET;
        sa->sin_addr.s_addr = htonl(ifaces[i].li_ipaddr);
-       ksi->ksni_index = ksocknal_ip2index((struct sockaddr *)sa, ni);
        ksi->ksni_netmask = ifaces[i].li_netmask;
        strlcpy(ksi->ksni_name, ifaces[i].li_name, sizeof(ksi->ksni_name));
 
index 1718b09..f9285d4 100644 (file)
@@ -1557,6 +1557,7 @@ int lnet_inet_enumerate(struct lnet_inetdev **dev_list, struct net *ns)
 
                        ifaces[nip].li_cpt = cpt;
                        ifaces[nip].li_flags = flags;
+                       ifaces[nip].li_index = dev->ifindex;
                        ifaces[nip].li_ipaddr = ntohl(ifa->ifa_local);
                        ifaces[nip].li_netmask = ntohl(ifa->ifa_mask);
                        strlcpy(ifaces[nip].li_name, ifa->ifa_label,