Whamcloud - gitweb
LU-10003 lnet: use Netlink to support old and new NI APIs. 14/48814/13
authorJames Simmons <jsimmons@infradead.org>
Fri, 28 Oct 2022 18:02:17 +0000 (14:02 -0400)
committerOleg Drokin <green@whamcloud.com>
Tue, 8 Nov 2022 08:49:53 +0000 (08:49 +0000)
commit8f8f6e2f36e56e53e38447583a08b7794f156c47
tree38c94a9e163dbebba574301301d5f8a0685abf8d
parent85941b9fb9ef5c27870550469f2e088c4e690603
LU-10003 lnet: use Netlink to support old and new NI APIs.

The LNet layer uses two different sets of ioctls. One ioctl set is
for Multi-Rail and the other is an older API. Both are in heavy
use and with the upcoming support for IPv6 we are looking at an
explosion of ioctls. The solution is to move the LNet layer to
Netlink which can easily handle all the differences between the
APIs. This also resolves a long standing issue of the user land
API constantly changing in a non-compatible way with previous
versions.

This patch unifies the handling the LNet NI to use Netlink and is
fully aware of the new large NID addressing.

Test-Parameters: trivial testlist=sanity-lnet
Signed-off-by: James Simmons <jsimmons@infradead.org>
Change-Id: Idf3384fe7cd0f593f149fd5d8f3a101e8bd8a7f6
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/48814
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Serguei Smirnov <ssmirnov@whamcloud.com>
Reviewed-by: Neil Brown <neilb@suse.de>
Reviewed-by: Frank Sehr <fsehr@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
20 files changed:
lnet/include/lnet/lib-lnet.h
lnet/include/lnet/lib-types.h
lnet/include/uapi/linux/lnet/libcfs_ioctl.h
lnet/include/uapi/linux/lnet/lnet-dlc.h
lnet/include/uapi/linux/lnet/lnet-types.h
lnet/klnds/gnilnd/gnilnd.c
lnet/klnds/kfilnd/kfilnd.c
lnet/klnds/kfilnd/kfilnd.h
lnet/klnds/o2iblnd/o2iblnd.c
lnet/klnds/o2iblnd/o2iblnd.h
lnet/klnds/socklnd/socklnd.c
lnet/klnds/socklnd/socklnd.h
lnet/lnet/api-ni.c
lnet/lnet/config.c
lnet/lnet/module.c
lnet/utils/Makefile.am
lnet/utils/lnetconfig/liblnetconfig_netlink.c
lnet/utils/lnetctl.c
lustre/tests/sanity-lnet.sh
lustre/utils/portals.c