Subject: RE: [Sigtran] Sigtran Plugtest - DAY 1: REG RSP

From: "J.Javier Pastor (KI/EEM)" <[email-masked]>
Date: Thu, 4 Sep 2003 08:46:04 +0200

Brian, 

I also agree that ASPUP MUST be sent. But I don't agree with:
- ASPUP will move the ASP to INACTIVE, not to DOWN. 
- I don't find in the RFC is that ASP-UP deregisters all the RKs...  :-/

Based on this, I would consider the following flow:

        REG REQ (RK1) -------------->
                                     <-------------- REG RSP (success, rc=1)
        REG REQ (RK2) -------------->
                                     <-------------- REG RSP (success, rc=2)
        ASPAC   (rc1) -------------->
                                     <-------------- ASPAC Ack (rc1)        

                                     <-------------- DATA (rc1)
                                     <-------------- DATA (rc1)
                                     <-------------- DATA (rc1)
                                     <-------------- DATA (rc1)
                                     <-------------- DATA (rc1)
                                     <-------------- DATA (rc1)
                                     <-------------- DATA (rc1)

        ASP goes down, then comes back up

        ASPUP         -------------->
                                       SG moves ASP to ASP-INACTIVE state
                                       and send an ERROR with "unexpected
                                       message" according to RFC3332-4.3.4.1
                                       This means state synchronization.

                                     <-------------- ASPUP Ack

                                     <-------------- ERROR
        REG REQ (RK1) -------------->
                                     <-------------- REG RSP (error, already reg, rc=1)
        This allows RC synchronization
        between both nodes.

        REG REQ (RK2) -------------->
                                     <-------------- REG RSP (error, already reg, rc=2)

                                     SG will not send data since ASP state
                                     is ASP-INACTIVE

        ASPAC   (rc1) -------------->
                                     <-------------- ASPAC Ack (rc1)        

                                     <-------------- DATA (rc1)
                                     <-------------- DATA (rc1)
                                     <-------------- DATA (rc1)
                                     <-------------- DATA (rc1)
                                     <-------------- DATA (rc1)
                                     <-------------- DATA (rc1)
                                     <-------------- DATA (rc1)

Don't you think that including RC in second REG RSP is needed for synchronization?

Cheers // Javier.

> -----Original Message-----
> From: Brian F. G. Bidulock [mailto:[email-masked]]
> Sent: miércoles, 03 de septiembre de 2003 15:04
> To: J.Javier Pastor (KI/EEM)
> Cc: 'Ken Morneault'; [email-masked]
> Subject: Re: [Sigtran] Sigtran Plugtest - DAY 1
> 
> 
> J.Javier,
> 
> J.Javier Pastor (KI/EEM) wrote:                               
>                     (Wed, 03 Sep 2003 13:05:09)

