tcp: Create seperate local port spaces for laddr/faddr/fport triple
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Tue, 12 Apr 2011 08:27:46 +0000 (16:27 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Tue, 12 Apr 2011 08:27:46 +0000 (16:27 +0800)
commitdb26865d2a265124ff11f4f0b2cbceb752d0b024
treeafc96d907d7c0479f7fda9985e58480fb7ae96b0
parentb25d27f40e28da38782c8e31935a1013317aef3f
tcp: Create seperate local port spaces for laddr/faddr/fport triple

TCP local ports could easily get depleted under stress due to
TIME_WAIT state.  Since TIME_WAIT state is used to protect
laddr/lport/faddr/fport, we actually just need to make sure that
lport is not duplicated for each laddr/faddr/fport triple intead of
making sure that lport is not duplicated globally.

Add sysctl net.inet.tcp.lportext to enable seperate local port spaces
for laddr/faddr/fport triple; it is disabled by default.
sys/netinet/in_pcb.c
sys/netinet/in_pcb.h
sys/netinet/tcp_usrreq.c