Tech-invite3GPPspaceIETFspace
959493929190898887868584838281807978777675747372717069686766656463626160595857565554535251504948474645444342414039383736353433323130292827262524232221201918171615141312111009080706050403020100
in Index   Prev   Next

RFC 3332

Signaling System 7 (SS7) Message Transfer Part 3 (MTP3) - User Adaptation Layer (M3UA)

Pages: 120
Obsoleted by:  4666
Part 3 of 4 – Pages 59 to 86
First   Prev   Next

ToP   noToC   RFC3332 - Page 59   prevText

3.7 ASP Traffic Maintenance (ASPTM) Messages

3.7.1 ASP Active

The ASP Active message is sent by an ASP to indicate to a remote M3UA peer that it is ready to process signalling traffic for a particular Application Server. The ASP Active message affects only the ASP state for the Routing Keys identified by the Routing Contexts, if present. The ASP Active message contains the following parameters: Traffic Mode Type Optional Routing Context Optional INFO String Optional The format for the ASP Active 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \ \ / Routing Context / \ \ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Tag = 0x0004 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \ \ / INFO String / \ \ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Traffic Mode Type: 32-bit (unsigned integer) The Traffic Mode Type parameter identifies the traffic mode of operation of the ASP within an AS. The valid values for Traffic Mode Type are shown in the following table: 1 Override 2 Loadshare 3 Broadcast
ToP   noToC   RFC3332 - Page 60
      Within a particular Routing Context, Override, Loadshare and
      Broadcast SHOULD NOT be mixed.  The Override value indicates that
      the ASP is operating in Override mode, and the ASP takes over all
      traffic in an Application Server (i.e., primary/backup operation),
      overriding any currently active ASPs in the AS.  In Loadshare
      mode, the ASP will share in the traffic distribution with any
      other currently active ASPs.  In Broadcast mode, the ASP will
      receive the same messages as any other currently active ASP.

   Routing Context: n X 32-bit integers

      The optional Routing Context parameter contains (a list of)
      integers indexing the Application Server traffic that the sending
      ASP is configured/registered to receive.

      There is one-to-one relationship between an index entry and an SGP
      Routing Key or AS Name.  Because an AS can only appear in one
      Network Appearance, the Network Appearance parameter is not
      required in the ASP Active message.

      An Application Server Process may be configured to process traffic
      for more than one logical Application Server.  From the
      perspective of an ASP, a Routing Context defines a range of
      signalling traffic that the ASP is currently configured to receive
      from the SGP.  For example, an ASP could be configured to support
      call processing for multiple ranges of PSTN trunks and therefore
      receive related signalling traffic, identified by separate SS7
      DPC/OPC/CIC ranges.

   The format and description of the optional INFO String parameter is
   the same as for the DUNA message (See Section 3.4.1).

3.7.2 ASP Active Acknowledgement (ASP Active Ack)

The ASP Active Ack message is used to acknowledge an ASP Active message received from a remote M3UA peer. The ASP Active Ack message contains the following parameters: Traffic Mode Type Optional Routing Context Optional INFO String Optional
ToP   noToC   RFC3332 - Page 61
   The format for the ASP Active 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             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      \                                                               \
      /                       Routing Context                         /
      \                                                               \
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           Tag = 0x0004        |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      \                                                               \
      /                          INFO String                          /
      \                                                               \
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The format and description of the optional INFO String parameter is
   the same as for the DUNA message (See Section 3.4.1).

   The INFO String in an ASP Active Ack message is independent from the
   INFO String in the ASP Active message (i.e., it does not have to echo
   back the INFO String received).

   The format of the Traffic Mode Type and Routing Context parameters is
   the same as for the ASP Active message. (See Section 3.7.1).

3.7.3 ASP Inactive

The ASP Inactive message is sent by an ASP to indicate to a remote M3UA peer that it is no longer an active ASP to be used from within a list of ASPs. The ASP Inactive message affects only the ASP state in the Routing Keys identified by the Routing Contexts, if present. The ASP Inactive message contains the following parameters: Routing Context Optional INFO String Optional
ToP   noToC   RFC3332 - Page 62
   The format for the ASP Inactive message parameters 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 = 0x0006          |            Length             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      \                                                               \
      /                       Routing Context                         /
      \                                                               \
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |         Tag = 0x0004          |            Length             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      \                                                               \
      /                          INFO String                          /
      \                                                               \
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The format and description of the optional Routing Context and INFO
   String parameters is the same as for the ASP Active message (See
   Section 3.5.5.)

3.7.4 ASP Inactive Acknowledgement (ASP Inactive Ack)

The ASP Inactive Ack message is used to acknowledge an ASP Inactive message received from a remote M3UA peer. The ASP Inactive Ack message contains the following parameters: Routing Context Optional INFO String Optional
ToP   noToC   RFC3332 - Page 63
   The format for the ASP Inactive 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 = 0x0006          |            Length             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      \                                                               \
      /                       Routing Context                         /
      \                                                               \
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |         Tag = 0x0004          |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      \                                                               \
      /                          INFO String                          /
      \                                                               \
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The format and description of the optional INFO String parameter is
   the same as for the DUNA message (See Section 3.4.1.)

   The INFO String in an ASP Inactive Ack message is independent from
   the INFO String in the ASP Inactive message (i.e., it does not have
   to echo back the INFO String received).

   The format of the Routing Context parameter is the same as for the
   ASP Inactive message. (See Section 3.7.3).

3.8 Management (MGMT) Messages

3.8.1 Error

The Error message is used to notify a peer of an error event associated with an incoming message. For example, the message type might be unexpected given the current state, or a parameter value might be invalid. The Error message contains the following parameters: Error Code Mandatory Routing Context Mandatory* Network Appearance Mandatory* Affected Point Code Mandatory* Diagnostic Information Optional (*) Only mandatory for specific Error Codes
ToP   noToC   RFC3332 - Page 64
   The format for the Error 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 = 0x000c         |          Length = 8           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                          Error Code                           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |          Tag = 0x0006         |            Length             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      \                                                               \
      /                        Routing Context                        /
      \                                                               \
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |          Tag - 0x0012         |            Length             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     Mask      |             Affected Point Code  1            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      \                                                               \
      /                                ...                            /
      \                                                               \
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     Mask      |             Affected Point Code  n            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           Tag = 0x0200        |           Length = 8          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                      Network Appearance                       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |          Tag = 0x0007         |            Length             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      \                                                               \
      /                     Diagnostic Information                    /
      \                                                               \
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Error Code: 32-bits (unsigned integer)

      The Error Code parameter indicates the reason for the Error
      Message. The Error parameter value can be one of the following
      values:

      0x01      Invalid Version
      0x02      Not Used in M3UA
      0x03      Unsupported Message Class
      0x04      Unsupported Message Type
      0x05      Unsupported Traffic Mode Type
      0x06      Unexpected Message
