summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormaxim <maxim@FreeBSD.org>2005-03-23 09:26:38 +0000
committermaxim <maxim@FreeBSD.org>2005-03-23 09:26:38 +0000
commit56ed6f8b753b402b2d38dac5fb7b45e05a60ace4 (patch)
tree6c39505092e930e4cbc2c432017c32c150311cb7
parentb86551e8667db7f794531bca1d3cc35ace69dac5 (diff)
downloadFreeBSD-src-56ed6f8b753b402b2d38dac5fb7b45e05a60ace4.zip
FreeBSD-src-56ed6f8b753b402b2d38dac5fb7b45e05a60ace4.tar.gz
o Document net.inet.ip.portrange.random* sysctls.
o Correct a comment about random port allocation threshold implementation. Reviewed by: silby, ru MFC after: 3 days
-rw-r--r--share/man/man4/ip.417
-rw-r--r--sys/netinet/in_pcb.c17
2 files changed, 26 insertions, 8 deletions
diff --git a/share/man/man4/ip.4 b/share/man/man4/ip.4
index dd86514..65dd308 100644
--- a/share/man/man4/ip.4
+++ b/share/man/man4/ip.4
@@ -32,7 +32,7 @@
.\" @(#)ip.4 8.2 (Berkeley) 11/30/93
.\" $FreeBSD$
.\"
-.Dd June 14, 2004
+.Dd March 23, 2005
.Dt IP 4
.Os
.Sh NAME
@@ -331,6 +331,21 @@ In scenarios such as benchmarking, this behavior may be undesirable.
In these cases,
.Va net.inet.ip.portrange.randomized
can be used to toggle randomization off.
+If more than
+.Va net.inet.ip.portrange.randomcps
+ports have been allocated in the last second, then return to sequential
+port allocation.
+Return to random allocation only once the current port allocation rate
+drops below
+.Va net.inet.ip.portrange.randomcps
+for at least
+.Va net.inet.ip.portrange.randomtime
+seconds.
+The default values for
+.Va net.inet.ip.portrange.randomcps
+and
+.Va net.inet.ip.portrange.randomtime
+are 10 port allocations per second and 45 seconds correspondingly.
.Ss "Multicast Options"
.Pp
.Tn IP
diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c
index efdab89..3ff8615 100644
--- a/sys/netinet/in_pcb.c
+++ b/sys/netinet/in_pcb.c
@@ -148,12 +148,14 @@ SYSCTL_INT(_net_inet_ip_portrange, OID_AUTO, reservedhigh,
CTLFLAG_RW|CTLFLAG_SECURE, &ipport_reservedhigh, 0, "");
SYSCTL_INT(_net_inet_ip_portrange, OID_AUTO, reservedlow,
CTLFLAG_RW|CTLFLAG_SECURE, &ipport_reservedlow, 0, "");
-SYSCTL_INT(_net_inet_ip_portrange, OID_AUTO, randomized,
- CTLFLAG_RW, &ipport_randomized, 0, "");
-SYSCTL_INT(_net_inet_ip_portrange, OID_AUTO, randomcps,
- CTLFLAG_RW, &ipport_randomcps, 0, "");
-SYSCTL_INT(_net_inet_ip_portrange, OID_AUTO, randomtime,
- CTLFLAG_RW, &ipport_randomtime, 0, "");
+SYSCTL_INT(_net_inet_ip_portrange, OID_AUTO, randomized, CTLFLAG_RW,
+ &ipport_randomized, 0, "Enable random port allocation");
+SYSCTL_INT(_net_inet_ip_portrange, OID_AUTO, randomcps, CTLFLAG_RW,
+ &ipport_randomcps, 0, "Maximum number of random port "
+ "allocations before switching to a sequental one");
+SYSCTL_INT(_net_inet_ip_portrange, OID_AUTO, randomtime, CTLFLAG_RW,
+ &ipport_randomtime, 0, "Minimum time to keep sequental port "
+ "allocation before switching to a random one");
/*
* in_pcb.c: manage the Protocol Control Blocks.
@@ -1211,7 +1213,8 @@ in_pcbsosetlabel(so)
* allocation should be continued. If more than ipport_randomcps
* ports have been allocated in the last second, then we return to
* sequential port allocation. We return to random allocation only
- * once we drop below ipport_randomcps for at least 5 seconds.
+ * once we drop below ipport_randomcps for at least ipport_randomtime
+ * seconds.
*/
void
OpenPOWER on IntegriCloud