> > 
> > 
> > > 3)  The latest M3UA IG missed an issue that had been discussed
> > > on the Sigtran email list.  Given the following scenario:
> > > 
> > >            ASP                                  SG
> > >           --------                              ------------
> > >        REG REQ  (RK1) --------->
> > >                                 <---------     REG RSP 
> (success, rc=2)
> > > 
> > >      ASP goes down, then comes back up
> > > 
> > >        REG REQ  (RK1) --------->
> > >                                 <---------     REG RSP (error 
> > > - routing key already reg, rc=2)
> > > 
> > > It is important that the M3UA IG note that the REG RSP 
> > > (error-routing key
> > > already registered) MUST contain the Routing Context to 
> > > ensure both sides
> > > are in-sync.
> > > 
> > 
> > We'll include it if nobody objects.
> 
> Why does the ASP not send ASPUP when it comes up?  When an 
> ASP goes down it
> had better send ASPUP when it comes up regardless of whether 
> the association
> is intact or not.  ASPUP is enough for the SG to deregister 
> all routing keys
> for the association.  Consider the following:
> 
>         REG REQ (RK1) -------------->
>                                      <-------------- REG RSP 
> (success, rc=1)
>         REG REQ (RK2) -------------->
>                                      <-------------- REG RSP 
> (success, rc=2)
>         ASPAC   (rc1) -------------->
>                                      <-------------- ASPAC 
> Ack (rc1)        
> 
>                                      <-------------- DATA (rc1)
>                                      <-------------- DATA (rc1)
>                                      <-------------- DATA (rc1)
>                                      <-------------- DATA (rc1)
>                                      <-------------- DATA (rc1)
>                                      <-------------- DATA (rc1)
>                                      <-------------- DATA (rc1)
> 
>         ASP goes down, then comes back up
> 
>                                      <-------------- DATA (rc1)
>         ERR (Invalid RC) ----------->
>                                      <-------------- DATA (rc1)
>         ERR (Invalid RC) ----------->
>                                      <-------------- DATA (rc1)
>         ERR (Invalid RC) ----------->
>                                      <-------------- DATA (rc1)
>         ERR (Invalid RC) ----------->
>                                      <-------------- DATA (rc1)
>         ERR (Invalid RC) ----------->
> 
>         REG REQ (RK1) -------------->
>                                      <-------------- REG RSP 
> (already reg, rc=1)
> 
>         silent discard              X<-------------- DATA (rc1)
>         silent discard              X<-------------- DATA (rc1)
>         silent discard              X<-------------- DATA (rc1)
>         silent discard              X<-------------- DATA (rc1)
>         silent discard              X<-------------- DATA (rc1)
> 
>         REG REQ (RK2) -------------->
>                                      <-------------- REG RSP 
> (already reg, rc=2)
>         ASPAC   (rc1) -------------->
>                                      <-------------- ASPAC 
> Ack (rc1)        
> 
>                                      <-------------- DATA (rc1)
>                                      <-------------- DATA (rc1)
>                                      <-------------- DATA (rc1)
>                                      <-------------- DATA (rc1)
>                                      <-------------- DATA (rc1)
>                                      <-------------- DATA (rc1)
>                                      <-------------- DATA (rc1)
> 
> This ASP that goes down and comes back up without sending 
> ASPUP is completely
> unworkable.  If the ASP (correctly) sent ASPUP when it came 
> back up, you would
> have:
> 
>         REG REQ (RK1) -------------->
>                                      <-------------- REG RSP 
> (success, rc=1)
>         REG REQ (RK2) -------------->
>                                      <-------------- REG RSP 
> (success, rc=2)
>         ASPAC   (rc1) -------------->
>                                      <-------------- ASPAC 
> Ack (rc1)        
> 
>                                      <-------------- DATA (rc1)
>                                      <-------------- DATA (rc1)
>                                      <-------------- DATA (rc1)
>                                      <-------------- DATA (rc1)
>                                      <-------------- DATA (rc1)
>                                      <-------------- DATA (rc1)
>                                      <-------------- DATA (rc1)
> 
>         ASP goes down, then comes back up
> 
>         ASPUP         -------------->
>                                        SG moves ASP to down 
> state deactivates
>                                        AS1 (stopping traffic) 
> and deregisters
>                                        RK1 and RK2.
>                                      <-------------- ASPUP 
> Ack              
>         REG REQ (RK1) -------------->
>                                      <-------------- REG RSP 
> (success, rc=1)
>         REG REQ (RK2) -------------->
>                                      <-------------- REG RSP 
> (success, rc=2)
> 
> So, if this ASP would properly send ASPUP per the RFC (or 
> even better ABORT
> the association) there is no need for this "already registered" error.
> Besides it conflicts with "Cannot Support Unique Routing".
> 
> In short, I object to the change.
> 
> > 
> > > 4)  A question as to whether or not NA could be removed 
> from the Data
> > > message.  However, a quick poll showed that several 
> implementations do
> > > send NA in the Data message if NA is provisioned.
> > 
> > I would recommend to keep this as there seems that some 
> people are using it.
> 
> It is necessary if there is a single configured AS (no RC) that serves
> multiple network appearances.  Leave it as a configurable option.
> 
> > 
> > >
> > > 5)  A question as to whether or not there is any value in 
> having the
> > > SG reflect the Traffic Mode in ASP Active Ack.
> > 
> > I don't think any modification is needed in the ASPAC-Ack. 
> Whenever a SG
> > sends an ASPAC-Ack, it agrees with the TMT sent in the ASPAC and it
> > implements it. Otherwise, following the RFC, the SG will 
> send an ERROR
> > message. In this way SG  and AS will be always sync'ed
> 
> The TMT is already optional in both the ASP Active and ASP Active Ack.
> 
> The use for including the TMT in the ASP Active Ack is when the TMT is
> provisioned at the SG and not at the ASP.  The ASP may then discover
> the TMT by sending ASP Active with no TMT and receiving TMT in ASP
> Active Ack.
> 
> In most scenarios, TMT will be provisioned on both sides and it is not
> necessary to include it in either message.
> 
> The RFC allows for all scenarios and does not need to be changed.
> 
> --brian
> 
> > 
> > 
> > > 
> > > 6)  Given a SG sends DRST (APC1) / SCON (APC1) to an ASP then 
> > > later sends a
> > > DAVA (APC1).  Does the SG need to resend SCON (APC1) if 
> the congestion
> > > state has not changed?  
> > > 
> > I agree with Tolga and Brian, DAVA does not mean congestion change.
> > 
> > 
> > Cheers // Javier. 
> > 
> > _______________________________________________
> > Sigtran mailing list
> > [email-masked]
> > https://www1.ietf.org/mailman/listinfo/sigtran
> 
> -- 
> Brian F. G. Bidulock
> [email-masked]
> http://www.openss7.org/
> 

