Lines Matching full:in6
98 #define EUI64_TO_IFID(in6) do {(in6)->s6_addr[8] ^= EUI64_UBIT; } while (0) argument
99 #define EUI64_GROUP(in6) ((in6)->s6_addr[8] & EUI64_GBIT) argument
100 #define EUI64_INDIVIDUAL(in6) (!EUI64_GROUP(in6)) argument
101 #define EUI64_LOCAL(in6) ((in6)->s6_addr[8] & EUI64_UBIT) argument
102 #define EUI64_UNIVERSAL(in6) (!EUI64_LOCAL(in6)) argument
104 #define IFID_LOCAL(in6) (!EUI64_LOCAL(in6)) argument
105 #define IFID_UNIVERSAL(in6) (!EUI64_UNIVERSAL(in6)) argument
117 * in6 - upper 64bits are preserved
120 get_rand_ifid(struct ifnet *ifp, struct in6_addr *in6) in get_rand_ifid() argument
146 bcopy(digest, &in6->s6_addr[8], 8); in get_rand_ifid()
149 in6->s6_addr[8] &= ~EUI64_GBIT; /* g bit to "individual" */ in get_rand_ifid()
150 in6->s6_addr[8] |= EUI64_UBIT; /* u bit to "local" */ in get_rand_ifid()
153 EUI64_TO_IFID(in6); in get_rand_ifid()
258 * in6 - upper 64bits are preserved
261 in6_get_hw_ifid(struct ifnet *ifp, struct in6_addr *in6) in in6_get_hw_ifid() argument
273 memcpy(&in6->s6_addr[8], hwaddr, 8); in in6_get_hw_ifid()
275 in6->s6_addr[8] = hwaddr[0]; in in6_get_hw_ifid()
276 in6->s6_addr[9] = hwaddr[1]; in in6_get_hw_ifid()
277 in6->s6_addr[10] = hwaddr[2]; in in6_get_hw_ifid()
278 in6->s6_addr[11] = 0xff; in in6_get_hw_ifid()
279 in6->s6_addr[12] = 0xfe; in in6_get_hw_ifid()
280 in6->s6_addr[13] = hwaddr[3]; in in6_get_hw_ifid()
281 in6->s6_addr[14] = hwaddr[4]; in in6_get_hw_ifid()
282 in6->s6_addr[15] = hwaddr[5]; in in6_get_hw_ifid()
286 if (EUI64_GROUP(in6)) in in6_get_hw_ifid()
290 EUI64_TO_IFID(in6); in in6_get_hw_ifid()
296 if ((in6->s6_addr[8] & ~(EUI64_GBIT | EUI64_UBIT)) == 0x00 && in in6_get_hw_ifid()
297 bcmp(&in6->s6_addr[9], allzero, 7) == 0) in in6_get_hw_ifid()
338 * in6 - upper 64bits are preserved
341 in6_get_stableifid(struct ifnet *ifp, struct in6_addr *in6, int prefixlen) in in6_get_stableifid() argument
426 SHA256_Update(&ctxt, in6->s6_addr, prefixlen / 8); in in6_get_stableifid()
441 memcpy(&in6->s6_addr[8], digest, 8); in in6_get_stableifid()
459 struct in6_addr *in6) in in6_get_ifid() argument
466 if ((ND_IFINFO(ifp0)->flags & ND6_IFF_STABLEADDR) && in6_get_stableifid(ifp0, in6, 64) == 0) { in in6_get_ifid()
473 if (in6_get_hw_ifid(ifp0, in6) == 0) { in in6_get_ifid()
480 if (altifp && in6_get_hw_ifid(altifp, in6) == 0) { in in6_get_ifid()
490 if (in6_get_hw_ifid(ifp, in6) != 0) in in6_get_ifid()
497 if (IFID_UNIVERSAL(in6)) { in in6_get_ifid()
506 if (get_rand_ifid(ifp, in6) == 0) { in in6_get_ifid()
518 if_name(ifp0), in6->s6_addr[8], in6->s6_addr[9], in6->s6_addr[10], in in6_get_ifid()
519 in6->s6_addr[11], in6->s6_addr[12], in6->s6_addr[13], in in6_get_ifid()
520 in6->s6_addr[14], in6->s6_addr[15])); in in6_get_ifid()
689 struct in6_addr *in6, int oldmcprefix) in in6_nigroup0() argument
741 bzero(in6, sizeof(*in6)); in in6_nigroup0()
742 in6->s6_addr16[0] = IPV6_ADDR_INT16_MLL; in in6_nigroup0()
743 in6->s6_addr8[11] = 2; in in6_nigroup0()
745 in6->s6_addr8[12] = 0xff; in in6_nigroup0()
747 bcopy(digest, &in6->s6_addr8[13], 3); in in6_nigroup0()
750 bcopy(digest, &in6->s6_addr32[3], sizeof(in6->s6_addr32[3])); in in6_nigroup0()
752 if (in6_setscope(in6, ifp, NULL)) in in6_nigroup0()
760 struct in6_addr *in6) in in6_nigroup() argument
763 return (in6_nigroup0(ifp, name, namelen, in6, 0)); in in6_nigroup()
768 struct in6_addr *in6) in in6_nigroup_oldmcprefix() argument
771 return (in6_nigroup0(ifp, name, namelen, in6, 1)); in in6_nigroup_oldmcprefix()