aboutsummaryrefslogtreecommitdiff
path: root/sys/ofed/include
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2017-11-07 08:39:14 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2017-11-07 08:39:14 +0000
commitc2c014f24c10f90d85126ac5fbd4d8524de32b1c (patch)
tree75716d0e44f388e8e9162b62933021bc156d9db8 /sys/ofed/include
parent4051f0c8edfe20742ecc540dc7961c33d37d1465 (diff)
parentd61b3d7a720f36fdff69749c8096546a3ba8aba4 (diff)
downloadsrc-c2c014f24c10f90d85126ac5fbd4d8524de32b1c.tar.gz
src-c2c014f24c10f90d85126ac5fbd4d8524de32b1c.zip
Merge ^/head r323559 through r325504.
Notes
Notes: svn path=/projects/bsd_rdma_4_9/; revision=325505
Diffstat (limited to 'sys/ofed/include')
-rw-r--r--sys/ofed/include/rdma/ib_addr.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/ofed/include/rdma/ib_addr.h b/sys/ofed/include/rdma/ib_addr.h
index 1dbe844cc8d0..2c27977eb295 100644
--- a/sys/ofed/include/rdma/ib_addr.h
+++ b/sys/ofed/include/rdma/ib_addr.h
@@ -177,6 +177,12 @@ static inline int rdma_ip2gid(const struct sockaddr *addr, union ib_gid *gid)
break;
case AF_INET6:
memcpy(gid->raw, &((const struct sockaddr_in6 *)addr)->sin6_addr, 16);
+ /* make sure scope ID gets zeroed inside GID */
+ if (IN6_IS_SCOPE_LINKLOCAL((struct in6_addr *)gid->raw) ||
+ IN6_IS_ADDR_MC_INTFACELOCAL((struct in6_addr *)gid->raw)) {
+ gid->raw[2] = 0;
+ gid->raw[3] = 0;
+ }
break;
default:
return -EINVAL;