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