<html>

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"MS Mincho";
        panose-1:2 2 6 9 4 2 5 8 3 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"\@MS Mincho";
        panose-1:2 2 6 9 4 2 5 8 3 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";
        color:black;}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
p.StyleParagraph4Kernat14pt, li.StyleParagraph4Kernat14pt, div.StyleParagraph4Kernat14pt
        {margin-top:12.0pt;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:0in;
        margin-bottom:.0001pt;
        text-align:justify;
        line-height:14.0pt;
        font-size:12.0pt;
        font-family:"Times New Roman";
        color:black;}
p.styleparagraph4kernat14pt0, li.styleparagraph4kernat14pt0, div.styleparagraph4kernat14pt0
        {margin-top:12.0pt;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:0in;
        margin-bottom:.0001pt;
        text-align:justify;
        line-height:14.0pt;
        font-size:12.0pt;
        font-family:"Times New Roman";
        color:black;}
span.emailstyle18
        {font-family:Arial;
        color:windowtext;}
span.EmailStyle20
        {font-family:Arial;
        color:navy;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>

</head>

<body bgcolor=white lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Scott,</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Ok.&nbsp; I think I understand your
idea.&nbsp; What follows is an attempt to describe it in my own words (boy, it&#8217;s
much easier to implement something than to specify it!).</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>With regard to the heartbeat cycle, a node
can be thought of as having 3 states:</span></font></p>

<ul style='margin-top:0in' type=disc>
 <li class=MsoNormal style='color:navy'><font size=2 color=navy face=Arial><span
     style='font-size:10.0pt;font-family:Arial'>Registered &#8211; For each
     heartbeat-cycle, the node sends a heartbeat and checks to see if a
     heartbeat was received.&nbsp; If the incoming heartbeat is missed for N6
     consecutive heartbeat-cycles, then the registrar&#8217;s death is imputed
     and the state changes to &#8216;reconnecting&#8217;.</span></font></li>
 <li class=MsoNormal style='color:navy'><font size=2 color=navy face=Arial><span
     style='font-size:10.0pt;font-family:Arial'>Reconnecting &#8211; For each
     heartbeat-cycle, the node initiates a sequence of message exchanges (AMS
     devotees know the details here &#8211; for example, send a &#8216;registrar-query&#8217;
     to the server, receive a &#8216;cell-spec&#8217; from the server, send a &#8216;reconnect&#8217;
     to the restarted registrar, ...) with outcomes that fall into 3 categories.&nbsp;
     &nbsp;First, if &#8220;fully successful&#8221;, the node will receive a &#8216;reconnected&#8217;
     response from the restarted registrar (and change state to &#8216;registered&#8217;).&nbsp;
     Second, if &#8220;fully unsuccessful&#8221;, the node will receive a &#8216;you-are-dead&#8217;
     response from the registrar, and change state to &#8216;unregistered&#8217;.&nbsp;
     Third, all other possible outcomes result in no change &#8211; i.e the &#8216;reconnect&#8217;
     sequence will be initiated again during the following hearbeat cycle.</span></font></li>
 <li class=MsoNormal style='color:navy'><font size=2 color=navy face=Arial><span
     style='font-size:10.0pt;font-family:Arial'>Unregistered &#8211; This state
     applies whenever the node is neither &#8216;registered&#8217; nor &#8216;reconnecting&#8217;.&nbsp;
     We can either say that there is no heartbeat-cycle while in this state, or
     that there is a heartbeat cycle but no action is taken.</span></font></li>
</ul>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>How does this line up with your thinking?</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Tim</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></p>

<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
color=black face="Times New Roman"><span style='font-size:12.0pt;color:windowtext'>

<hr size=2 width="100%" align=center tabindex=-1>

</span></font></div>

<p class=MsoNormal><b><font size=2 color=black face=Tahoma><span
style='font-size:10.0pt;font-family:Tahoma;color:windowtext;font-weight:bold'>From:</span></font></b><font
size=2 color=black face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma;
color:windowtext'> sis-ams-bounces@mailman.ccsds.org
[mailto:sis-ams-bounces@mailman.ccsds.org] <b><span style='font-weight:bold'>On
Behalf Of </span></b>Scott Burleigh<br>
<b><span style='font-weight:bold'>Sent:</span></b> Monday, August 25, 2008 1:57
PM<br>
<b><span style='font-weight:bold'>To:</span></b> sis-ams@mailman.ccsds.org<br>
<b><span style='font-weight:bold'>Subject:</span></b> Re: [Sis-ams] 'reconnect'
timer?</span></font></p>

</div>

<p class=MsoNormal><font size=3 color=black face="Times New Roman"><span
style='font-size:12.0pt'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=3 color=black face="Times New Roman"><span
style='font-size:12.0pt'>Ray, Timothy J. (GSFC-583.0) wrote: </span></font></p>

<p class=MsoNormal><font size=2 color=black face=Arial><span style='font-size:
10.0pt;font-family:Arial'>Dear WG members,</span></font></p>

<p class=MsoNormal><font size=2 color=black face=Arial><span style='font-size:
10.0pt;font-family:Arial'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=3 color=black face="Times New Roman"><span
style='font-size:12.0pt'>4.2.7.4.2&nbsp; specifies that a node shall (in
response to imputing the death of its registrar) query the configuration server
to determine the network location of the restarted registrar, and then send a
&#8216;reconnect&#8217; message to the new registrar (and the registrar shall
respond with either a &#8216;reconnected&#8217; or
&#8216;you-are-dead&#8217;).&nbsp; Good so far.&nbsp; But what if the node does
not receive a response from the registrar?&nbsp; I don&#8217;t think our spec
covers this situation.</span></font></p>

<p class=MsoNormal><font size=3 color=black face="Times New Roman"><span
style='font-size:12.0pt'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=3 color=black face="Times New Roman"><span
style='font-size:12.0pt'>In my opinion, AMS should require the node to start a
timer when it sends the &#8216;reconnect&#8217; message.&nbsp; AMS should also
specify the action to be taken if the timer expires.</span></font></p>

<p class=MsoNormal><font size=3 color=black face="Times New Roman"><span
style='font-size:12.0pt'>Tim, good point; the spec is not as clear on this as
it should be.&nbsp; The intent is that:<br>
<br>
a)&nbsp;&nbsp; The immediate response of a node to the imputed death of a
registrar should be simply to note that the registrar is no longer running,
nothing more.&nbsp; (The same is true, really, of the effect on a registrar of
the imputed death of a configuration server.)<br>
<br>
b)&nbsp;&nbsp; At the expiration of any heartbeat period, the node is supposed
to send a heartbeat to the registrar.&nbsp; If it knows that the registrar is
running (at a known network location), great.&nbsp; If not, the node is
supposed to try to determine the new location of the restarted registrar, by
interrogating the configuration server, and then -- if that attempt was
successful -- send a reconnect message to the restarted registrar at its new
location.<br>
<br>
c)&nbsp;&nbsp; If there's no response (reconnected or you_are_dead) to the
reconnect message, no problem.&nbsp; At the expiration of the next heartbeat
period, the node will do step (b) again and this will result in (at most)
transmission of another reconnect.<br>
<br>
That is, the reconnect cycle is &quot;soft state&quot;; in effect, the heartbeat
cycle functions as the timer on reconnect messages.<br>
<br>
I like this approach, as it is pretty simple and at this point I think we want
to avoid introducing any more complexity (such as another timer) into the spec
if we can possibly help it.&nbsp; But what I have written here is really hard
to infer from the current text of 4.2.7, so I need to do some serious reworking
of this text.&nbsp; I'll try to do that this week, unless we don't agree that
this approach is okay.&nbsp; What do you think?<br>
<br>
Scott </span></font></p>

</div>

</body>

</html>