Lines Matching refs:ilbs

134 ilb_nat_src_init(ilb_stack_t *ilbs)  in ilb_nat_src_init()  argument
138 ilbs->ilbs_nat_src = kmem_zalloc(sizeof (ilb_nat_src_hash_t) * in ilb_nat_src_init()
139 ilbs->ilbs_nat_src_hash_size, KM_SLEEP); in ilb_nat_src_init()
140 for (i = 0; i < ilbs->ilbs_nat_src_hash_size; i++) { in ilb_nat_src_init()
141 list_create(&ilbs->ilbs_nat_src[i].nsh_head, in ilb_nat_src_init()
144 mutex_init(&ilbs->ilbs_nat_src[i].nsh_lock, NULL, in ilb_nat_src_init()
147 ilbs->ilbs_nat_src_tid = timeout(ilb_nat_src_timer, ilbs, in ilb_nat_src_init()
156 ilb_nat_src_fini(ilb_stack_t *ilbs) in ilb_nat_src_fini() argument
166 mutex_enter(&ilbs->ilbs_nat_src_lock); in ilb_nat_src_fini()
167 tid = ilbs->ilbs_nat_src_tid; in ilb_nat_src_fini()
168 ilbs->ilbs_nat_src_tid = 0; in ilb_nat_src_fini()
169 mutex_exit(&ilbs->ilbs_nat_src_lock); in ilb_nat_src_fini()
173 mutex_destroy(&ilbs->ilbs_nat_src_lock); in ilb_nat_src_fini()
175 for (i = 0; i < ilbs->ilbs_nat_src_hash_size; i++) { in ilb_nat_src_fini()
176 while ((cur = list_remove_head(&ilbs->ilbs_nat_src[i].nsh_head)) in ilb_nat_src_fini()
181 mutex_destroy(&ilbs->ilbs_nat_src[i].nsh_lock); in ilb_nat_src_fini()
184 kmem_free(ilbs->ilbs_nat_src, sizeof (ilb_nat_src_hash_t) * in ilb_nat_src_fini()
185 ilbs->ilbs_nat_src_hash_size); in ilb_nat_src_fini()
186 ilbs->ilbs_nat_src = NULL; in ilb_nat_src_fini()
200 ilb_find_nat_src(ilb_stack_t *ilbs, const in6_addr_t *nat_src, in ilb_find_nat_src() argument
209 ilbs->ilbs_nat_src_hash_size); in ilb_find_nat_src()
210 mutex_enter(&ilbs->ilbs_nat_src[idx].nsh_lock); in ilb_find_nat_src()
211 head = &ilbs->ilbs_nat_src[idx].nsh_head; in ilb_find_nat_src()
223 mutex_exit(&ilbs->ilbs_nat_src[idx].nsh_lock); in ilb_find_nat_src()
229 mutex_exit(&ilbs->ilbs_nat_src[idx].nsh_lock); in ilb_find_nat_src()
235 tmp->nse_nsh_lock = &ilbs->ilbs_nat_src[idx].nsh_lock; in ilb_find_nat_src()
248 mutex_exit(&ilbs->ilbs_nat_src[idx].nsh_lock); in ilb_find_nat_src()
257 ilb_create_nat_src(ilb_stack_t *ilbs, ilb_nat_src_t **nat_src, in ilb_create_nat_src() argument
271 src->src_list[i] = ilb_find_nat_src(ilbs, &cur_addr, srv_addr, in ilb_create_nat_src()
297 ilb_stack_t *ilbs = (ilb_stack_t *)arg; in ilb_nat_src_timer() local
302 for (i = 0; i < ilbs->ilbs_nat_src_hash_size; i++) { in ilb_nat_src_timer()
303 mutex_enter(&ilbs->ilbs_nat_src[i].nsh_lock); in ilb_nat_src_timer()
304 head = &ilbs->ilbs_nat_src[i].nsh_head; in ilb_nat_src_timer()
323 mutex_exit(&ilbs->ilbs_nat_src[i].nsh_lock); in ilb_nat_src_timer()
326 mutex_enter(&ilbs->ilbs_nat_src_lock); in ilb_nat_src_timer()
327 if (ilbs->ilbs_nat_src_tid == 0) { in ilb_nat_src_timer()
328 mutex_exit(&ilbs->ilbs_nat_src_lock); in ilb_nat_src_timer()
330 ilbs->ilbs_nat_src_tid = timeout(ilb_nat_src_timer, ilbs, in ilb_nat_src_timer()
333 mutex_exit(&ilbs->ilbs_nat_src_lock); in ilb_nat_src_timer()