Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 7 Mar 2018 13:25:41 +0000 (UTC)
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r330583 - head/sys/ofed/drivers/infiniband/core
Message-ID:  <201803071325.w27DPfR8012667@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: hselasky
Date: Wed Mar  7 13:25:40 2018
New Revision: 330583
URL: https://svnweb.freebsd.org/changeset/base/330583

Log:
  Embed the IPv6 scope ID before calling rtalloc1() in ibcore.
  Else rtalloc1() will resolve to the loopback interface.
  
  MFC after:	1 week
  Sponsored by:	Mellanox Technologies

Modified:
  head/sys/ofed/drivers/infiniband/core/ib_addr.c

Modified: head/sys/ofed/drivers/infiniband/core/ib_addr.c
==============================================================================
--- head/sys/ofed/drivers/infiniband/core/ib_addr.c	Wed Mar  7 13:16:03 2018	(r330582)
+++ head/sys/ofed/drivers/infiniband/core/ib_addr.c	Wed Mar  7 13:25:40 2018	(r330583)
@@ -424,6 +424,13 @@ static int addr6_resolve(struct sockaddr_in6 *src_in,
 	 */
 	dst_tmp.sin6_len = sizeof(dst_tmp);
 
+	/*
+	 * Make sure the scope ID gets embedded, else rtalloc1() will
+	 * resolve to the loopback interface.
+	 */
+	dst_tmp.sin6_scope_id = addr->bound_dev_if;
+	sa6_embedscope(&dst_tmp, 0);
+
 	/* Step 1 - lookup destination route if any */
 	switch (type) {
 	case 0:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201803071325.w27DPfR8012667>