Lines Matching defs:ia
455 assign_ra_entry(struct rr_prefix *rpp, int iilen, struct in6_ifaddr *ia)
464 IFA_LOCK(&ia->ia_ifa);
466 (caddr_t)IA6_IN6(ia), sizeof(*IA6_IN6(ia)) << 3,
468 /* link to ia, and put into list */
469 rap->ra_addr = ia;
472 ia->ia6_ifpr = rp2ifpr(rpp);
474 IFA_UNLOCK(&ia->ia_ifa);
487 in6_prefix_add_llifid(__unused int iilen, struct in6_ifaddr *ia)
497 IFA_LOCK(&ia->ia_ifa);
499 (caddr_t)IA6_IN6(ia), sizeof(*IA6_IN6(ia)) << 3,
501 IFA_UNLOCK(&ia->ia_ifa);
511 if (rpp->rp_ifp != ia->ia_ifp)
527 in6_prefix_add_ifid(int iilen, struct in6_ifaddr *ia)
535 IFA_LOCK_SPIN(&ia->ia_ifa);
536 addr = *IA6_IN6(ia);
537 plen = (sizeof(*IA6_IN6(ia)) << 3) - iilen;
538 IFA_UNLOCK(&ia->ia_ifa);
541 return(in6_prefix_add_llifid(iilen, ia));
542 ifpr = in6_prefixwithifp(ia->ia_ifp, plen, &addr);
549 /* allocate a prefix for ia, with default properties */
554 rp.rp_ifp = ifp = ia->ia_ifp;
588 ifpr = in6_prefixwithifp(ia->ia_ifp, pplen, &addr);
595 rap->ra_addr = ia;
597 } else if (rap->ra_addr != ia) {
600 " already has another ia %p(%s) on its ifid list\n",
605 IFA_LOCK_SPIN(&ia->ia_ifa);
606 ia->ia6_ifpr = ifpr;
607 IFA_UNLOCK(&ia->ia_ifa);
610 error = assign_ra_entry(ifpr2rp(ifpr), iilen, ia);
612 IFA_LOCK_SPIN(&ia->ia_ifa);
613 ia->ia6_ifpr = ifpr;
614 IFA_UNLOCK(&ia->ia_ifa);
622 in6_prefix_remove_ifid(__unused int iilen, struct in6_ifaddr *ia)
628 IFA_LOCK_SPIN(&ia->ia_ifa);
629 if ((ifpr = ia->ia6_ifpr) == NULL) {
630 IFA_UNLOCK(&ia->ia_ifa);
633 addr = *IA6_IN6(ia);
634 IFA_UNLOCK(&ia->ia_ifa);