Date: Sun, 15 Jul 2012 08:47:34 -0700 From: Reese Faucette <reese@myri.com> To: Sepherosa Ziehau <sepherosa@gmail.com> Cc: freebsd-net@freebsd.org Subject: Re: question in tcp_do_segment() Message-ID: <5002E616.8050202@myri.com> In-Reply-To: <CAMOc5cyCQ=be8%2B2fRM=wMyRhwyw2_OMoCSTL5cWNfM58vFWFGQ@mail.gmail.com> References: <4FFF9E48.6000403@myri.com> <500060DB.3090407@myri.com> <CAMOc5cyCQ=be8%2B2fRM=wMyRhwyw2_OMoCSTL5cWNfM58vFWFGQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 7/15/2012 3:26 AM, Sepherosa Ziehau wrote: > !tcp_timer_active() means that the connection's retransmit timer is > not _set_ yet (please note, it is _not_ "has fired"). As far as I > understand this code, it in turn means that this connection doesn't > have any segments that were sent but not yet ACKed. You'd think that was the case from the name, but tcp_timer_active() calls callout_active() which checks for fired. If you want to check for "timer set" you need to use callout_pending(). -reese
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5002E616.8050202>