Whamcloud - gitweb
LU-13714 lnet: only update gateway NI status on discovery
authorChris Horn <chris.horn@hpe.com>
Mon, 14 Feb 2022 20:37:05 +0000 (20:37 +0000)
committerAndreas Dilger <adilger@whamcloud.com>
Fri, 9 Sep 2022 01:38:35 +0000 (01:38 +0000)
commite21b40d4b85fe9a0bd4b986f909dfdc3129102cc
treee709ec0823f1e5db6f4665b2d8fe3212b83166c8
parent229ce1fb8c05f59f908a3648de3cf44bff3d652a
LU-13714 lnet: only update gateway NI status on discovery

Move the NI status from DOWN to UP only when receiving
a discovery PING. The discovery PING should be the only
message which should update the NI status since it's used
as the gateway NI keep alive mechanism.

This is done to avoid the following scenario:

The gateway itself can push its updates to the peers which
have removed it from its routing table. The peers would
respond to the PUSH with an ACK, the ACK will bring the
gateway's NI status to up. Therefore other peers which have
avoid_asym_router_failure=1 will have their route status
remain up even though the symmetrical route is gone.

Note: there is no way for the gateway to differentiate between
a keep alive discovery and a manually triggered discovery or ping.
However, this a narrow case which will not be handled.

net_last_alive converted to use ktime_get_seconds() instead of
ktime_get_real_seconds() since the NTP adjustment is not needed.

Lustre-change: https://review.whamcloud.com/39176
Lustre-commit: 3e3f70eb1ec95f32d9a97795d7fdf02cca82b5a0

Test-Parameters: trivial
Signed-off-by: Amir Shehata <ashehata@whamcloud.com>
Signed-off-by: Chris Horn <chris.horn@hpe.com>
Change-Id: Ifd5b06d4cf783b68b36413ada63f0a1d0095fb5b
Reviewed-on: https://review.whamcloud.com/48379
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Frank Sehr <fsehr@whamcloud.com>
Reviewed-by: Alexandre Ioffe <aioffe@ddn.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
lnet/lnet/config.c
lnet/lnet/lib-move.c
lnet/lnet/router.c
lnet/lnet/router_proc.c