Lines Matching refs:ifra
270 struct in6_aliasreq *ifra = (struct in6_aliasreq *)data; in in6_control_ioctl() local
280 ifra->ifra_vhid = 0; in in6_control_ioctl()
385 sa6 = &ifra->ifra_addr; in in6_control_ioctl()
467 if (ifra->ifra_addr.sin6_family != AF_INET6 || in in6_control_ioctl()
468 ifra->ifra_addr.sin6_len != sizeof(struct sockaddr_in6)) { in in6_control_ioctl()
589 error = in6_addifaddr(ifp, ifra, ia); in in6_control_ioctl()
674 in6_update_ifa_join_mc(struct ifnet *ifp, struct in6_aliasreq *ifra, in in6_update_ifa_join_mc() argument
686 &ifra->ifra_addr.sin6_addr)) != 0) in in6_update_ifa_join_mc()
787 in6_update_ifa(struct ifnet *ifp, struct in6_aliasreq *ifra, in in6_update_ifa() argument
792 if ((error = in6_validate_ifra(ifp, ifra, ia, flags)) != 0) in in6_update_ifa()
797 if ((ia = in6_alloc_ifa(ifp, ifra, flags)) == NULL) in in6_update_ifa()
801 error = in6_update_ifa_internal(ifp, ifra, ia, hostIsNew, flags); in in6_update_ifa()
811 error = in6_broadcast_ifa(ifp, ifra, ia, flags); in in6_update_ifa()
820 in6_prepare_ifra(struct in6_aliasreq *ifra, const struct in6_addr *addr, in in6_prepare_ifra() argument
824 memset(ifra, 0, sizeof(struct in6_aliasreq)); in in6_prepare_ifra()
826 ifra->ifra_addr.sin6_family = AF_INET6; in in6_prepare_ifra()
827 ifra->ifra_addr.sin6_len = sizeof(struct sockaddr_in6); in in6_prepare_ifra()
829 ifra->ifra_addr.sin6_addr = *addr; in in6_prepare_ifra()
831 ifra->ifra_prefixmask.sin6_family = AF_INET6; in in6_prepare_ifra()
832 ifra->ifra_prefixmask.sin6_len = sizeof(struct sockaddr_in6); in in6_prepare_ifra()
834 ifra->ifra_prefixmask.sin6_addr = *mask; in in6_prepare_ifra()
838 in6_validate_ifra(struct ifnet *ifp, struct in6_aliasreq *ifra, in in6_validate_ifra() argument
847 if (ifp == NULL || ifra == NULL) /* this maybe redundant */ in in6_validate_ifra()
855 ifra->ifra_dstaddr.sin6_family != AF_INET6 && in in6_validate_ifra()
856 ifra->ifra_dstaddr.sin6_family != AF_UNSPEC) in in6_validate_ifra()
862 if (ifra->ifra_addr.sin6_len != sizeof(struct sockaddr_in6) || in in6_validate_ifra()
863 ifra->ifra_addr.sin6_family != AF_INET6) in in6_validate_ifra()
870 if (ifra->ifra_prefixmask.sin6_len > sizeof(struct sockaddr_in6)) in in6_validate_ifra()
878 if (ia == NULL && ifra->ifra_prefixmask.sin6_len == 0) in in6_validate_ifra()
880 if (ifra->ifra_prefixmask.sin6_len != 0) { in in6_validate_ifra()
881 plen = in6_mask2len(&ifra->ifra_prefixmask.sin6_addr, in in6_validate_ifra()
882 (u_char *)&ifra->ifra_prefixmask + in in6_validate_ifra()
883 ifra->ifra_prefixmask.sin6_len); in in6_validate_ifra()
898 dst6 = ifra->ifra_dstaddr; in in6_validate_ifra()
919 ifra->ifra_dstaddr = dst6; in in6_validate_ifra()
926 if (ifra->ifra_dstaddr.sin6_family == AF_INET6) { in in6_validate_ifra()
940 lt = &ifra->ifra_lifetime; in in6_validate_ifra()
950 ip6_sprintf(ip6buf, &ifra->ifra_addr.sin6_addr))); in in6_validate_ifra()
957 if (ia != NULL && ifra->ifra_prefixmask.sin6_len != 0) { in in6_validate_ifra()
981 in6_alloc_ifa(struct ifnet *ifp, struct in6_aliasreq *ifra, int flags) in in6_alloc_ifa() argument
999 ia->ia_addr = ifra->ifra_addr; in in6_alloc_ifa()
1014 if (ifra->ifra_prefixmask.sin6_len != 0) { in in6_alloc_ifa()
1016 ia->ia_prefixmask.sin6_len = ifra->ifra_prefixmask.sin6_len; in in6_alloc_ifa()
1017 ia->ia_prefixmask.sin6_addr = ifra->ifra_prefixmask.sin6_addr; in in6_alloc_ifa()
1043 in6_update_ifa_internal(struct ifnet *ifp, struct in6_aliasreq *ifra, in in6_update_ifa_internal() argument
1056 ia->ia6_lifetime = ifra->ifra_lifetime; in in6_update_ifa_internal()
1072 if ((ifra->ifra_flags & IN6_IFF_DEPRECATED) != 0) { in in6_update_ifa_internal()
1080 ia->ia6_flags = ifra->ifra_flags; in in6_update_ifa_internal()
1098 error = in6_notify_ifa(ifp, ia, ifra, hostIsNew); in in6_update_ifa_internal()
1111 in6_broadcast_ifa(struct ifnet *ifp, struct in6_aliasreq *ifra, in in6_broadcast_ifa() argument
1127 error = in6_update_ifa_join_mc(ifp, ifra, ia, flags, &in6m_sol); in in6_broadcast_ifa()
1231 in6_addifaddr(struct ifnet *ifp, struct in6_aliasreq *ifra, struct in6_ifaddr *ia) in in6_addifaddr() argument
1249 if ((error = in6_update_ifa(ifp, ifra, ia, 0)) != 0) in in6_addifaddr()
1256 if ((ia = in6ifa_ifpwithaddr(ifp, &ifra->ifra_addr.sin6_addr)) == NULL) { in in6_addifaddr()
1264 if (ifra->ifra_vhid > 0) { in in6_addifaddr()
1267 ifra->ifra_vhid); in in6_addifaddr()
1289 pr0.ndpr_plen = in6_mask2len(&ifra->ifra_prefixmask.sin6_addr, in in6_addifaddr()
1295 pr0.ndpr_prefix = ifra->ifra_addr; in in6_addifaddr()
1298 &ifra->ifra_prefixmask.sin6_addr); in in6_addifaddr()
1309 ((ifra->ifra_flags & IN6_IFF_AUTOCONF) != 0); in in6_addifaddr()
1310 pr0.ndpr_vltime = ifra->ifra_lifetime.ia6t_vltime; in in6_addifaddr()
1311 pr0.ndpr_pltime = ifra->ifra_lifetime.ia6t_pltime; in in6_addifaddr()
1517 struct in6_aliasreq *ifra, int hostIsNew) in in6_notify_ifa() argument
1551 pdst = &ifra->ifra_dstaddr; in in6_notify_ifa()