ToP   noToC   RFC3332 - Page 65
      0x07      Protocol Error
      0x08      Not used in M3UA
      0x09      Invalid Stream Identifier
      0x0a      Not used in M3UA
      0x0b      Not used in M3UA
      0x0c      Not used in M3UA
      0x0d      Refused - Management Blocking
      0x0e      ASP Identifier Required
      0x0f      Invalid ASP Identifier
      0x10      Not Used in M3UA
      0x11      Invalid Parameter Value
      0x12      Parameter Field Error
      0x13      Unexpected Parameter
      0x14      Destination Status Unknown
      0x15      Invalid Network Appearance
      0x16      Missing Parameter
      0x17      Not Used in M3UA
      0x18      Not Used in M3UA
      0x19      Invalid Routing Context
      0x1a      No Configured AS for ASP

   The "Invalid Stream Identifier" error is sent if a message is
   received on an unexpected SCTP stream (e.g., a MGMT message was
   received on a stream other than "0").  Error messages MUST NOT be
   generated in response to other Error messages.

   The "Unsupported Message Class" error is sent if a message with an
   unexpected or unsupported Message Class is received.

   The "Unsupported Message Type" error is sent if a message with an
   unexpected or unsupported Message Type is received.

   The "Unsupported Traffic Mode Type" error is sent by a SGP if an ASP
   sends an ASP Active message with an unsupported Traffic Mode Type or
   a Traffic Mode Type that is inconsistent with the presently
   configured mode for the Application Server.  An example would be a
   case in which the SGP did not support loadsharing.

   The "Unexpected Message" error MAY be sent if a defined and
   recognized message is received that is not expected in the current
   state (in some cases the ASP may optionally silently discard the
   message and not send an Error message).  For example, silent discard
   is used by an ASP if it received a DATA message from an SGP while it
   was in the ASP-INACTIVE state. If the Unexpected message contained
   Routing Context(s), the Routing Context(s) SHOULD be included in the
   Error message.
