Internet Engineering Task Force David Sanchez INTERNET DRAFT Ericsson November 30, 1998 Miguel A. Garcia Expires May 30, 1999 Ericsson A Simple SCCP Tunneling Protocol (SSTP) David Sanchez Miguel A. Garcia Version 0.0 draft November 30, 1998 Status of this document This document is an Internet-Draft. 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." To view the entire list of current Internet-Drafts, please check the "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net (Northern Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast). Abstract This document describes SSTP, a protocol architecture that provides the support of SCCP and TCAP user applications over an IP network. The purpose of SSTP is to provide a standard tunneling protocol to convey SCCP messages over an IP based network. The core part of the SSTP architecture is the specification of the SSTP (Simple SCCP Tunneling Protocol) adaptation layer, that provides adaptation between the SCCP layer already defined in [3] and [4], and the IP family protocols IP, UDP, TCP and ICMP. TCP or UDP is used for SCCP class 0 messages. TCP is used for SCCP class 1, 2 or 3. SSTP provides similar primitives and parameters to SCCP than MTP, and provides seamless connection between nodes implementing SSTP and classical SS7 nodes by means of a SSTP gateway. The design of SSTP is oriented to fulfill the requirements of TCAP user applications running on a WAN. Table of Contents 1. Introduction 2. Scope 3. Network architecture 4. SSTP functionality 4.1. SSTP primitives and parameters 4.1.1. SSTP primitives 4.1.2. SSTP primitive parameters 4.2. Messages in the SSTP architecture 5. Procedures 5.1. Start/Restart 5.2. Supervision 6. Further Studies 7. Acronyms 8. References 9. Authors 1. Introduction TCAP is currently used extensively by applications to exchange user sensitive signalling information via the reliable SS7 network. TCAP only uses the connectionless service of SCCP. To mention some examples of applications we found INAP (Intelligent Network Application Part) in IN systems, MAP (Mobile Application Part) in GSM or IS-41 in AMPS systems. The applications on top of TCAP take advantage of the international support of SS7 system in many countries. The layer that acts as a glue by providing addressing capabilities over different SS7 networks is SCCP. There are some applications that do not use TCAP, but SCCP instead. For instance, the BSSAP (Base Station System Application Protocol). IP is a widely used transport protocol, with a big range of products available. Comparing with the OSI model, IP/UDP/TCP covers network functions up to the layer 4. in the SS7 model, the MTP and the SCCP layers conform up to the level 3. Therefore interactions between these two systems focus on that level of the protocol stack. The SCCP addressing functionality is needed to provide interconnection to existing SS7 networks. It also provides network management features to control the resources of the SS7 network(s) such congestion control or TCAP user unavailability indications. Both SCCP addressing and SCCP management functions are considered to be essential for a solution that provides SS7 over IP signalling transport for WAN applications. 2. Scope The scope of this document is to describe a protocol architecture that provides the support of TCAP and SCCP user applications over an IP network. The network would be typically a WAN, were some network parameters like traffic load, congestion, availability or network failures cannot be controlled as in a LAN. This document describes the adaptation functionality of the signalling gateway that provides seamless connectivity between the SS7 over IP network and the classical SS7 network. This involves support SCCP class 0, 1, 2 and 3 services. 3. Network architecture SSTP provides adaptation function between SCCP and the IP family protocols. In the IP network the communications between SS7 nodes are end to end, which means that no Signalling Point Relay functionality is implemented in the IP routers. It also provides mapping of functionality between ICMP and the SCCP management functionality. Figure 1 shows the protocol architecture proposed by SSTP. +------+------+ | APP. | APP. | +------+------+ | TCAP | +------+------+ | SCCP | +-------------+ | SSTP | +-------------+ | TCP/UDP | +--------+ +-------------+ | APP. | | IP |----+ +--------+ +-------------+ | +-----------------+ | TCAP | | | SCCP | +--------+ | +--------+--------+ | SCCP | | | SSTP | | +--------+ | +--------+ |--------| MTP | | | TCP/UDP| MTP | +--------+ | +--------+ | +----| IP | | | +--------+--------+ +------+------+ | | APP. | APP. | | +------+------+ | | TCAP | | +------+------+ | | SCCP | | +-------------+ | | SSTP | | +-------------+ | | TCP/UDP | | +-------------+ | | IP |----+ +-------------+ Figure 1. Network architecture using SSTP 4. SSTP functionality SSTP performs the functions in order to provide adaptation between SCCP and the network functions provided by the IP network. - Addressing: The network operator assigns an IP address and port to the SS7 over IP node. The port assigned is the well known port for "SCCP over IP", which is 14001. There are two ways to define a Point Code in the SCCP over IP network: a) The Destination Point Code is mapped to the IP address and port number of the remote SCCP over IP node. b) The Global Title is translated to the IP address and port number of the remote SCCP over IP node. As an IP address identifies an interface to the network just like a Point Code does, the SCCP point of view introducing a new SS7 over IP node is the same as introducing an existing SS7 over MTP node, but in this case an IP address and port needs to be introduced in the GT translation function or the DPC mapping table in the SCCP concerned nodes in the network. - Network control: SSTP uses ICMP to control the IP network. It uses Echo/Echo Reply and Destination Unreachable messages from ICMP in order to detect failures in remote SS7 over IP nodes. It also uses Source Quench messages to detect congestion events in the IP transport network. The functionality is provided by the next primitives and parameters. 4.1. SSTP primitives and parameters 4.1.1. SSTP primitives SSTP provides a very similar interface towards SCCP as MTP does. This is in order to provide the information needed by SCCP in order to perform the required functionality. The primitives and the parameters associated to them are shown in figure 2. The Request primitives flow from SCCP to SSTP, whilst the Indication primitives flow from SSTP to SCCP. +-----------------------------+------------------------+ | Primitive | Parameter | +=============================+========================+ | SSTP-TRANSFER-Request | Destination IP address | | | Destination IP port | | | Protocol Class | | | SLS | | | SIO | | | Data | +-----------------------------+------------------------+ | SSTP-TRANSFER-Indication | Source IP address | | | Source IP port | | | SLS | | | SIO | | | Data | +-----------------------------+------------------------+ | SSTP-NOTICE-Indication | Source IP address | | | Source IP port | | | Error Code | | | SLS | | | SIO | | | Data | +-----------------------------+------------------------+ | SSTP-PAUSE-Indication | Affected IP address | +-----------------------------+------------------------+ | SSTP-RESUME-Indication | Affected IP address | +-----------------------------+------------------------+ | SSTP-STATUS-Indication | Affected IP address | | | Cause | +-----------------------------+------------------------+ | SSTP-CONNECT-Request | Destination IP address | | | Destination IP port | +-----------------------------+------------------------+ | SSTP-CONNECT-Indication | Destination IP address | | | Destination IP port | | | Result code | +-----------------------------+------------------------+ | SSTP-DISCONNECT-Request | Destination IP address | | | Destination IP port | +-----------------------------+------------------------+ | SSTP-DISCONNECT-Indication | Destination IP address | | | Destination IP port | | | Result code | +-----------------------------+------------------------+ Figure 2. SSTP primitives and parameters 4.1.1.1 SSTP-TRANSFER-Request This primitive is used by SCCP to request from SSTP the transfer of an SCCP message to a destination node. 4.1.1.2 SSTP-TRANSFER-Indication This primitive is used by SSTP to indicate the reception of an SCCP message from another SCCP node. 4.1.1.3 SSTP-NOTICE-Indication This primitive is used by SSTP to indicate an error reported when a message was sent through the IP network. Thus, this primitive is issued as an error answer to a previous SSTP-TRANSFER-Request. Errors are reported in ICMP messages, connection broken, or similar situations. The Error Code parameter specifies the error reported by the IP network. The SLS and SIO are the same parameters sent in a previous SSTP-TRANSFER-Request primitive. However, the Data parameter may contain a partial copy (not a complete one) of the Data sent in the SSTP-TRANSFER-Request primitive. The SCCP is responsible to take the proper actions (generate a return message or N-NOTICE-Indication primitive) upon the reception of this primitive. The Source IP address and Source IP port correspond to that where the error message was generated. 4.1.1.4 SSTP-PAUSE-Indication This primitive is used by SSTP to indicate to SCCP the inability of sending any SCCP message to the indicated node. The SSTP layer may generate this indication upon: - Receiving a Destination Unreachable message from ICMP indicating net unreachable or host unreachable. - If the SSTP performs periodic polling to remote SS7 over IP nodes by means of ICMP, SSTP can detect a failure on the remote node if several Echo Reply messages are not answered by the remote host. When SSTP detects a failure in a remote host, it starts a polling routine towards that node in order to detect when the node becomes available again. 4.1.1.5 SSTP-RESUME-Indication This primitive is used by SSTP to indicate to SCCP the availability of sending again SCCP messages to the indicated node. The SSTP layer generates this indication when the remote SS7 over IP node starts to answer again to the echo messages. 4.1.1.6 SSTP-STATUS-Indication This primitive is used by SSTP to indicate to SCCP some special events: - Remote SCCP layer unavailability - Remote SCCP congestion - Completion of IP local layer restart: If the IP transmission layer has been temporarily unavailable due to a failure in the local hardware or software, SSTP detects when it is available again and indicates this to SCCP by means of this primitive. The value of the Affected IP address and Cause parameters are left to the implementation (these values are not specified in [3]), but in case of using an existing SCCP layer, it would be desirable that the values provided by SSTP are the same as the values used by the implementation of the existing SCCP layer. 4.1.1.7 SSTP-CONNECT-Request Whenever a new node is defined in the SCCP over IP network, the SCCP indicates SSTP to establish a TCP connection to the destination IP address and port identifying such a node. 4.1.1.8 SSTP-CONNECT-Indication When the TCP connection described in 4.1.1.7 has been acknowledged (either successfully or not), SSTP sends this primitive to SCCP. This primitive is asynchronously sent when an incoming TCP connection is received by SSTP. 4.1.1.9 SSTP-DISCONNECT-Request Whenever an already defined node is deleted in the SCCP over IP network, the SCCP indicates SSTP to close the previously established TCP connection with the destination IP address and port identifying such a node. 4.1.1.10 SSTP-DISCONNECT-Indication When the TCP connection described in 4.1.1.9 has been closed (either successfully or not), SSTP sends this primitive to SCCP. This primitive is asynchronously sent when a previously established TCP connection is closed. 4.1.2 SSTP primitive parameters 4.1.2.1 Source IP address The Source IP address is used to indicate the node that originates the message. This parameter is sent in the primitives: - SSTP-TRANSFER-Indication - SSTP-NOTICE-Indication 4.1.2.2 Source IP port The Source IP port is used to indicate to SCCP the node that originates the message. This parameter is sent in the primitives: - SSTP-TRANSFER-Indication - SSTP-NOTICE-Indication 4.1.2.3 Destination IP address The Destination IP address is used to indicate the destination node for a message or TCP connection. This parameter is sent in the primitives: - SSTP-TRANSFER-Request - SSTP-CONNECT-Request - SSTP-CONNECT-Indication - SSTP-DISCONNECT-Request - SSTP-DISCONNECT-Indication 4.1.2.4 Affected IP address The affected IP address is used to indicate the node affected by some status indication. This parameter is sent in the following primitives: - SSTP-PAUSE-Indication (SSTP to SCCP): The affected IP address indicates the unavailability of the node SCCP over IP node, and that, SCCP must not send any message to that node through the SSTP layer. - SSTP-RESUME-Indication (SSTP to SCCP): The affected IP address indicates the availability of a previously unavailable SCCP over IP node. SCCP can resume to send messages to that node through the SSTP layer. - SSTP-STATUS-Indication (SSTP to SCCP): In this primitive the affected IP address indicates the IP node where the reported error applies. 4.1.2.5 Destination IP port The Destination IP port is used to indicate the SSTP application in the destination node. The port number reserved for SCCP over IP is 14001. The Destination IP Port parameter is sent in the primitives: - SSTP-TRANSFER-Request - SSTP-CONNECT-Request - SSTP-CONNECT-Indication - SSTP-DISCONNECT-Request - SSTP-DISCONNECT-Indication 4.1.2.6 Protocol Class SSTP uses the value of Protocol Class received from SCCP to decide the layer where the message is sent (UDP or TCP). If class 0 is used, then SSTP may use either TCP or UDP as transport protocol (this is implementation dependant). If class 1, 2 or 3 is used, then SSTP shall use TCP as transport protocol. 4.1.2.7 SLS (Signalling Link Selection) The Signalling Link Selection is encapsulated into the SLS octet and transparently transmitted over the IP network. The SLS octet contains 4 spare bits and the actual SLS value: +------+------+ | DCBA | DCBA | +------+------+ |Spare | SLS | +------+------+-----> First bit transmitted The SLS octet is sent in the following primitives: - SSTP-TRANSFER-Request - SSTP-TRANSFER-Indication - SSTP-NOTICE-Indication 4.1.2.8 SIO (Service Indication Octet) The SIO consists of: - Service Indicator - Subservice field, which consists on - Network Indicator - Spare bits (or message priority) The SIO is sent in the following primitives: - SSTP-TRANSFER-Request - SSTP-TRANSFER-Indication - SSTP-NOTICE-Indication SCCP uses the SIO to indicate the MTP user (Service Indicator which in this case will indicate SCCP) and network indicator. The SIO also contains two spare bits, used for the message priority in the United States networks. The SIO is transparently transmited over the IP network. 4.1.2.9 Data This is the SCCP message to be sent to the remote node. The message is composed of: 1) Message type code 2) Mandatory fixed part 3) Mandatory variable part 4) Optional variable part These fields are described in reference [2] and in chapter 3 in reference [4]. The Data is sent in the following primitives: - SSTP-TRANSFER-Request - SSTP-TRANSFER-Indication - SSTP-NOTICE-Indication 4.1.2.10 Cause - SSTP-STATUS-Indication (SSTP to SCCP): In this primitive the Cause value indicates the error event reported to the SCCP layer. The next values may be sent: - Signalling network congested: The SSTP-STATUS-Indication primitive is sent with this value when receiving a Source Quench message from ICMP. - User part unavailability, inaccessible remote user: The SSTP-STATUS-Indication primitive is sent with this value when receiving a Destination Unreachable message from ICMP indicating port unreachable and port is the port reserved for SCCP over IP. 4.1.2.11 Result code This parameter indicates either if a previous SSTP-CONNECT-Request or SSTP-DISCONNECT-Request primitives have been successfully executed or not, or either an asynchronous event like an incoming TCP connection or disconnection. This parameter is used in the following primitives: - SSTP-CONNECT-Indication - SSTP-DISCONNECT-Indication The actual values for the Result Code are implementation dependant. However, the following list is a proposal for such values: +------+-----------------------------------------+ |Value | Code | +------+-----------------------------------------+ | 0 | Request primitive executed successfully | +------+-----------------------------------------+ | 1 | Failed to execute Request primitive | +------+-----------------------------------------+ | 2 | Asynchronous event information | +------+-----------------------------------------+ 4.1.2.12 Error code This parameter carries the error code generated by the IP network when a message was not properly delivered. The Error code parameter provides a mapping between the ICMP Destination unreachable codes and the SSTP-NOTICE-Indication Error codes, as described in the following table: +-----------------------+------+------------------------+-------+ | ICMP Dest. unreachable| ICMP | Error Code Parameter | Err.C.| | code | value| | value | +=======================+======+========================+=======+ | Network unreachable | 0 | Network failure | 5 | | Host unreachable | 1 | SSTP failure | 11 | | Protocol unreachable | 2 | unqualified | 7 | | Port unreachable | 3 | SSTP failure | 5 | | Fragmentation needed | 4 | unqualified | 7 | | Source route failed | 5 | unqualified | 7 | +=======================+======+========================+=======+ 4.2. Messages in the SSTP architecture SSTP provides encapsulation of the SCCP message in an IP datagram. If SCCP class 0 is used, SSTP uses UDP or TCP to transmit the SCCP message to the destination node. If SCCP class 1, 2 or 3 is used, SSTP uses an existing TCP connection to the destination node to transmit the SCCP message. Figure 3 shows that the SCCP messages are encapsulated as a UDP/TCP datagram. +-------------+----------------+---+---+-------------------------+ | IP header | UDP/TCP header |SIO|SLS| SCCP message | +-------------+----------------+---+---+-------------------------+ Figure 3. SSTP encapsulation 5. Procedures 5.1 Start/Restart Whenever a node is started up or restarted, the server process is launched. The server process is accepting TCP connections or UDP packets and it is listening to the SCCP over IP reserved port number, 14001. When a new TCP connection is received by the SSTP layer, it issues asynchronously the primitive SSTP-CONNECT-Indication to SCCP. Once the SSTP is listening to the reserved port,, the SSTP layer establishes a TCP connection to each of the SSTP nodes defined in the SCCP over IP network. This TCP connection should be established before SCCP sends a primitive SSTP-TRANSFER-Request. 5.2 Supervision Each TCP connection is supervised by SSTP. In case no messages are sent for a certain period of time, the ICMP Echo is sent to the remote node, waiting to receive an Echo Reply message. If the Echo Reply message is not received within a specific period of time, the connection is supposed to be broken, and it is indicated to SCCP by means of the primitive SSTP-DISCONNECT-Indication. 6. Further Studies The further studies for following issues are needed: - Provision of automatic rerouting upon IP network failure. - Provision of forced rerouting and controlled rerouting in IP networks. - Provision of enhanced error reporting procedures in IP networks. - Avoid unnecessary segmentation at SCCP level. - Study the introduction of enhanced routing algorithms like OSPF. 7. Acronyms AMPS - Advanced Mobile Telephone Service BSSAP - Base Station System Application Part GSM - Global System for Mobile Communication GT - Global Title ICMP - Internet Control Message Protocol IN - Intelligent Network INAP - Intelligent Network Application Part IP - Internet Protocol LAN - Local Area Network MAP - Mobile application Part MTP - Message Transfer Part OSPF - Open Shortest Path First PC - Point Code SCCP - Signalling Connection Control Part SS7 - Signalling System No. 7 SSTP - Simple SCCP Tunneling Protocol TCAP - Transaction Capabilities Application Part UDP - User Datagram Protocol WAN - Wide Area Network 8. References [1] ITU-T Recommendation Q.711: "Functional Description of the Signalling Connection Control Part" [2] ITU-T Recommendation Q.713: "Signalling Connection Control Part formats and codes" [3] ITU-T Recommendation Q.714: "Signalling Connection Control Part procedures" [4] ANSI T1.112-1996 "Signalling System Number 7 - Signalling Connection Control Part (SCCP)" [5] Postel, J.B. 1980, "Transmission Control Protocol", RFC 793 [6] Postel, J.B. 1980, "User Datagram Protocol", RFC 768 [7] Postel, J.B. 1981, "Internet Control Message Protocol" RFC 792 9. Authors David Sanchez Miguel A. Garcia Ericsson Ericsson Retama 1 Retama 7 Madrid, Spain 28045 Madrid, Spain 28045 Tel: +34 91 339 3027 Tel: +34 91 339 2985 Email: emedasa@madrid.ericsson.se Email: Miguel.A.Garcia@ericsson.com