Subject: RE: [Sigtran] aspcong draft -congestion levels-

From: "Haresign Lincoln" <[email-masked]>
Date: Tue, 18 Oct 2005 16:05:48 -0400

Brian,

The following may be unique to SUA, but would be very nice:

Another thought, if the ASP-SG relationship is using the TID parameter
for routing, I think it would be useful to have traffic reduction on the
SG as one of the congestion methods in addition (or alternately) to
using priority/importance.  Perhaps this can be aligned with # of
congestion levels supported.

For example:

- Assume that we have 2 ASPs (ASP1 & ASP2) and both of them are using
the TID parameter to assure that all traffic for ongoing dialogs are
properly routed.

- Assume we have 8 levels of congestion.

- Assume we are using round-robin for all new incoming dialogs.

If ASP1 goes to congestion level 1, it would mean reduce _NEW_ dialogs
by 12.5%.  If ASP1 goes to congestion level 8, it would mean reduce
_NEW_ dialogs by 100%.  ASP1 will still receive messages for existing
dialogs.

Of course, this could be done with 4 congestion levels or 256, but I
think somewhere between 8 and 16 is probably sufficient.  With the
appropriate hysterisis built in at the ASP, this should prevent
unneccessary oscillation of traffic.  The ASP will slowly be able to
increase traffic after some event that may have caused congestion.

I haven't really looked at this from the other UA perspectives.

Regards,
Lincoln

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On
Behalf Of Haresign Lincoln
Sent: Tuesday, October 18, 2005 3:00 PM
To: [email-masked]
Cc: [email-masked]; Tolga Asveren
Subject: RE: [Sigtran] aspcong draft -congestion levels-

Brian,

OK, In general I have no problems with what you have indicated below. 

I'll take a look at your other drafts and provide some feedback if it
seems relevant.

Regards,
Lincoln  

-----Original Message-----
From: Brian F. G. Bidulock [mailto:[email-masked]]
Sent: Monday, October 17, 2005 7:26 PM
To: Haresign Lincoln
Cc: [email-masked]; Tolga Asveren
Subject: Re: [Sigtran] aspcong draft -congestion levels-

Lincoln,

Haresign Lincoln wrote:
(Mon, 17 Oct 2005 14:31:49)
> 
> Brian,
> 
> In general, this looks very good.  I have a few minor 
> thoughts/questions regarding your draft:
> 
> - When an ASP detects congestion in the UA layer of the ASP and sends 
> an ASPSTAT message, and it has associations to multiple SGPs within a 
> single SG, does it send the message to ALL SGPs.

Yes, I think so.  The idea is to parallel other ASPTM messages such as
ASP Active.  Other ASPTM messages are specific to an SCTP association,
so I figured the ASP Status should be as well.

> 
> - Are we at all concerned about the scenario that the SG may think an 
> ASP is congested, but the ASP is not.  In which case we are in a 
> permanent block condition.  This might be solved with either an 
> ASPSTAT ACK message, regular ASPSTAT QUERYs, or a timed procedure in 
> the SG to knock down traffic a certain level.  Not sure if we want to 
> mandate this or not and some of the previous suggestions are better
than others.

That was the idea of the ASP Status Query message, to give the SGP the
ability to verify the ASP's congestion status when the SGP deems
necessary.

For M3UA, an ASP Status Query could, for example, be initiated upon
receipt of a corresponding signalling route set test message from the
SS7 network.

For SUA, a dual timer approach could be used and ASP Status Query
launched when the timer goes to reduce the congestion level.

I think that the only requirement that needs to be placed is that the
ASP MUST respond with an ASP Status to an ASP Status Query that is
received in an expected state.

> - Are we at all concerned about the scenario that the SG doesn't 
> realize the ASP is congested even though it sent an ASPSTAT message.
> This might be solved with either an ASPSTAT ACK message or regular 
> ASPSTAT messages if the ASP continues to receive data (every nth 
> message).  Not sure if we want to mandate this or not.

Well, the problem is that ASP Status is being sent on a possibly
congested link.  It will not be lost (SCTP will not lose it) and it will
arrive in due course.  As the SGP is not really required to take any
immediate action upon receipt of the ASP Status that needs
syncrhonization between ASP and SGP, as is the case for, say, ASP
Active, I think it might not accomplish anything to acknowledge the ASP
Status.  In the other direction, the ASP Status Query is acknowledged
with an ASP Status.  Sending every n'th message might simply contribute
to SCTP association congestion in the reverse direction.

