Lines Matching refs:dcb

126  * Reclaim a fraction of dce's in the dcb.
130 dcb_reclaim(dcb_t *dcb, ip_stack_t *ipst, uint_t fraction)
141 rw_enter(&dcb->dcb_lock, RW_WRITER);
142 for (dce = dcb->dcb_dce; dce != NULL; dce = nextdce) {
173 dce_delete_locked(dcb, dce);
176 rw_exit(&dcb->dcb_lock);
408 dcb_t *dcb;
416 dcb = &ipst->ips_dce_hash_v4[hash];
417 rw_enter(&dcb->dcb_lock, RW_READER);
418 for (dce = dcb->dcb_dce; dce != NULL; dce = dce->dce_next) {
426 rw_exit(&dcb->dcb_lock);
432 rw_exit(&dcb->dcb_lock);
449 dcb_t *dcb;
457 dcb = &ipst->ips_dce_hash_v6[hash];
458 rw_enter(&dcb->dcb_lock, RW_READER);
459 for (dce = dcb->dcb_dce; dce != NULL; dce = dce->dce_next) {
468 rw_exit(&dcb->dcb_lock);
474 rw_exit(&dcb->dcb_lock);
491 dcb_t *dcb;
495 dcb = &ipst->ips_dce_hash_v4[hash];
500 if (dcb->dcb_cnt > ipst->ips_ip_dce_reclaim_threshold)
502 rw_enter(&dcb->dcb_lock, RW_WRITER);
503 for (dce = dcb->dcb_dce; dce != NULL; dce = dce->dce_next) {
509 rw_exit(&dcb->dcb_lock);
517 rw_exit(&dcb->dcb_lock);
529 if (dcb->dcb_dce != NULL)
530 dcb->dcb_dce->dce_ptpn = &dce->dce_next;
531 dce->dce_next = dcb->dcb_dce;
532 dce->dce_ptpn = &dcb->dcb_dce;
533 dcb->dcb_dce = dce;
534 dce->dce_bucket = dcb;
535 atomic_inc_32(&dcb->dcb_cnt);
537 rw_exit(&dcb->dcb_lock);
557 dcb_t *dcb;
564 dcb = &ipst->ips_dce_hash_v6[hash];
569 if (dcb->dcb_cnt > ipst->ips_ip_dce_reclaim_threshold)
571 rw_enter(&dcb->dcb_lock, RW_WRITER);
572 for (dce = dcb->dcb_dce; dce != NULL; dce = dce->dce_next) {
579 rw_exit(&dcb->dcb_lock);
588 rw_exit(&dcb->dcb_lock);
601 if (dcb->dcb_dce != NULL)
602 dcb->dcb_dce->dce_ptpn = &dce->dce_next;
603 dce->dce_next = dcb->dcb_dce;
604 dce->dce_ptpn = &dcb->dcb_dce;
605 dcb->dcb_dce = dce;
606 dce->dce_bucket = dcb;
607 atomic_inc_32(&dcb->dcb_cnt);
609 rw_exit(&dcb->dcb_lock);
764 dcb_t *dcb;
769 dcb = &ipst->ips_dce_hash_v6[i];
771 dcb = &ipst->ips_dce_hash_v4[i];
772 rw_enter(&dcb->dcb_lock, RW_WRITER);
773 for (dce = dcb->dcb_dce; dce != NULL; dce = dce->dce_next) {
778 rw_exit(&dcb->dcb_lock);
788 dce_delete_locked(dcb_t *dcb, dce_t *dce)
796 atomic_dec_32(&dcb->dcb_cnt);
856 dcb_t *dcb;
874 dcb = &ipst->ips_dce_hash_v4[i];
875 rw_enter(&dcb->dcb_lock, RW_READER);
876 for (dce = dcb->dcb_dce; dce != NULL; dce = dce->dce_next) {
894 rw_exit(&dcb->dcb_lock);
916 dcb = &ipst->ips_dce_hash_v6[i];
917 rw_enter(&dcb->dcb_lock, RW_READER);
918 for (dce = dcb->dcb_dce; dce != NULL; dce = dce->dce_next) {
939 rw_exit(&dcb->dcb_lock);
958 dcb_t *dcb;
962 dcb = &ipst->ips_dce_hash_v6[i];
963 rw_enter(&dcb->dcb_lock, RW_WRITER);
965 for (dce = dcb->dcb_dce; dce != NULL; dce = nextdce) {
968 dce_delete_locked(dcb, dce);
972 rw_exit(&dcb->dcb_lock);