Links

GitHub

Open HUB

Quick Links

Download

STREAMS

SIGTRAN

SS7

Hardware

SCTP

SIGTRAN

SCTP

UA

TUA

SUA

ISUA

M3UA

M2UA

M2PA

IUA

TALI

SS7 over IP

Documentation

FAQ

SIGTRAN

Design

Conformance

Performance

References

Man Pages

Manuals

Papers

Home

Overview

Status

Documentation

Resources

About

News

draft-bidulock-sigtran-corid-00

Description: Request For Comments

You can download source copies of the file as follows:

draft-bidulock-sigtran-corid-00.txt in text format.
draft-bidulock-sigtran-corid-00.ps in ps format.
draft-bidulock-sigtran-corid-00.pdf in pdf format.

Listed below is the contents of file draft-bidulock-sigtran-corid-00.txt.




Network Working Group                                     Brian Bidulock
INTERNET-DRAFT                                       OpenSS7 Corporation

Expires in six months                                   January 10, 2002

             Correlation Id and Hearbeat Procedures (CORID)
        Supporting Lossless Fail-Over between SCTP Associations
                                  for
                   Signalling User Adaptation Layers
                 <draft-bidulock-sigtran-corid-00.txt>

Status of this Memo

      This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 or RFC 2026.  Internet-Drafts are
   working documents of the Internet Engineering Task Force (IETF), its
   areas, and its working groups.  Note that other groups may also
   distribute working documents as Internet-Drafts.

      Internet-Drafts are draft documents valid for a maximum of six
   months and may be updated, replaced, or obsoleted by other documents
   at any time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as 'work in progress'.

      The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

      The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html

      To learn the current status of any Internet-Draft, please check
   the Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
   munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast), or
   ftp.isi.edu (US West Coast).

Abstract

      This Internet-Draft describes Correlation Id and Heartbeat
   procedures to support lossless fail-over between SCTP [RFC 2960]
   associations for Signalling User Adaptation Protocols [M3UA, SUA,
   TUA] above MTP3 [Q.704] supporting the concept of a Routing Context.
   These procedures permit lossless fail-over between Application Server
   Processes (ASPs) at a Signalling Gateway (SG) and fail-over between
   Signalling Gateway Processes (SGPs) and Signalling Gateways (SGs) at
   an Application Server Process (ASP).  Lossless fail-over permits
   these fail-overs to occur without loss or duplication of UA-User
   messages.

B. Bidulock                    Version 0.0                        Page 1

Internet Draft                  UA CORID                January 10, 2002

1.  Introduction

1.1.  Scope

      This Internet-Draft describes Correlation Id and Heartbeat (CORID)
   procedures to support lossless fail-over between SCTP [RFC 2960]
   associations for Signalling User Adaptation Protocols [M3UA, SUA,
   TUA] above MTP3 [Q.704] supporting the concept of a Routing Context.
   These procedures permit lossless fail-over between Application Server
   Processes (ASPs) at a Signalling Gateway (SG) and fail-over between
   Signalling Gateway Processes (SGPs) and Signalling Gateways (SGs) at
   an Application Server Process (ASP).  CORID permits these fail-overs
   to occur without loss or duplication of UA-User messages.

      UA implementations with CORID are intended to be compatible with
   UA implementations not supporting this configuration; however, the
   full benefits acheived by the CORID procedures will not be realized
   unless implementations at both endpoints implement CORID.

1.2.  Terminology

      CORID supplements the terminology used in the UA documents [M2UA,
   M3UA, SUA, TUA] by adding the following terms:

   Changeback - the MTP3 [Q.704] procedure for redirecting signalling
       traffic back to a primary linkset from an alternate linkset.

   Changeover - the MTP3 [Q.704] procedure for diverting signalling
       traffic from a failed primary linkset to an alternate linkset.

   Lossless Fail-Over - is mechanism for fail-over between SCTP [RFC
       2960] associations (i.e, between ASPs, IPSPs, SGPs or SGs) that
       provides for the elminitation of duplication or loss of UA-User
       messages between SG and AS.

   Message Duplication - a situation where multiple copies of a UA-User
       message arrives at a Signalling Endpoint.

   Message Loss - a situation where instances of a UA-User message is
       lost in transit between Signalling Endpoints.

   Message Mis-sequencing - a situation where UA-User messages that are
       intended to arrive in sequence, arrive at a terminating
       Signalling Endpoint in an order other than the order in which the
       messages were transmitted at the originating Signalling Endpoint.

   Signalling Endpoint (SEP) - in this document, a Signalling Enpoint is
       an SS7 SEP [Q.700] or an Application Server.

   Signalling Peer Process (SPP) - refers to an ASP, SGP or IPSP.

   Signalling User Adaptation Layer (UA) - one or more of the Stream
       Control Transmission Protocol (SCTP) [RFC 2960] SS7 Signalling
       User Adaptation Layers [M2UA, M3UA, SUA, TUA] supporting the

B. Bidulock                    Version 0.0                        Page 2

Internet Draft                  UA CORID                January 10, 2002

       Correlation Id parameter and the BEAT message.

   Time-controlled Changeover - the MTP3 [Q.704] procedure for diverting
       signalling traffic from a failed primary linkset to an alternate
       linkset where sequence number information cannot be exchanged
       between signalling points or where it is undesirable to use the
       normal changeover procedures.

1.3.  Overview

      The existing UA [M3UA, SUA, TUA] procedures do not include
   procedures to avoid loss or duplication of messages when a UA peer
   must fail-over between SCTP [RFC 2960] associations between diverse
   Application Server Processes (ASPs), Signalling Gateway Processes
   (SGPs), Signalling Gateways (SGs), and IP Signalling Processes
   (IPSPs).

      CORID provides procedures to eliminate message loss, duplication
   or mis-sequencing under all failure, deactivation, recovery and
   activation scenarios.  CORID provides the following capabilities that
   are not provided for in the existing UA specifications:

    o Support for elimintating mis-sequencing of UA-User messages at
      signalling endpoints (Application Servers or SS7 SEPs) when
      diverting messages between ASPs, SGPs, SGs, or IPSPs by supporting
      BEAT procedures analogous to the MTP3 [Q.704] Changeback
      procedure.

    o Support for eliminating duplication of UA-User messages at
      signalling endpoints (Application Servers or SS7 SEPs) or SS7
      endpoints across fail-over between ASPs, SGPs, SGs, or IPSPs.

    o Support for elimination of message loss of UA-User messages
      between Signalling Gateways (SGs) and Application Servers (ASs)
      across fail-over between ASPs, SGPs, SGs, or IPSPs.

1.3.1.  Configuration

      For carrier-class operation, the SS7 Signalling User Adaptation
   Layers recommend that Signalling Gateways and Application Servers be
   configured such that there is no single point of failure within the
   SG/AS architecture or in the intervening network.  The SS7 UAs also
   recommend that no Application Server be configured for less than two
   (2) Application Server Processes.

      All of the UAs describe an override, loadsharing and broadcast
   traffic mode.  The UA protocols place no restrictions on the
   distribution algorithm which is used for distributing traffic over
   multiple Signalling Processes.  Additional traffic distribution
   proposals have been put forward for Load Selection [LOADSEL] and Load
   Grouping [LOADGRP]

      Fail-over between Application Server Processes (ASPs) and
   Signalling Gateway Processes (SGPs) is not detailed in the UA

B. Bidulock                    Version 0.0                        Page 3

Internet Draft                  UA CORID                January 10, 2002

   protocols [M3UA, SUA, TUA], but it is clear that when an SCTP
   association fails and the ASP transitions to the ASP-DOWN state from
   the perspective of the SGP peer, the traffic which the associated ASP
   was previously responsible needs to be diverted to an alternative ASP
   (if available) in the same Application Server pool.

1.3.2.  Conditions at Fail-Over

      The details of this diversion of traffic is not specified,
   however, a dichotomy exists when such fail-over occurs as a result of
   the loss of an SCTP association between these Signalling Peer
   Processes (SPPs).  When an SPP loses its SCTP association with
   another SPP, and diverts traffic towards another SPP, there exists
   the possibility that messages previously destined to the peer SPP
   exist in several categories, as follows:

   Category (1) - Queued in the sending SPP process,

   Category (2) - queued for transmission, but not yet transmitted by
                  the transport provider (SCTP),

   Category (3) - queued for retransmission, but not yet acknowledged by
                  the peer transport provider (SCTP), and,

   Category (4) - acknowledged by the peer transport provider (SCTP) and
                  deleted from the sending transport provider's (SCTP's)
                  retransmission queue.

      These categories are illustrated in Figure 1.  Note that to
   retransmit categories (2) and (3) (and perhaps categories (1)) on
   another link requires sent data acknowledgment or buffer retrieval
   capability by the underlying transport provider.

      As there is no SPP peer-to-peer acknowledgement, messages in
   Categories (3) and (4), the message might or might not have been
   delivered to the peer SPP.  Therefore, at the time of failure of an
   SCTP association between two Signalling Peer Processes (SPPs), it is
   not possible for either SPP to determine which of the messages in
   categories (3) and (4) above (transmitted, but not yet acknowledged;
   transmitted and acknowledged) were successfully received by the peer
   before failure.  Without information concerning which messages in
   this category were successfully received by the peer, the SPP either
   risks message loss or message duplication when it diverts traffic
   from the failed association.

