Lines Matching refs:iph
182 ipadm_handle_t iph; in ipadm_open() local
195 if ((iph = calloc(1, sizeof (struct ipadm_handle))) == NULL) in ipadm_open()
197 iph->iph_sock = -1; in ipadm_open()
198 iph->iph_sock6 = -1; in ipadm_open()
199 iph->iph_door_fd = -1; in ipadm_open()
200 iph->iph_rtsock = -1; in ipadm_open()
201 iph->iph_flags = flags; in ipadm_open()
202 (void) pthread_mutex_init(&iph->iph_lock, NULL); in ipadm_open()
204 if ((iph->iph_sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0 || in ipadm_open()
205 (iph->iph_sock6 = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) { in ipadm_open()
220 iph->iph_zoneid = zoneid; in ipadm_open()
228 if (dladm_open(&iph->iph_dlh) != DLADM_STATUS_OK) { in ipadm_open()
229 ipadm_close(iph); in ipadm_open()
233 iph->iph_rtsock = socket(PF_ROUTE, SOCK_RAW, 0); in ipadm_open()
242 iph->iph_dlh = NULL; in ipadm_open()
245 if (setsockopt(iph->iph_sock6, SOL_SOCKET, SO_VRRP, &on, in ipadm_open()
246 sizeof (on)) < 0 || setsockopt(iph->iph_sock, SOL_SOCKET, in ipadm_open()
251 *handle = iph; in ipadm_open()
256 ipadm_close(iph); in ipadm_open()
264 ipadm_close(ipadm_handle_t iph) in ipadm_close() argument
266 if (iph == NULL) in ipadm_close()
268 if (iph->iph_sock != -1) in ipadm_close()
269 (void) close(iph->iph_sock); in ipadm_close()
270 if (iph->iph_sock6 != -1) in ipadm_close()
271 (void) close(iph->iph_sock6); in ipadm_close()
272 if (iph->iph_rtsock != -1) in ipadm_close()
273 (void) close(iph->iph_rtsock); in ipadm_close()
274 if (iph->iph_door_fd != -1) in ipadm_close()
275 (void) close(iph->iph_door_fd); in ipadm_close()
276 dladm_close(iph->iph_dlh); in ipadm_close()
277 (void) pthread_mutex_destroy(&iph->iph_lock); in ipadm_close()
278 free(iph); in ipadm_close()
304 i_ipadm_get_index(ipadm_handle_t iph, const char *ifname, sa_family_t af, in i_ipadm_get_index() argument
313 sock = iph->iph_sock; in i_ipadm_get_index()
315 sock = iph->iph_sock6; in i_ipadm_get_index()
396 i_ipadm_set_flags(ipadm_handle_t iph, const char *lifname, sa_family_t af, in i_ipadm_set_flags() argument
405 ret = i_ipadm_get_flags(iph, lifname, af, &oflags); in i_ipadm_set_flags()
409 sock = (af == AF_INET ? iph->iph_sock : iph->iph_sock6); in i_ipadm_set_flags()
434 ret = i_ipadm_dad_wait(iph, lifname, af, rtsock); in i_ipadm_set_flags()
445 i_ipadm_get_flags(ipadm_handle_t iph, const char *lifname, sa_family_t af, in i_ipadm_get_flags() argument
454 sock = iph->iph_sock; in i_ipadm_get_flags()
456 sock = iph->iph_sock6; in i_ipadm_get_flags()
504 i_ipadm_is_6to4(ipadm_handle_t iph, char *ifname) in i_ipadm_is_6to4() argument
511 if (iph->iph_dlh == NULL) { in i_ipadm_is_6to4()
512 assert(iph->iph_zoneid != GLOBAL_ZONEID); in i_ipadm_is_6to4()
515 dlstatus = dladm_name2info(iph->iph_dlh, ifname, &linkid, NULL, in i_ipadm_is_6to4()
519 dlstatus = dladm_iptun_getparams(iph->iph_dlh, ¶ms, in i_ipadm_is_6to4()
533 i_ipadm_is_under_ipmp(ipadm_handle_t iph, const char *ifname) in i_ipadm_is_under_ipmp() argument
538 if (ioctl(iph->iph_sock, SIOCGLIFGROUPNAME, (caddr_t)&lifr) < 0) { in i_ipadm_is_under_ipmp()
539 if (ioctl(iph->iph_sock6, SIOCGLIFGROUPNAME, in i_ipadm_is_under_ipmp()
551 i_ipadm_is_ipmp(ipadm_handle_t iph, const char *ifname) in i_ipadm_is_ipmp() argument
555 if (i_ipadm_get_flags(iph, ifname, AF_INET, &flags) != IPADM_SUCCESS && in i_ipadm_is_ipmp()
556 i_ipadm_get_flags(iph, ifname, AF_INET6, &flags) != IPADM_SUCCESS) in i_ipadm_is_ipmp()
567 ipadm_if_enabled(ipadm_handle_t iph, const char *ifname, sa_family_t af) in ipadm_if_enabled() argument
570 int s4 = iph->iph_sock; in ipadm_if_enabled()
571 int s6 = iph->iph_sock6; in ipadm_if_enabled()
597 i_ipadm_init_ifprop(ipadm_handle_t iph, nvlist_t *nvl) in i_ipadm_init_ifprop() argument
624 return (ipadm_set_ifprop(iph, ifname, pname, pval, proto, in i_ipadm_init_ifprop()
633 i_ipadm_init_addrobj(ipadm_handle_t iph, nvlist_t *nvl) in i_ipadm_init_addrobj() argument
665 status = i_ipadm_enable_static(iph, ifname, nvl, af); in i_ipadm_init_addrobj()
668 status = i_ipadm_enable_dhcp(iph, ifname, nvl); in i_ipadm_init_addrobj()
673 status = i_ipadm_enable_addrconf(iph, ifname, nvl); in i_ipadm_init_addrobj()
676 status = ipadm_set_addrprop(iph, name, pval, aobjname, in i_ipadm_init_addrobj()
691 i_ipadm_init_ifobj(ipadm_handle_t iph, const char *ifname, nvlist_t *ifnvl) in i_ipadm_init_ifobj() argument
701 boolean_t is_ngz = (iph->iph_zoneid != GLOBAL_ZONEID); in i_ipadm_init_ifobj()
715 status = i_ipadm_plumb_if(iph, newifname, atoi(afstr), in i_ipadm_init_ifobj()
741 status = i_ipadm_init_addrobj(iph, nvl); in i_ipadm_init_ifobj()
754 status = i_ipadm_init_ifprop(iph, nvl); in i_ipadm_init_ifobj()
761 ret_status = ipadm_init_net_from_gz(iph, newifname, NULL); in i_ipadm_init_ifobj()
770 i_ipadm_init_ifs(ipadm_handle_t iph, const char *ifs, nvlist_t **allifs) in i_ipadm_init_ifs() argument
806 if ((err = ipadm_door_call(iph, iargp, bufsize, (void **)&rvalp, in i_ipadm_init_ifs()
835 i_ipadm_validate_ifname(ipadm_handle_t iph, const char *ifname) in i_ipadm_validate_ifname() argument
843 return (ifsp.ifsp_lun > 0 && (iph->iph_flags & IPH_LEGACY)); in i_ipadm_validate_ifname()
877 ipadm_door_call(ipadm_handle_t iph, void *arg, size_t asize, void **rbufp, in ipadm_door_call() argument
899 (void) pthread_mutex_lock(&iph->iph_lock); in ipadm_door_call()
901 if (iph->iph_door_fd == -1) { in ipadm_door_call()
902 if ((iph->iph_door_fd = open(IPMGMT_DOOR, O_RDONLY)) < 0) { in ipadm_door_call()
904 (void) pthread_mutex_unlock(&iph->iph_lock); in ipadm_door_call()
908 (void) pthread_mutex_unlock(&iph->iph_lock); in ipadm_door_call()
910 if (door_call(iph->iph_door_fd, &darg) == -1) { in ipadm_door_call()
917 (void) close(iph->iph_door_fd); in ipadm_door_call()
918 iph->iph_door_fd = -1; in ipadm_door_call()