Lines Matching refs:ipst

387 	ip_stack_t	*ipst = ill->ill_ipst;
423 update_conn_ill(ill, ipst);
450 ipcl_walk(conn_ixa_cleanup, (void *)B_TRUE, ipst);
454 dce_cleanup(ill->ill_phyint->phyint_ifindex, ipst);
460 rw_enter(&ipst->ips_ill_g_usesrc_lock, RW_WRITER);
470 rw_exit(&ipst->ips_ill_g_usesrc_lock);
495 ip_stack_t *ipst = ill->ill_ipst;
641 ire_increment_multicast_generation(ipst, ill->ill_isv6);
651 ip_stack_t *ipst = ill->ill_ipst;
660 ip_mib2_add_ip_stats(&ipst->ips_ip6_mib,
663 ip_mib2_add_ip_stats(&ipst->ips_ip_mib,
671 ip_mib2_add_icmp6_stats(&ipst->ips_icmp6_mib,
1198 ip_stack_t *ipst = ill->ill_ipst;
1209 ipcl_walk(conn_cleanup_ill, (caddr_t)ill, ipst);
2227 ill_taskq_dispatch(ip_stack_t *ipst)
2234 ipst->ips_netstack->netstack_stackid);
2235 CALLB_CPR_INIT(&cprinfo, &ipst->ips_capab_taskq_lock, callb_generic_cpr,
2237 mutex_enter(&ipst->ips_capab_taskq_lock);
2240 mp = ipst->ips_capab_taskq_head;
2242 ipst->ips_capab_taskq_head = mp->b_next;
2243 if (ipst->ips_capab_taskq_head == NULL)
2244 ipst->ips_capab_taskq_tail = NULL;
2245 mutex_exit(&ipst->ips_capab_taskq_lock);
2250 mutex_enter(&ipst->ips_capab_taskq_lock);
2251 mp = ipst->ips_capab_taskq_head;
2254 if (ipst->ips_capab_taskq_quit)
2257 cv_wait(&ipst->ips_capab_taskq_cv, &ipst->ips_capab_taskq_lock);
2258 CALLB_CPR_SAFE_END(&cprinfo, &ipst->ips_capab_taskq_lock);
2260 VERIFY(ipst->ips_capab_taskq_head == NULL);
2261 VERIFY(ipst->ips_capab_taskq_tail == NULL);
2350 ip_stack_t *ipst = ill->ill_ipst;
2363 mutex_enter(&ipst->ips_capab_taskq_lock);
2364 if (ipst->ips_capab_taskq_head == NULL) {
2365 ASSERT(ipst->ips_capab_taskq_tail == NULL);
2366 ipst->ips_capab_taskq_head = mp;
2368 ipst->ips_capab_taskq_tail->b_next = mp;
2370 ipst->ips_capab_taskq_tail = mp;
2372 cv_signal(&ipst->ips_capab_taskq_cv);
2373 mutex_exit(&ipst->ips_capab_taskq_lock);
2407 ip_stack_t *ipst = ill->ill_ipst;
2509 ill, ipst);
2532 ill, ipst);
2672 ip_stack_t *ipst = ill->ill_ipst;
2674 ASSERT(IAM_WRITER_ILL(ill) || RW_READ_HELD(&ipst->ips_ill_g_lock));
2700 ip_stack_t *ipst = ill->ill_ipst;
2702 ASSERT(IAM_WRITER_ILL(ill) || RW_READ_HELD(&ipst->ips_ill_g_lock));
2780 ip_stack_t *ipst)
2786 ASSERT(RW_LOCK_HELD(&ipst->ips_ill_g_lock));
2801 ifp = IP_VX_ILL_G_LIST(ctx->ctx_current_list, ipst);
2803 &IP_VX_ILL_G_LIST(ctx->ctx_current_list, ipst)) {
2833 ip_stack_t *ipst = lastill->ill_ipst;
2836 &IP_VX_ILL_G_LIST(ctx->ctx_current_list, ipst));
2847 (ill_if_t *)&IP_VX_ILL_G_LIST(ctx->ctx_current_list, ipst)) {
2850 ifp = IP_VX_ILL_G_LIST(ctx->ctx_current_list, ipst);
2902 ill_find_by_name(char *name, boolean_t isv6, ip_stack_t *ipst)
2927 ifp = IP_VX_ILL_G_LIST(list, ipst);
2929 while (ifp != (ill_if_t *)&IP_VX_ILL_G_LIST(list, ipst)) {
2943 if (ifp == (ill_if_t *)&IP_VX_ILL_G_LIST(list, ipst)) {
3011 ip_stack_t *ipst;
3016 ipst = ill->ill_ipst;
3017 rw_enter(&ipst->ips_ill_g_lock, RW_WRITER);
3068 rw_exit(&ipst->ips_ill_g_lock);
3077 avl_remove(&ipst->ips_phyint_g_list->phyint_list_avl_by_index,
3079 avl_remove(&ipst->ips_phyint_g_list->phyint_list_avl_by_name,
3082 rw_exit(&ipst->ips_ill_g_lock);
3199 ip_stack_t *ipst = ill->ill_ipst;
3201 ASSERT(RW_WRITE_HELD(&ipst->ips_ill_g_lock));
3210 ill_interface = IP_VX_ILL_G_LIST(index, ipst);
3214 while (ill_interface != (ill_if_t *)&IP_VX_ILL_G_LIST(index, ipst)) {
3225 if (ill_interface == (ill_if_t *)&IP_VX_ILL_G_LIST(index, ipst)) {
3247 ghead = ipst->ips_ill_g_heads[index];
3536 ip_stack_t *ipst;
3551 ipst = ns->netstack_ip;
3552 if (ipst == NULL) {
3556 kn[0].value.ui32 = ipst->ips_loopback_packets;
3557 kn[1].value.ui32 = ipst->ips_loopback_packets;
3566 phyint_exists(uint_t index, ip_stack_t *ipst)
3569 ASSERT(RW_LOCK_HELD(&ipst->ips_ill_g_lock));
3571 return (avl_find(&ipst->ips_phyint_g_list->phyint_list_avl_by_index,
3585 ip_assign_ifindex(uint_t *indexp, ip_stack_t *ipst)
3589 if (!ipst->ips_ill_index_wrap) {
3590 *indexp = ipst->ips_ill_index++;
3591 if (ipst->ips_ill_index > IF_INDEX_MAX) {
3597 ipst->ips_ill_index_wrap = B_TRUE;
3602 if (ipst->ips_ill_index > IF_INDEX_MAX)
3603 ipst->ips_ill_index = 1;
3611 if (!phyint_exists(ipst->ips_ill_index, ipst)) {
3613 *indexp = ipst->ips_ill_index;
3617 ipst->ips_ill_index++;
3618 if (ipst->ips_ill_index > IF_INDEX_MAX)
3619 ipst->ips_ill_index = 1;
3632 phyint_assign_ifindex(phyint_t *phyi, ip_stack_t *ipst)
3635 return (ip_assign_ifindex(&phyi->phyint_ifindex, ipst));
3685 boolean_t *did_alloc, ip_stack_t *ipst)
3696 rw_enter(&ipst->ips_ill_g_lock, RW_READER);
3697 ill = ill_find_by_name(name, isv6, ipst);
3698 rw_exit(&ipst->ips_ill_g_lock);
3709 rw_enter(&ipst->ips_ill_g_lock, RW_WRITER);
3710 ill = ill_find_by_name(name, isv6, ipst);
3712 rw_exit(&ipst->ips_ill_g_lock);
3723 ill->ill_ipst = ipst;
3724 netstack_hold(ipst->ips_netstack);
3807 if (ipst->ips_loopback_ksp == NULL) {
3809 ipst->ips_loopback_ksp = kstat_create_netstack("lo", 0,
3812 ipst->ips_netstack->netstack_stackid);
3813 if (ipst->ips_loopback_ksp != NULL) {
3814 ipst->ips_loopback_ksp->ks_update =
3816 kn = KSTAT_NAMED_PTR(ipst->ips_loopback_ksp);
3819 ipst->ips_loopback_ksp->ks_private =
3820 (void *)(uintptr_t)ipst->ips_netstack->
3822 kstat_install(ipst->ips_loopback_ksp);
3827 rw_exit(&ipst->ips_ill_g_lock);
3846 rw_exit(&ipst->ips_ill_g_lock);
3856 ip_stack_t *ipst;
3862 if ((ipst = ns->netstack_ip) == NULL) {
3868 ill = ill_lookup_on_ifindex(index, isv6, ipst);
3877 ill_lookup_on_ifindex(uint_t index, boolean_t isv6, ip_stack_t *ipst)
3886 rw_enter(&ipst->ips_ill_g_lock, RW_READER);
3887 phyi = avl_find(&ipst->ips_phyint_g_list->phyint_list_avl_by_index,
3896 rw_exit(&ipst->ips_ill_g_lock);
3902 rw_exit(&ipst->ips_ill_g_lock);
3914 ip_stack_t *ipst)
3921 ill = ill_lookup_on_ifindex_zoneid(ifindex, zoneid, isv6, ipst);
3937 ill_get_next_ifindex(uint_t index, boolean_t isv6, ip_stack_t *ipst)
3943 rw_enter(&ipst->ips_ill_g_lock, RW_READER);
3947 &ipst->ips_phyint_g_list->phyint_list_avl_by_index);
3950 &ipst->ips_phyint_g_list->phyint_list_avl_by_index,
3955 phyi = avl_walk(&ipst->ips_phyint_g_list->phyint_list_avl_by_index,
3977 rw_exit(&ipst->ips_ill_g_lock);
3992 ill_get_ifindex_by_name(char *name, ip_stack_t *ipst)
3998 rw_enter(&ipst->ips_ill_g_lock, RW_READER);
4000 if ((phyi = avl_find(&ipst->ips_phyint_g_list->phyint_list_avl_by_name,
4002 rw_exit(&ipst->ips_ill_g_lock);
4008 rw_exit(&ipst->ips_ill_g_lock);
4420 ipif_lookup_multicast(ip_stack_t *ipst, zoneid_t zoneid, boolean_t isv6)
4428 rw_enter(&ipst->ips_ill_g_lock, RW_READER);
4430 ill = ILL_START_WALK_V6(&ctx, ipst);
4432 ill = ILL_START_WALK_V4(&ctx, ipst);
4496 rw_exit(&ipst->ips_ill_g_lock);
4519 ill_lookup_multicast(ip_stack_t *ipst, zoneid_t zoneid, boolean_t isv6)
4524 ipif = ipif_lookup_multicast(ipst, zoneid, isv6);
4550 ill_lookup_group_v4(ipaddr_t group, zoneid_t zoneid, ip_stack_t *ipst,
4555 ill = ire_lookup_multi_ill_v4(group, zoneid, ipst, multirtp, setsrcp);
4559 return (ill_lookup_multicast(ipst, zoneid, B_FALSE));
4567 ipif_lookup_interface(ipaddr_t if_addr, ipaddr_t dst, ip_stack_t *ipst)
4579 rw_enter(&ipst->ips_ill_g_lock, RW_READER);
4580 ill = ILL_START_WALK_V4(&ctx, ipst);
4592 rw_exit(&ipst->ips_ill_g_lock);
4599 rw_exit(&ipst->ips_ill_g_lock);
4602 ipif = ipif_lookup_addr(if_addr, NULL, ALL_ZONES, ipst);
4612 zoneid_t zoneid, ip_stack_t *ipst)
4621 rw_enter(&ipst->ips_ill_g_lock, RW_READER);
4627 ill = ILL_START_WALK_V4(&ctx, ipst);
4652 rw_exit(&ipst->ips_ill_g_lock);
4662 rw_exit(&ipst->ips_ill_g_lock);
4678 ip_stack_t *ipst)
4681 zoneid, ipst));
4691 ip_stack_t *ipst)
4695 zoneid, ipst));
4704 ipif_lookup_addr_exact(ipaddr_t addr, ill_t *match_ill, ip_stack_t *ipst)
4708 ipst));
4721 ipif_lookup_addr_zoneid(ipaddr_t addr, ill_t *match_ill, ip_stack_t *ipst)
4729 rw_enter(&ipst->ips_ill_g_lock, RW_READER);
4735 ill = ILL_START_WALK_V4(&ctx, ipst);
4752 rw_exit(&ipst->ips_ill_g_lock);
4768 rw_exit(&ipst->ips_ill_g_lock);
5064 * The ipst argument is NULL if we shouldn't allocate.
5069 th_trace_gethash(ip_stack_t *ipst)
5073 if ((thh = tsd_get(ip_thread_data)) == NULL && ipst != NULL) {
5101 thh->thh_ipst = ipst;
5116 th_trace_ref(const void *obj, ip_stack_t *ipst)
5122 if ((mh = th_trace_gethash(ipst)) == NULL)
5408 boolean_t ioctl_msg, struct rtsa_s *sp, ip_stack_t *ipst, zoneid_t zoneid)
5451 ipif = ipif_lookup_addr(gw_addr, ill, ALL_ZONES, ipst);
5453 ipif = ipif_lookup_interface(gw_addr, dst_addr, ipst);
5472 NULL, ALL_ZONES, NULL, MATCH_IRE_TYPE, 0, ipst,
5492 ipst);
5629 IRE_INTERFACE, ill, ALL_ZONES, NULL, match_flags, 0, ipst,
5673 ipst);
5725 ALL_ZONES, NULL, match_flags, 0, ipst, NULL);
5751 if (ipst->ips_ip_strict_src_multihoming > 0)
5773 0, ipst, NULL);
5827 ipst);
5847 ip_type_v4(ire->ire_addr, ipst) == IRE_BROADCAST);
5899 ip_cgtp_bcast_add(ire, ipst);
5902 if (ipst->ips_ip_cgtp_filter_ops != NULL &&
5909 NULL, zoneid, ipst);
5911 res = ipst->ips_ip_cgtp_filter_ops->
5913 ipst->ips_netstack->netstack_stackid,
5950 ip_rts_rtmsg(RTM_OLDADD, ire, 0, ipst);
5975 ip_stack_t *ipst, zoneid_t zoneid)
6014 ipif = ipif_lookup_interface(gw_addr, dst_addr, ipst);
6027 match_flags, 0, ipst, NULL);
6033 match_flags, 0, ipst, NULL);
6065 ALL_ZONES, NULL, match_flags, 0, ipst, NULL);
6083 if (ipst->ips_ip_cgtp_filter_ops != NULL) {
6084 err = ipst->ips_ip_cgtp_filter_ops->cfo_del_dest_v4(
6085 ipst->ips_netstack->netstack_stackid,
6088 ip_cgtp_bcast_delete(ire, ipst);
6095 ip_rts_rtmsg(RTM_OLDDEL, ire, 0, ipst);
6116 ip_stack_t *ipst;
6119 ipst = CONNQ_TO_IPST(q);
6143 mask = ip_subnet_mask(dst_addr, &ipif, ipst);
6147 B_TRUE, NULL, ipst, ALL_ZONES);
6168 ip_stack_t *ipst;
6171 ipst = CONNQ_TO_IPST(q);
6195 mask = ip_subnet_mask(dst_addr, &ipif, ipst);
6200 ipst, ALL_ZONES);
6302 ip_stack_t *ipst = ipsq->ipsq_ipst;
6309 rw_enter(&ipst->ips_ill_g_lock,
6343 ASSERT(RW_WRITE_HELD(&ipst->ips_ill_g_lock));
6511 rw_exit(&ipst->ips_ill_g_lock);
6586 ip_stack_t *ipst = ill->ill_ipst;
6597 rw_enter(&ipst->ips_ill_g_lock, RW_READER);
6601 rw_exit(&ipst->ips_ill_g_lock);
6615 rw_exit(&ipst->ips_ill_g_lock);
6642 rw_exit(&ipst->ips_ill_g_lock);
6660 ip_stack_t *ipst = ill->ill_ipst;
6668 ASSERT(RW_LOCK_HELD(&ipst->ips_ill_g_lock));
6757 ip_stack_t *ipst;
6765 ipst = ill->ill_ipst;
6767 rw_enter(&ipst->ips_ill_g_lock, RW_READER);
6769 rw_exit(&ipst->ips_ill_g_lock);
6868 ill_mcast_timer_start(ip_stack_t *ipst)
6872 mutex_enter(&ipst->ips_igmp_timer_lock);
6873 next = ipst->ips_igmp_deferred_next;
6874 ipst->ips_igmp_deferred_next = INFINITY;
6875 mutex_exit(&ipst->ips_igmp_timer_lock);
6878 igmp_start_timers(next, ipst);
6880 mutex_enter(&ipst->ips_mld_timer_lock);
6881 next = ipst->ips_mld_deferred_next;
6882 ipst->ips_mld_deferred_next = INFINITY;
6883 mutex_exit(&ipst->ips_mld_timer_lock);
6886 mld_start_timers(next, ipst);
7056 ip_stack_t *ipst;
7063 ipst = ill->ill_ipst;
7073 ipst = connp->conn_netstack->netstack_ip;
7129 isv6, zoneid, q, mp, ip_process_ioctl, &err, ipst);
7169 ip_get_numifs(zoneid_t zoneid, ip_stack_t *ipst)
7176 rw_enter(&ipst->ips_ill_g_lock, RW_READER);
7177 ill = ILL_START_WALK_V4(&ctx, ipst);
7188 rw_exit(&ipst->ips_ill_g_lock);
7196 ip_get_numlifs(int family, int lifn_flags, zoneid_t zoneid, ip_stack_t *ipst)
7205 rw_enter(&ipst->ips_ill_g_lock, RW_READER);
7207 ill = ILL_START_WALK_V4(&ctx, ipst);
7209 ill = ILL_START_WALK_V6(&ctx, ipst);
7211 ill = ILL_START_WALK_ALL(&ctx, ipst);
7242 rw_exit(&ipst->ips_ill_g_lock);
7251 ip_stack_t *ipst = ill->ill_ipst;
7258 rw_enter(&ipst->ips_ill_g_usesrc_lock, RW_READER);
7265 rw_exit(&ipst->ips_ill_g_usesrc_lock);
7336 ip_stack_t *ipst = CONNQ_TO_IPST(q);
7392 numifs = ip_get_numifs(zoneid, ipst);
7422 rw_enter(&ipst->ips_ill_g_lock, RW_READER);
7423 ill = ILL_START_WALK_V4(&ctx, ipst);
7435 rw_exit(&ipst->ips_ill_g_lock);
7451 rw_exit(&ipst->ips_ill_g_lock);
7483 ip_stack_t *ipst;
7485 ipst = CONNQ_TO_IPST(q);
7506 ipif = ipif_lookup_on_ifindex(ifindex, isv6, zoneid, ipst);
7542 rw_enter(&ipst->ips_ill_g_usesrc_lock, RW_READER);
7543 rw_enter(&ipst->ips_ill_g_lock, RW_READER);
7571 rw_exit(&ipst->ips_ill_g_lock);
7572 rw_exit(&ipst->ips_ill_g_usesrc_lock);
7601 ip_stack_t *ipst = CONNQ_TO_IPST(q);
7671 numlifs = ip_get_numlifs(family, flags, zoneid, ipst);
7691 rw_enter(&ipst->ips_ill_g_lock, RW_READER);
7692 ill = ill_first(list, list, &ctx, ipst);
7723 rw_exit(&ipst->ips_ill_g_lock);
7756 rw_exit(&ipst->ips_ill_g_lock);
7773 ip_stack_t *ipst;
7776 ipst = CONNQ_TO_IPST(q);
7778 ipst = ILLQ_TO_IPST(q);
7815 iocp->ioc_rval = ip6_asp_get(table, table_size, ipst);
7858 ip6_asp_replace(mp, table, table_size, B_FALSE, ipst,
7885 ip_stack_t *ipst = connp->conn_netstack->netstack_ip;
7926 dlabel = ip6_asp_lookup(daddr, &dir->dir_precedence, ipst);
7933 NULL, match_ire, IRR_ALLOCATE, 0, ipst, &v4setsrc,
7938 NULL, match_ire, IRR_ALLOCATE, 0, ipst, &v6setsrc,
7964 connp->conn_ixa->ixa_multicast_ifaddr, zoneid, ipst,
7972 zoneid, ipst, B_FALSE, IPV6_PREFER_SRC_DEFAULT,
7980 slabel = ip6_asp_lookup(saddr, NULL, ipst);
8012 ip_stack_t *ipst;
8018 ipst = CONNQ_TO_IPST(q);
8035 MATCH_IRE_TYPE | MATCH_IRE_ZONEONLY, 0, ipst, NULL);
8042 MATCH_IRE_TYPE | MATCH_IRE_ZONEONLY, 0, ipst, NULL);
8052 NULL, MATCH_IRE_TYPE | MATCH_IRE_ZONEONLY, 0, ipst, NULL);
8091 ip_stack_t *ipst;
8097 ipst = CONNQ_TO_IPST(q);
8120 0, ipst, NULL);
8129 ipst, NULL);
8140 zoneid, NULL, MATCH_IRE_DSTONLY, 0, ipst, NULL);
8184 ip_stack_t *ipst;
8195 ipst = connp->conn_netstack->netstack_ip;
8349 ip_nce_lookup_and_update(&ipaddr, NULL, ipst,
8354 ip_nce_lookup_and_update(&ipaddr, ipif, ipst,
8423 ip_stack_t *ipst;
8434 ipst = connp->conn_netstack->netstack_ip;
8458 B_FALSE, &exists, B_FALSE, ALL_ZONES, ipst);
8473 ipst);
8477 NULL, MATCH_IRE_TYPE, 0, ipst, NULL);
8523 ip_stack_t *ipst = ill->ill_ipst;
8533 rw_enter(&ipst->ips_ipmp_lock, RW_WRITER);
8535 rw_exit(&ipst->ips_ipmp_lock);
8559 rw_enter(&ipst->ips_ipmp_lock, RW_WRITER);
8561 rw_exit(&ipst->ips_ipmp_lock);
8856 ip_stack_t *ipst;
8869 ipst = CONNQ_TO_IPST(q);
8870 stack = ipst->ips_netstack;
8877 ptbl = ipst->ips_propinfo_tbl;
8940 ip_stack_t *ipst;
8944 ipst = CONNQ_TO_IPST(q);
8966 pinfo = mod_prop_lookup(ipst->ips_propinfo_tbl, pname, proto);
8970 if ((err = pinfo->mpi_getf(ipst->ips_netstack, pinfo, NULL, buf,
8987 } else if ((err = pinfo->mpi_setf(ipst->ips_netstack, NULL,
9028 ip_stack_t *ipst;
9031 ipst = CONNQ_TO_IPST(q);
9033 ipst = ILLQ_TO_IPST(q);
9056 iocp->ioc_cmd == SIOCGIP6ADDRPOLICY) && !ip6_asp_can_lookup(ipst)) {
9136 ip6_asp_table_refrele(ipst);
9145 ip6_asp_table_refrele(ipst);
9302 ip_stack_t *ipst = CONNQ_TO_IPST(q);
9333 &exists, isv6, zoneid, ipst);
9371 ill = ill_lookup_on_name(name, B_FALSE, isv6, NULL, ipst);
9445 ip_stack_t *ipst;
9447 ipst = CONNQ_TO_IPST(q);
9519 ipst);
9526 ipst);
10865 ip_stack_t *ipst = ill->ill_ipst;
10889 (MATCH_IRE_ILL | MATCH_IRE_TYPE), 0, ipst, NULL);
11623 ip_subnet_mask(ipaddr_t addr, ipif_t **ipifp, ip_stack_t *ipst)
11639 rw_enter(&ipst->ips_ill_g_lock, RW_READER);
11640 ill = ILL_START_WALK_V4(&ctx, ipst);
11669 rw_exit(&ipst->ips_ill_g_lock);
11678 rw_exit(&ipst->ips_ill_g_lock);
11779 ip_stack_t *ipst = ipif->ipif_ill->ill_ipst;
11781 ipif->ipif_seqid = atomic_inc_64_nv(&ipst->ips_ipif_g_seqid);
11887 ip_stack_t *ipst;
11894 ipst = ill->ill_ipst;
11902 rw_enter(&ipst->ips_ill_g_lock, RW_WRITER);
11918 rw_exit(&ipst->ips_ill_g_lock);
11933 rw_exit(&ipst->ips_ill_g_lock);
11943 rw_exit(&ipst->ips_ill_g_lock);
11988 ip_stack_t *ipst = ill->ill_ipst;
12038 rw_enter(&ipst->ips_ill_g_lock, RW_WRITER);
12040 rw_exit(&ipst->ips_ill_g_lock);
12451 ip_update_source_selection(ip_stack_t *ipst)
12454 if (atomic_inc_32_nv(&ipst->ips_src_generation) ==
12456 atomic_inc_32(&ipst->ips_src_generation);
12469 ip_stack_t *ipst = ill->ill_ipst;
12476 rw_enter(&ipst->ips_ipmp_lock, RW_WRITER);
12478 rw_exit(&ipst->ips_ipmp_lock);
12482 rw_enter(&ipst->ips_ipmp_lock, RW_WRITER);
12484 rw_exit(&ipst->ips_ipmp_lock);
12500 ip_stack_t *ipst = ill->ill_ipst;
12517 rw_enter(&ipst->ips_ipmp_lock, RW_WRITER);
12552 grp = ipmp_grp_lookup(lifr->lifr_groupname, ipst);
12588 rw_exit(&ipst->ips_ipmp_lock);
12600 rw_exit(&ipst->ips_ipmp_lock);
12606 rw_exit(&ipst->ips_ipmp_lock);
12620 ip_stack_t *ipst = ipif->ipif_ill->ill_ipst;
12625 rw_enter(&ipst->ips_ipmp_lock, RW_READER);
12630 rw_exit(&ipst->ips_ipmp_lock);
12644 ip_stack_t *ipst = ipif->ipif_ill->ill_ipst;
12646 rw_enter(&ipst->ips_ipmp_lock, RW_READER);
12651 rw_exit(&ipst->ips_ipmp_lock);
12665 ip_stack_t *ipst = CONNQ_TO_IPST(q);
12671 rw_enter(&ipst->ips_ipmp_lock, RW_READER);
12672 if ((grp = ipmp_grp_lookup(lifgr->gi_grname, ipst)) == NULL) {
12673 rw_exit(&ipst->ips_ipmp_lock);
12677 rw_exit(&ipst->ips_ipmp_lock);
13321 ip_stack_t *ipst = ill->ill_ipst;
13376 ipif->ipif_zoneid, ipst);
13423 ipcl_walk(conn_ixa_cleanup, (void *)B_TRUE, ipst);
13539 ip_stack_t *ipst = ipif->ipif_ill->ill_ipst;
13562 rw_enter(&ipst->ips_ill_g_lock, RW_WRITER);
13568 rw_exit(&ipst->ips_ill_g_lock);
13574 ip_stack_t *ipst = ipif->ipif_ill->ill_ipst;
13581 rw_enter(&ipst->ips_ill_g_lock, RW_WRITER);
13593 rw_exit(&ipst->ips_ill_g_lock);
13655 boolean_t *exists, boolean_t isv6, zoneid_t zoneid, ip_stack_t *ipst)
13716 &did_alloc, ipst);
13796 ip_stack_t *ipst)
13855 ill = ill_lookup_on_name(name, B_FALSE, isv6, &did_alloc, ipst);
13942 ip_stack_t *ipst = ipif->ipif_ill->ill_ipst;
13947 if (!ipst->ips_ip_respond_to_address_mask_broadcast)
13966 ipha->ipha_ttl = ipst->ips_ip_broadcast_ttl;
13981 ixas.ixa_ipst = ipst;
14118 ip_stack_t *ipst = ill->ill_ipst;
14141 ipst);
14152 ipst);
14276 ip_stack_t *ipst = new_ipif->ipif_ill->ill_ipst;
14279 ASSERT(MUTEX_HELD(&ipst->ips_ip_addr_avail_lock));
14280 ASSERT(RW_READ_HELD(&ipst->ips_ill_g_lock));
14290 ill = ILL_START_WALK_V6(&ctx, ipst);
14292 ill = ILL_START_WALK_V4(&ctx, ipst);
14339 ip_stack_t *ipst = ill->ill_ipst;
14396 rw_enter(&ipst->ips_ill_g_lock, RW_WRITER);
14432 rw_exit(&ipst->ips_ill_g_lock);
14436 rw_exit(&ipst->ips_ill_g_lock);
14881 ip_stack_t *ipst = ill->ill_ipst;
14905 ipif->ipif_zoneid, ipst);
14927 ipst);
14990 ipst);
15020 rw_enter(&ipst->ips_ill_g_lock, RW_READER);
15021 mutex_enter(&ipst->ips_ip_addr_avail_lock);
15026 mutex_exit(&ipst->ips_ip_addr_avail_lock);
15027 rw_exit(&ipst->ips_ill_g_lock);
15073 rw_enter(&ipst->ips_ill_g_lock, RW_WRITER);
15078 rw_exit(&ipst->ips_ill_g_lock);
15118 (MATCH_IRE_TYPE | MATCH_IRE_ILL), 0, ipst, NULL);
15148 rw_enter(&ipst->ips_ill_g_lock, RW_WRITER);
15153 rw_exit(&ipst->ips_ill_g_lock);
15169 (void) ip_srcid_remove(&ipif->ipif_v6lcl_addr, ipif->ipif_zoneid, ipst);
15179 ip_stack_t *ipst = ill->ill_ipst;
15182 rw_enter(&ipst->ips_ill_g_lock, RW_WRITER);
15185 rw_exit(&ipst->ips_ill_g_lock);
15196 rw_enter(&ipst->ips_ill_g_lock, RW_WRITER);
15199 rw_exit(&ipst->ips_ill_g_lock);
15220 ip_stack_t *ipst)
15227 uill = ill_lookup_on_ifindex(ifindex, isv6, ipst);
15319 ip_stack_t *ipst = ill->ill_ipst;
15324 B_FALSE, ipst);
15367 rw_enter(&ipst->ips_ill_g_lock, RW_READER);
15487 rw_exit(&ipst->ips_ill_g_lock);
15549 zoneid_t zoneid, ip_stack_t *ipst, ipaddr_t *srcp,
15566 *generation = ipst->ips_src_generation;
15792 ip_stack_t *ipst;
15820 ipst = ill->ill_ipst;
15821 phyi = avl_find(&ipst->ips_phyint_g_list->phyint_list_avl_by_name,
15912 ip_stack_t *ipst)
15917 ill = ill_lookup_on_ifindex(index, isv6, ipst);
15951 ip_stack_t *ipst = ipif->ipif_ill->ill_ipst;
15979 rw_enter(&ipst->ips_ill_g_lock, RW_WRITER);
15980 if (phyint_exists(index, ipst)) {
15981 rw_exit(&ipst->ips_ill_g_lock);
15996 avl_remove(&ipst->ips_phyint_g_list->phyint_list_avl_by_index, phyi);
15997 (void) avl_find(&ipst->ips_phyint_g_list->phyint_list_avl_by_index,
15999 avl_insert(&ipst->ips_phyint_g_list->phyint_list_avl_by_index,
16001 rw_exit(&ipst->ips_ill_g_lock);
16117 ip_stack_t *ipst;
16123 ipst = CONNQ_TO_IPST(q);
16125 ipst = ILLQ_TO_IPST(q);
16131 if (ipst->ips_netstack->netstack_stackid != GLOBAL_NETSTACKID &&
16142 ire_increment_multicast_generation(ipst, ipif->ipif_ill->ill_isv6);
16300 ip_stack_t *ipst = uill->ill_ipst;
16302 ASSERT(RW_WRITE_HELD(&ipst->ips_ill_g_usesrc_lock));
16323 ip_stack_t *ipst = ucill->ill_ipst;
16326 (uill != NULL) && RW_WRITE_HELD(&ipst->ips_ill_g_usesrc_lock));
16380 ip_stack_t *ipst = ipif->ipif_ill->ill_ipst;
16399 usesrc_ill = ill_lookup_on_ifindex(ifindex, isv6, ipst);
16457 rw_enter(&ipst->ips_ill_g_usesrc_lock, RW_WRITER);
16464 rw_exit(&ipst->ips_ill_g_usesrc_lock);
16494 rw_exit(&ipst->ips_ill_g_usesrc_lock);
16503 ip_update_source_selection(ipst);
16583 ip_stack_t *ipst = PHYINT_TO_IPST(phyi);
16595 rw_enter(&ipst->ips_ipmp_lock, RW_WRITER);
16598 rw_exit(&ipst->ips_ipmp_lock);
16633 ip_stack_t *ipst = ill->ill_ipst;
16635 ASSERT(RW_WRITE_HELD(&ipst->ips_ill_g_lock));
16649 phyi = avl_find(&ipst->ips_phyint_g_list->phyint_list_avl_by_name,
16709 if (!phyint_assign_ifindex(phyi, ipst))
16712 avl_insert(&ipst->ips_phyint_g_list->phyint_list_avl_by_name,
16715 (void) avl_find(&ipst->ips_phyint_g_list->
16718 avl_insert(&ipst->ips_phyint_g_list->phyint_list_avl_by_index,
16736 ill->ill_mcast_type = ipst->ips_mld_max_version;
16738 ill->ill_mcast_type = ipst->ips_igmp_max_version;
16805 ip_stack_t *ipst = ill->ill_ipst;
16813 rw_enter(&ipst->ips_ipmp_lock, RW_WRITER);
16823 if (ipmp_grp_lookup(ill->ill_name, ipst) != NULL) {
16824 rw_exit(&ipst->ips_ipmp_lock);
16829 rw_exit(&ipst->ips_ipmp_lock);
16833 rw_exit(&ipst->ips_ipmp_lock);
16846 mutex_enter(&ipst->ips_mld_slowtimeout_lock);
16847 if (ipst->ips_mld_slowtimeout_id == 0) {
16848 ipst->ips_mld_slowtimeout_id = timeout(mld_slowtimo,
16849 (void *)ipst,
16852 mutex_exit(&ipst->ips_mld_slowtimeout_lock);
16854 mutex_enter(&ipst->ips_igmp_slowtimeout_lock);
16855 if (ipst->ips_igmp_slowtimeout_id == 0) {
16856 ipst->ips_igmp_slowtimeout_id = timeout(igmp_slowtimo,
16857 (void *)ipst,
16860 mutex_exit(&ipst->ips_igmp_slowtimeout_lock);
16886 ip_stack_t *ipst;
16893 ipst = ill->ill_ipst;
16991 if (ipst->ips_ipv6_forwarding != 0)
17006 if (ipst->ips_ip_forwarding != 0)
17037 rw_enter(&ipst->ips_ill_g_lock, RW_WRITER);
17046 rw_exit(&ipst->ips_ill_g_lock);
17089 rw_exit(&ipst->ips_ill_g_lock);
17115 ipif_init(ip_stack_t *ipst)
17120 ipst->ips_ill_g_heads[i].ill_g_list_head =
17121 (ill_if_t *)&ipst->ips_ill_g_heads[i];
17122 ipst->ips_ill_g_heads[i].ill_g_list_tail =
17123 (ill_if_t *)&ipst->ips_ill_g_heads[i];
17126 avl_create(&ipst->ips_phyint_g_list->phyint_list_avl_by_index,
17130 avl_create(&ipst->ips_phyint_g_list->phyint_list_avl_by_name,
17242 ip_cgtp_bcast_add(ire_t *ire, ip_stack_t *ipst)
17249 IRE_BROADCAST, NULL, ALL_ZONES, NULL, MATCH_IRE_TYPE, 0, ipst,
17277 ipst);
17312 ip_cgtp_bcast_delete(ire_t *ire, ip_stack_t *ipst)
17316 if (ip_type_v4(ire->ire_addr, ipst) == IRE_BROADCAST) {
17321 ipst, NULL);
17336 MATCH_IRE_MASK, 0, ipst, NULL);
17668 ip_stack_t *ipst)
17673 ill = ill_lookup_on_ifindex(index, isv6, ipst);
17700 ip_stack_t *ipst)
17705 ill = ill_lookup_on_ifindex(ifindex, isv6, ipst);
17738 ip_stack_t *ipst = ill->ill_ipst;
17750 else if (ipst->ips_ipcl_proto_fanout_v4[IPPROTO_RSVP].connf_head
17753 else if (ipst->ips_ip_cgtp_filter &&
17754 ipst->ips_ip_cgtp_filter_ops != NULL)
17766 ill_set_inputfn_all(ip_stack_t *ipst)
17771 rw_enter(&ipst->ips_ill_g_lock, RW_READER);
17772 ill = ILL_START_WALK_V4(&ctx, ipst);
17776 rw_exit(&ipst->ips_ill_g_lock);
18239 ip_interface_cleanup(ip_stack_t *ipst)
18247 netstackid_t stackid = ipst->ips_netstack->netstack_stackid;
18313 ip_stack_t *ipst = ill->ill_ipst;
18325 ipst->ips_ipv6_net_data : ipst->ips_ipv4_net_data;
18328 info->hnei_stackid = ipst->ips_netstack->netstack_stackid;
18720 ip_stack_t *ipst;
18724 ipst = CONNQ_TO_IPST(q);
18725 ilbs = ipst->ips_netstack->netstack_ilb;
19012 ip_stack_t *ipst = usill->ill_ipst;
19018 rw_enter(&ipst->ips_ill_g_usesrc_lock, RW_WRITER);
19019 rw_enter(&ipst->ips_ill_g_lock, RW_READER);
19028 rw_exit(&ipst->ips_ill_g_lock);
19029 rw_exit(&ipst->ips_ill_g_usesrc_lock);