svn commit: r330491 - head/sys/ofed/drivers/infiniband/core
Hans Petter Selasky
hselasky at FreeBSD.org
Mon Mar 5 11:52:40 UTC 2018
Author: hselasky
Date: Mon Mar 5 11:52:39 2018
New Revision: 330491
URL: https://svnweb.freebsd.org/changeset/base/330491
Log:
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
Modified:
head/sys/ofed/drivers/infiniband/core/ib_cache.c
Modified: head/sys/ofed/drivers/infiniband/core/ib_cache.c
==============================================================================
--- head/sys/ofed/drivers/infiniband/core/ib_cache.c Mon Mar 5 11:49:45 2018 (r330490)
+++ head/sys/ofed/drivers/infiniband/core/ib_cache.c Mon Mar 5 11:52:39 2018 (r330491)
@@ -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>
@@ -702,6 +703,16 @@ void ib_cache_gid_set_default_gid(struct ib_device *ib
make_default_gid(ndev, &gid);
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;
More information about the svn-src-head
mailing list