Network Working Group D. Sprague Request for Comments: 3094 R. Benedyk Category: Informational D. Brendes J. Keller Tekelec April 2001 Tekelec's Transport Adapter Layer Interface Status of this Memo This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited. Copyright Notice Copyright (C) The Internet Society (2001). All Rights Reserved. IESG Note: Readers should note that this memo presents a vendor's alternative to standards track technology being developed by the IETF SIGTRAN Working Group. The technology presented in this memo has not been reviewed by the IETF for its technical soundness or completeness. Potential users of this type of technology are urged to examine the SIGTRAN work before deciding to use the technology described here. Abstract This document proposes the interfaces of a Signaling Gateway, which provides interworking between the Switched Circuit Network (SCN) and an IP network. Since the Gateway is the central point of signaling information, not only does it provide transportation of signaling from one network to another, but it can also provide additional functions such as protocol translation, security screening, routing information, and seamless access to Intelligent Network (IN) services on both networks. The Transport Adapter Layer Interface (TALI) is the proposed interface, which provides TCAP (Transaction Capability Application Part), ISUP (ISDN User Part), and MTP (Mail Transport Protocol) messaging over TCP/IP. In addition, TALI provides SCCP (Signalling Connection Control Part) Management (SCMG), MTP Primitives, dynamic registration of circuits, and routing of call control messages based on circuit location.
Table of Contents 1. Introduction 4 2. Overview of the TALI Protocol 6 2.1 Traditional PSTN SS7 Networks 6 2.2 Converged SS7 Networks 8 2.3 TALI Protocol Stack Overview 10 2.3.1 An Alternate TALI Protocol Stack using the SAAL Layer 13 2.3.2 An Alternate TALI Protocol Stack using SCTP 15 2.4 Inputs to the TALI Version 1.0 State Machine 15 3. TALI Version 1.0 17 3.1 Overview of the TALI Message Structure 17 3.1.1 Types of TALI Fields 19 3.2 Detailed TALI Message Structure 20 3.2.1 TALI Peer to Peer Messages 20 22.214.171.124 Test Message (test) 20 126.96.36.199 Allow Message (allo) 21 188.8.131.52 Prohibit Message (proh) 21 184.108.40.206 Prohibit Acknowledgement Message (proa) 21 220.127.116.11 Monitor Message (moni) 22 18.104.22.168 Monitor Acknowledge Message (mona) 22 3.2.2 Service Messages 23 22.214.171.124 SCCP Service Message (sccp) 23 126.96.36.199.1 SCCP Encapsulation using TALI 25 188.8.131.52 ISUP Service Message (isot) 27 184.108.40.206.1 ISUP Encapsulation using TALI 27 220.127.116.11 MTP3 Service Message (mtp3) 28 18.104.22.168.1 MTP3 Encapsulation using TALI 29 22.214.171.124 SAAL Service Message (saal) 30 126.96.36.199.1 MTP3 and SAAL Peer to Peer Encapsulation using TALI 31 3.3 TALI Timers 34 3.3.1 T1 Timer 34 3.3.2 T2 Timer 34 3.3.3 T3 Timer 34 3.3.4 T4 Timer 34 3.3.5 Recommended Defaults and Ranges for the TALI Timers 35 3.4 TALI User Events 35 3.4.1 Management Open Socket Event 35 3.4.2 Management Close Socket Event 36 3.4.3 Management Allow Traffic Event 36 3.4.4 Management Prohibit Traffic Event 36 3.5 Other Implementation Dependent TALI Events 37 3.6 TALI States 37 3.7 TALI Version 1.0 State Machine 38 3.7.1 State Machine Concepts 38 188.8.131.52 General Protocol Rules 38 184.108.40.206 Graceful Shutdown of a Socket 39 220.127.116.11 TALI Protocol Violations 39
3.7.2 The State Machine 40 3.8 TALI 1.0 Implementation Notes 42 3.8.1 Failure on a TCP/IP Socket 42 3.8.2 Congestion on a TCP/IP Socket 43 3.9 TALI 1.0 Limitations 43 4. TALI Version 2.0 43 4.1 Overview of TALI Version 2.0 Features 45 4.2 TALI Version Identification 47 4.3 Backwards Compatibility 50 4.3.1 Generating Protocol Violations based on Received Messages 53 4.4 Overview of the TALI Message Structure 55 4.4.1 Types of TALI Fields 55 4.5 Detailed TALI Message Structures for New 2.0 Opcodes 58 4.5.1 Management Message (mgmt) 60 18.104.22.168 Routing Key Registration Primitive (rkrp) 61 22.214.171.124.1 RKRP Data Structures 65 126.96.36.199.1.1 Common Fields in all RKRP Messages 65 188.8.131.52.1.2 CIC Based Routing Key Operations 67 184.108.40.206.1.3 SCCP Routing Key Operations 71 220.127.116.11.1.4 DPC-SI, DPC and SI based Routing Key Operations 74 18.104.22.168.1.5 Default Routing Key Operations 76 22.214.171.124.1.6 Support for Multiple RKRP Registration Operations 78 126.96.36.199.1.6.1 Multiple Registrations Support 78 188.8.131.52.1.6.2 Multiple RKRP Operations in a Single Message 80 184.108.40.206 MTP3 Primitive (mtpp) 82 220.127.116.11 Socket Option Registration Primitive (sorp) 87 4.5.2 Extended Service Message (xsrv) 91 4.5.3 Special Message (spcl) 92 18.104.22.168 Special Messages Not Supported (smns) 93 22.214.171.124 Query Message (qury) 93 126.96.36.199 Reply Message (rply) 94 188.8.131.52 Unsolicited Information Message (USIM) 95 4.6 TALI Timers 95 4.7 TALI User Events 95 4.8 TALI States 96 4.9 TALI Version 2.0 State Machine 96 4.9.1 State Machine Concepts 96 184.108.40.206 General Protocol Rules 96 220.127.116.11 Graceful Shutdown of a Socket 97 18.104.22.168 TALI Protocol Violations 97 4.9.2 The State Machine 97 4.10 TALI 2.0 Specification Limitations 101 5. Success/Failure Codes 101 6. Security Considerations 102 7. References 102 8. Acknowledgments 103 9. Authors' Addresses 104 10. Full Copyright Statement 105
1. Introduction This document is organized into the following 6 sections: - Introduction to the document - Overview of the TALI Protocol - TALI Version 1.0 - TALI Version 2.0 - Success/Failure Codes - Security Considerations The following terms are used throughout this document. Circuit Identification Code (CIC): A field identifying the circuit being setup or released. Depending on SI and MSU Type, this field can be 12, 14 or 32 bits. Changeover/Changeback (co/cb): SS7 MTP3 procedure related to link failure and re-establishment. Far End (FE): The remote endpoint of a socket connection. Far End Allowed (FEA): The FE is ready to use the socket for service PDUs. Far End Prohibited (FEP): The FE is not ready to use the socket for service PDUs. Intelligent Network (IN): A network that allows functionality to be distributed flexibly at a variety of nodes on and off the network and allows the architecture to be modified to control the services. Management ATM Adaptation Layer (MAAL): This layer is a component of SAAL. This layer maps requests and indications between the System Management for the SG and the other SAAL layers. MAAL includes interfaces to/from SSCOP, SSCF, and system management. More information can be found in T1.652. Media Gateway (MG): A MG terminates SCN media streams, packetizes the media data, if it is not already packetized, and delivers packetized traffic to the packet network. It performs these functions in reverse order for media streams flowing from the packet network to the SCN.
Media Gateway Controller (MGC): An MGC handles the registration and management of resources at the MG. The MGC may have the ability to authorize resource usage based on local policy. For signaling transport purposes, the MGC serves as a possible termination and origination point for SCN application protocols, such as SS7 ISDN User Part and Q.931/DSS1. MTP3 Framing (MTP3F): TALI does not require full MTP3 procedures support but rather uses the MTP3 framing structure (ie: SIO, Routing Label, etc) Near End (NE): The local endpoint of a socket connection. Near End Allowed (NEA): The NE is ready to use the socket for service PDUs. Near End Prohibited (NEP): The NE is not ready to use the socket for service PDUs. Q.BICC ISUP: An ISUP+ variant that uses 32 bit CIC codes instead of 14/12 bit CIC codes. ISUP+, or Q.BICC ISUP, is based on the Q.765.BICC specification currently being developed in ITU Study Group 11. Signaling ATM Adaptation Layer (SAAL): This layer is the equivalent of MTP-2 for ATM High Speed Links carrying SS7 Traffic as described in GR-2878-CORE . SAAL includes SSCF, SSCOP and MAAL. Signaling Gateway (SG): An SG is a signaling agent that receives/sends SCN native signaling at the edge of the IP network. The SG function may relay, translate or terminate SS7 signaling in an SS7-Internet Gateway. The SG function may also be co-resident with the MGC/MG functions to process SCN signaling associated with line or trunk terminations controlled by the MG (e.g., signaling backhaul). Service Specific Coordination Function (SSCF): This layer is a component of SAAL. This layer maps the services provided by the lower layers of the SAAL to the needs of a specific higher layer user. In the case of the STP, the higher layer user is the MTP-3 protocol, and the SSCF required is that as defined by T1.645: SSCF for Support of Signaling at the Network Node Interface (SSCF at the NNI). More information can be found in T1.645. SSCF provides the interface between SSCOP and MTP3 and includes the following functions:
- Local Retrieve of messages to support link changeover procedures - Flow control with four levels of congestion Switched Circuit Network (SCN): The term SCN is used to refer to a network that carries traffic within channelized bearers of pre-defined sizes. Examples include Public Switched Telephone Networks (PSTNs) and Public Land Mobile Networks (PLMNs). Examples of signaling protocols used in SCN include Q.931, SS7 MTP Level 3 and SS7 Application/User parts. Service Specific Connection Oriented Protocol (SSCOP): This layer is a component of SAAL. This layer provides reliable point to point data transfer with sequence integrity and error recovery by selective retransmission. Protocol layer interfaces are described in T1.637. Aspects of the protocol include flow control, connection control, error reporting to layer management, connection maintenance in the prolonged absence of data transfer, local data retrieval by the user of the SSCOP, error detection of protocol control information and status reporting. SSCOP provides the link layer functions that are: - In-Sequence Delivery - Flow Control - Error Detection/Correction - Keep Alive - Local Data Retrieval - Connection Control - Protocol Error Detection and Recovery Signaling Transfer Point (STP): Packet switches that provide CCS message routing and transport. They are stored programmed switches that use information contained in the message in conjunction with information stored in memory to route the message to the appropriate destination signaling point. 2. Overview of the TALI Protocol 2.1 Traditional PSTN SS7 Networks The traditional PSTN SS7 network consists of 3 types of devices connected via dedicated SS7 signaling links. The 3 primary device types for PSTN networks are: * SSP: Signaling Service Point. These nodes act as endpoints in the SS7 network, originating SS7 messages as users attempt to place phone calls. These nodes contain interfaces into the SS7 data network and the SS7 voice network.
* STP: Signaling Transfer Point. These nodes act primarily as switches, switching SS7 traffic from node to node throughout the network until it reaches another endpoint. An important feature of each STP is to provide SS7 network management functionality that allows messages to be delivered even when links and devices fail. STPs also sometimes provide database type services, such as Global Title Translations and Local Number Portability. * SCP: Signaling Control Point. These nodes act as databases. These nodes contain stored data that is used to turn SS7 Queries into SS7 Replies. There are 3 primary types of dedicated SS7 signaling links: * 56Kbps SS7 (DS0, V35, OCU) links. These links implement the MTP-1 and MTP-2 protocols as defined in . * DS1 High Speed Links. These links use the SAAL protocol to provide an alternative to 56Kbps SS7 links that is based on newer, faster technology. These links implement the SS7 protocol as defined in . * E1 Links. Figure 1 provides an overview of the traditional PSTN network. In this network, any of the links can be implemented via either 56 Kbps, DS1, or E1 links.
^ / \ /SCP\ /-----\ / \ / \ / \ / \ /---\ +---+ +---+ /---\ | SSP |-----|STP|----|STP|-----| SSP | \---/ \ /+-+-+\ /+-+-+ \ / \---/ \/ | \/ | \/ /\ | /\ | /\ /---\ / \+-+-+/ \+-+-+ / \ /---\ | SSP |/----|STP|----|STP|/----| SSP | \---/ +---+ +---+ \---/ \ / \ / \ / \ ^ / \/ \/ /SCP\ /-----\ Figure 1: The Traditional PSTN Network 2.2 Converged SS7 Networks In the converged SS7 network, SS7 devices will reside on both the traditional PSTN network (with dedicated 56 Kbps and DS1 links) and on the IP network (with Ethernet links based on IP protocol). The services of SSPs, STPs, and SCPs can be provided by new types of devices that reside on IP networks. The IP network is not intended to completely replace the PSTN, rather devices on the 2 types of networks must be able to communicate with one another and convert from 1 lower layer protocol to the other. Signaling Gateways are new devices that may also function as an STP in the converged network. SGs provide interfaces to: * devices on the SCN (traditional SSPs, STPs, and SCPs) * other SGs * new devices on the IP network SGs also continue to perform STP functions such as SS7 network management and some database services (such as GTT and LNP).
New devices on the IP network include: * Media Gateway Controllers. In addition to other functions, these devices control Media Gateways and perform call processing. * Media Gateways. In addition to other functions, these devices control voice circuits that are used to carry telephone calls. MGs + MGCs combine to provide the functionality of traditional SSPs. * IP based SCPs. The database services that are related to SS7 can be moved onto devices on the IP network. Figure 2 provides an overview of the converged SS7 network. ----- +----+ /\ / \-------------| SG | / \----| SCN | +----+ +----+ /SCP \ \ /------| SG | | ------ ----- +----+ | | | | | | | | | | | ----- | | / \ /\ | | | IP |----/ \ | /---\ \ / /SCP \ | | SSP | ----- ------ | \---/ / \ | | / \ /---\ | / \ | SSP | | +---+ +---+ \---/ +----+ |MGC| |MGC| | | MG | +---+ +---+ | +----+\ \ / | \ \ / | \ ----- | \ / \ +----+ | IP | | MG |-----------\ / +----+ ----- Figure 2: The Converged SS7 Network In theory, the TALI protocol can be used between 2 nodes to carry SS7 traffic across TCP/IP. Some of the areas that TALI could be used include:
- For SG to SG communication across IP - For SG to MGC communication across IP - For SG to IP based SCP communication across IP - For communication between multiple IP based SCPs - For communication between multiple MGCs - For communication between MGCs and MGs - For other IP devices such as DNS, Policy Servers, etc. In reality, the communication between MGCs, or between MGC and MG is probably better suited to using other protocols. With respect to the Signaling Gateway implementation, the TALI protocol is used to carry SS7 traffic: - For SG to SG communication - For SG to MGC communication - For SG to IP based SCP communication 2.3 TALI Protocol Stack Overview The Transport Adapter Layer Interface is the proposed interface that provides SCCP, ISUP, and MTP messaging encapsulation within a TCP/IP packet between two switching elements. In addition, TALI provides SCCP Management (SCMG), MTP Primitives, dynamic registration of circuits, and routing of call control messages based on circuit location. The major purpose of the TALI protocol is to provide a bridge between the SS7 Signaling Network and applications that reside within an IP network. Figure 3 provides a simple illustration that highlights the protocol stacks used for transport of SS7 MSUs on both the SS7 side and the IP side of the SG.
SS7 traffic SS7 traffic via 56Kbps links via TALI +-----------+ +----+ +--------+ |Traditional| | SG | | IP | |SS7 Devices|<------>| |<-------->| Devices| +-----------+ +----+ +--------+ SS7 SS7, TALI, TCP/IP protocol stack protocol stack +---------------+ +---------------+ |SS7 application| |SS7 application| |layer | |layer | +-------+-------+ +-------+-------+ | TCAP | ISUP | | TCAP | ISUP | +-------+ | +-------+ | | SCCP | | | SCCP | | +-------+-------+ +-------+-------+ | MTP3 | | MTP3 | +---------------+ +---------------+ | MTP2 | | TALI | +---------------+ +---------------+ | MTP1 | | TCP | | (& phy. | +---------------+ | layer) | | IP | +---------------+ +---------------+ | MAC | | (& phy. | | layer) | +---------------+ Figure 3: TALI Protocol to carry SS7 over TCP/IP From Figure 3, several observations can be made: * The TALI layer is used when transferring SS7 over IP. * When SS7 traffic is carried over a IP network, the MTP2 and MTP1 layers of a traditional 56 Kbps link are replaced by the TALI, TCP, IP, and MAC layers * The TALI layer sits on top of the TCP layer. * The TALI layer sits below the various SS7 layers (MTP3, SCCP/TCAP, ISUP, and applications). The data from these SS7 layers is carried as the data portion of TALI service data packets.
Some of the facts concerning the TALI protocol which are important to understanding how TALI works that are not evident from Figure 3 include the following: * Each TALI connection is provided over a single TCP socket. * The standard Berkeley sockets interface to the TCP is used by the TALI layer to provide connection oriented service from endpoint to peer endpoint. * TCP sockets are based on a Client/Server architecture; one end of the TALI connection must be defined as the 'server side', the other end is a 'client'. * The client/server roles are important only in bringing up the TCP connection between the 2 endpoint, once the connection is established both ends use the same Berkeley sockets calls (send, recv) to transfer data. * The TCP socket must be connected before the 2 TALI endpoints can begin communicating. * TALI provides user control over each TALI connection that is defined. This control: * Allows the user to control when each TALI connection will be made * Allows the user to control when each TALI connection is allowed to carry SS7 traffic * Allows the user to control the graceful shutdown of each socket * TALI provides Peer to Peer messages. These messages originate from the TALI layer of one endpoint of the connection and are terminated at the TALI layer of the other endpoint. Peer to Peer messages are used: * To provide test and watchdog maintenance messages * To control the ability of each socket to carry SS7 service messages * TALI provides Service messages. These messages originate from the layer above the TALI layer of one endpoint of the connection and are transferred to and terminated at the layer above the TALI layer of the other endpoint.
* The service messages provide several different ways to encapsulate the SS7 messages (SCCP/TCAP, ISUP, and other MTP3 layer data) across the TCP/IP connection. * As we will see later, different Service opcodes are used to communicate across the TALI socket exactly how each SS7 message has been encapsulated. * A set of TALI timers is defined. These timers are used to correctly implement the TALI state machine. 2.3.1 An Alternate TALI Protocol Stack using the SAAL Layer This section presents a different, slightly more complex, TALI protocol stack that can be used in place of the protocol stack in the previous section. Figure 3 in the previous section provided a simple illustration that highlighted the basic TALI protocol stack that can be used to transport SS7 MSUs between 56 Kbps links on the SS7 side of an SG and the IP devices. Figure 4 below illustrates an alternate TALI protocol stack that includes the SAAL layer as part of the data transferred across the TCP/IP connection.
SS7 traffic SS7 traffic via DS1 links via TALI +-----------+ +----+ +--------+ |Traditional| | SG | | IP | |SS7 Devices|<------>| |<-------->| Devices| +-----------+ +----+ +--------+ SS7 DS1 SS7, TALI, TCP/IP protocol stack protocol stack +-----------------+ +-----------------+ | SS7 application | | SS7 application | | layer | | layer | +--------+--------+ +--------+--------+ | TCAP | ISUP | | TCAP | ISUP | +--------+ | +--------+ | | SCCP | | | SCCP | | +--------+--------+ +--------+--------+ | MTP3 | | MTP3 | +-----------------+ +-----------------+ | SAAL | | SAAL | |(SSCF,MAAL,SSCOP)| |(SSCF,MAAL,SSCOP)| +-----------------+ +-----------------+ | AAL5 | | TALI | +-----------------+ +-----------------+ | ATM | | TCP | | (& phy. | +-----------------+ | layer) | | IP | +-----------------+ +-----------------+ | MAC | | (& phy. | | layer) | +-----------------+ Figure 4: An Alternate TALI Protocol Stack with SAAL The following bullets provide a discussion regarding the differences between these 2 protocol stacks, the reasons for having 2 protocol stacks, and the advantages of each: * When the TALI protocol stack is implemented without the SAAL layer, as in Figure 3, the SEQUENCE NUMBER of the SS7 MSU is NOT part of the data transferred across the TCP/IP connection. In 56 Kbps SS7 links, the MTP2 header contains an 8 bit sequence number for each MSU. The sequence number is used to preserve message sequencing and to support complex SS7 procedures involving MSU retrieval during link changeover and changeback. As indicated in Figure 3, the MTP2 header is NOT part of the data transferred
across the TCP/IP connection. The TALI protocol stack without SAAL still guarantees correct sequencing of SS7 data (this sequencing is provided by sequence numbers in the TCP layer), however that protocol stack can not support SS7 changeover and changeback procedures. * When the TALI protocol stack is implemented with the SAAL layer, as in Figure 4, the SEQUENCE NUMBER of the SS7 MSU IS part of the data transferred across TCP/IP. In SS7 DS1 links, the SSCOP trailer contains a 24 bit sequence number for each MSU. This 24 bit sequence number serves the same purposes as the 8 bit SS7 sequence number. As indicated in Figure 4, the SSCOP trailer IS part of the data transferred across the TCP/IP connection. The protocol stack in Figure 4 can support SS7 changeover and changeback procedures. * Implementing the TALI protocol with SAAL therefore provides support for SS7 co/cb and data retrieval and can help to minimize MSU loss as SS7 links are deactivated. However, implementing SAAL is not a trivial matter. The SAAL layer consists of 3 sublayers (SSCF, SSCOP, and MAAL), one of which (SSCOP) is quite involved. It is envisioned that most SS7 to TCP/IP applications will NOT choose to implement SAAL. 2.3.2 An Alternate TALI Protocol Stack using SCTP The TALI protocol is dependent on a reliable transport layer below it. At the initial design of TALI, TCP was the only reliable, proven transport layer. Simple Control Transport Protocol (SCTP) is currently being designed as a transport later specifically for signalling. Once SCTP is a proven and accepted transport protocol, SCTP can then be used in place of TCP as shown in Figures 3 and 4. 2.4 Inputs to the TALI Version 1.0 State Machine Figure 5 illustrates the inputs that affect the TALI State Machine. Inputs to the state machine include: * Management events (ie: requests from the human user of the TALI connection) to control the operation of a particular TALI session. * TALI messages received from the Peer. These messages include peer to peer messages as well as service data messages. * Events from the User of the TALI layer. The user is the layer above TALI in the protocol stack, either the SS7 or SAAL layer.
* Implementation Dependent Events. Each implementation must provide inputs into the TALI state machine such as: * Socket Events * TALI protocol violations. The TALI state machine must detect protocol violations and act accordingly. * Timer events.
+====+ +============+ | | +---------+ +-------------+ | | |User| | Service | | Mgmt. Open | | MANAGEMENT | |Part|<-->| Message | | Mgmt. Close |<-->| | | | | | | Mgmt. Proh. | | | | | +---------+ | Mgmt. Allow | +============+ +====+ ^ +-------------+ | ^ | | v v +========================================================+ | TALI State Machine | +========================================================+ ^ ^ ^ ^ | | | | | | | | v | | | +---------+ +-----------------+ +-----------+ +------------+ | Received| | Connection est. | | Protocol | | T1 Expired | | 'test' | | Connection lost | | Violation | | T2 Expired | | 'allo' | | | | | | T3 Expired | | 'proh' | +-----------------+ +-----------+ | T4 Expired | | 'proa' | ^ ^ +------------+ | 'moni' | | | ^ | 'mona' | | | | | or | | | | | Service | | | | | Message | +========================================+ +---------+ | IMPLEMENTATION | ^ | DEPENDENT | | +========================================+ | v +============+ | PEER | | | +============+ Figure 5: Overview of Inputs to the TALI 1.0 State Machine