1.3.3.  Sources of Message Loss and Duplication

      If the messages from category (3) or (4) are retransmitted on an
   alternative association, the SPP diverting the traffic risks message
   duplication.  This is because some messages of the category might
   possibly have been successfully received by the peer before fail-
   over.

B. Bidulock                    Version 0.0                        Page 4

Internet Draft                  UA CORID                January 10, 2002

   _____________________________________________________________________

      Signalling   |    Stream Control               |
      Peer              Transmission Protocol
      Process      |    (RFC 2960)                   |
                                      First Transmission
                   |               +-----------------|------------->
     ___ _ _         ___ _ _       | ___ _ _
        | | | __   |    | | | __   |    | | | __     |
        | | |/  \       | | |/  \  |    | | |/  \ Retransmission
   ---->| | |    |-|--->| | |    |-+--->| | |    |---|------------->
        | | |\__/       | | |\__/       | | |\__/
     ___|_|_|      | ___|_|_|      | ___|_|_|        |

     Category (1)  | Category (2)  | Category (3)    | Category (4)
     ------------    ------------    ------------      ------------
      Queued in    |  Queued for   |  Queued for     | Acked and
      Signalling      Transmission    Acknowledgment   Deleted
      Peer Process |               |                 |

         Figure 1.  Buffer Categories at SCTP Association Failure

   _____________________________________________________________________

      If the messages from category (3) and (4) are discarded before
   diverting messages from categories (1) and (2) and then new traffic
   on an alternative association, the SPP risks message loss.  This is
   because some of the messages in category (3) and (4) might possibly
   have not been received by the peer SPP before the association failed.

      This is the dychotomy: regardless of the nature of a policy
   concerning the disposition of messages at an SPP experiencing failure
   to its peer, without information concerning messages successfully
   received by the peer, the SPP risks message loss or duplication.

      It should be possible to induce such a system to demonstrate
   message loss or duplication.

      Because SS7 performance requirements [Q.706] have more stringent
   requirements against duplication of messages than loss of messages,
   the only policy is to discard messages in category (3).

      To avoid loss of messages to meet SS7 performance requirements
   [Q.706] in consideration of this dichotomy, implementation cost may
   be driven higher than would be the case if a procedure were
   established to exchange information between the Signalling Processes
   on either side of a failed association.

      This Internet-Draft provides Correlation Id and Heartbeat
   procedures for fail-over for the SS7 signalling UAs which will remove
   the possibility of message loss or duplication in the event that an
   SCTP association failure while communication between the Application

B. Bidulock                    Version 0.0                        Page 5

Internet Draft                  UA CORID                January 10, 2002

   Server and Signalling Gateway is still possible.

1.3.4.  Conditions at Recovery

      Figure 2 illustrates an example (A) configuration of ASPs and
   SGPs.  In this example, the ASP and SGP are interconnected with a
   full-mesh arrangement of SCTP Associations.  Each ASP is
   interconnected to each SGP by an association.

      When a failure of the SCTP assocation occurs, it is, for example,
   between `SGP1' and `ASP1' as indicated by the (X) in the Figure 2.
   When a recovery occurs, it is also the SCTP association between
   `SGP1' and `ASP1' that recovers.

      The normal procedure for dealing with such a failure[1] is for
   SGPn to mark ASPn in the ASP-DOWN state and to redirect traffic over
   the remaining ASPs in the Application Server[2].

      When the SCTP association between ASP1 and SGP1 recovers and ASP1
   succesfully activates for the AS using the ASP Active Procedures[3],

   _____________________________________________________________________

            Signalling                          Application
            Gateway               (X)           Server

            /----------\__________/____________/----------\
            |          |_________  /  _________|          |
            |   SGP1   |...      \   /      ...|   ASP1   |
            |          |_____     \ /     _____|          |
            \----------/     \     X     /     \----------/
                              \   / \   /
            /----------\_______\_/   \_/_______/----------\
            |          |________\_____/________|          |
            |   SGP2   |...      \   /      ...|   ASP2   |
            |          |________  \ /  ________|          |
            \----------/        \  X  /        \----------/
                                 \/ \/
                 .               /\ /\  SCTP         .
                 .              /  X  \ Associations .
                 .             /  / \  \             .
                              /  /   \  \
            /----------\_____/  /     \  \_____/----------\
            |          |_______/       \_______|          |
            |   SGPn   |...                 ...|   ASPn   |
            |          |_______________________|          |
            \----------/                       \----------/

           Figure 2.  Example (A) Configuration of ASPs and SGPs

   _____________________________________________________________________

B. Bidulock                    Version 0.0                        Page 6

Internet Draft                  UA CORID                January 10, 2002

   once ASP1 has entered the ASP-ACTIVE state for the AS, message mis-
   sequencing can occur if traffic is immediately applied on the newly
   active association.

      The UA procedures[3] provide no detail concerning the restarting
   of traffic to recovering ASPs in the AS.

