Do not add RoCEv2 default GID in ibcore when IPv6 is disabled to honor the

networking stack's IPv6 disabled setting. Else the offload HCA can start using
IPv6 packets for QPs.

MFC after:	1 week
Sponsored by:	Mellanox Technologies
This commit is contained in:
Hans Petter Selasky 2018-03-05 11:52:39 +00:00
parent 09938b2185
commit be5c019762
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=330491

View File

@ -42,6 +42,7 @@
#include <linux/slab.h>
#include <linux/workqueue.h>
#include <linux/netdevice.h>
#include <linux/in6.h>
#include <rdma/ib_cache.h>
@ -703,6 +704,16 @@ void ib_cache_gid_set_default_gid(struct ib_device *ib_dev, u8 port,
memset(&gid_attr, 0, sizeof(gid_attr));
gid_attr.ndev = ndev;
/* Default GID is created using unique GUID and local subnet prefix,
* as described in section 4.1.1 and 3.5.10 in IB spec 1.3.
* Therefore don't create RoCEv2 default GID based on it that
* resembles as IPv6 GID based on link local address when IPv6 is
* disabled in kernel.
*/
#ifndef INET6
gid_type_mask &= ~BIT(IB_GID_TYPE_ROCE_UDP_ENCAP);
#endif
for (gid_type = 0; gid_type < IB_GID_TYPE_SIZE; ++gid_type) {
int ix;
union ib_gid current_gid;