[Openais] Token retransmission timers

Muni Bajpai muniba at nortel.com
Thu Aug 25 14:45:11 PDT 2005

Hey Steve,

I already tested this this morning after Rupperts mail. Works good, with
no retransmissions



-----Original Message-----
From: Steven Dake [mailto:sdake at mvista.com] 
Sent: Thursday, August 25, 2005 3:30 PM
To: Bajpai, Muni [RICH1:B670:EXCH]
Cc: Steven Dake; openais at lists.osdl.org; McKnight, David
[RICH1:B670:EXCH]; Smith, Kristen [RICH1:B670:EXCH]
Subject: Re: [Openais] Token retransmission timers

On Wed, 2005-08-24 at 19:48 -0500, Muni Bajpai wrote:
> Hey Steve,
> Why are we resetting the timers on the receipt of a retransmitted 
> token? I think that breaks the whole logic of holding tokens as the 
> retransmit token handler will send the last token regardless of the 
> hold logic. Also reading through the spec I couldn't see the timer 
> resets in the algorithm. In addition to breaking the hold algorithm I 
> think it also breaks the basic token expiry mechanism where the exec 
> declares a token loss and goes into a reconfiguration.
> Is this intended? If so what's the logic behind it?


I spent a few hours last night thinking about your post and analyzing
how the protocol should work.

It is a valid optimization to reset the token timeout.  What this does
is ensure that only one processor starts the reconfiguration process,
instead of all processors starting the reconfig process at the same
time.  If one of the processors dies, it will stop resending tokens.
Eventually the next processor in line will fail to receive a
retransmitted token, and the token timer will expire resulting in a

Resetting the retransmission timer, however, may be dubious.  I would
expect this would result in the retransmission timer not retransmitting.
if in the example ABCD B retransmits to C, C resets, B retransmits to C,
C resets, D never gets a retransmitted token because C is always reset.
I know this doesn't happen in practice, because I have seen the
retransmitted timer occur all the time.

We will have to test the removal of this reset timer.  Try out this
patch and let me know if it works in your environment.


> Thanks.
> Muni
> diff -uNr --exclude=svn --exclude=.svn --exclude=SCCS 
> --exclude=BitKeeper --exclude=ChangeSet --exclude=init 
> --exclude=LICENSE --exclude=Makefile --exclude=man 
> --exclude=README.devmap --exclude=SECURITY --exclude=TODO 
> --exclude=CHANGELOG --exclude=conf --exclude=loc 
> --exclude=Makefile.samples --exclude=QUICKSTART --exclude=.cdtproject 
> --exclude=.project --exclude=nortel.patch 
> openais/trunk/exec/totemsrp.c openais.PATCH/exec/totemsrp.c
> --- openais/trunk/exec/totemsrp.c       2005-08-24 19:40:03 -05:00
> +++ openais.PATCH/exec/totemsrp.c       2005-08-24 19:43:28 -05:00
> @@ -2665,8 +2665,6 @@
>                  * Discard retransmitted tokens
>                  */
>                 if (instance->my_token_seq >= token->token_seq) {
> -                       reset_token_retransmit_timeout (instance);
> -                       reset_token_timeout (instance);
>                         return (0); /* discard token */
>                 }
>                 transmits_allowed = TRANSMITS_ALLOWED;
> _______________________________________________
> Openais mailing list
> Openais at lists.osdl.org https://lists.osdl.org/mailman/listinfo/openais

More information about the Openais mailing list