• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/netinet6/

Lines Matching defs:bucket

127 /* Maximum per-VNET reassembly queues per bucket and fragments per packet. */
150 * IP6 fragment limit, but ensure the limit will not allow any bucket
151 * to grow above 100 items. (The bucket limit is
213 "Maximum number of reassembly queues per hash bucket");
242 frag6_freef(struct ip6q *q6, uint32_t bucket)
248 IP6QB_LOCK_ASSERT(bucket);
274 TAILQ_REMOVE(IP6QB_HEAD(bucket), q6, ip6q_tq);
275 V_ip6qb[bucket].count--;
294 uint32_t bucket;
310 for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) {
311 IP6QB_LOCK(bucket);
312 head = IP6QB_HEAD(bucket);
321 IP6QB_UNLOCK(bucket);
372 uint32_t bucket, *hashkeyp;
496 /* Generate a hash value for fragment bucket selection. */
503 bucket = jenkins_hash32(hashkey, nitems(hashkey), V_ip6qb_hashseed);
504 bucket &= IP6REASS_HMASK;
505 IP6QB_LOCK(bucket);
506 head = IP6QB_HEAD(bucket);
532 else if (V_ip6qb[bucket].count >= V_ip6_maxfragbucketsize ||
560 /* Add the fragemented packet to the bucket. */
562 V_ip6qb[bucket].count++;
590 V_ip6qb[bucket].count--;
597 IP6QB_UNLOCK(bucket);
607 V_ip6qb[bucket].count--;
614 IP6QB_UNLOCK(bucket);
727 frag6_freef(q6, bucket);
737 frag6_freef(q6, bucket);
765 frag6_freef(q6, bucket);
767 IP6QB_UNLOCK(bucket);
777 frag6_freef(q6, bucket);
779 IP6QB_UNLOCK(bucket);
816 V_ip6qb[bucket].count--;
855 IP6QB_UNLOCK(bucket);
873 IP6QB_UNLOCK(bucket);
892 uint32_t bucket;
897 for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) {
898 IP6QB_LOCK(bucket);
899 head = IP6QB_HEAD(bucket);
905 frag6_freef(q6, bucket);
918 V_ip6qb[bucket].count > V_ip6_maxfragbucketsize)) &&
922 frag6_freef(q6, bucket);
924 IP6QB_UNLOCK(bucket);
930 bucket = 0;
934 IP6QB_LOCK(bucket);
935 q6 = TAILQ_LAST(IP6QB_HEAD(bucket), ip6qhead);
939 frag6_freef(q6, bucket);
941 IP6QB_UNLOCK(bucket);
942 bucket = (bucket + 1) % IP6REASS_NHASH;
974 uint32_t bucket;
978 for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) {
979 TAILQ_INIT(IP6QB_HEAD(bucket));
980 mtx_init(&V_ip6qb[bucket].lock, "ip6qb", NULL, MTX_DEF);
981 V_ip6qb[bucket].count = 0;
1003 uint32_t bucket;
1005 for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) {
1006 IP6QB_LOCK(bucket);
1007 while ((q6 = TAILQ_FIRST(IP6QB_HEAD(bucket))) != NULL) {
1010 frag6_freef(q6, bucket);
1012 IP6QB_UNLOCK(bucket);
1037 uint32_t bucket;
1041 for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) {
1042 KASSERT(V_ip6qb[bucket].count == 0,
1044 bucket, &V_ip6qb[bucket], V_ip6qb[bucket].count));
1045 mtx_destroy(&V_ip6qb[bucket].lock);