Lines Matching refs:frag

6172 ipsec_fragcache_init(ipsec_fragcache_t *frag)  in ipsec_fragcache_init()  argument
6177 mutex_init(&frag->itpf_lock, NULL, MUTEX_DEFAULT, NULL); in ipsec_fragcache_init()
6178 frag->itpf_ptr = (ipsec_fragcache_entry_t **) in ipsec_fragcache_init()
6181 if (frag->itpf_ptr == NULL) in ipsec_fragcache_init()
6188 kmem_free(frag->itpf_ptr, sizeof (ipsec_fragcache_entry_t *) * in ipsec_fragcache_init()
6193 frag->itpf_freelist = NULL; in ipsec_fragcache_init()
6196 ftemp->itpfe_next = frag->itpf_freelist; in ipsec_fragcache_init()
6197 frag->itpf_freelist = ftemp; in ipsec_fragcache_init()
6201 frag->itpf_expire_hint = 0; in ipsec_fragcache_init()
6207 ipsec_fragcache_uninit(ipsec_fragcache_t *frag, ipsec_stack_t *ipss) in ipsec_fragcache_uninit() argument
6212 mutex_enter(&frag->itpf_lock); in ipsec_fragcache_uninit()
6213 if (frag->itpf_ptr) { in ipsec_fragcache_uninit()
6216 fep = (frag->itpf_ptr)[i]; in ipsec_fragcache_uninit()
6219 fep = fragcache_delentry(i, fep, frag, ipss); in ipsec_fragcache_uninit()
6227 while (frag->itpf_freelist->itpfe_next != NULL) in ipsec_fragcache_uninit()
6228 frag->itpf_freelist = frag->itpf_freelist->itpfe_next; in ipsec_fragcache_uninit()
6235 kmem_free(frag->itpf_freelist, in ipsec_fragcache_uninit()
6239 kmem_free(frag->itpf_ptr, in ipsec_fragcache_uninit()
6243 mutex_exit(&frag->itpf_lock); in ipsec_fragcache_uninit()
6244 mutex_destroy(&frag->itpf_lock); in ipsec_fragcache_uninit()
6255 ipsec_fragcache_add(ipsec_fragcache_t *frag, mblk_t *iramp, mblk_t *mp, in ipsec_fragcache_add() argument
6297 mutex_enter(&frag->itpf_lock); in ipsec_fragcache_add()
6314 mutex_exit(&frag->itpf_lock); in ipsec_fragcache_add()
6333 mutex_exit(&frag->itpf_lock); in ipsec_fragcache_add()
6356 if (itpf_time >= frag->itpf_expire_hint) in ipsec_fragcache_add()
6357 ipsec_fragcache_clean(frag, ipss); in ipsec_fragcache_add()
6366 for (fep = (frag->itpf_ptr)[i]; fep; fep = fep->itpfe_next) { in ipsec_fragcache_add()
6412 (void) fragcache_delentry(i, fep, frag, ipss); in ipsec_fragcache_add()
6413 mutex_exit(&frag->itpf_lock); in ipsec_fragcache_add()
6424 if (frag->itpf_freelist == NULL) { in ipsec_fragcache_add()
6426 ipsec_fragcache_clean(frag, ipss); in ipsec_fragcache_add()
6427 if (frag->itpf_freelist == NULL) { in ipsec_fragcache_add()
6428 mutex_exit(&frag->itpf_lock); in ipsec_fragcache_add()
6438 fep = frag->itpf_freelist; in ipsec_fragcache_add()
6439 frag->itpf_freelist = fep->itpfe_next; in ipsec_fragcache_add()
6465 fep->itpfe_next = (frag->itpf_ptr)[i]; in ipsec_fragcache_add()
6466 (frag->itpf_ptr)[i] = fep; in ipsec_fragcache_add()
6468 if (frag->itpf_expire_hint > fep->itpfe_exp) in ipsec_fragcache_add()
6469 frag->itpf_expire_hint = fep->itpfe_exp; in ipsec_fragcache_add()
6530 mutex_exit(&frag->itpf_lock); in ipsec_fragcache_add()
6573 (void) fragcache_delentry(i, fep, frag, ipss); in ipsec_fragcache_add()
6574 mutex_exit(&frag->itpf_lock); in ipsec_fragcache_add()
6593 mutex_exit(&frag->itpf_lock); in ipsec_fragcache_add()
6636 (void) fragcache_delentry(i, fep, frag, in ipsec_fragcache_add()
6638 mutex_exit(&frag->itpf_lock); in ipsec_fragcache_add()
6679 (void) fragcache_delentry(i, fep, frag, ipss); in ipsec_fragcache_add()
6680 mutex_exit(&frag->itpf_lock); in ipsec_fragcache_add()
6693 mutex_exit(&frag->itpf_lock); in ipsec_fragcache_add()
6736 mutex_exit(&frag->itpf_lock); in ipsec_fragcache_add()
6758 mutex_exit(&frag->itpf_lock); in ipsec_fragcache_add()
6788 (void) fragcache_delentry(i, fep, frag, ipss); in ipsec_fragcache_add()
6789 mutex_exit(&frag->itpf_lock); in ipsec_fragcache_add()
6820 mutex_exit(&frag->itpf_lock); in ipsec_fragcache_add()
6827 ipsec_fragcache_clean(ipsec_fragcache_t *frag, ipsec_stack_t *ipss) in ipsec_fragcache_clean() argument
6836 ASSERT(MUTEX_HELD(&frag->itpf_lock)); in ipsec_fragcache_clean()
6842 fep = (frag->itpf_ptr)[i]; in ipsec_fragcache_clean()
6846 fep = fragcache_delentry(i, fep, frag, ipss); in ipsec_fragcache_clean()
6858 frag->itpf_expire_hint = earlyexp; in ipsec_fragcache_clean()
6861 if (frag->itpf_freelist == NULL) in ipsec_fragcache_clean()
6862 (void) fragcache_delentry(earlyi, earlyfep, frag, ipss); in ipsec_fragcache_clean()
6867 ipsec_fragcache_t *frag, ipsec_stack_t *ipss) in fragcache_delentry() argument
6872 ASSERT(MUTEX_HELD(&frag->itpf_lock)); in fragcache_delentry()
6883 targp = (frag->itpf_ptr)[slot]; in fragcache_delentry()
6888 (frag->itpf_ptr)[slot] = nextp; in fragcache_delentry()
6890 fep->itpfe_next = frag->itpf_freelist; in fragcache_delentry()
6891 frag->itpf_freelist = fep; in fragcache_delentry()
6902 fep->itpfe_next = frag->itpf_freelist; in fragcache_delentry()
6903 frag->itpf_freelist = fep; in fragcache_delentry()