Skip site navigation (1)Skip section navigation (2)
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>