diff options
author | 2016-05-19 17:12:36 +0300 | |
---|---|---|
committer | 2016-05-24 14:44:04 -0400 | |
commit | ae43f8286730d1f2d241c34601df59f6d2286ac4 (patch) | |
tree | beb629a68629c69511355426f91dde307908f2cb /drivers/infiniband/core/device.c | |
parent | IB/core: Register SA ibnl client during ib_core initialization (diff) | |
download | linux-ae43f8286730d1f2d241c34601df59f6d2286ac4.tar.gz linux-ae43f8286730d1f2d241c34601df59f6d2286ac4.tar.bz2 linux-ae43f8286730d1f2d241c34601df59f6d2286ac4.zip |
IB/core: Add IP to GID netlink offload
There is an assumption that rdmacm is used only between nodes
in the same IB subnet, this why ARP resolution can be used to turn
IP to GID in rdmacm.
When dealing with IB communication between subnets this assumption
is no longer valid. ARP resolution will get us the next hop device
address and not the peer node's device address.
To solve this issue, we will check user space if it can provide the
GID of the peer node, and fail if not.
We add a sequence number to identify each request and fill in the GID
upon answer from userspace.
Signed-off-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/core/device.c')
-rw-r--r-- | drivers/infiniband/core/device.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c index 8b4366b2e358..5516fb070344 100644 --- a/drivers/infiniband/core/device.c +++ b/drivers/infiniband/core/device.c @@ -962,6 +962,9 @@ static struct ibnl_client_cbs ibnl_ls_cb_table[] = { [RDMA_NL_LS_OP_SET_TIMEOUT] = { .dump = ib_nl_handle_set_timeout, .module = THIS_MODULE }, + [RDMA_NL_LS_OP_IP_RESOLVE] = { + .dump = ib_nl_handle_ip_res_resp, + .module = THIS_MODULE }, }; static int ib_add_ibnl_clients(void) |