diff --git a/share/man/man4/ip.4 b/share/man/man4/ip.4 index dd86514d1c6b..65dd308d304d 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 efdab898858d..3ff86158a2ae 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