IB/core: Depend on IPv6 stack to resolve link local address for RoCEv2
authorParav Pandit <parav@mellanox.com>
Tue, 14 Nov 2017 12:51:50 +0000 (14:51 +0200)
committerJason Gunthorpe <jgg@mellanox.com>
Mon, 18 Dec 2017 20:49:43 +0000 (13:49 -0700)
commit56d0a7d9a0f045ee27a001762deac28c7d28e2e4
tree6f07c3e31ca697cb82ca17c22738f4abb524a0cc
parent1060f86534147c2830db4bbc9dd849d1892a611b
IB/core: Depend on IPv6 stack to resolve link local address for RoCEv2

RoCEv1 does not use the IPv6 stack to resolve the link local DGID since it
uses GID address. It forms the DMAC directly from the DGID.

The code became confused and also tried to use this bypass for RoCEv2
packets, however RoCEv2 always uses a IP address in the GID and must
always use ARP or neighbor discovery to get the DMAC address.

Now that rdma_addr_find_l2_eth_by_grh() supports resolving link local
address to find destination mac address, lets make use of it.
This aligns it to how the rest of the IPv6 stack resolves link local
destination IPv6 address.

Signed-off-by: Parav Pandit <parav@mellanox.com>
Reviewed-by: Eli Cohen <eli@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/core/verbs.c