_______________________________________________
Sigtran mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/sigtran

---

From: "Brian F. G. Bidulock" <[email-masked]>
Date: Thu, 4 Sep 2003 00:58:17 -0600

J.Javier,

J.Javier Pastor (KI/EEM) wrote:                                                   (Thu, 04 Sep 2003 08:46:04)
> - I don't find in the RFC is that ASP-UP deregisters all the RKs...  :-/

I don't find in the RFC that it doesn't.

--brian

-- 
Brian F. G. Bidulock
[email-masked]
http://www.openss7.org/

---

From: "Brian F. G. Bidulock" <[email-masked]>
Date: Thu, 4 Sep 2003 01:07:23 -0600

J.Javier,

The ASP can always send ASP-Down before ASP-Up and force the
deregistration from all RKs per RFC 3332-4.3.4.2. If it has
crashed in this rather absurd way, it is the best way to
synchronize with the SGP (start from scratch).

Aborting the association is even better.

I don't see the need to add messages where two procedures
exist to accomplish what is necessary: (1) send ASP-Down,
(2) ABORT or SHUTDOWN the association.

I also don't see the need to accomodate rather strange
implementations where some part of the host is alive (the
SCTP association) and some part is dead (M3UA), and the
part that is alive does not take proper action when the
the other is dead (aborting the association).

--brian

Brian F. G. Bidulock wrote:                                                       (Thu, 04 Sep 2003 00:58:17)

-- 
Brian F. G. Bidulock
[email-masked]
http://www.openss7.org/

---

From: Umesh Vats <[email-masked]>
Date: Thu, 4 Sep 2003 04:47:10 -0700 (PDT)

Hi  

its not necessary that ASP goes down. ASP may remain UP but miss the
original REG-RSP message. In this case, the RC received from SG in  the
REG-RSP(failure) message can be correlated with the
routing key sent by ASP in second REG-REQ message for same RK.

Brian,

During last discussion I think we agreed on the proposal for new error
code in REG-RSP with RC included.

Thanks
Umesh

---

From: "Brian F. G. Bidulock" <[email-masked]>
Date: Thu, 4 Sep 2003 06:06:22 -0600

Umesh,

Ah yes, the unreliable application using the reliable transport.  I'm
sure such an implementation would always find new an interesting ways
to fail.  Such an implementtation should not expect M3UA to make up for
the implementation's deficiencies.

I don't have a problem if the SG chooses to include the existing RC
value in any existing error message to which one applies, but adding
an error message is pointless.  One already exists: cannot support
unique routing.

Also, I don't seet that you can require the SG to send RC, when your
course is clear: when your ASP gets so messed up and can't remember
the state of anyting and has lost a bunch of important messages and 
is getting behind -- send ASP Down, or better -- abort the association
and start from scratch with a new one.  Then the state on both sides
will be quickly synchronized without waiting for the addition of a
plethora of new messages to the protocol, nor requiring waitin for
them to be exchanged.

