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