]> www.infradead.org Git - users/jedix/linux-maple.git/commit
net/rds: prevent RDS connections using stale ARP entries
authorWei Lin Guay <wei.lin.guay@oracle.com>
Mon, 19 Mar 2018 13:26:34 +0000 (14:26 +0100)
committerBrian Maly <brian.maly@oracle.com>
Tue, 12 Jun 2018 00:39:10 +0000 (20:39 -0400)
commit48c2d5f5e2580c9550db8ea4b433cf478925487e
tree9cf71c75548e5954f8995e68e03d9314f0d6848b
parent8456dc853376a9254b325db2933c25d3ec9e8532
net/rds: prevent RDS connections using stale ARP entries

Active bonding fallback is an asynchronous event in the cluster. Thus,
there is a potential race where a host has sent out a CM REQ, using a
wrong remote gid, before IP migration happens at the remote end. The
side effect of this issue causes RDS connections only use one physical
IB port. When that particular IB port goes down, it causes send
completion error on those RDS connections and eventually increases the
brownout time.

To avoid this phenomenon, RDS has to reject all incoming CM REQ after
RDMA_CM_EVENT_DISCONNECTED or RDMA_CM_EVENT_ADDR_CHANGE events until
route resolution has been performed locally. By doing so, we can
ensure that the gratituos ARPs are sent to the remote end and RDS
connections are established based on the correct ARP entries.

Orabug: 28149101

Signed-off-by: Wei Lin Guay <wei.lin.guay@oracle.com>
Tested-by: Dib Chatterjee <dib.chatterjee@oracle.com>
(cherry picked from commit d7f00e2a0d30b0f14a763d96e6c8ae2ddb40a281
repo https://linux-git.us.oracle.com/UEK/linux-wguay-public)

Signed-off-by: Brian Maly <brian.maly@oracle.com>
Conflicts:
net/rds/rds.h
net/rds/ib_cm.c

Fixed checkpatch issues.

Signed-off-by: HÃ¥kon Bugge <haakon.bugge@oracle.com>
Reviewed-by: Shannon Nelson <shannon.nelson@oracle.com>
Reviewed-by: Zhu Yanjun <yanjun.zhu@oracle.com>
Signed-off-by: Brian Maly <brian.maly@oracle.com>
net/rds/ib_cm.c
net/rds/rdma_transport.c
net/rds/rds.h
net/rds/threads.c