Re: Processor Outage and Resynchronizing Sequence Numbers

"Brian F. G. Bidulock" <[email protected]>
Newsgroups gmane.ietf.sigtran
Organization http://www.openss7.org/
Message-ID <[email protected]>
Hecht,

Hecht Martin wrote:                           (Tue, 24 Feb 2009 13:43:06)
> Brian,
> 
> I'll have to think about your response.
> 
> By the way, am I correct in my understanding that the synchronization
> actually takes place according to the READY messages that must be
> exchanged?
> 
> M2PA (at both the LPO and RPO ends) uses the BSN value in the
>    received Link Status Ready message to resynchronize its sequence
>    numbers, if this is required by MTP2.  M2PA SHALL NOT resume
>    transmitting User Data messages until it has sent the Link Status
>    Ready message.

Well now, here's the rub.  MTP2 requires that when either side clears
its RTB that it resynchronize by setting FSNT to BSNR; however, FSNT
is only different from BSNR when some message in the RTB has failed
to reach the other end.  This cannot happen for M2PA as specified in
the RFC because SCTP is a reliable transport and both the PROCESSOR-
RECOVERED and READY messages are sent ordered on the data stream.
This means that all messages sent before it are received before these
messages are received.  Therefore, FSNT and BSNR must always be the
same and is is only necessary to set FNST to BSNR "if this is required
by [the] MTP2 [state machine used]".

So, put short, because SCTP does not lose messages, and as long as
PROCESSOR-RECOVERED and the READY messages in this sequence are sent
on the data stream, resynchronization is not necessary.

An example:

For ANSI T1.111.3 the following is the scenario:


 SP A BSN:FSN                  FSN:BSN SP B

 FISU [7F:7F] --------------->
              <--------------- [7F:7F] FISU
 MSU  [7F:00] -----\
 MSU  [7F:01] -----X\ lost
 MSU  [7F:02] -----\ \
 MSU  [7F:03] -----\\ \
 MSU  [7F:04] -----\\X-\------ [7F:7F] SIPO
 MSU  [7F:05] -----\X\\ \---->
 MSU  [7F:06] -----X\\\\
 MSU  [7F:07] ----X\\\\\\---->
              <--/ \\\\\\---->
                    \\\\\---->
                     \\\\---->
                      \\\---->
                       \\---->
                        \---->
              <--------------- [7F:7F] SIPO
 FISU [7F:07] --------------->
               long duration
 RTB contains                  RB contains
 MSUS 00 thru 07               MSU 00 only
 FSNT is 07
                               Ack all accepted
 Clear RTB                     MSUs with ACK withheld

              <--------------- [7F:00] FISU
 Set FSNT to BSNR
 FSNT is now 00                Clear RB

 MSU  [7F:01] ---------------->
              <--------------- [7F:01] FISU


Notice that if MSU 01 could not be lost or missequenced then
BSNR after acking withheld MSUs would match FSNT.

The M2PA case is:

 SP A BSN:FSN                  FSN:BSN SP B

 LSR  [7F:7F] --------------->
              <--------------- [7F:7F] LSR
 DATA [7F:00] -----\
 DATA [7F:01] -----\\
 DATA [7F:02] -----\\\
 DATA [7F:03] -----\\\\
 DATA [7F:04] -----\\X++------ [7F:7F] LSPO
 DATA [7F:05] -----\X\\\\---->
 DATA [7F:06] -----X\\\\\---->
 DATA [7F:07] ----X\\\\\\---->
              <--/ \\\\\\---->
                    \\\\\---->
                     \\\\---->
                      \\\---->
                       \\---->
                        \---->
               long duration

 RTB contains
 MSUs 00 thru 07
 FSNT is 07
                               Ack all accepted
 Clear RTB                     MSUS with ACKs withheld

              <--------------- [7F:07] LSPR
 Set FSNT to BSR
 FSNT is still 07

 LSR  [7F:07] --------------->
              <--------------- [7F:07] LSR
 MSU  [7F:08] --------------->
              <--------------- [7F:08] ACK

So, again, because the LSPR and LSR cannot overtake DATA when
sent ordered on the data stream, M2PA does not require
resynchronization of sequence numbers.

>
> In the test below I don't see the SP A responding with a READY after
> receiving the READY from SP B.  Is that just understood?

We changed to "it has sent" from "it has received" in 48 hours
before the RFC was released.  But of course you are right, there
should be a READY sent by the recovering end before it resumes
sending DATA.

--brian

-- 
Brian F. G. Bidulock
[email protected]
http://www.openss7.org/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.