Lines Matching refs:bucket
292 frag6_rmqueue(struct ip6q *q6, uint32_t bucket) in frag6_rmqueue() argument
294 IP6QB_LOCK_ASSERT(bucket); in frag6_rmqueue()
296 TAILQ_REMOVE(IP6QB_HEAD(bucket), q6, ip6q_tq); in frag6_rmqueue()
297 V_ip6qb[bucket].count--; in frag6_rmqueue()
309 frag6_freef(struct ip6q *q6, uint32_t bucket) in frag6_freef() argument
315 IP6QB_LOCK_ASSERT(bucket); in frag6_freef()
342 frag6_rmqueue(q6, bucket); in frag6_freef()
355 uint32_t bucket; in frag6_cleanup() local
371 for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) { in frag6_cleanup()
372 IP6QB_LOCK(bucket); in frag6_cleanup()
373 head = IP6QB_HEAD(bucket); in frag6_cleanup()
382 IP6QB_UNLOCK(bucket); in frag6_cleanup()
433 uint32_t bucket, *hashkeyp; in frag6_input() local
564 bucket = jenkins_hash32(hashkey, nitems(hashkey), V_ip6qb_hashseed); in frag6_input()
565 bucket &= IP6REASS_HMASK; in frag6_input()
566 IP6QB_LOCK(bucket); in frag6_input()
567 head = IP6QB_HEAD(bucket); in frag6_input()
593 else if (V_ip6qb[bucket].count >= V_ip6_maxfragbucketsize || in frag6_input()
622 V_ip6qb[bucket].count++; in frag6_input()
649 frag6_rmqueue(q6, bucket); in frag6_input()
650 IP6QB_UNLOCK(bucket); in frag6_input()
659 frag6_rmqueue(q6, bucket); in frag6_input()
660 IP6QB_UNLOCK(bucket); in frag6_input()
772 frag6_freef(q6, bucket); in frag6_input()
782 frag6_freef(q6, bucket); in frag6_input()
810 frag6_freef(q6, bucket); in frag6_input()
812 IP6QB_UNLOCK(bucket); in frag6_input()
822 frag6_freef(q6, bucket); in frag6_input()
824 IP6QB_UNLOCK(bucket); in frag6_input()
856 frag6_freef(q6, bucket); in frag6_input()
875 frag6_rmqueue(q6, bucket); in frag6_input()
900 IP6QB_UNLOCK(bucket); in frag6_input()
918 IP6QB_UNLOCK(bucket); in frag6_input()
938 uint32_t bucket; in frag6_slowtimo() local
946 for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) { in frag6_slowtimo()
947 if (V_ip6qb[bucket].count == 0) in frag6_slowtimo()
949 IP6QB_LOCK(bucket); in frag6_slowtimo()
950 head = IP6QB_HEAD(bucket); in frag6_slowtimo()
956 frag6_freef(q6, bucket); in frag6_slowtimo()
969 V_ip6qb[bucket].count > V_ip6_maxfragbucketsize)) && in frag6_slowtimo()
973 frag6_freef(q6, bucket); in frag6_slowtimo()
975 IP6QB_UNLOCK(bucket); in frag6_slowtimo()
981 bucket = 0; in frag6_slowtimo()
985 IP6QB_LOCK(bucket); in frag6_slowtimo()
986 q6 = TAILQ_LAST(IP6QB_HEAD(bucket), ip6qhead); in frag6_slowtimo()
990 frag6_freef(q6, bucket); in frag6_slowtimo()
992 IP6QB_UNLOCK(bucket); in frag6_slowtimo()
993 bucket = (bucket + 1) % IP6REASS_NHASH; in frag6_slowtimo()
1038 uint32_t bucket; in frag6_init() local
1042 for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) { in frag6_init()
1043 TAILQ_INIT(IP6QB_HEAD(bucket)); in frag6_init()
1044 mtx_init(&V_ip6qb[bucket].lock, "ip6qb", NULL, MTX_DEF); in frag6_init()
1045 V_ip6qb[bucket].count = 0; in frag6_init()
1067 uint32_t bucket; in frag6_drain_one() local
1069 for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) { in frag6_drain_one()
1070 IP6QB_LOCK(bucket); in frag6_drain_one()
1071 while ((q6 = TAILQ_FIRST(IP6QB_HEAD(bucket))) != NULL) { in frag6_drain_one()
1074 frag6_freef(q6, bucket); in frag6_drain_one()
1076 IP6QB_UNLOCK(bucket); in frag6_drain_one()
1101 uint32_t bucket; in frag6_destroy() local
1105 for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) { in frag6_destroy()
1106 KASSERT(V_ip6qb[bucket].count == 0, in frag6_destroy()
1108 bucket, &V_ip6qb[bucket], V_ip6qb[bucket].count)); in frag6_destroy()
1109 mtx_destroy(&V_ip6qb[bucket].lock); in frag6_destroy()