Subject: Re: CVS commit: src
To: None <rpaulo@netbsd.org>
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
List: tech-net
Date: 10/10/2006 18:31:34
> Module Name:	src
> Committed By:	rpaulo
> Date:		Mon Oct  9 16:27:08 UTC 2006
> 
> Modified Files:
> 	src/distrib/sets/lists/comp: mi
> 	src/lib/libc/gen: sysctl.3
> 	src/share/man/man9: Makefile
> 	src/sys/netinet: files.netinet tcp.h tcp_input.c tcp_output.c
> 	    tcp_subr.c tcp_timer.c tcp_usrreq.c tcp_var.h
> Added Files:
> 	src/share/man/man9: tcp_congctl.9
> 	src/sys/netinet: tcp_congctl.c tcp_congctl.h
> 
> Log Message:
> Modular (I tried ;-) TCP congestion control API. Whenever certain conditions
> happen in the TCP stack, this interface calls the specified callback to
> handle the situation according to the currently selected congestion
> control algorithm.
> A new sysctl node was created: net.inet.tcp.congctl.{available,selected}
> with obvious meanings.
> The old net.inet.tcp.newreno MIB was removed.
> The API is discussed in tcp_congctl(9).
> 
> In the near future, it will be possible to selected a congestion control
> algorithm on a per-socket basis.
> 
> Discussed on tech-net and reviewed by <yamt>.

tcp_reno_newack does:

	if (SEQ_GEQ(th->th_ack, tp->snd_recover))
		tp->snd_cwnd = min(cw + incr, TCP_MAXWIN << tp->snd_scale);

but snd_recover is not updated unless we're doing fast retransmit.
what's the intention of the code?

YAMAMOTO Takashi