From 860182ee6e84d391aaa8b7e3cf810b6e030b1672 Mon Sep 17 00:00:00 2001 From: Mr NeilBrown Date: Thu, 15 Sep 2022 11:47:55 +1000 Subject: [PATCH] LU-10391 lnet: add iface index to struct lnet_inetdev 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 Change-Id: I9b3b2516fd4ec1b83e2ec31e1318326ed22cb31b Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/48569 Reviewed-by: jsimmons Reviewed-by: Serguei Smirnov Reviewed-by: Frank Sehr Reviewed-by: Oleg Drokin Tested-by: jenkins Tested-by: Maloo --- lnet/include/lnet/lib-lnet.h | 1 + lnet/klnds/socklnd/socklnd.c | 2 +- lnet/lnet/config.c | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lnet/include/lnet/lib-lnet.h b/lnet/include/lnet/lib-lnet.h index 3398402..119b1f4 100644 --- a/lnet/include/lnet/lib-lnet.h +++ b/lnet/include/lnet/lib-lnet.h @@ -903,6 +903,7 @@ struct lnet_inetdev { u32 li_flags; u32 li_ipaddr; u32 li_netmask; + u32 li_index; char li_name[IFNAMSIZ]; }; diff --git a/lnet/klnds/socklnd/socklnd.c b/lnet/klnds/socklnd/socklnd.c index f3fff31..b7e8240 100644 --- a/lnet/klnds/socklnd/socklnd.c +++ b/lnet/klnds/socklnd/socklnd.c @@ -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)); diff --git a/lnet/lnet/config.c b/lnet/lnet/config.c index 1718b09..f9285d4 100644 --- a/lnet/lnet/config.c +++ b/lnet/lnet/config.c @@ -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, -- 1.8.3.1