ToP   noToC   RFC3332 - Page 66
   The "Protocol Error" error is sent for any protocol anomaly (i.e.,
   reception of a parameter that is syntactically correct but unexpected
   in the current situation.

   The "Invalid Stream Identifier" error is sent if a message is
   received on an unexpected SCTP stream (e.g., a Management message was
   received on a stream other than "0").

   The "Refused - Management Blocking" error is sent when an ASP Up or
   ASP Active message is received and the request is refused for
   management reasons (e.g., management lockout").  If this error is in
   response to an ASP Active message, the Routing Context(s) in the ASP
   Active message SHOULD be included in the Error message.

   The "ASP Identifier Required" is sent by a SGP in response to an ASP
   Up message which does not contain an ASP Identifier parameter when
   the SGP requires one.  The ASP SHOULD resend the ASP Up message with
   an ASP Identifier.

   The "Invalid ASP Identifier" is sent by an SGP in response to an ASP
   Up message with an invalid (i.e., non-unique) ASP Identifier.

   The "Invalid Parameter Value " error is sent if a message is received
   with an invalid parameter value (e.g., a DUPU message was received
   with a Mask value other than "0".

   The "Parameter Field Error" would be sent if a message is received
   with a parameter having a wrong length field.

   The "Unexpected Parameter" error would be sent if a message contains
   an invalid parameter.

   The "Destination Status Unknown" Error MAY be sent if a DAUD is
   received at an SG enquiring of the availability/congestion status of
   a destination, and the SG does not wish to provide the status (e.g.,
   the sender is not authorized to know the status).  For this error,
   the invalid or unauthorized Point Code(s) MUST be included along with
   the Network Appearance and/or Routing Context associated with the
   Point Code(s).

   The "Invalid Network Appearance" error is sent by a SGP if an ASP
   sends a message with an invalid (unconfigured) Network Appearance
   value. For this error, the invalid (unconfigured) Network Appearance
   MUST be included in the Network Appearance parameter.
ToP   noToC   RFC3332 - Page 67
   The "Missing Parameter" error would be sent if a mandatory parameter
   were not included in a message.

   The "Invalid Routing Context" error is sent if a message is received
   from a peer with an invalid (unconfigured) Routing Context value.
   For this error, the invalid Routing Context(s) MUST be included in
   the Error message.

   The "No Configured AS for ASP" error is sent if a message is received
   from a peer without a Routing Context parameter and it is not known
   by configuration data which Application Servers are referenced.

   Diagnostic Information: variable length

      When included, the optional Diagnostic information can be any
      information germane to the error condition, to assist in
      identification of the error condition. The Diagnostic information
      SHOULD contain the offending message.

3.8.2 Notify

The Notify message used to provide an autonomous indication of M3UA events to an M3UA peer. The Notify message contains the following parameters: Status Mandatory ASP Identifier Optional Routing Context Optional INFO String Optional
ToP   noToC   RFC3332 - Page 68
   The format for the Notify 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 = 0x000d           |          Length = 8           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |        Status Type            |       Status Information      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |        Tag = 0x0011           |             Length = 8        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                        ASP Identifier                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |        Tag = 0x0006           |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      \                                                               \
      /                       Routing Context                         /
      \                                                               \
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |         Tag = 0x0004          |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      \                                                               \
      /                          INFO String                          /
      \                                                               \
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Status Type: 16-bits (unsigned integer)

      The Status Type parameter identifies the type of the Notify
      message. The following are the valid Status Type values:

         1     Application Server State Change (AS-State_Change)
         2     Other

   Status Information: 16-bits (unsigned integer)

      The Status Information parameter contains more detailed
      information for the notification, based on the value of the Status
      Type. If the Status Type is AS-State_Change the following Status
      Information values are used:

         1    reserved
         2    Application Server Inactive (AS-INACTIVE)
         3    Application Server Active (AS-ACTIVE)
         4    Application Server Pending (AS-PENDING)
ToP   noToC   RFC3332 - Page 69
      These notifications are sent from an SGP to an ASP upon a change
      in status of a particular Application Server. The value reflects
      the new state of the Application Server.

      If the Status Type is Other, then the following Status Information
      values are defined:

         1    Insufficient ASP Resources Active in AS
         2    Alternate ASP Active
         3    ASP Failure

   These notifications are not based on the SGP reporting the state
   change of an ASP or AS.  In the Insufficient ASP Resources case, the
   SGP is indicating to an ASP_INACTIVE ASP in the AS that another ASP
   is required to handle the load of the AS (Loadsharing or Broadcast
   mode). For the Alternate ASP Active case, an ASP is informed when an
   alternate ASP transitions to the ASP-ACTIVE state in Override mode.
   The ASP Identifier (if available) of the Alternate ASP MUST be placed
   in the message.  For the ASP Failure case, the SGP is indicating to
   ASP(s) in the AS that one of the ASPs has transitioned to ASP-DOWN.
   The ASP Identifier (if available) of the failed ASP MUST be placed in
   the message.

   The format and description of the optional ASP Identifier is the same
   as for the ASP Up message (See Section 3.5.1).  The format and
   description of the Routing Context and Info String parameters is the
   same as for the ASP Active message (See Section 3.7.1)

4. Procedures

The M3UA layer needs to respond to various local primitives it receives from other layers as well as the messages that it receives from the peer M3UA layer. This section describes the M3UA procedures in response to these events.

4.1 Procedures to Support the M3UA-User

4.1.1 Receipt of Primitives from the M3UA-User

On receiving an MTP-TRANSFER request primitive from an upper layer at an ASP/IPSP, or the nodal interworking function at an SGP, the M3UA layer sends a corresponding DATA message (see Section 3) to its M3UA peer. The M3UA peer receiving the DATA message sends an MTP-TRANSFER indication primitive to the upper layer.
ToP   noToC   RFC3332 - Page 70
   The M3UA message distribution function (see Section 1.4.2.1)
   determines the Application Server (AS) based on comparing the
   information in the MTP-TRANSFER request primitive with a provisioned
   Routing Key.

   From the list of ASPs within the AS table, an ASP in the ASP-ACTIVE
   state is selected and a DATA message is constructed and issued on the
   corresponding SCTP association.  If more than one ASP is in the ASP-
   ACTIVE state (i.e., traffic is to be loadshared across more than one
   ASP), one of the ASPs in the ASP-ACTIVE state is selected from the
   list.  If the ASPs are in Broadcast Mode, all active ASPs will be
   selected and the message sent to each of the active ASPs.  The
   selection algorithm is implementation dependent but could, for
   example, be round robin or based on the SLS or ISUP CIC.  The
   appropriate selection algorithm must be chosen carefully as it is
   dependent on application assumptions and understanding of the degree
   of state coordination between the ASP-ACTIVE ASPs in the AS.

   In addition, the message needs to be sent on the appropriate SCTP
   stream, again taking care to meet the message sequencing needs of the
   signalling application. DATA messages MUST be sent on an SCTP stream
   other than stream '0'.

   When there is no Routing Key match, or only a partial match, for an
   incoming SS7 message, a default treatment MAY be specified.  Possible
   solutions are to provide a default Application Server at the SGP that
   directs all unallocated traffic to a (set of) default ASP(s), or to
   drop the message and provide a notification to Layer Management in an
   M-ERROR indication primitive.  The treatment of unallocated traffic
   is implementation dependent.

4.2 Receipt of Primitives from the Layer Management

On receiving primitives from the local Layer Management, the M3UA layer will take the requested action and provide an appropriate response primitive to Layer Management. An M-SCTP_ESTABLISH request primitive from Layer Management at an ASP or IPSP will initiate the establishment of an SCTP association. The M3UA layer will attempt to establish an SCTP association with the remote M3UA peer by sending an SCTP-ASSOCIATE primitive to the local SCTP layer. When an SCTP association has been successfully established, the SCTP will send an SCTP-COMMUNICATION_UP notification primitive to the local M3UA layer. At the SGP or IPSP that initiated the request, the M3UA layer will send an M-SCTP_ESTABLISH confirm primitive to Layer Management when the association setup is complete. At the peer M3UA
ToP   noToC   RFC3332 - Page 71
   layer, an M-SCTP_ESTABLISH indication primitive is sent to Layer
   Management upon successful completion of an incoming SCTP association
   setup.

   An M-SCTP_RELEASE request primitive from Layer Management initiates
   the teardown of an SCTP association.  The M3UA layer accomplishes a
   graceful shutdown of the SCTP association by sending an SCTP-SHUTDOWN
   primitive to the SCTP layer.

   When the graceful shutdown of the SCTP association has been
   accomplished, the SCTP layer returns an SCTP-SHUTDOWN_COMPLETE
   notification primitive to the local M3UA layer.  At the M3UA Layer
   that initiated the request, the M3UA layer will send an M-
   SCTP_RELEASE confirm primitive to Layer Management when the
   association shutdown is complete.  At the peer M3UA Layer, an M-
   SCTP_RELEASE indication primitive is sent to Layer Management upon
   abort or successful shutdown of an SCTP association.

   An M-SCTP_STATUS request primitive supports a Layer Management query
   of the local status of a particular SCTP association.  The M3UA layer
   simply maps the M-SCTP_STATUS request primitive to an SCTP-STATUS
   primitive to the SCTP layer.  When the SCTP responds, the M3UA layer
   maps the association status information to an M-SCTP_STATUS confirm
   primitive.  No peer protocol is invoked.

   Similar LM-to-M3UA-to-SCTP and/or SCTP-to-M3UA-to-LM primitive
   mappings can be described for the various other SCTP Upper Layer
   primitives in RFC2960 [17] such as INITIALIZE, SET PRIMARY, CHANGE
   HEARTBEAT, REQUEST HEARTBEAT, GET SRTT REPORT, SET FAILURE THRESHOLD,
   SET PROTOCOL PARAMETERS, DESTROY SCTP INSTANCE, SEND FAILURE, AND
   NETWORK STATUS CHANGE.  Alternatively, these SCTP Upper Layer
   primitives (and Status as well) can be considered for modeling
   purposes as a Layer Management interaction directly with the SCTP
   Layer.

   M-NOTIFY indication and M-ERROR indication primitives indicate to
   Layer Management the notification or error information contained in a
   received M3UA Notify or Error message respectively.  These
   indications can also be generated based on local M3UA events.

   An M-ASP_STATUS request primitive supports a Layer Management query
   of the status of a particular local or remote ASP.  The M3UA layer
   responds with the status in an M-ASP_STATUS confirm primitive.  No
   M3UA peer protocol is invoked.
ToP   noToC   RFC3332 - Page 72
   An M-AS_STATUS request supports a Layer Management query of the
   status of a particular AS.  The M3UA responds with an M-AS_STATUS
   confirm primitive.  No M3UA peer protocol is invoked.

   M-ASP_UP request, M-ASP_DOWN request, M-ASP_ACTIVE request and M-
   ASP_INACTIVE request primitives allow Layer Management at an ASP to
   initiate state changes.  Upon successful completion, a corresponding
   confirm primitive is provided by the M3UA layer to Layer Management.
   If an invocation is unsuccessful, an Error indication primitive is
   provided in the primitive.  These requests result in outgoing ASP Up,
   ASP Down, ASP Active and ASP Inactive messages to the remote M3UA
   peer at an SGP or IPSP.

4.2.1 Receipt of M3UA Peer Management Messages

Upon successful state changes resulting from reception of ASP Up, ASP Down, ASP Active and ASP Inactive messages from a peer M3UA, the M3UA layer MAY invoke corresponding M-ASP_UP, M-ASP_DOWN, M-ASP_ACTIVE and M-ASP_INACTIVE, M-AS_ACTIVE, M-AS_INACTIVE, and M-AS_DOWN indication primitives to the local Layer Management. M-NOTIFY indication and M-ERROR indication primitives indicate to Layer Management the notification or error information contained in a received M3UA Notify or Error message. These indications can also be generated based on local M3UA events. All non-Transfer and non-SSNM, messages, except BEAT and BEAT Ack, SHOULD be sent with sequenced delivery to ensure ordering. ASPTM messages MAY be sent on one of the streams used to carry the data traffic related to the Routing Context(s), to minimize possible message loss. BEAT and BEAT Ack messages MAY be sent using out-of- order delivery, and MAY be sent on any stream.

4.3 AS and ASP State Maintenance

The M3UA layer on the SGP maintains the state of each remote ASP, in each Application Server that the ASP is configured to receive traffic, as input to the M3UA message distribution function. Similarly, where IPSPs use M3UA in a point-to-point fashion, the M3UA layer in an IPSP maintains the state of remote IPSPs. For the purposes of the following procedures, only the SGP/ASP case is described but the SGP side of the procedures also apply to an IPSP sending traffic to an AS consisting of a set of remote IPSPs.
ToP   noToC   RFC3332 - Page 73

4.3.1 ASP States

The state of each remote ASP, in each AS that it is configured to operate, is maintained in the M3UA layer in the SGP. The state of a particular ASP in a particular AS changes due to events. The events include: * Reception of messages from the peer M3UA layer at the ASP; * Reception of some messages from the peer M3UA layer at other ASPs in the AS (e.g., ASP Active message indicating "Override"); * Reception of indications from the SCTP layer; or * Local Management intervention. The ASP state transition diagram is shown in Figure 3. The possible states of an ASP are: ASP-DOWN: The remote M3UA peer at the ASP is unavailable and/or the related SCTP association is down. Initially all ASPs will be in this state. An ASP in this state SHOULD NOT be sent any M3UA messages, with the exception of Heartbeat, ASP Down Ack and Error messages. ASP-INACTIVE: The remote M3UA peer at the ASP is available (and the related SCTP association is up) but application traffic is stopped. In this state the ASP SHOULD NOT be sent any DATA or SSNM messages for the AS for which the ASP is inactive. ASP-ACTIVE: The remote M3UA peer at the ASP is available and application traffic is active (for a particular Routing Context or set of Routing Contexts). SCTP CDI: The SCTP CDI denotes the local SCTP layer's Communication Down Indication to the Upper Layer Protocol (M3UA) on an SGP. The local SCTP layer will send this indication when it detects the loss of connectivity to the ASP's peer SCTP layer. SCTP CDI is understood as either a SHUTDOWN_COMPLETE notification or COMMUNICATION_LOST notification from the SCTP layer. SCTP RI: The local SCTP layer's Restart indication to the upper layer protocol (M3UA) on an SG. The local SCTP will send this indication when it detects a restart from the ASP's peer SCTP layer.
ToP   noToC   RFC3332 - Page 74
              Figure 3: ASP State Transition Diagram, per AS

                                        +--------------+
                                        |              |
                 +----------------------|  ASP-ACTIVE  |
                 |      Other   +-------|              |
                 |   ASP in AS  |       +--------------+
                 |   Overrides  |           ^     |
                 |              |    ASP    |     | ASP
                 |              |    Active |     | Inactive
                 |              |           |     v
                 |              |       +--------------+
                 |              |       |              |
                 |              +------>| ASP-INACTIVE |
                 |                      +--------------+
                 |                          ^     |
    ASP Down/    |                     ASP  |     | ASP Down /
    SCTP CDI/    |                     Up   |     | SCTP CDI/
    SCTP RI      |                          |     v SCTP RI
                 |                      +--------------+
                 |                      |              |
                 +--------------------->|   ASP-DOWN   |
                                        |              |
                                        +--------------+

4.3.2 AS States

The state of the AS is maintained in the M3UA layer on the SGPs. The state of an AS changes due to events. These events include: * ASP state transitions * Recovery timer triggers The possible states of an AS are: AS-DOWN: The Application Server is unavailable. This state implies that all related ASPs are in the ASP-DOWN state for this AS. Initially the AS will be in this state. An Application Server is in the AS-DOWN state when it is removed from a configuration. AS-INACTIVE: The Application Server is available but no application traffic is active (i.e., one or more related ASPs are in the ASP- INACTIVE state, but none in the ASP-ACTIVE state). The recovery timer T(r) is not running or has expired.
ToP   noToC   RFC3332 - Page 75
   AS-ACTIVE: The Application Server is available and application
   traffic is active.  This state implies that at least one ASP is in
   the ASP-ACTIVE state.

   AS-PENDING: An active ASP has transitioned to ASP-INACTIVE or ASP-
   DOWN and it was the last remaining active ASP in the AS.  A recovery
   timer T(r) SHOULD be started and all incoming signalling messages
   SHOULD be queued by the SGP. If an ASP becomes ASP-ACTIVE before T(r)
   expires, the AS is moved to the AS-ACTIVE state and all the queued
   messages will be sent to the ASP.

   If T(r) expires before an ASP becomes ASP-ACTIVE, and the SGP has no
   alternative, the SGP may stops queuing messages and discards all
   previously queued messages.  The AS will move to the AS-INACTIVE
   state.

   If at least one ASP is in ASP-INACTIVE state, otherwise it will move
   to AS-DOWN state.

   Figure 4 shows an example AS state machine for the case where the
   AS/ASP data is preconfigured.  For other cases where the AS/ASP
   configuration data is created dynamically, there would be differences
   in the state machine, especially at creation of the AS.
ToP   noToC   RFC3332 - Page 76
                   Figure 4: AS State Transition Diagram

        +----------+   one ASP trans to ACTIVE   +-------------+
        |    AS-   |---------------------------->|     AS-     |
        | INACTIVE |                             |   ACTIVE    |
        |          |<---                         |             |
        +----------+    \                        +-------------+
           ^   |         \ Tr Expiry,                ^    |
           |   |          \ at least one             |    |
           |   |           \ ASP in ASP-INACTIVE     |    |
           |   |            \                        |    |
           |   |             \                       |    |
           |   |              \                      |    |
   one ASP |   | all ASP       \            one ASP  |    | Last ACTIVE
   trans   |   | trans to       \           trans to |    | ASP trans to
   to      |   | ASP-DOWN        -------\   ASP-     |    | ASP-INACTIVE
   ASP-    |   |                         \  ACTIVE   |    | or ASP-DOWN
   INACTIVE|   |                          \          |    |  (start Tr)
           |   |                           \         |    |
           |   |                            \        |    |
           |   v                             \       |    v
        +----------+                          \  +-------------+
        |          |                           --|             |
        | AS-DOWN  |                             | AS-PENDING  |
        |          |                             |  (queuing)  |
        |          |<----------------------------|             |
        +----------+    Tr Expiry and no ASP     +-------------+
                        in ASP-INACTIVE state)

       Tr = Recovery Timer

   For example, where the AS/ASP configuration data is not created until
   Registration of the first ASP, the AS-INACTIVE state is entered
   directly upon the first successful REG REQ from an ASP.  Another
   example is where the AS/ASP configuration data is not created until
   the first ASP successfully enters the ASP-ACTIVE state.  In this case
   the AS-ACTIVE state is entered directly.

4.3.3 M3UA Management Procedures for Primitives

Before the establishment of an SCTP association the ASP state at both the SGP and ASP is assumed to be in the state ASP-DOWN. Once the SCTP association is established (see Section 4.2) and assuming that the local M3UA-User is ready, the local M3UA ASP Maintenance (ASPM) function will initiate the relevant procedures, using the ASP Up/ASP Down/ASP Active/ASP Inactive messages to convey the ASP state to the SGP (see Section 4.3.4).
ToP   noToC   RFC3332 - Page 77
   If the M3UA layer subsequently receives an SCTP-COMMUNICATION_DOWN or
   SCTP-RESTART indication primitive from the underlying SCTP layer, it
   will inform the Layer Management by invoking the M-SCTP_STATUS
   indication primitive. The state of the ASP will be moved to ASP-DOWN.
   At an ASP, the MTP3-User will be informed of the unavailability of
   any affected SS7 destinations through the use of MTP-PAUSE indication
   primitives.

   In the case of SCTP-COMMUNICATION_DOWN, the SCTP client MAY try to
   re-establish the SCTP Association.  This MAY be done by the M3UA
   layer automatically, or Layer Management MAY re-establish using the
   M-SCTP_ESTABLISH request primitive.

   In the case of an SCTP-RESTART indication at an ASP, the ASP is now
   considered by its M3UA peer to be in the ASP-DOWN state.  The ASP, if
   it is to recover, must begin any recovery with the ASP-Up procedure.

4.3.4 ASPM Procedures for Peer-to-Peer Messages

4.3.4.1 ASP Up Procedures
After an ASP has successfully established an SCTP association to an SGP, the SGP waits for the ASP to send an ASP Up message, indicating that the ASP M3UA peer is available. The ASP is always the initiator of the ASP Up message. This action MAY be initiated at the ASP by an M-ASP_UP request primitive from Layer Management or MAY be initiated automatically by an M3UA management function. When an ASP Up message is received at an SGP and internally the remote ASP is in the ASP-DOWN state and not considered locked out for local management reasons, the SGP marks the remote ASP in the state ASP-INACTIVE and informs Layer Management with an M-ASP_Up indication primitive. If the SGP is aware, via current configuration data, which Application Servers the ASP is configured to operate in, the SGP updates the ASP state to ASP-INACTIVE in each AS that it is a member. Alternatively, the SGP may move the ASP into a pool of Inactive ASPs available for future configuration within Application Server(s), determined in a subsequent Registration Request or ASP Active procedure. If the ASP Up message contains an ASP Identifier, the SGP should save the ASP Identifier for that ASP. The SGP MUST send an ASP Up Ack message in response to a received ASP Up message even if the ASP is already marked as ASP-INACTIVE at the SGP.
ToP   noToC   RFC3332 - Page 78
   If for any local reason (e.g., management lockout) the SGP cannot
   respond with an ASP Up Ack message, the SGP responds to an ASP Up
   message with an Error message with reason "Refused - Management
   Blocking".

   At the ASP, the ASP Up Ack message received is not acknowledged.
   Layer Management is informed with an M-ASP_UP confirm primitive.

   When the ASP sends an ASP Up message it starts timer T(ack).  If the
   ASP does not receive a response to an ASP Up message within T(ack),
   the ASP MAY restart T(ack) and resend ASP Up messages until it
   receives an ASP Up Ack message.  T(ack) is provisionable, with a
   default of 2 seconds.  Alternatively, retransmission of ASP Up
   messages MAY be put under control of Layer Management.  In this
   method, expiry of T(ack) results in an M-ASP_UP confirm primitive
   carrying a negative indication.

   The ASP must wait for the ASP Up Ack message before sending any other
   M3UA messages (e.g., ASP Active or REG REQ).  If the SGP receives any
   other M3UA messages before an ASP Up message is received (other than
   ASP Down - see Section 4.3.4.2), the SGP MAY discard them.

   If an ASP Up message is received and internally the remote ASP is in
   the ASP-ACTIVE state, an ASP Up Ack message is returned, as well as
   an Error message ("Unexpected Message), and the remote ASP state is
   changed to ASP-INACTIVE in all relevant Application Servers.

   If an ASP Up message is received and internally the remote ASP is
   already in the ASP-INACTIVE state, an ASP Up Ack message is returned
   and no further action is taken.

4.3.4.1.1 M3UA Version Control
If an ASP Up message with an unsupported version is received, the receiving end responds with an Error message, indicating the version the receiving node supports and notifies Layer Management. This is useful when protocol version upgrades are being performed in a network. A node upgraded to a newer version should support the older versions used on other nodes it is communicating with. Because ASPs initiate the ASP Up procedure it is assumed that the Error message would normally come from the SGP.
ToP   noToC   RFC3332 - Page 79
4.3.4.1.2 IPSP Considerations (ASP Up)
An IPSP may be considered in the ASP-INACTIVE state after an ASP Up or ASP Up Ack has been received from it. An IPSP can be considered in the ASP-DOWN state after an ASP Down or ASP Down Ack has been received from it. The IPSP may inform Layer Management of the change in state of the remote IPSP using M-ASP_UP or M-ASP_DN indication or confirmation primitives. Alternatively, an interchange of ASP Up messages from each end can be performed. This option follows the ASP state transition diagram. It would need four messages for completion. If for any local reason (e.g., management lockout) an IPSP cannot respond to an ASP Up message with an ASP Up Ack message, it responds to an ASP Up message with an Error message with reason "Refused Management Blocking" and leaves the remote IPSP in the ASP-DOWN state.
4.3.4.2 ASP-Down Procedures
The ASP will send an ASP Down message to an SGP when the ASP wishes to be removed from service in all Application Servers that it is a member and no longer receive any DATA, SSNM or ASPTM messages. This action MAY be initiated at the ASP by an M-ASP_DOWN request primitive from Layer Management or MAY be initiated automatically by an M3UA management function. Whether the ASP is permanently removed from any AS is a function of configuration management. In the case where the ASP previously used the Registration procedures (see Section 4.4.1) to register within Application Servers but has not deregistered from all of them prior to sending the ASP Down message, the SGP MUST consider the ASP as Deregistered in all Application Servers that it is still a member. The SGP marks the ASP as ASP-DOWN, informs Layer Management with an M-ASP_Down indication primitive, and returns an ASP Down Ack message to the ASP. The SGP MUST send an ASP Down Ack message in response to a received ASP Down message from the ASP even if the ASP is already marked as ASP-DOWN at the SGP. At the ASP, the ASP Down Ack message received is not acknowledged. Layer Management is informed with an M-ASP_DOWN confirm primitive. If the ASP receives an ASP Down Ack without having sent an ASP Down message, the ASP should now consider itself as in the ASP-DOWN state.
ToP   noToC   RFC3332 - Page 80
   If the ASP was previously in the ASP-ACTIVE or ASP-INACTIVE state,
   the ASP should then initiate procedures to return itself to its
   previous state.

   When the ASP sends an ASP Down message it starts timer T(ack).  If
   the ASP does not receive a response to an ASP Down message within
   T(ack), the ASP MAY restart T(ack) and resend ASP Down messages until
   it receives an ASP Down Ack message.  T(ack) is provisionable, with a
   default of 2 seconds.  Alternatively, retransmission of ASP Down
   messages MAY be put under control of Layer Management.  In this
   method, expiry of T(ack) results in an M-ASP_DOWN confirm primitive
   carrying a negative indication.

4.3.4.3 ASP Active Procedures
Anytime after the ASP has received an ASP Up Ack message from the SGP or IPSP, the ASP MAY send an ASP Active message to the SGP indicating that the ASP is ready to start processing traffic. This action MAY be initiated at the ASP by an M-ASP_ACTIVE request primitive from Layer Management or MAY be initiated automatically by an M3UA management function. In the case where an ASP wishes to process the traffic for more than one Application Server across a common SCTP association, the ASP Active message(s) SHOULD contain a list of one or more Routing Contexts to indicate for which Application Servers the ASP Active message applies. It is not necessary for the ASP to include all Routing Contexts of interest in a single ASP Active message, thus requesting to become active in all Routing Contexts at the same time. Multiple ASP Active messages MAY be used to activate within the Application Servers independently, or in sets. In the case where an ASP Active message does not contain a Routing Context parameter, the receiver must know, via configuration data, which Application Server(s) the ASP is a member. For the Application Servers that the ASP can be successfully activated, the SGP or IPSP responds with one or more ASP Active Ack messages, including the associated Routing Context(s) and reflecting any Traffic Mode Type value present in the related ASP Active message. The Routing Context parameter MUST be included in the ASP Active Ack message(s) if the received ASP Active message contained any Routing Contexts. Depending on any Traffic Mode Type request in the ASP Active message, or local configuration data if there is no request, the SGP moves the ASP to the correct ASP traffic state within the associated Application Server(s). Layer Management is informed with an M-ASP_Active indication. If the SGP or IPSP receives any Data messages before an ASP Active message is received, the SGP or IPSP MAY discard them. By sending an ASP Active Ack message, the SGP or IPSP is now ready to receive and send traffic for the related
ToP   noToC   RFC3332 - Page 81
   Routing Context(s).  The ASP SHOULD NOT send Data or SSNM messages
   for the related Routing Context(s) before receiving an ASP Active Ack
   message, or it will risk message loss.

   Multiple ASP Active Ack messages MAY be used in response to an ASP
   Active message containing multiple Routing Contexts, allowing the SGP
   or IPSP to independently acknowledge the ASP Active message for
   different (sets of) Routing Contexts.  The SGP or IPSP MUST send an
   Error message ("Invalid Routing Context") for each Routing Context
   value that the ASP cannot be successfully activated .

   In the case where an "out-of-the-blue" ASP Active message is received
   (i.e., the ASP has not registered with the SG or the SG has no static
   configuration data for the ASP), the message MAY be silently
   discarded.

   The SGP MUST send an ASP Active Ack message in response to a received
   ASP Active message from the ASP, if the ASP is already marked in the
   ASP-ACTIVE state at the SGP.

   At the ASP, the ASP Active Ack message received is not acknowledged.
   Layer Management is informed with an M-ASP_ACTIVE confirm primitive.
   It is possible for the ASP to receive Data message(s) before the ASP
   Active Ack message as the ASP Active Ack and Data messages from an SG
   or IPSP may be sent on different SCTP streams.  Message loss is
   possible as the ASP does not consider itself in the ASP-ACTIVE state
   until reception of the ASP Active Ack message.

   When the ASP sends an ASP Active message it starts timer T(ack).  If
   the ASP does not receive a response to an ASP Active message within
   T(ack), the ASP MAY restart T(ack) and resend ASP Active messages
   until it receives an ASP Active Ack message.  T(ack) is
   provisionable, with a default of 2 seconds.  Alternatively,
   retransmission of ASP Active messages MAY be put under control of
   Layer Management.  In this method, expiry of T(ack) results in an M-
   ASP_ACTIVE confirm primitive carrying a negative indication.

   There are three modes of Application Server traffic handling in the
   SGP M3UA layer: Override, Loadshare and Broadcast.  When included,
   the Traffic Mode Type parameter in the ASP Active message indicates
   the traffic handling mode to be used in a particular Application
   Server. If the SGP determines that the mode indicated in an ASP
   Active message is unsupported or incompatible with the mode currently
   configured for the AS, the SGP responds with an Error message
   ("Unsupported / Invalid Traffic Handling Mode").  If the traffic
   handling mode of the Application Server is not already known via
ToP   noToC   RFC3332 - Page 82
   configuration data, then the traffic handling mode indicated in the
   first ASP Active message causing the transition of the Application
   Server state to AS-ACTIVE MAY be used to set the mode.

   In the case of an Override mode AS, reception of an ASP Active
   message at an SGP causes the (re)direction of all traffic for the AS
   to the ASP that sent the ASP Active message.  Any previously active
   ASP in the AS is now considered to be in state ASP-INACTIVE and
   SHOULD no longer receive traffic from the SGP within the AS.  The SGP
   or IPSP then MUST send a Notify message ("Alternate ASP_Active") to
   the previously active ASP in the AS, and SHOULD stop traffic to/from
   that ASP.  The ASP receiving this Notify MUST consider itself now in
   the ASP-INACTIVE state, if it is not already aware of this via
   inter-ASP communication with the Overriding ASP.

   In the case of a Loadshare mode AS, reception of an ASP Active
   message at an SGP or IPSP causes the direction of traffic to the ASP
   sending the ASP Active message, in addition to all the other ASPs
   that are currently active in the AS.  The algorithm at the SGP for
   loadsharing traffic within an AS to all the active ASPs is
   implementation dependent.  The algorithm could, for example, be
   round-robin or based on information in the Data message (e.g., the
   SLS, SCCP SSN, ISUP CIC value).

   An SGP or IPSP, upon reception of an ASP Active message for the first
   ASP in a Loadshare AS, MAY choose not to direct traffic to a newly
   active ASP until it determines that there are sufficient resources to
   handle the expected load (e.g., until there are "n" ASPs in state
   ASP-ACTIVE in the AS).  In this case, the SGP or IPSP SHOULD withhold
   the Notify (AS-ACTIVE) until there are sufficient resources.

   For the n+k redundancy case, ASPs which are in that AS should
   coordinate among themselves the number of active ASPs in the AS, and
   should start sending traffic only after n ASPs are active.

   All ASPs within a loadsharing mode AS must be able to process any
   Data message received for the AS, to accommodate any potential
   failover or rebalancing of the offered load.

   In the case of a Broadcast mode AS, reception of an ASP Active
   message at an SGP or IPSP causes the direction of traffic to the ASP
   sending the ASP Active message, in addition to all the other ASPs
   that are currently active in the AS.  The algorithm at the SGP for
   broadcasting traffic within an AS to all the active ASPs is a simple
   broadcast algorithm, where every message is sent to each of the
   active ASPs.
ToP   noToC   RFC3332 - Page 83
   An SGP or IPSP, upon reception of an ASP Active message for the first
   ASP in a Broadcast AS, MAY choose not to direct traffic to a newly
   active ASP until it determines that there are sufficient resources to
   handle the expected load (e.g., until there are "n" ASPs in state
   ASP-ACTIVE in the AS).  In this case, the SGP or IPSP SHOULD withhold
   the Notify (AS-ACTIVE) until there are sufficient resources.

   For the n+k redundancy case, ASPs which are in that AS should
   coordinate among themselves the number of active ASPs in the AS, and
   should start sending traffic only after n ASPs are active.

   Whenever an ASP in a Broadcast mode AS becomes ASP-ACTIVE, the SGP
   MUST tag the first DATA message broadcast in each traffic flow with

   a unique Correlation Id parameter.  The purpose of this Id is to
   permit the newly active ASP to synchronize its processing of traffic
   in each traffic flow with the other ASPs in the broadcast group.

4.3.4.3.1 IPSP Considerations (ASP Active)
Either of the IPSPs can initiate communication. When an IPSP receives an ASP Active, it should mark the peer as ASP-ACTIVE and return an ASP Active Ack message. An ASP receiving an ASP Active Ack message may mark the peer as ASP-Active, if it is not already in the ASP- ACTIVE state. Alternatively, an interchange of ASP Active messages from each end can be performed. This option follows the ASP state transition diagram and gives the additional advantage of selecting a particular AS to be activated from each end. It is especially useful when an IPSP is serving more than one AS. It would need four messages for completion.
4.3.4.4 ASP Inactive Procedures
When an ASP wishes to withdraw from receiving traffic within an AS, the ASP sends an ASP Inactive message to the SGP or IPSP. This action MAY be initiated at the ASP by an M-ASP_INACTIVE request primitive from Layer Management or MAY be initiated automatically by an M3UA management function. In the case where an ASP is processing the traffic for more than one Application Server across a common SCTP association, the ASP Inactive message contains one or more Routing Contexts to indicate for which Application Servers the ASP Inactive message applies. In the case where an ASP Inactive message does not contain a Routing Context parameter, the receiver must know, via configuration data, which Application Servers the ASP is a member and move the ASP to the ASP-INACTIVE state in all Application Servers. In the case of an Override mode AS, where another ASP has already taken
ToP   noToC   RFC3332 - Page 84
   over the traffic within the AS with an ASP Active ("Override")
   message, the ASP that sends the ASP Inactive message is already
   considered by the SGP to be in state ASP-INACTIVE.  An ASP Inactive
   Ack message is sent to the ASP, after ensuring that all traffic is
   stopped to the ASP.

   In the case of a Loadshare mode AS, the SGP moves the ASP to the
   ASP-INACTIVE state and the AS traffic is reallocated across the
   remaining ASPs in the state ASP-ACTIVE, as per the loadsharing
   algorithm currently used within the AS.  A Notify message
   ("Insufficient ASP resources active in AS") MAY be sent to all
   inactive ASPs, if required. An ASP Inactive Ack message is sent to
   the ASP after all traffic is halted and Layer Management is informed
   with an M-ASP_INACTIVE indication primitive.

   In the case of a Broadcast mode AS, the SGP moves the ASP to the
   ASP-INACTIVE state and the AS traffic is broadcast only to the
   remaining ASPs in the state ASP-ACTIVE.  A Notify message
   ("Insufficient ASP resources active in AS") MAY be sent to all
   inactive ASPs, if required.  An ASP Inactive Ack message is sent to
   the ASP after all traffic is halted and Layer Management is informed
   with an M-ASP_INACTIVE indication primitive.

   Multiple ASP Inactive Ack messages MAY be used in response to an ASP
   Inactive message containing multiple Routing Contexts, allowing the
   SGP or IPSP to independently acknowledge for different (sets of)
   Routing Contexts.  The SGP or IPSP sends an Error message ("Invalid
   Routing Context") message for each invalid or unconfigured Routing
   Context value in a received ASP Inactive message.

   The SGP MUST send an ASP Inactive Ack message in response to a
   received ASP Inactive message from the ASP and the ASP is already
   marked as ASP-INACTIVE at the SGP.

   At the ASP, the ASP Inactive Ack message received is not
   acknowledged. Layer Management is informed with an M-ASP_INACTIVE
   confirm primitive. If the ASP receives an ASP Inactive Ack without
   having sent an ASP Inactive message, the ASP should now consider
   itself as in the ASP-INACTIVE state.  If the ASP was previously in
   the ASP-ACTIVE state, the ASP should then initiate procedures to
   return itself to its previous state.

   When the ASP sends an ASP Inactive message it starts timer T(ack).
   If the ASP does not receive a response to an ASP Inactive message
   within T(ack), the ASP MAY restart T(ack) and resend ASP Inactive
   messages until it receives an ASP Inactive Ack message.  T(ack) is
   provisionable, with a default of 2 seconds.  Alternatively,
ToP   noToC   RFC3332 - Page 85
   retransmission of ASP Inactive messages MAY be put under control of
   Layer Management.  In this method, expiry of T(ack) results in a M-
   ASP_Inactive confirm primitive carrying a negative indication.

   If no other ASPs in the Application Server are in the state ASP-
   ACTIVE, the SGP MUST send a Notify message ("AS-Pending") to all of
   the ASPs in the AS which are in the state ASP-INACTIVE. The SGP
   SHOULD start buffering the incoming messages for T(r) seconds, after
   which messages MAY be discarded.  T(r) is configurable by the network
   operator.  If the SGP receives an ASP Active message from an ASP in
   the AS before expiry of T(r), the buffered traffic is directed to
   that ASP and the timer is cancelled. If T(r) expires, the AS is moved
   to the AS-INACTIVE state.

4.3.4.4.1 IPSP Considerations (ASP Inactive)
An IPSP may be considered in the ASP-INACTIVE state by a remote IPSP after an ASP Inactive or ASP Inactive Ack message has been received from it. Alternatively, an interchange of ASP Inactive messages from each end can be performed. This option follows the ASP state transition diagram and gives the additional advantage of selecting a particular AS to be deactivated from each end. It is especially useful when an IPSP is serving more than one AS. It would need four messages for completion.
4.3.4.5 Notify Procedures
A Notify message reflecting a change in the AS state MUST be sent to all ASPs in the AS, except those in the ASP-DOWN state, with appropriate Status Information and any ASP Identifier of the failed ASP. At the ASP, Layer Management is informed with an M-NOTIFY indication primitive. The Notify message must be sent whether the AS state change was a result of an ASP failure or reception of an ASP State management (ASPSM) / ASP Traffic Management (ASPTM) message. In the second case, the Notify message MUST be sent after any related acknowledgement messages (e.g., ASP Up Ack, ASP Down Ack, ASP Active Ack, or ASP Inactive Ack). In the case where a Notify message ("AS-PENDING") message is sent by an SGP that now has no ASPs active to service the traffic, or where a Notify ("Insufficient ASP resources active in AS") message is sent in the Loadshare or Broadcast mode, the Notify message does not explicitly compel the ASP(s) receiving the message to become active. The ASPs remain in control of what (and when) traffic action is taken.
ToP   noToC   RFC3332 - Page 86
   In the case where a Notify message does not contain a Routing Context
   parameter, the receiver must know, via configuration data, of which
   Application Servers the ASP is a member and take the appropriate
   action in each AS.

4.3.4.5.1 IPSP Considerations (NTFY)
Notify works in the same manner as in the SG-AS case. One of the IPSPs can send this message to any remote IPSP that is not in the ASP-DOWN state.
4.3.4.6 Heartbeat Procedures
The optional Heartbeat procedures MAY be used when operating over transport layers that do not have their own heartbeat mechanism for detecting loss of the transport association (i.e., other than SCTP). Either M3UA peer may optionally send Heartbeat messages periodically, subject to a provisionable timer T(beat). Upon receiving a Heartbeat message, the M3UA peer MUST respond with a Heartbeat Ack message. If no Heartbeat Ack message (or any other M3UA message) is received from the M3UA peer within 2*T(beat), the remote M3UA peer is considered unavailable. Transmission of Heartbeat messages is stopped and the signalling process SHOULD attempt to re-establish communication if it is configured as the client for the disconnected M3UA peer. The Heartbeat message may optionally contain an opaque Heartbeat Data parameter that MUST be echoed back unchanged in the related Heartbeat Ack message. The sender, upon examining the contents of the returned Heartbeat Ack message, MAY choose to consider the remote M3UA peer as unavailable. The contents/format of the Heartbeat Data parameter is implementation-dependent and only of local interest to the original sender. The contents may be used, for example, to support a Heartbeat sequence algorithm (to detect missing Heartbeats), and/or a timestamp mechanism (to evaluate delays). Note: Heartbeat related events are not shown in Figure 3 "ASP state transition diagram".


(next page on part 4)

Next Section