diff options
-rw-r--r-- | sbin/ipfw/ipfw.8 | 2 | ||||
-rw-r--r-- | sys/netinet/ip_dummynet.c | 4 | ||||
-rw-r--r-- | sys/netinet/ip_dummynet.h | 6 |
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. |