Lines Matching defs:iph

237 	ipadm_handle_t	iph;
255 if ((iph = calloc(1, sizeof (struct ipadm_handle))) == NULL)
259 if (netcfg_active_profile(iph->ih_profile, NETCFG_PROFILE_LEN)
261 free(iph);
265 (void) strlcpy(iph->ih_profile, profile, NETCFG_PROFILE_LEN);
268 iph->ih_sock = -1;
269 iph->ih_sock6 = -1;
270 iph->ih_door_fd = -1;
271 iph->ih_flags = flags;
272 (void) pthread_mutex_init(&iph->ih_lock, NULL);
274 if ((owner != NULL) && (strlcpy(iph->ih_owner, owner,
275 sizeof (iph->ih_owner)) >= IPADM_OWNERSIZ)) {
276 ipadm_close(iph);
279 if ((iph->ih_sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0 ||
280 (iph->ih_sock6 = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) {
295 iph->ih_zoneid = zoneid;
303 if ((dlstatus = dladm_open(&iph->ih_dh, iph->ih_profile))
305 ipadm_close(iph);
310 iph->ih_dh = NULL;
313 if (setsockopt(iph->ih_sock6, SOL_SOCKET, SO_VRRP, &on,
314 sizeof (on)) < 0 || setsockopt(iph->ih_sock, SOL_SOCKET,
319 *handle = iph;
324 ipadm_close(iph);
332 ipadm_close(ipadm_handle_t iph)
334 if (iph == NULL)
336 if (iph->ih_sock != -1)
337 (void) close(iph->ih_sock);
338 if (iph->ih_sock6 != -1)
339 (void) close(iph->ih_sock6);
340 if (iph->ih_door_fd != -1)
341 (void) close(iph->ih_door_fd);
342 dladm_close(iph->ih_dh);
343 (void) pthread_mutex_destroy(&iph->ih_lock);
344 free(iph);
398 ipadm_is_ip(ipadm_handle_t iph, const char *ifname)
401 ipadm_is_ipmp(iph, ifname))
411 i_ipadm_get_index(ipadm_handle_t iph, const char *ifname, sa_family_t af,
419 sock = IPADM_SOCK(iph, af);
500 i_ipadm_set_flags(ipadm_handle_t iph, const char *lifname, sa_family_t af,
509 status = i_ipadm_get_flags(iph, lifname, af, &oflags);
513 sock = IPADM_SOCK(iph, af);
554 if (ipadm_is_under_ipmp(iph, ifname)) {
560 status = i_ipadm_dad_wait(iph, lifname, af, rtsock);
571 i_ipadm_get_flags(ipadm_handle_t iph, const char *lifname, sa_family_t af,
579 sock = IPADM_SOCK(iph, af);
592 i_ipadm_is_6to4(ipadm_handle_t iph, const char *ifname)
599 if (iph->ih_dh == NULL) {
600 assert(iph->ih_zoneid != GLOBAL_ZONEID);
603 dlstatus = dladm_name2info(iph->ih_dh, ifname, &linkid, NULL,
607 dlstatus = dladm_iptun_getparams(iph->ih_dh, &params,
618 i_ipadm_get_groupname(ipadm_handle_t iph, const char *ifname, char *grname,
624 if (ioctl(iph->ih_sock, SIOCGLIFGROUPNAME, (caddr_t)&lifr) < 0 &&
625 ioctl(iph->ih_sock6, SIOCGLIFGROUPNAME, (caddr_t)&lifr) < 0)
635 ipadm_is_under_ipmp(ipadm_handle_t iph, const char *ifname)
639 if (ipadm_is_ipmp(iph, ifname))
641 if (i_ipadm_get_groupname(iph, ifname, grname,
651 ipadm_is_ipmp(ipadm_handle_t iph, const char *ifname)
657 if (ioctl(iph->ih_sock, SIOCGLIFFLAGS, (caddr_t)&lifr) < 0 &&
658 ioctl(iph->ih_sock6, SIOCGLIFFLAGS, (caddr_t)&lifr) < 0)
669 ipadm_ipmp_pexists(ipadm_handle_t iph, const char *ifname)
675 if (i_ipadm_persist_if_info(iph, ifname, &ifinfo) == IPADM_SUCCESS) {
689 ipadm_if_enabled(ipadm_handle_t iph, const char *ifname, sa_family_t af)
692 int s4 = iph->ih_sock;
693 int s6 = iph->ih_sock6;
716 i_ipadm_is_legacy(ipadm_handle_t iph)
718 return ((iph->ih_flags & IH_LEGACY) != 0);
728 i_ipadm_get_active_af(ipadm_handle_t iph, const char *ifname)
730 if (ipadm_if_enabled(iph, ifname, AF_INET))
732 if (ipadm_if_enabled(iph, ifname, AF_INET6))
741 i_ipadm_init_ifprop(ipadm_handle_t iph, nvlist_t *nvl)
768 status = ipadm_set_ifprop(iph, ifname, pname, pval, proto,
786 i_ipadm_init_addrobj(ipadm_handle_t iph, nvlist_t *nvl)
820 status = i_ipadm_enable_static(iph, ifname, nvl, af);
823 status = i_ipadm_enable_dhcp(iph, ifname, nvl);
828 status = i_ipadm_enable_addrconf(iph, ifname, nvl);
850 if ((status = ipadm_set_addrprop(iph, name, pval, aobjname,
866 i_ipadm_enable_if(ipadm_handle_t iph, const char *ifname, nvlist_t *ifnvl,
878 boolean_t is_ngz = (iph->ih_zoneid != GLOBAL_ZONEID);
911 if ((status = i_ipadm_init_ifobj(iph, ifname,
934 status = i_ipadm_init_addrobj(iph, nvl);
949 status = i_ipadm_init_ifprop(iph, nvl);
957 status = i_ipadm_add_ipmp_bringup_underif(iph, ifname);
963 ret_status = i_ipadm_ngz_enable_if(iph, newifname);
973 i_ipadm_init_ifobj(ipadm_handle_t iph, const char *ifname, sa_family_t af,
988 status = i_ipadm_plumb_if(iph, (char *)ifname, af, class,
1009 if (!ipadm_if_enabled(iph, ipmpif, AF_UNSPEC))
1013 sock = IPADM_SOCK(iph, af);
1016 status = i_ipadm_add_ipmp(iph, lifr.lifr_groupname, ipmpif,
1074 i_ipadm_validate_ifname(ipadm_handle_t iph, const char *ifname)
1082 return (ifsp.ifsp_lun > 0 && (iph->ih_flags & IH_LEGACY));
1087 i_ipadm_validate_ifcreate(ipadm_handle_t iph, const char *ifname,
1091 boolean_t legacy = ((iph->ih_flags & IH_LEGACY) != 0);
1117 if (!i_ipadm_validate_ifname(iph, newifname))
1127 i_ipadm_ifname_is_ip(ipadm_handle_t iph, const char *ifname)
1132 return (ipadm_is_ip(iph, ifname));
1139 i_ipadm_get_pflags(ipadm_handle_t iph, const char *ifname)
1146 status = i_ipadm_persist_if_info(iph, ifname, &ifinfo);
1185 i_ipadm_common_door_call(ipadm_handle_t iph, void *arg, size_t asize,
1207 (void) pthread_mutex_lock(&iph->ih_lock);
1209 if (iph->ih_door_fd == -1) {
1210 if ((iph->ih_door_fd = open(IPMGMT_DOOR, O_RDONLY)) < 0) {
1212 (void) pthread_mutex_unlock(&iph->ih_lock);
1216 (void) pthread_mutex_unlock(&iph->ih_lock);
1218 if (door_call(iph->ih_door_fd, &darg) == -1) {
1225 (void) close(iph->ih_door_fd);
1226 iph->ih_door_fd = -1;
1274 ipadm_door_call(ipadm_handle_t iph, void *arg, size_t asize,
1277 return (i_ipadm_common_door_call(iph, arg, asize,
1288 ipadm_door_dyncall(ipadm_handle_t iph, void *arg, size_t asize,
1291 return (i_ipadm_common_door_call(iph, arg, asize, rbufp, rsize,
1328 ipadm_init_profile(ipadm_handle_t iph)
1334 (void) strlcpy(iarg.ia_profile, iph->ih_profile, NETCFG_PROFILE_LEN);
1335 return (ipadm_door_call(iph, &iarg, sizeof (iarg), &rval,
1340 ipadm_fini_profile(ipadm_handle_t iph)
1346 (void) strlcpy(farg.ia_profile, iph->ih_profile, NETCFG_PROFILE_LEN);
1347 return (ipadm_door_call(iph, &farg, sizeof (farg), &rval,