Certainly, if the association is too congested for the ASP Status to get
through, the fallback is to ASP Congestion detection local to the SGP.

> - Section 1.6.2, last paragraph: You indicate that the "SG SHOULD 
> cease passing traffic...".  Do you think this should be a SHOULD and 
> not a MAY?  This would give flexibility such as the ability to reduce 
> traffic in the case that there might not be an "importance level" in 
> the message.  It also gives flexiblity to the SG implementors.

Oh, I didn't mean cease all traffic (but that's probably the way I wrote
it).  I meant ceasing traffic below the priority/importance level that
was indicated to the ASPs in a NTFY("AS-CONGESTED") message.  This
parallels NTFY("AS-PENDING").  The idea is that the SGP notifies all
ASPs ASP-ACTIVE or ASP-INACTIVE in the AS that it is about to start
discarding messages and returning congestion notifications toward the
SS7 Network if the ASPs don't do something about it (e.g. activate
another ASP).

> - Section 1.8, paragraph 3 (and also the Implementation note [3] for 
> Section 1): I would recommend milder language rather than a definite 
> "SHOULD NOT" as I believe there are scenarios that we are working with

> where the SG can make intelligent decisions about redistribution.  It 
> is not a trivial problem, but we have some ideas for how this could be

> handled effectively (e.g., slowly bringing traffic back online).  You 
> have language warning about the dangers and I think this is good.  The

> other documents are draft and may or may not ever be accepted, so 
> specifying that it SHOULD be done in this way is, IMHO, problematic.
> Perhaps if you say that it MAY be done using the other draft methods 
> will divorce this draft from the others and we can address each draft 
> seperately.  I'm not strong on this though as you have not ruled it
out.

SHOULD NOT and MAY are about the same thing.  However, there is not only
a danger of loss or mis-sequencing of messages, but of overly congesting
the IP network by oscillating traffic between associations.  We might
even have to land on MUST.

The principle of ASP traffic management is, as noted, that the ASPs are
in control of which ASPs receive traffic (with ASP Active and ASP
Inactive).  The premise in the current UA specifications is that the SG
equally loadshares traffic within a Loadshare AS, and, also, that the SG
give due consideration to circuit or transaction state when doing so
(i.e, does not distribute messages relating to the same circuit or
transaction across diverse ASPs serving the AS.)

This is largely because the ASPs are responsible for coordination of
circuit state and transaction state between ASPs in the pool.  If the
SGP simply redistributes traffic, the ASP to which the traffic is being
offered migth not have immediate access to the circuit or transaction
state, requiring syncrhonization with the previous ASP before traffic
can be handled.  This would also contribute to congestion and
oscillation.

For SUA, if the TID or DRN labels are used, as noted on the list
recently, they effectively override any load sharing algorithm that the
SGP might use, and the SGP has no choice for redistribution of traffic.

Use of the TID and DRN labels in SUA is similar to the more general load
selection procedures presented in draft-bidulock-sigtran-loadsel and
draft-bidulock-sigtran-loadgrp.  Note that, even without LOADSEL or
LOADGRP, an SUA ASP can decide to go ASP-INACTIVE for a label range and
another ASP can decide to go ASP-ACTIVE for the same label range
resulting in the redistribution of traffic at the SGP, but under ASP
control.

This is the preferred way of doing things in the SIGTRAN UAs: the ASP is
in control.  The purpose of the NTFY("AS-CONGESTED") message is to
inform all ASPs ASP-ACTIVE or ASP-INACTIVE for the AS of the overall
congestion status of the AS so that the ASPs can decide amoungst
themselves which is going to take over traffic.

So, for example, upon congestion of an ASP and receipt of a
NTYF("AS-CONGESTED"), another ASP in the pool can decide to take steps
to transfer transaction state from the congested ASP and then take steps
for the congsted ASP to deactivate for a label range and have the
non-congested ASP activate for the same range.

We talked on the list a while back about using ASP Id to allow one ASP
to deactivate another, the idea being at the time that a healthy ASP
might be in a better position to detect a failing ASP that the failing
ASP itself.

LOADSEL and LOADGRP is a little more convenient in this regard because
the ASP can be active for more than one load selection at a given point
in time, permitting a finer granularity of segmentation of traffic and
failover.  LOADGRP even permits failover within a load selection.

> - Section 1.8, paragraph 4: I'm a little confused by this paragraph.
> The 1st sentence is not clear.  And the paragraph seems to be saying 
> to use some other method [CORID] rather than the ASPCONG draft.  I 
> understand the principle you are specifying to measure outstanding 
> traffic.  I'm just not sure what the point of the last sentence is.

