summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sbin/ipfw/ipfw.82
-rw-r--r--sys/netinet/ip_dummynet.c4
-rw-r--r--sys/netinet/ip_dummynet.h6
3 files changed, 9 insertions, 3 deletions
diff --git a/sbin/ipfw/ipfw.8 b/sbin/ipfw/ipfw.8
index 4c9e141..c9e405c 100644
--- a/sbin/ipfw/ipfw.8
+++ b/sbin/ipfw/ipfw.8
@@ -1347,7 +1347,7 @@ Default value is 64 controlled by the
.Xr sysctl 8
variable
.Em net.inet.ip.dummynet.hash_size ,
-allowed range is 16 to 1024.
+allowed range is 16 to 65536.
.Pp
.It Cm mask Ar mask-specifier
The
diff --git a/sys/netinet/ip_dummynet.c b/sys/netinet/ip_dummynet.c
index 49f58fc..3c2ee99 100644
--- a/sys/netinet/ip_dummynet.c
+++ b/sys/netinet/ip_dummynet.c
@@ -1463,8 +1463,8 @@ alloc_hash(struct dn_flow_set *x, struct dn_flow_set *pfs)
l = dn_hash_size;
if (l < 4)
l = 4;
- else if (l > 1024)
- l = 1024;
+ else if (l > DN_MAX_HASH_SIZE)
+ l = DN_MAX_HASH_SIZE;
x->rq_size = l;
} else /* one is enough for null mask */
x->rq_size = 1;
diff --git a/sys/netinet/ip_dummynet.h b/sys/netinet/ip_dummynet.h
index e8ae0e9..79c607d 100644
--- a/sys/netinet/ip_dummynet.h
+++ b/sys/netinet/ip_dummynet.h
@@ -77,6 +77,12 @@ typedef u_int64_t dn_key ; /* sorting key */
#define OFFSET_OF(type, field) ((int)&( ((type *)0)->field) )
/*
+ * The maximum hash table size for queues. This value must be a power
+ * of 2.
+ */
+#define DN_MAX_HASH_SIZE 65536
+
+/*
* A heap entry is made of a key and a pointer to the actual
* object stored in the heap.
* The heap is an array of dn_heap_entry entries, dynamically allocated.
OpenPOWER on IntegriCloud