aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCy Schubert <cy@FreeBSD.org>2021-02-05 14:26:04 +0000
committerCy Schubert <cy@FreeBSD.org>2021-02-06 02:39:38 +0000
commit344f1083e128d8d41ca31853dac513ca3efd9d1f (patch)
tree5b1ea6e98eb726028cee5e5d31e68bb7f7432a31
parent10990cb46027b4cc4339540b1217117863b2cd15 (diff)
downloadsrc-344f1083e128d8d41ca31853dac513ca3efd9d1f.tar.gz
src-344f1083e128d8d41ca31853dac513ca3efd9d1f.zip
ipfilter: Use the softn (NAT softc) host map size in ip_nat6 calculation.
The ipfilter NAT table host map size is a tunable that defaults to a macro value defined at build time. HOSTMAP_SIZE is saved in softn (the ipnat softc) at initialization. It can be tuned (changed) at runtime using the ipf -T command. If the hostmap_size tunable is adjusted the calculation to determine where to put new entries in the table was incorrect. Use the tunable in the NAT softc instead of the static build time value. MFC after: 1 week
-rw-r--r--sys/contrib/ipfilter/netinet/ip_nat6.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/contrib/ipfilter/netinet/ip_nat6.c b/sys/contrib/ipfilter/netinet/ip_nat6.c
index b2713aec812a..13fa6fb6bc30 100644
--- a/sys/contrib/ipfilter/netinet/ip_nat6.c
+++ b/sys/contrib/ipfilter/netinet/ip_nat6.c
@@ -390,7 +390,7 @@ ipf_nat6_hostmap(softn, np, src, dst, map, port)
hv += dst->i6[2];
hv += dst->i6[1];
hv += dst->i6[0];
- hv %= HOSTMAP_SIZE;
+ hv %= softn->ipf_nat_hostmap_sz;
for (hm = softn->ipf_hm_maptable[hv]; hm; hm = hm->hm_next)
if (IP6_EQ(&hm->hm_osrc6, src) &&
IP6_EQ(&hm->hm_odst6, dst) &&