Just thinking out loud about some other possibilities.  This is a first
cut at a draft.  Don't worry, none of the text is unchangeable.  I was
just trying to capture some thoughts in the Issues and Conclusions
sections.  These sections would likely be removed altogether if the
draft moves toward finalization.

> - Section 3.1.1:  Do you think it would be practial to use some of the

> "reserved" bits as an indicator to what the SG SHOULD do?  For 
> example, if we ar not in the pure discard mode we could take certain
actions:
> discard, reduce traffic, redistribute traffic (I know you are not 
> excited about this last one).  This might be practical when there is 
> not a priority/importance in the message and/or we don't want to 
> purely discard everything.

I agree with the purpose, it is the subject of
draft-bidulock-sigtran-loadsel and draft-bidulock-sigtran-loadgrp.  I
believe that the ASP should not recommend discard, reduction or
redistirbution, but should, instead, command it.  The mechanisms
described in these two load distribution drafts provides the ASP with
protocol elements and procedures for commanding the SGP exactly which
traffic flows to act upon using definitions agreed upon between ASP and
SGP.

> - There are a few very minor grammatical errors.  I don't know if you 
> are interested in what I found at this point since it may undergo 
> further edits.

I was typing quite quickly.  I appologize for the initial sorry state of
the grammar and spelling.

> Overall, I think this is very good and it definitely resolves all the 
> problems that I was looking to be solved.  I'm uncertain what we 
> should do with the SCON.  Since SCON is support in IPSP, and you can 
> have an ASP work identically to an IPSP SE client.....I have no good 
> answer for this.

I was not recommending getting rid of SCON altogether, just in the
ASP->SG direction.

Thanks for the comments.  Please take a look at the LOADSEL and LOADGRP
drafts as I am quite certain that some of the issues that you have with
existing load distribution between SGP and ASP can be solved by
approaches similar to those outlined in those drafts.

--brian

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

______________________________________________________________________
  This email message has been scanned by PineApp Mail-Secure and has
been found clean.

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

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

---

From: "Brian F. G. Bidulock" <[email-masked]>
Date: Tue, 18 Oct 2005 18:48:58 -0600

Lincoln,

I think it would be a better idea to use TUA
(draft-bidulock-sigtran-tua-04.txt in the group of drafts that I just
submitted) instead of expecting an SUA SG to do anything with TID.  Just
to extract the TID would require most of a fully functional TCAP TR
sublayer, and a SS7 TCAP Variant specific TCAP TR sublayer at that.  For
SUA we pretty much drew the line at using a TID blindly to distribute
traffic over ASPs, and any message not containing a destination
transaction ID are load shared on some other basis, along the lines of
your example.

However, the SUA SG is not required to identify a messages without a TID
as being a "new transaction".  To do so would require another level of
TCAP message parsing and state machine that does not make sense at an SG
containing only up to an SCCP layer.  For example, in 3GPP MAP, there
are a good number of procedures that require correlated trasnactions.
To ensure that all correlated transactions arrive at the same ASP would
require a state machine.  Once you have a state machine, TUA makes much
more sense.

We only left TID in the SUA spec because there was no TUA to address
requirements for distribution of transactions across.

So, IMO TUA better addresses handling of TCAP transaction and dialogues
between SGP and ASP, and load selection and distribute is best
controlled by an ASP using the mechanisms of LOADSEL and LOADGRP.  See

  http://www.openss7.org/docs/draft-bidulock-sigtran-tua-04.txt
  http://www.openss7.org/docs/draft-bidulock-sigtran-tua-04.ps
  http://www.openss7.org/docs/draft-bidulock-sigtran-tua-04.pdf

  http://www.openss7.org/docs/draft-bidulock-sigtran-loadsel-04.txt
  http://www.openss7.org/docs/draft-bidulock-sigtran-loadsel-04.ps
  http://www.openss7.org/docs/draft-bidulock-sigtran-loadsel-04.pdf

  and

  http://www.openss7.org/docs/draft-bidulock-sigtran-loadgrp-04.txt
  http://www.openss7.org/docs/draft-bidulock-sigtran-loadgrp-04.ps
  http://www.openss7.org/docs/draft-bidulock-sigtran-loadgrp-04.pdf

(These should appear on the ietf internet-draft servers soon.)

--brian

Haresign Lincoln wrote:                      (Tue, 18 Oct 2005 16:05:48)

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