1.3.5.  Sources of Message Mis-Sequencing

      Because the SGPs can be experiencing different loads and other
   local factors each SGP may differ, restoring a traffic flow to a
   newly active SGP without first ensuring that messages are purged
   through the old path before the diversion can result in message mis-
   sequencing.  This is illustrated in Figure 3.

      Before switching traffic back to SGP1 from SGPx, SGPx is queueing
   traffic from ASP1 to the SS7 network.  If the traffic flow from ASP1
   is switched rapidly to SGP1, a race condition exists between messages
   in SGPx's queue and messages in SGP1's queue.  A rapid switch can
   result in mis-sequencing.

   _____________________________________________________________________

          _____
         /     \      SGPx
        |       |________________
        |       |        ______  |
        |       |    __ |X|X|    |
        |       |___/  \|X|X|____|_____
        |       |   \__/|X|X|    |     |
        |       |       |X|X|__  |     |            ASP1
        |       |________________|    \|       _______________
        |       |                    ( \      |       _____   |
        |  NIF  |                    (  \     |   __ | | |    |
        |       |                    (   \____|__/  \| | |____|___
        |       |     SGP1                    |  \__/| | |    |
        |       |________________      |      |      |_|_|_   |
        |       |        ______  |     |      |_______________|
        |       |    __ | | |    |     |
        |       |___/  \| | |____|_____|
        |       |   \__/| | |    |
        |       |       |_|_|__  |
        |       |________________|
        |       |
         \_____/

                 Figure 3.  Restoration of a Traffic Flow

   _____________________________________________________________________

B. Bidulock                    Version 0.0                        Page 7

Internet Draft                  UA CORID                January 10, 2002

      As SGPx and SGP1 do not necessarily have to belong to the same SG,
   close queue synchornization between SGPx and SGP1 cannot be expected.

      CORID provides both a time-controlled and a Heartbeat procedure
   for restoration of traffic to avoid mis-sequencing during
   restoration.

1.4.  Functional Areas

      The CORID procedures to avoid message loss, duplication and mis-
   sequencing under these types of scenarios requires a protocol
   parameters that provide a clear identification of the independent
   traffic flows involved.  Then, procedures are required to control the
   fail-over and restoration of the identified traffic flows to avoid
   message loss.

      The SS7 MTP3 [Q.704] provide an excellent example of the types of
   procedures that can be applied to the problem of switching traffic
   flows across redundant processes[4].

1.4.1.  Identification of Traffic Flows

      Traffic flows between Server Processes in the UAs are managed on
   the basis of the Application Server to which the traffic flows
   correspond.  Traffic flows from SG to AS are identified by the
   Routing Key or Routing Context to which they correspond[5].

      An Application Server Process can be active and handling traffic
   for any number or combination of traffic flows.  That is, the ASP can
   be actively handling traffic for any number of Application Servers.

      When an SCTP [RFC 2960] association fails, it is necessary to
   identify both the sequence of the last message succesfully received
   and processed by the Signalling Process, as well as the traffic flow
   within which that sequence applies.

      Therefore, this document identifies a message in a traffic flow by
   the Routing Context, Load Id, Stream Id and the sequence number
   within that flow as identified by the Correlation Identifier.  The
   Correlation Identifier is a combination of traffic flow identifier
   and correlation number which is applied to all divertable traffic.

      For details on the assignment of Traffic Flow Identifiers and
   Correlation numbers, see Section 4.1.2 "Correlation".

1.4.1.1.  SGP Starting New SGP-to-ASP Traffic

      When traffic is orignally started for a traffic flow the first
   divertable message in the traffic flow is assigned a correlation
   number of one (1) by the sending Signalling Process.  Subsequent
   divertable messages within the routing context are given the
   Correlation Id number of two (2), three (3), and so on.

B. Bidulock                    Version 0.0                        Page 8

Internet Draft                  UA CORID                January 10, 2002

      Because SCTP is a sequenced reliable transport [RFC 2960], it is
   only necessary to communicate this Correlation Id number between SPP
   peers for the intial message which is sent to the peer.  Each
   Signalling Peer Process MUST be capable of counting the messages
   which have been sent or received on the SCTP association, and
   assigning each subsequent message the next sequential Correlation Id
   number.

1.4.1.2.  SPP Diverting peer SPP Traffic

      Should, for example,  the association fail between the SGP and the
   ASP, the SGP will recover whatever buffers from categories (1), (2),
   (3) and (4), and immediately restart traffic, in sequence, on another
   active ASP within the AS.  When the SGP restarts traffic on this
   alternate ASP, if the messages belong to Category (4) or (3) (i.e,
   they were transmitted on but not acknowledged by the underlying
   transport, or transmitted and acknowledged), it will label the
   initial message sent with the Correlation Id of the message at the
   time that it was originally sent.  When the SGP sends tmessages from
   Category (2), (1) and newly arriving traffic, the SGP will not tag
   the messages with a Correlation Id, but instead will label them
   internally with the next sequential correlation numbers for the
   traffic flow.

      Thus, the alternate Signalling Peer Process which is receiving
   diverted traffic will be able to distinguish the problematic Category
   (3) and (4) messages from those which follow.  When an tagged message
   is received, the Signalling Peer Process is now aware that the
   messages were previously sent to the primary SPP to which the SCTP
   association was lost.  When an untagged message arrives, the
   receiving Signalling Peer Process is aware that this and subsequent
   messages within the traffic flow represent previously unsent traffic.

      (Detailed procedures for the tagging of messages are described in
   Section 4.1.3 and 4.1.5.2.1; for diversion, Sections 4.2.2, 4.2.3 and
   4.1.6.)

1.4.1.3.  SPP Receiving Diverted Traffic

      At the Signalling Process receiving the diverted traffic for the
   Routing Context, three actions are possible (or, variations on the
   three):

    (1)   Ignore the Correlation Id and process the messages blind at
          the risk that message duplication will occur,

    (2)   discard all messages tagged with a Correlation Id at the risk
          of increased message loss, or,

    (3)   perform the procedures described in Section 4.1.5.2.2
          minimizing the message duplication and loss resulting from the
          diversion.

B. Bidulock                    Version 0.0                        Page 9

Internet Draft                  UA CORID                January 10, 2002

1.4.1.4.  SPP Restoring Traffic

      Should, for example, the association recover between the SGP and
   ASP, the ASP will need to rebalance the load across the available
   SGPs and the newly available SGP.  As discussed, if the ASP switches
   traffic immediately, message mis-sequencing can occur.  Two
   procedures are provided by CORID for restoring traffic without
   message mis-sequencing: a Heartbeat procedure and a timer procedure.

      The Heartbeat procedure withholds traffic from the SGP currently
   active for the traffic flow and sends a BEAT message on the flow.
   Once the BEAT ACK is received by the ASP, the ASP is assured that
   there is no traffic pending on the SGP and the traffic flow can be
   switched to the recovered SGP.  The Heartbeat procedure is applicable
   to recovery between SGPs in the same SG.

      The Timer procedure witholds traffic from the SGP currently active
   for the traffic flow and waits until a timer expires.  Once the timer
   expires, the ASP is resonably assured that there is no traffic
   pending on the SGP and the traffic flow can be switched to the
   recovered SGP.  The Timer procedure is applicable to recovery between
   SGPs in different SGs.

      Restoration of traffic is described in detail in Sections 4.2.3
   and 4.1.6.

1.5.  Sample Configurations

      A typical Example (B) configuration multiple Signalling Gateways
   is illustrated in Figure 4.  In this configuration a number of
   Application Server Processes (ASPs) serving a number of Application
   Servers (ASs) are connected to two Signalling Gateways (SGs).  The
   SGs appear as mated SS7 Signalling Transfer Points (STPs) [Q.705] to
   the SS7 Network.  Traffic originating at Signalling Endpoints (SEP)
   in the SS7 network and directed toward SEP in the IP network (i.e.,
   Application Servers) is loadshared over the STPs by the Signalling
   Link Selection (SLS) [Q.704] value associated with each message.
   Traffic originating at the SEP in the IP network (i.e, AS) is
   loadshared over the SGs in the same fashion.

2.  Conventions

      The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD,
   SHOULD NOT, RECOMMENDED, NOT RECOMMENDED, MAY, and OPTIONAL, when
   they appear in this document, are to be interpreted as described in
   [RFC 2119].

3.  Protocol Elements   The following protcol element definitions are
provided by CORID in extension to the existing protocol element
definitions for the UAs [M3UA, SUA, TUA].

B. Bidulock                    Version 0.0                       Page 10

Internet Draft                  UA CORID                January 10, 2002

   _____________________________________________________________________

                    |
      SS7                           IP
      Network       |               Network
                _________________                ________     _____
               |    |    ________|        ______|        |   /     \
               |        |        |_______|  ____|  ASP1  |  |       |
    B/D-Links  |    |   |  SGP1  |________  |   |________|  |       |
    ___________| STP SG1|________|        | |    ________   |       |
              /|    |   |        |__   o  | | __|        |  |  AS1  |
             / |        |  SGP2  |__   o  | | __|  ASP2  |  |       |
      \     /  |    |   |________|     o  | |   |________|  |       |
       \   /   |_________________|        | |    ________   |       |
        \ / C-   |                     o  | | __|        |   \_____/
         X  Links|  |                  o  | | __|  ASP3  |    _____
        / \     _|_______________      o  | |   |________|   /     \
       /   \   |    |    ________|        | |    ________   |       |
      /     \  |        |        |__   o  | | __|        |  |       |
             \ |    |   |  SGP3  |__   o  | | __|  ASP4  |  |       |
    __________\| STP SG2|________|     o  | |   |________|  |  AS2  |
               |    |   |        |________|_|    ________   |       |
               |        |  SGP4  |_______ |_____|        |  |       |
               |    |   |________|       |______|  ASP5  |  |       |
               |_________________| SCTP         |________|   \_____/
                    |              Associations

                    |

          Figure 4.  Example (B) Sample Multiple-SG Configuration

   _____________________________________________________________________

3.1.  Parameters

      The following subsections describe the parameters used for CORID,
   their format and the message in which they are used.

3.1.1.  Correlation Id

      The Correlation Id parameter is used in the ASPAC, ASPAC ACK, and
   UA-User data messages.  It is used to identify data messages sent to
   a peer SPP.

   The Correlation Id parameter is formatted as follows:

B. Bidulock                    Version 0.0                       Page 11

Internet Draft                  UA CORID                January 10, 2002

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |         Tag = 0x0019          |            Length             |
     +- - - - - - - - - - - - - - - -+- - - - - - - - - - - - - - - -+
     |                      Correlation Id #1                        |
     +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
     |                      Correlation Id #2                        |
     +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
     \                               .                               \
     /                               .                               /
     \                               .                               \
     /                                                               /
     +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
     |                      Correlation Id #n                        |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The Correlation Id parameter contains one or more of the following
   field:

   Correlation Id field: 8-bytes

     The Correlation Id field is formatted as follows:

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                      Correlation Number                       |
     +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
     |                       Traffic Flow Id                         |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

     Correlation Number field: 32-bits (unsigned integer)

       The Correlation Number field identifies a particular message
       within a traffic flow.  When the Correlation Id parameter is
       included in the ASPAC (ACK) message, this field identifies the
       last sent message for the indicated traffic flow.  When the
       Correlation Id parameter is included a UA-User data message, this
       field identifies the correlation number of the message in which
       it is contained.

     Traffic Flow Id field: 32-bits (unsigned integer)

       The Traffic Flow Id field identifies a particular indepdently
       sequenced traffic flow to which the Correlation Number field
       value applies.  For details on Traffic Flow Id assignment, see
       Section 4.1.2.2.  This field is formatted as follows:

B. Bidulock                    Version 0.0                       Page 12

Internet Draft                  UA CORID                January 10, 2002

        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |             Load Id           |          Stream Id            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

       Load Id field: 16-bits (unsigned integer)

         The Load Id field identifies a load range associated with an
         SPP.  When used for tagging messages or in the ASPAC (ACK)
         message for an Load Selection [LOADSEL], Loadshare AS or Load
         Group [LOADGRP], the Load Id field must identify an SPP (and
         Load Selector) within an Application Server.  For an Override
         or Broadcast AS, the Load Id is not required and SHOULD be
         coded zero (0).  For details on the assignment of Load Ids, see
         Section 4.1.2.2.

       Stream Id field: 16-bits (unsigned integer)

         The Stream Id field contains the SCTP Stream Identifier [RFC
         2960] on which the message or referenced message was sent.

   When the Correlation Id parameter is included in the ASPAC, ASPAC
   ACK, and UA-User data messages, only one Routing Context representing
   a single Application Server MUST be associated (specified or implied)
   with the message.

3.2.  Messages

3.2.1.  ASP Active (ASPAC)

      CORID supplements the ASPAC mesage by permitting the following
   optional parameters to be included in the message:

       Extension Parameters
       ------------------------------------------
       Correlation Id              Mandatory

   The format of the resulting ASPAC message is as follows:

B. Bidulock                    Version 0.0                       Page 13

Internet Draft                  UA CORID                January 10, 2002

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |         Tag = 0x000b          |            Length = 8         |
     +- - - - - - - - - - - - - - - -+- - - - - - - - - - - - - - - -+
     |                         Traffic Mode Type                     |
     +-------------------------------+-------------------------------+
     |         Tag = 0x0006          |            Length = 8         |
     +- - - - - - - - - - - - - - - -+- - - - - - - - - - - - - - - -+
     |                         Routing Context                       |
     +-------------------------------+-------------------------------+
     |         Tag = 0x0019          |            Length             |
     +- - - - - - - - - - - - - - - -+- - - - - - - - - - - - - - - -+
     \                                                               \
     /                         Correlation Id                        /
     \                                                               \
     +-------------------------------+-------------------------------+
     |         Tag = 0x0004          |            Length             |
     +- - - - - - - - - - - - - - - -+- - - - - - - - - - - - - - - -+
     \                                                               \
     /                           Info String                         /
     \                                                               \
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   No other changes to the ASPAC message format are provided by this
   extension.

   The Correlation Id parameter is used by the ASP in the ASPAC message
   to indicate the correlation identifier for the first UA-User message
   to be transmitted in each traffic flow from the Application Server
   being activated to the Signalling Gateway.  The Application Servers
   for which the Correlation Id apply is either indicated in the ASPAC
   message by providing the associated Routing Contexts, or, if there is
   no Routing Context parameter in the message, the associated
   Application Servers are implied by the SGP and ASP configuration
   data.

   When the Correlation Id parameter is present in the ASPAC message,
   the message SHOULD only contain one Routing Context in the Routing
   Context parameter.  When the Correlation Id parameter is not present,
   but required by the SGP, the value of the correlation id is assumed
   to be zero (0).

   The ASPAC message MAY contain additional extension parameters
   provided for by other extensions.

3.2.2.  ASP Active Acknowledgement (ASPAC ACK)

      CORID supplements the ASPAC ACK mesage by permitting the following
   optional parameters to be included in the message:

       Extension Parameters
       ------------------------------------------
       Correlation Id              Mandatory

Internet Draft                  UA CORID                January 10, 2002

   The format of the resulting ASPAC ACK message is as follows:

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |         Tag = 0x000b          |            Length = 8         |
     +- - - - - - - - - - - - - - - -+- - - - - - - - - - - - - - - -+
     |                         Traffic Mode Type                     |
     +-------------------------------+-------------------------------+
     |         Tag = 0x0006          |            Length = 8         |
     +- - - - - - - - - - - - - - - -+- - - - - - - - - - - - - - - -+
     |                         Routing Context                       |
     +-------------------------------+-------------------------------+
     |         Tag = 0x0019          |            Length             |
     +- - - - - - - - - - - - - - - -+- - - - - - - - - - - - - - - -+
     \                                                               \
     /                         Correlation Id                        /
     \                                                               \
     +-------------------------------+-------------------------------+
     |         Tag = 0x0004          |            Length             |
     +- - - - - - - - - - - - - - - -+- - - - - - - - - - - - - - - -+
     \                                                               \
     /                           Info String                         /
     \                                                               \
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   No other changes to the ASPAC ACK message format are provided by this
   extension.

   The Correlation Id parameter is used by the SGP in the ASPAC ACK
   message to indicate the correlation identifier for the first UA-User
   message to be transmitted from the Signalling Gateway to the
   Application Server being activated for each traffic flow.  The
   Application Servers for which the Correlation Id apply is either
   indicated in the ASPAC ACK message by providing the associated
   Routing Contexts, or, if there is no Routing Context parameter in the
   message, the associated Application Servers are implied by the SGP
   and ASP configuration data.

   When the Correlation Id parameter is present in the ASPAC ACK
   message, the message SHOULD only contain one Routing Context in the
   Routing Context parameter.  When the Correlation Id parameter is not
   present, but required by the ASP, the value of the correlation id is
   assumed to be zero (0).

   The ASPAC ACK message MAY contain additional extension parameters
   provided for by other extensions.

4.  Procedures

B. Bidulock                    Version 0.0                       Page 15

Internet Draft                  UA CORID                January 10, 2002

4.1.  Traffic Handling

4.1.1.  Classification

      Divertable messages are any UA-User messages destined for an
   Application Server.  Divertable messages are UA-User data and some
   management (non-ASP management) messages that have an explicit or
   implied Routing Context and have strict requirements preventing loss,
   duplication or mis-sequencing.  SNMM messages do not quality as
   divertable because they can apply to more than on Application Server.
   UA-User messages that qualify as divertable messages are listed in
   Table 1.  Although some messages in some message classes might be
   considered as non-divertable, all messages in the message classes
   listed in Table 1 SHALL be treated as divertable.

                    Table 1. Divertable Messages by UA

               +------+-------------+-------+-----------------+
               | UA   | Class       | Msg   | Description     |
               +------+-------------+-------+-----------------+
               | M3UA | Transfer    | DATA  |                 |
               +------+-------------+-------+-----------------+
               |      | Connection- | CLDT  | Marked          |
               |      | less        | CLDR  | Return on Error |
               |      +-------------+-------+-----------------+
               |      | Connection- | CORE  |                 |
               | SUA  | Oriented    | COAK  |                 |
               |      |             | CODT  |                 |
               |      |             | RESRE |                 |
               |      |             | RESCO |                 |
               |      |             | RELRE |                 |
               +------+-------------+-------+-----------------+
               |      | Dialogue    | TUNI  | w/o components  |
               |      | Handling    | TQRY  | or              |
               |      |             | TCNV  | marked          |
               |      |             | TRSP  | Return on Error |
               |      |             +-------+-----------------+
               |      |             | TUAB  |                 |
               |      |             | TPAB  |                 |
               | TUA  |             | TNOT  |                 |
               |      +-------------+-------+-----------------+
               |      | Component   | CINV  | Operation       |
               |      | Handling    | CRES  | Class 1, 2 or 3 |
               |      |             +-------+-----------------+
               |      |             | CERR  |                 |
               |      |             | CREJ  |                 |
               |      |             | CCAN  |                 |
               +------+-------------+-------+-----------------+

B. Bidulock                    Version 0.0                       Page 16

Internet Draft                  UA CORID                January 10, 2002

4.1.2.  Correlation

      Each independent traffic flow for a given Application Server as
   identified by a Routing Context MUST be correlated using a
   Correlation Id.  The Correlation Id consists of a correlation number
   and a traffic flow identifier.  The correlation number is used to
   number each message within the given traffic flow.

4.1.2.1.  Assignment of Correlation Ids

      To accomodate all combinations of traffic modes at AS and SG,
   divertable messages are correlated by independent traffic flow.  That
   is, each sent divertable message is labelled with a traffic flow
   identifier and a correlation number for the AS that is incremented
   for each message sent for the traffic flow.  In the same fashion,
   each received divertable message is labelled with the identity of the
   traffic flow on which it was received and a correlation number for
   the AS that is incremented for each message received on that traffic
   flow.

      An SPP maintains two correlation counters for each traffic flow
   for each AS: for each traffic flow, one counter tracks the
   correlation number of messages sent to the AS and the other tracks
   the correlation number of messages received from the AS.  Before
   traffic is started for an AS on a traffic flow, these counters are
   set to zero (0).  The first divertable message for the AS on the flow
   MUST then be assigned a coorrelation number of one (1); and
   subsequent divertable messages, the correlation number of two (2),
   three (3), and so forth.

      Whenever traffic is started for the AS (using the ASP Active
   Procedures), the correlation counters SHALL be synchronized by
   exchanging correlation numbers and traffic flow identifiers in the
   Correlation Id parameter in the ASPAC and ASPAC ACK messages.  For
   new traffic, the correlation number MUST zero (0); for restarting
   traffic, it is SHOULD be the correlation number of the last message
   transferred.  (See Section 4.2.3.)

4.1.2.2.  Assignment of Traffic Flow Ids

      Traffic flow identifiers SHALL consist of two components:

    (i)   A Load Id component that identifies a switchable traffic load
          pattern within an Application Server.  This component SHALL be
          assigned by the peer SPP.

    (ii)  A Stream Id component that identifies the SCTP stream upon
          which a message is sent or received.  This component SHALL be
          assigned by the sending SPP and MUST correspond to the SCTP
          Stream upon which the message was sent.

      Load Ids SHALL assigned by an SPP and MUST be communicated to the
   peer SPP in an ASPAC or ASPAC ACK message.  For traffic distributions
   that do not loadshare (i.e, Override and Broadcast), the load flow

B. Bidulock                    Version 0.0                       Page 17

Internet Draft                  UA CORID                January 10, 2002

   identifier is not required and MAY be set to zero (0).  Following are
   rules for the assignment of load identifiers at an SPP:

    (i)   If an SPP belongs to a regular Override or Broadcast AS, no
          Load Id need be assigned or included by the SPP in the
          Correlation Id parameter.

    (ii)  If an SPP belongs to a regular Loadshare AS, a Load Id is
          assigned and included in the Correlation Id parameter.  The
          Load Id assigned MUST unambiguously identify the SPP within
          the AS.

    (iii) If an SPP belongs to a Load Selector [LOADSEL], a Load Id is
          assigned and included in the Correlation Id parameter
          regardless of the Traffic Mode Type of the AS.  The Load Id
          assigned MUST unambiguously identify the SPP and the Load
          Selector within the AS.

    (iv)  If an SPP belongs to a Load Group [LOADGRP], a Load Id is
          assigned and included in the Correlation Id for a Loadshare AS
          or Load Group.  An assigned Load Id MUST unambiguously
          identify the SPP and the Load Selector within the AS.  For a
          non-loadshare AS and Load Group, no Load Id need be assigned
          or included in the Correlation Id parameter.

4.1.3.  Tagging

      Each sent or received message for an AS is labelled when it is
   first sent or received.  The message is labelled with the traffic
   flow id associated with the SPP to or from which the message was sent
   or received, and the correlation number assigned within the traffic
   flow (see Section 4.1.2.1).

      Tagged messages contain a Correlation Id parameter: an untagged
   message is tagged by adding a Correlation Id parameter to the
   message.  When a message is tagged, it SHALL be tagged with the same
   values of the traffic flow id (if required) and correlation number
   with which it was originally labelled.

      Although each message is labelled with a traffic flow id and
   correlation number, the message is not necessarily tagged with the
   Correlation Id parameter when the message is sent.  Messages for an
   AS that are sent for the first time MUST NOT be tagged.  Messages
   retransmitted MUST be tagged.

4.1.4.  Buffering

4.1.4.1.  SPP witholding unsent messages

      CORID procedures require that an SPP at times withhold AS traffic.
   To perform this, the SPP allocates a diversion buffer and places in
   the buffer all subsequent messages that would otherwise be sent to
   the SPP for the AS into the buffer.

B. Bidulock                    Version 0.0                       Page 18

Internet Draft                  UA CORID                January 10, 2002

4.1.4.2.  Local copies of sent messages

      To reduce loss of messages, an SPP SHOULD buffer messages until it
   can be assured that the peer SPP has received and processed the
   message.  When a message is sent to an SPP supporting CORID a local
   copy of the message MUST be kept until it is discarded in accordance
   with a CORID procedure.[6]

    (i)   A local copy SHOULD NOT be discarded when it is acknowledged
          by the peer SCTP.

    (ii)  a local copy SHOULD NOT be discarded until the sending SPP is
          confident that the peer SPP has received and processed the
          message.

    (iii) To ensure that stale messages do not propagate through the
          system, an SPP SHOULD NOT keep local copies of sent messages
          for longer than a maximum lifetime T(lifetime).  Any local
          coppies of sent messages that are older (measured from the
          moment at which they were sent to the peer SPP) than
          T(lifetime) SHOULD be discarded.

4.1.5.  Message Handling

4.1.5.1.  Untagged Messages

4.1.5.1.1.  SPP sending untagged messages

      An SPP sends untagged messages to a peer SPP whenever the message
   is being sent for an Application Server for the first time.  All
   divertable messages which have been transmitted for the first time
   MUST NOT be sent tagged.

      Local copies of untagged messages awaiting acknowledgement or
   expiry are labelled with the Routing Context for the Application
   Server to which they were sent, the traffic flow id of the SPP to
   which they were sent, and the correlation number of the message.  The
   correlation number with which a message is labelled MUST be the next
   sequential correlation number for the AS and traffic flow.  These
   labels can be used later to tag a message that is marked for
   diversion.

4.1.5.1.2.  SPP receiving untagged messages

      When an SPP receives an untagged message, it associated with the
   message the next sequential correlation number for the Routing
   Context and traffic flow id for which the message was received.
   Untagged messages are received in order and MAY be processed when
   received.  The SPP SHOULD keep track of the Correlation Ids that have
   been processed for the AS.

B. Bidulock                    Version 0.0                       Page 19

Internet Draft                  UA CORID                January 10, 2002

4.1.5.2.  Tagged Messages

4.1.5.2.1.  SPP sending tagged messages

      An SPP sends tagged traffic whenever it sends traffic that is
   marked for diversion.  That is, whenever an SPP sends divertable
   messages to an SPP other than the original SPP for which those
   messages were labelled, the SPP MUST tag the message with the
   Correlation Id parameter that contains the labelled traffic flow id
   (if required) and correlation number.

      In addition, when a ASP becomes active for a Broadcast AS, an SGP
   MUST tag the first message in each traffic flow towards the ASP to
   allow the ASP to synchronize its entry into the Broadcast AS.

4.1.5.2.2.  SPP receiving tagged messages

      The handling of tagged messages is the mechanism that provides for
   the reduction of message loss, duplication and mis-sequencing.  An
   SPP receiving divertable messages containing a Correlation Id
   parameter SHALL perform the following actions:

    (i)   The SPP determines (by implementation-dependent means [7])
          whether the message has already been processed for the AS.

    (ii)  If the message has not already been processed for the AS, it
          is processed as normal.

    (iii) If the message has already been processed for the AS, it is
          discarded.

    (iv)  If, as a result of some failure, the SPP cannot determine with
          any certainly whether the tagged message has been processed
          for the AS, or not, the SPP MUST discard the message[8].

4.1.6.  Diversion

4.1.6.1.  SPP diverting traffic from a failed, deactivated or overridden
peer SPP

4.1.6.1.1.  Alternate SPP in same AS or SG, or No Alternate SPP

      When an SPP diverts AS traffic away from a failed, deactivated or
   overridden peer SPP to an alternate peer SPP in the same AS or SG,
   the SPP SHALL perform the following actions:

    (i)   The SPP tags (see Section 4.1.3) each untagged message that is
          marked for diversion.

    (ii)  If an alternate SPP is available (active for the AS), the SPP
          sends the messages marked for divertion to the alternate SPP.

    (iii) If no alternate SPP exists (the AS is AS-PENDING), the SPP
          buffers the marked messages in a buffer used for buffering

B. Bidulock                    Version 0.0                       Page 20

Internet Draft                  UA CORID                January 10, 2002

          messages while the AS is in the AS-PENDING state.

    (iv)  The SPP then diverts AS traffic, beginning with traffic
          withheld for the AS, to the alternate SPP or AS-PENDING
          buffer.

      This procedure corresponds to the Sequenced Changeover procedure
   used by the SS7 MTP [Q.704].

4.1.6.1.2.  Alternate SPP in different AS or SG

      When an SPP diverts AS traffic away from a failed or deactivated
   peer SPP to an alternate peer SPP in a different AS or SG, the SPP
   SHALL perform the following actions:

    (i)   The SPP starts timer T(divert) and continues buffering AS
          traffic until the timer expires.

    (ii)  When T(divert) expires, and the failed or deactivated SPP has
          not recovered, the SPP continues with the following actions:

    (iii) The SPP discards all tagged messages and messages marked for
          diversion.

    (iv)  The SPP starts AS traffic, beginning with the contents of the
          diversion buffer, to the alternate SPP.

      This procedure corresponds to the Time-Controlled Changeover
   procedure used by the SS7 MTP [Q.704].

4.1.6.2.  SPP diverting traffic from an active peer SPP

      When an SPP wishes to divert AS traffic away from an active peer
   SPP, the SPP SHALL perform the following actions:

    (i)   The SPP witholds and buffers AS traffic for the SPP from which
          the traffic is being diverted.

    (ii)  The SPP sends a BEAT message with a unique identifier[9] in
          the Heartbeat Data parameter on the same SCTP stream(s) on
          which the traffic being withheld for diversion was previously
          sent.

    (iii) The SPP starts a timer T(restore).

    (iv)  If the SPP receives the BEAT ACK message(s) that contain the
          unique identifier(s) in the Heartbeat Data parameter before
          timer T(restore) expires, the SPP diverts the traffic,
          beginning with the withheld traffic, to the target SPP and
          cancels the T(restore) timer.

    (v)   If the timer T(restore) expires, the diverting SPP diverts
          traffic, beginning with the withheld traffic, to the target
          SPP.

B. Bidulock                    Version 0.0                       Page 21

Internet Draft                  UA CORID                January 10, 2002

    (vi)  If an SPP receives a BEAT ACK message containing a unique
          identifier for which the timer T(restore) has already expired,
          the SPP ignores the message.

      The purpose of this BEAT procedure is to avoid mis-sequencing by
   ensuring that all messages sent for the AS to the old SPP arrives
   before messages are sent to the new SPP.  This avoids races between
   (and possible mis-sequencing of) messages sent on the old SPP and
   messages sent on the new SPP.

      This procedure corresponds to the Changeback procedure used by the
   SS7 MTP [Q.704].

4.2.  ASP Management Procedures

4.2.1.  ASP Down Procedures

4.2.1.1.  SPP detecting loss of SCTP association

      When an SPP receives an SCTP COMMUNICATION LOST or RESTART
   indication and there are Application Servers active for the
   association, the SPP SHALL perform the following actions with regard
   to active AS traffic for the association:

    (i)   The SPP witholds AS traffic for the peer SPP in a diversion
          buffer.

    (ii)  The SPP marks for diversion all local copies of AS messages
          already sent to the peer SPP.

    (iii) The SPP then SHALL perform the actions described in Section
          4.1.7.1.

4.2.1.2.  ASP sending ASPDN

      An ASP MUST NOT send an ASPDN message until it has completed the
   ASP Inactive Procedures with the intended SGP for every AS.

4.2.1.3.  SGP or IPSP receiving ASPDN

      An SGP or IPSP, upon rreceiving an ASPDN message from an ASP-
   ACTIVE ASP, MUST perform the ASP Inactive Procedures with regard to
   CORID (see Section 4.2.2.2) for every AS for which the ASP is ASP-
   ACTIVE and then complete the ASPDN procedures.

4.2.1.4.  ASP receiving ASPDN ACK

      An SGP or IPSP, upon receiving an unsolicited ASPDN ACK message
   from an active SGP, MUST perform the ASP Inactive Procedures with
   regard to CORID (see Section 4.2.2.3) for every AS for which the ASP
   is ASP-ACTIVE and then complete the ASPDN ACK procedures.

B. Bidulock                    Version 0.0                       Page 22

Internet Draft                  UA CORID                January 10, 2002

4.2.2.  ASP Inactive Procedures

4.2.2.1.  ASP sending ASPIA

      When an ASP wishes to deactivate an Application Server with an
   SGP, the ASP SHALL perform the following actions for traffic
   pertaining to the AS:

    (i)   The ASP withholds sending AS traffic to the SGP or IPSP.

    (ii)  The ASP stops processing AS traffic recevied from the SGP or
          IPSP.  Any messages received for the Application Server after
          the last processed message MAY be discarded.

    (iii) The ASP starts a T(divert) timer.

    (iv)  The ASP SHALL perform the applicable UA ASP Inactive
          Procedures[10].

4.2.2.2.  SGP receiving ASPIA or sending ASPIA ACK

      An SGP receiving an ASPIA message for an AS, or wishing to send an
   unsolicited ASPIA ACK to deactivate an AS, SHALL perform the
   following actions for the traffic pertaining to each AS for which
   deactivation is performed:

    (i)   The SGP withholds sending AS traffic to the ASP.

    (ii)  The SGP stops processing AS traffic received from the ASP.
          Any messages received for the AS at the SGP after receiving
          the ASPIA message MUST be discarded.

    (iii) The SGP marks for diversion all local copies of AS messages
          sent to the ASP.

    (iv)  The SGP then SHALL perform the actions described in Section
          4.1.7.1.

    (v)   The ASP SHALL perform the applicable UA ASP Inactive
          Procedures[10].

4.2.2.3.  ASP receiving ASPIA ACK

      Upon receiving an ASPIA ACK message the ASP SHALL perform the
   following actions for the traffic pertaining to the AS identified by
   the Routing Context in the received ASPIA ACK message or implied by
   the SCTP association on which the ASPIA ACK message was received:

    (i)   The T(divert) timer is cancelled (if running).

    (ii)  The ASP marks for diversion any local copies of AS messages
          sent to the SGP.

B. Bidulock                    Version 0.0                       Page 23

Internet Draft                  UA CORID                January 10, 2002

    (iii) The ASP then SHALL perform the actions described in Section
          4.1.7.1.

    (iv)  The ASP SHALL perform the applicable UA ASP Inactive
          Procedures[10].

4.2.2.4.  T(divert) timer expiry

      If the T(divert) timer expires before receiving an ASPIA ACK for
   the AS, the ASP SHALL perform the actions described in Section
   4.2.2.3.

4.2.3.  ASP Active Procedures

4.2.3.1.  ASP sending ASPAC

      When an ASP wishes to activate an Application Server for an SGP,
   the ASP SHALL perform the following actions for traffic pertaining to
   the AS:

    (i)   The ASP determines the correlation id of the last message sent
          to this SGP for the AS for each traffic flow.

    (ii)  If the ASP has not sent a message to the SGP for the traffic
          flow, the correlation id zero (0) is used.

    (iii) If the ASP has sent messages to the SGP for the traffic flow,
          but cannot determine the correlation id of the last message
          sent due to local failure, the correlation id zero (0) is
          used.

    (iv)  The ASP includes the correlation id(s) determined above in the
          Correlation Id parameter in the ASPAC message used to active
          the AS.  (See Section 3.1.1.)

    (v)   The ASP SHALL perform the applicable UA ASP Active
          Procedures[11].

4.2.3.2.  SGP receiving ASPAC

      When an SGP receives an ASPAC message for an Application Server,
   the SGP SHALL perform the following actions with regard to traffic
   for the AS:

    (i)   The SGP sets the correlation id of the next received message
          from the ASP for each traffic flow to the value, contained in
          the Correlation Id parameter in the ASPAC ACK message, plus
          one (1).

    (ii)  The SGP determines the correlation id of the last message sent
          to this SGP for each traffic flow.

    (iii) If the SGP has not sent a message to the ASP for a traffic
          flow, the correlation id zero (0) is used.

B. Bidulock                    Version 0.0                       Page 24

Internet Draft                  UA CORID                January 10, 2002

    (iv)  If the SGP has sent messages to the ASP for a traffic flow,
          but cannot determine the correlation id of the last message
          sent due to local failure, the correlation id zero (0) is
          used.

    (v)   The SGP includes the correlation id(s) determined above in the
          Correlation Id parameter in the ASPAC ACK message used to
          acknowledge activation of the AS.  (See Section 3.1.1.)

    (vi)  The ASP SHALL perform the applicable UA ASP Active
          Procedures[11], including the sending of ASPIA ACK.

    (vii) The ASP then SHALL perform the actions described in Section
          4.1.7.2.

4.2.3.3.  ASP receiving ASPAC ACK

      When an ASP receives an expected ASPAC ACK message for an
   Application Server, the ASP SHALL perform the following actions with
   regard to AS traffic:

    (i)   The ASP sets the correlation id of the next received message
          from the SGP for each traffic flow to the value, contained in
          the Correlation Id parameter in the ASPAC ACK message, plus
          one (1).

    (ii)  The ASP SHALL perform the applicable UA ASP Active
          Procedures[11].

    (iii) The ASP then SHALL perform the actions described in Section
          4.1.7.2.

      If an ASP receives an unexpected ASPAC ACK (i.e, one for which no
   ASPAC was sent and the ASP is already in the ASP-ACTIVE state for the
   AS), then the ASP SHALL ignore the message for the purposes of CORID.
   The ASP SHALL, however, perform the applicable UA ASP Active
   Procedures[11].

4.3.  Interworking Procedures

      Because the CORID procedures provided here rely upon close
   synchronization of correlation identifiers between SPP, if one of the
   SPP does not support these CORID procedures, neither SPP is able to
   take advantage of the full benefits of the procedures.  The SPP
   supporting CORID MAY fall back to the interworking procedures
   provided in this section, or to procedures based on the original
   (non-CORID) UA procedures.

      A peer SPP that does not support the CORID procedures can either
   be identified by local configuration information, the ASP Extenstions
   [ASPEXT] procedure, or at ASP Activation time.  The lack of support
   for CORID can be determined at ASP Activation time when the peer SPP
   does not place a Correlation Id parameter (as it MUST if both peers

B. Bidulock                    Version 0.0                       Page 25

Internet Draft                  UA CORID                January 10, 2002

   support CORID) in the ASPAC (ACK) message.

      When interworking to an SPP that does not support CORID, the SPP
   supporting CORID SHALL perform all of the procedures as though the
   peer SPP supported CORID with the following exceptions:

    (i)   The SPP MUST NOT send messages marked for diversion and tagged
          to the peer SPP not supporting CORID.  All such messages MAY
          be discarded.

    (ii)  When diverting traffic between a failed, deactivated or
          overriden peer SPP and an alternate peer SPP not supporting
          CORID, the actions described in Section 4.1.7.1.2 MUST always
          be used instead of the procedures in Section 4.1.7.1.1, except
          when there is no alternate SPP.

    (iii) The SPP MUST NOT place a Correlation Id parameter in the ASPAC
          or ASPACK ACK.  So, the actions described in Sections
          4.2.3.1(i)-(iv), 4.2.3.2(i)-(v) and 4.2.3.3(i)-(ii) do not
          apply.

5.  Examples

5.1.  Example Configuration

5.2.  Initialization

      Figure 5 illustrates the initialization sequence that is used for
   all of the examples .

         SGP1  SGP2                          ASP1 ASP2 ASP3 ASP4    AS1
          :     :                             :    :    :    :       :
     (1)  :<----:-Establish Association------>:    :    :    :       :
          :<----:-ASPUP-----------------------:    :    :    :       :
          :-----:-ASPUP ACK------------------>:    :    :    :       :
          :     :                             :    :    :    :       :
     (2)  :<----:-Establish Association-------:--->:    :    :       :
          :<----:-ASPUP-----------------------:----:    :    :       :
          :-----:-ASPUP ACK-------------------:--->:    :    :       :
          :     :                             :    :    :    :       :
     (3)  :<----:-Establish Association-------:----:--->:    :       :
          :<----:-ASPUP-----------------------:----:----:    :       :
          :-----:-ASPUP ACK-------------------:----:--->:    :       :
          :     :                             :    :    :    :       :
     (4)  :<----:-Establish Association-------:----:----:--->:       :
          :<----:-ASPUP-----------------------:----:----:----:       :
          :-----:-ASPUP ACK-------------------:----:----:--->:       :
          :     :                             :    :    :    :       :
     (5)  :     : (Same message exchange for SGP2) :    :    :       :
          :     :                             :    :    :    :       :

                    Figure 5.  Example - Starting Traffic

B. Bidulock                    Version 0.0                       Page 26

Internet Draft                  UA CORID                January 10, 2002

      The sequence of events in the exmaple illustrated in Figure 5 is
   as follows:

    (1)   ASP1 establishes an SCTP association to SG1 and zents

    (2)

    (3)

    (4)

5.3.  Starting Traffic

      Figure 6 illustrates

         SGP1  SGP2                          ASP1 ASP2 ASP3 ASP4    AS1
          :     :                             :    :    :    :       :
     (1)  :<----:-Establish Association------>:    :    :    :       :
          :<----:-ASPUP-----------------------:    :    :    :       :
          :-----:-ASPUP ACK------------------>:    :    :    :       :
          :     :                             :    :    :    :       :
     (2)  :<----:-Establish Association-------:--->:    :    :       :
          :<----:-ASPUP-----------------------:----:    :    :       :
          :-----:-ASPUP ACK-------------------:--->:    :    :       :
          :     :                             :    :    :    :       :
     (3)  :<----:-Establish Association-------:----:--->:    :       :
          :<----:-ASPUP-----------------------:----:----:    :       :
          :-----:-ASPUP ACK-------------------:----:--->:    :       :
          :     :                             :    :    :    :       :
     (4)  :<----:-Establish Association-------:----:----:--->:       :
          :<----:-ASPUP-----------------------:----:----:----:       :
          :-----:-ASPUP ACK-------------------:----:----:--->:       :
          :     :                             :    :    :    :       :
          :     : (Same message exchange for SGP2) :    :    :       :
          :     :                             :    :    :    :       :

                    Figure 6.  Example - Starting Traffic

      The sequence of events in the exmaple illustrated in Figure 6 is
   as follows:

    (1)

    (2)

    (3)

    (4)

    (5)

B. Bidulock                    Version 0.0                       Page 27

Internet Draft                  UA CORID                January 10, 2002

    (6)

    (7)

5.3.1.  Initial Startup

5.3.2.  Joining a Broadcast

5.4.  Fail-Over

5.4.1.  Assocation Failure - Override

5.4.2.  Deactivation - Loadshare

5.4.3.  Management Blocking - Override

5.5.  Recovery

5.5.1.  Association Recovery - Loadshare

5.5.2.  AS-Pending Recovery

5.6.  Interworking

5.6.1.  ASP does not Support CORID

6.  Security

      CORID does not introduce any new security risks or considerations
   that are not already inherent in the UA [M3UA, SUA, TUA] Please see
   the "Security" sections of M3UA, SUA and TUA [M3UA, SUA, TUA] for
   security considerations and recommendations that are applicable to
   each of these UAs.

7.  IANA Considerations

      CORID redefines the format of the Correlation Id parameter for
   M3UA, SUA and TUA.  CORID also redifines the ASPAC and ASPAC ACK
   messages to include the Correlation Id parameter as a mandatory
   parameter of those messages.

8.  Timers

   Following are the RECOMMENDED timer values:

       T(divert)    0.5-2 seconds
       T(restore)   0.5-2 seconds

Acknowledgments

      The authors would like to thank Ken Morneault, Greg Sidebottom,
   John Loughney, Sandeep Mahajan, Barry Nagelberg, and Nitin Vairagare

B. Bidulock                    Version 0.0                       Page 28

Internet Draft                  UA CORID                January 10, 2002

   for their valuable comments and suggestions.

Notes

   [1]  As described in the UA documents.

   [2]  For illustration purposes only, all ASPs in Figure 2 are members
        of the one Application Server which is represented at all of the
        SGPs.

   [3]  See Section 4.3.4.3 of M3UA, SUA or TUA [M3UA, SUA, TUA].

   [4]  See, for example, Clause 5 "Changeover", Clause 6 "Changeback",
        Clause 7 "Forced Rerouting" and Clause 8 "Controlled Rereouting"
        of the MTP3 specifications [Q.704].

   [5]  This is true for all User Adaptation layers with the exception
        of M2UA [M2UA].  In M2UA, the Application Server and traffic
        flows are identified by an equivalent of the Routing Context:
        the Interface Identifier.  An Application Server may also
        represent multiple Interface Identifiers.

   [6]  IMPLEMENTATION NOTE:-  A simple way to meet the requirements for
        keeping local copies of messages is to keep a local copy of all
        messages sent to an SPP supporting CORID until a fixed buffer
        allocation is exceeded, or until the local copy lifetime
        expires.  T(lifetime) and buffer capacity can then be adjusted
        to ensure that local copies of messages are not discarded too
        early resulting in message loss during fail-over.

   [7]  IMPLEMENTATION NOTE:-  Determining which messages have already
        been processed for the AS may require some ASP-to-ASP or SGP-to-
        SGP synchronization that is outside the scope of the UA
        documents [M3UA, SUA, TUA] and also outside the scope of this
        document.

        If the received traffic flow id matches that of the SPP on which
        the message was received, this might be a simple matter of
        comparing the correlation number of the message to the
        correlation number of the last message processed for the
        Application Server.

   [8]  IMPLEMENTATION NOTE:-  The reason for discarding tagged messages
        at the receiver for which it cannot be determined with any
        certainty whether the message was processed for the AS or not is
        because, for SS7, message loss is preferrable to message

B. Bidulock                    Version 0.0                       Page 29

Internet Draft                  UA CORID                January 10, 2002

        duplication [Q.706].

   [9]  IMPLEMENTATION NOTE:-  Although the unique identifier placed in
        the Heartbeat Data is implementation dependent, a useful
        identifier would be the tuple formed by the Routing Context,
        Correlation Id corresponding to the last message sent to the SPP
        from which traffic is to be diverted.

   [10] For the "ASP Inactive Procedures", see Section 4.3.4.4 of M3UA,
        SUA, and TUA.  [M3UA, SUA, TUA]

   [11] For the "ASP Active Procedures", see Section 4.3.4.3 of M3UA,
        SUA, and TUA.  [M3UA, SUA, TUA]

References

   RFC 2960.
        R. Stewart, Q. Xie, K. Morneault, C. Sharp, H. J. Schwarzbauer,
        T. Taylor, I. Rytina, H. Kalla, L. Zhang and V. Paxson, "Stream
        Control Transmission Protocol (SCTP)," RFC 2960, The Internet
        Society (February 2000).

   M3UA.
        G. Sidebottom, J. Pastor-Balbes, I. Rytina, G. Mousseau, L. Ong,
        H. J. Schwarzbauer, K. Gradischnig, K. Morneault, M. Kalla, N.
        Glaude, B. Bidulock and N. Glaude, "SS7 MTP3-User Adaptation
        Layer (M3UA)," <draft-ietf-sigtran-m3ua-10.txt>, Internet
        Engineering Task Force - Signalling Transport Working Group
        (November, 2001).  Work In Progress.

   SUA.
        J. Loughney, G. Sidebottom, G. Mousseau, S. Lorusso, L. Coene,
        G. Verwimp, J. Keller, F. E. Gonzalez, W. Sully, S. Furniss and
        B. Bidulock, "SS7 SCCP-User Adaptation Layer (SUA)," <draft-
        ietf-sigtran-sua-09.txt>, Internet Engineering Task Force -
        Signalling Transport Working Group (June 15, 2001).  Work In
        Progress.

   TUA.
        B. Bidulock, "SS7 TCAP-User Adaptation Layer (TUA)," <draft-
        bidulock-sigtran-tua-00.txt>, Internet Engineering Task Force -
        Signalling Transport Working Group (January 2002).  Work In
        Progress.

   Q.704.
        ITU, "Message Transfer Part - Signalling Network Functions and
        Messages," ITU-T Recommendation Q.704, ITU-T Telecommunication
        Standardization Sector of ITU, Geneva (March 1993).  (Previously
        "CCITT Recommendation")

B. Bidulock                    Version 0.0                       Page 30

Internet Draft                  UA CORID                January 10, 2002

   M2UA.
        K. Morneault, R. Dantu, G. Sidebottom, T. George, B. Bidulock
        and J. Heitz, "SS7 MTP2-User Adaptation Layer (M2UA)," <draft-
        ietf-sigtran-m2ua-11.txt>, Internet Engineering Task Force -
        Signalling Transport Working Group (November, 2001).  Work In
        Progress.

   Q.700.
        ITU, "Introduction to CCITT Signalling System No. 7," ITU-T
        Recommendation Q.700, ITU-T Telecommunication Standardization
        Sector of ITU, Geneva (March 1993).  (Previously "CCITT
        Recommendation")

   LOADSEL.
        B. Bidulock, "Load Selection Extension for Signalling User
        Adaptation Layers (LOADSEL)," <draft-bidulock-sigtran-
        loadsel-00.txt>, Internet Engineering Task Force - Signalling
        Transport Working Group (January 2002).  Work In Progress.

   LOADGRP.
        B. Bidulock, "Load Grouping Extension for Signalling User
        Adaptation Layers (LOADGRP)," <draft-bidulock-sigtran-
        loadgrp-00.txt>, Internet Engineering Task Force - Signalling
        Transport Working Group (January 2002).  Work In Progress.

   Q.706.
        ITU, "Signalling System No. 7 - Message Transfer Part Signalling
        Performance," ITU Recommendation Q.706, ITU-T Telecommunication
        Standardization Sector of ITU, Geneva (March 1993).  (Previously
        "CCITT Recommendation")

   Q.705.
        ITU, "Signalling System No. 7 - Signalling Network Structure,"
        ITU-T Recommendation Q.705, ITU-T Telecommunication
        Standardization Sector of ITU, Geneva (March 1993).  (Previously
        "CCITT Recommendation")

   RFC 2119.
        S. Bradner, "Key words for use in RFCs to Indicate Requirement
        Levels," RFC 2119 - BCP 14, Internet Engineering Task Force
        (March 1997).

   ASPEXT.
        B. Bidulock, "Application Server Process (ASP) Extension
        Framework," <draft-bidulock-sigtran-aspext-00.txt>, Internet
        Engineering Task Force - Signalling Transport Working Group
        (January 2002).  Work In Progress.

B. Bidulock                    Version 0.0                       Page 31

Internet Draft                  UA CORID                January 10, 2002

Author's Addresses

   Brian Bidulock                                 Phone: +1-972-839-4489
   OpenSS7 Corporation                       Email: bidulock@openss7.org
   4701 Preston Park Boulevard               URL: http//www.openss7.org/
   Suite 424
   Plano, TX  75093
   USA

      This draft expires July, 2002.

B. Bidulock                    Version 0.0                       Page 32

Internet Draft                  UA CORID                January 10, 2002

                             List of Tables

    Table 1 Divertable Messages by UA ...........................   16

                         List of Illustrations

    Figure 1 Buffer Categories at SCTP Association Failure ......    5
    Figure 2 Example (A) Configuration of ASPs and SGPs .........    6
    Figure 3 Restoration of a Traffic Flow ......................    7
    Figure 4 Example (B) Sample Multiple-SG Configuration .......   11
    Figure 5 Example - Starting Traffic .........................   26
    Figure 6 Example - Starting Traffic .........................   27

                           Table of Contents

    1 Introduction ..............................................    2
    1.1 Scope ...................................................    2
    1.2 Terminology .............................................    2
    1.3 Overview ................................................    3
    1.3.1 Configuration .........................................    3
    1.3.2 Conditions at Fail-Over ...............................    4
    1.3.3 Sources of Message Loss and Duplication ...............    4
    1.3.4 Conditions at Recovery ................................    6
    1.3.5 Sources of Message Mis-Sequencing .....................    7
    1.4 Functional Areas ........................................    8
    1.4.1 Identification of Traffic Flows .......................    8
    1.5 Sample Configurations ...................................   10
    2 Conventions ...............................................   10
    3 Protocol Elements .........................................   10
    3.1 Parameters ..............................................   11
    3.1.1 Correlation Id ........................................   11
    3.2 Messages ................................................   13
    3.2.1 ASP Active (ASPAC) ....................................   13
    3.2.2 ASP Active Acknowledgement (ASPAC ACK) ................   14
    4 Procedures ................................................   15
    4.1 Traffic Handling ........................................   16
    4.1.1 Classification ........................................   16
    4.1.2 Correlation ...........................................   17
    4.1.3 Tagging ...............................................   18
    4.1.4 Buffering .............................................   18
    4.1.5 Message Handling ......................................   19
    4.1.6 Diversion .............................................   20
    4.2 ASP Management Procedures ...............................   22
    4.2.1 ASP Down Procedures ...................................   22
    4.2.2 ASP Inactive Procedures ...............................   23
    4.2.3 ASP Active Procedures .................................   24
    4.3 Interworking Procedures .................................   25
    5 Examples ..................................................   26
    5.1 Example Configuration ...................................   26
    5.2 Initialization ..........................................   26
    5.3 Starting Traffic ........................................   27
    5.3.1 Initial Startup .......................................   28

B. Bidulock                    Version 0.0                       Page 33

Internet Draft                  UA CORID                January 10, 2002

    5.3.2 Joining a Broadcast ...................................   28
    5.4 Fail-Over ...............................................   28
    5.4.1 Assocation Failure - Override .........................   28
    5.4.2 Deactivation - Loadshare ..............................   28
    5.4.3 Management Blocking - Override ........................   28
    5.5 Recovery ................................................   28
    5.5.1 Association Recovery - Loadshare ......................   28
    5.5.2 AS-Pending Recovery ...................................   28
    5.6 Interworking ............................................   28
    5.6.1 ASP does not Support CORID ............................   28
    6 Security ..................................................   28
    7 IANA Considerations .......................................   28
    8 Timers ....................................................   28

B. Bidulock                    Version 0.0                       Page 34

Internet Draft                  UA CORID                January 10, 2002

  Copyright Statement

     Copyright (C) The Internet Society (2002).  All Rights Reserved.

     This document and translations of it may be copied and furnished to
     others, and derivative works that comment on or otherwise explain
     it or assist in its implementation may be prepared, copied,
     published and distributed, in whole or in part, without restriction
     of any kind, provided that the above copyright notice and this
     paragraph are included on all such copies and derivative works.
     However, this document itself may not be modified in any way, such
     as by removing the copyright notice or references to the Internet
     Society or other Internet organizations, except as needed for the
     purpose of developing Internet standards in which case the
     procedure for copyrights defined in the Internet Standards process
     must be followed, or as required to translate into languages other
     than English.

     The limited permission granted above are perpetual and will not be
     revoked by the Internet Society or its successors or assigns.

     This document and the information contained herein is provided on
     an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET
     ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR
     IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
     THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
     WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

B. Bidulock                    Version 0.0                       Page 35


Last modified: Thu, 13 Nov 2014 16:21:59 GMT  
Copyright © 2014 OpenSS7 Corporation All Rights Reserved.