tcp: Allow pure asynchronized pru_send
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Thu, 3 Nov 2011 13:38:49 +0000 (21:38 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Thu, 3 Nov 2011 13:38:49 +0000 (21:38 +0800)
commitf2a3782e247aa32d0930dc0b99077f323e3815d7
tree00f1718af01c8af6dcd0486f9d50cc0690d7128d
parentcfc238dce48d275d9798766ff80957e03059ba33
tcp: Allow pure asynchronized pru_send

- net.inet.tcp.sosnd_async is added to allow pure asynchronized pru_send.
  It is default to off currently.
- To prevent soclose() and soshutdown() from interfering TCP processing on
  the loopback interface, so_pru_sync() is added, which will make sure
  that so_pru_disconnect() and so_pru_shutdown() run only after all of the
  previous sent packets had been requeued to netisr (the semantics of the
  original half asynchronized pru_send).
sys/kern/uipc_msg.c
sys/kern/uipc_socket.c
sys/netinet/tcp_input.c
sys/sys/socketops.h