I am still amazed by your implementation that loses messages.  What
that a concious design choice?  Did you choose to discard messages
ever so often just to make things interesting (and difficult)?  Or
is your SCTP implementation so poor that it has kicked the `R' right
out and it is only 'eliable' transport now?  ;;

--brian

Umesh Vats wrote:                                                                    (Thu, 04 Sep 2003 04:47:10)

-- 
Brian F. G. Bidulock
[email-masked]
http://www.openss7.org/

---

From: Vivek Toky <[email-masked]>
Date: Thu, 4 Sep 2003 05:39:46 -0700 (PDT)

Hi Brian,
 I think we already concluded this discussion and we have already agreed
on this, which is obvious from your mail. For your convenience I have
attached it below. So it will be better for you and benefit others, if you
go back to this mail thread and read it before sending any reply.

thanks,
Vivek.

From: [email-masked] [mailto:[email-masked]]On Behalf Of
Brian F. G. Bidulock
Sent: Wednesday, July 16, 2003 5:51 PM
To: VIvek Toky
Cc: Umesh Vats; SIGTRAN e-mail list
Subject: Re: [Sigtran] M3UA : RC in unsuccesful REG-RSP

VIvek,

Except the purpose of "Error - Cannot Support Unique Routing" was for
overlapping routing keys. In the case where the requested RK overlaps with
a number of RKs, there are multiple existing RC values. Which one would it
return? Also, because there are overlapping RKs does not mean that the
requesting ASP is registered for any of them. In that case any of the
overlapping RCs included would have either no meaning or could be poorly
interpreted by the ASP. That is if one returns an RC value to which the
ASP is not registered and the ASP send DEREG REQ, it will generate another
error. Which is bad. No, if the RC is actually registered to the ASP and
usable by the ASP, the return should be Success. And this is what I
proposed. That if
the LRK-Id is the same as the LRK-Id that the ASP is registered against
the RK and the RK matches, then the return would be Success. In the
overlapping
case, or where the RK matches and the LRK-Id does not match, the result
would
be "Error - Cannot Support Unique Routing".

Using the LRK-Id serves both needs.

Another possibility would be to return a different error code for a
matching already registered RK. Such as "Error - Already Registered" in
which case the
RC could be returned insted of 0 as you suggest. This would give the ASP
enough information to either start using the registered RC, or use the RC
in a DEREG REQ. That text would look something like:

 12 Error - Routing Key Already Registered

 If the SGP determines that the received RK is already registered, the
 SGP returns a Registration Response message to the ASP, containing a
 Regsistration Result "Error - Routing Key Already Registered" and
 includes the Routing Context value of the existing Routing Key in the
 Registration Response.

We would also have to change the passage that says that RC is always
zero for outher than "Successful" to other than "Successful" or "Error -
Routing Key Already Registered".

This would also permit an ASP to audit existing registrations by sending
a REG REQ for an existing RK and comparing the returned RC.

--brian

---

From: "Brian F. G. Bidulock" <[email-masked]>
Date: Thu, 4 Sep 2003 06:42:59 -0600

Vivek,

Why do you not send ASP Down?

--brian

Vivek Toky wrote:                                                                    (Thu, 04 Sep 2003 05:39:46)

-- 
Brian F. G. Bidulock
[email-masked]
http://www.openss7.org/

---

From: Vivek Toky <[email-masked]>
Date: Thu, 4 Sep 2003 05:49:07 -0700 (PDT)

On Thu, 4 Sep 2003, Brian F. G. Bidulock wrote:
Hi Brian,
 Please go through the thread and you will find the answer

-Vivek.

---

From: "Brian F. G. Bidulock" <[email-masked]>
Date: Thu, 4 Sep 2003 13:24:41 -0600

Vivek,

I didn't see the answer in the thread.

Why don't you send ASP Down?

--brian

Vivek Toky wrote:                                                                    (Thu, 04 Sep 2003 05:49:07)

-- 
Brian F. G. Bidulock
[email-masked]
http://www.openss7.org/

---

From: "Vivek Toky" <[email-masked]>
Date: Thu, 11 Sep 2003 11:23:07 -0700

Hi Brain,
 Sorry for replying late. The reason for not sending ASP down is that I
think , implementations should be able to recover from data inconsistencies
(if present),
without stopping all the traffic for that ASP. Also, as you said  "This
would also permit an ASP to audit existing registrations by sending a REG
REQ for an existing RK and comparing the returned RC".

I hope this helps...

-Vivek

-----Original Message-----
From: Brian F. G. Bidulock [mailto:[email-masked]]
Sent: Thursday, September 04, 2003 12:25 PM
To: Vivek Toky
Cc: Umesh Vats; J.Javier Pastor (KI/EEM); 'Ken Morneault';
[email-masked]
Subject: Re: [Sigtran] Sigtran Plugtest - DAY 1: REG RSP

Vivek,

--brian

Vivek Toky wrote:
(Thu, 04 Sep 2003 05:49:07)
(success, rc=1)
(success, rc=2)
> > > > > >         REG REQ (RK1) -------------->
(error, already reg, rc=1)
> > > > > >         REG REQ (RK2) -------------->
(error, already reg, rc=2)
> > > > > > > > > on the Sigtran email list.  Given the following scenario:
                     ------------
> > > > > > > > >      ASP goes down, then comes back up
(error

--
Brian F. G. Bidulock
[email-masked]
http://www.openss7.org/

---

From: "Brian F. G. Bidulock" <[email-masked]>
Date: Thu, 11 Sep 2003 13:06:32 -0600

Vivek,

Ok.  I give in.  I agree with the change.

--brian

Vivek Toky wrote:                                                                    (Thu, 11 Sep 2003 11:23:07)
> (Thu, 04 Sep 2003 05:39:46)
> > > > Hi Brian,

-- 
Brian F. G. Bidulock
[email-masked]
http://www.openss7.org/