Home | History | Annotate | Download | only in netinet6

Lines Matching defs:in6

73 #define EUI64_TO_IFID(in6)	do {(in6)->s6_addr[8] ^= EUI64_UBIT; } while (/*CONSTCOND*/ 0)
74 #define EUI64_GROUP(in6) ((in6)->s6_addr[8] & EUI64_GBIT)
75 #define EUI64_INDIVIDUAL(in6) (!EUI64_GROUP(in6))
76 #define EUI64_LOCAL(in6) ((in6)->s6_addr[8] & EUI64_UBIT)
77 #define EUI64_UNIVERSAL(in6) (!EUI64_LOCAL(in6))
79 #define IFID_LOCAL(in6) (!EUI64_LOCAL(in6))
80 #define IFID_UNIVERSAL(in6) (!EUI64_UNIVERSAL(in6))
90 * in6 - upper 64bits are preserved
93 get_hostid_ifid(struct ifnet *ifp, struct in6_addr *in6)
105 off = sizeof(*in6) - len;
106 memcpy(&in6->s6_addr[off], &hostid, len);
109 if (memcmp(&in6->s6_addr[8], allzero, sizeof(allzero)))
111 if (memcmp(&in6->s6_addr[8], allone, sizeof(allone)))
115 in6->s6_addr[8] &= ~EUI64_GBIT; /* g bit to "individual" */
116 in6->s6_addr[8] |= EUI64_UBIT; /* u bit to "local" */
119 EUI64_TO_IFID(in6);
133 get_rand_ifid(struct in6_addr *in6) /* upper 64bits are preserved */
151 memcpy(&in6->s6_addr[8], digest, 8);
154 in6->s6_addr[8] &= ~EUI64_GBIT; /* g bit to "individual" */
155 in6->s6_addr[8] |= EUI64_UBIT; /* u bit to "local" */
158 EUI64_TO_IFID(in6);
166 * in6 - upper 64bits are preserved
169 in6_get_hw_ifid(struct ifnet *ifp, struct in6_addr *in6)
235 memcpy(&in6->s6_addr[8], addr, 8);
237 in6->s6_addr[8] = addr[0];
238 in6->s6_addr[9] = addr[1];
239 in6->s6_addr[10] = addr[2];
240 in6->s6_addr[11] = 0xff;
241 in6->s6_addr[12] = 0xfe;
242 in6->s6_addr[13] = addr[3];
243 in6->s6_addr[14] = addr[4];
244 in6->s6_addr[15] = addr[5];
254 memset(&in6->s6_addr[8], 0, 8);
255 in6->s6_addr[15] = addr[0];
260 in6->s6_addr[8] &= ~EUI64_GBIT; /* g bit to "individual" */
261 in6->s6_addr[8] |= EUI64_UBIT; /* u bit to "local" */
282 if (EUI64_GROUP(in6))
286 EUI64_TO_IFID(in6);
292 if ((in6->s6_addr[8] & ~(EUI64_GBIT | EUI64_UBIT)) == 0x00 &&
293 memcmp(&in6->s6_addr[9], allzero, 7) == 0) {
309 struct in6_addr *in6)
315 if (in6_get_hw_ifid(ifp0, in6) == 0) {
322 if (altifp && in6_get_hw_ifid(altifp, in6) == 0) {
333 if (in6_get_hw_ifid(ifp, in6) != 0)
340 if (IFID_UNIVERSAL(in6)) {
352 if (get_hostid_ifid(ifp, in6) == 0) {
361 if (get_rand_ifid(in6) == 0) {
373 if_name(ifp0), in6->s6_addr[8], in6->s6_addr[9], in6->s6_addr[10],
374 in6->s6_addr[11], in6->s6_addr[12], in6->s6_addr[13],
375 in6->s6_addr[14], in6->s6_addr[15]);
559 struct in6_addr in6;
626 in6 = in6addr_loopback;
628 if (in6ifa_ifpwithaddr(ifp, &in6) == NULL) {