RFC 4165
Signaling System 7 (SS7) Message Transfer Part 2 (MTP2) - User Peer-to-Peer Adaptation Layer (M2PA)
RFC 4165 ๐ The M2PA Title Block
RFC 4165: Signaling System 7 (SS7) Message Transfer Part 2 (MTP2) - User Peer-to-Peer Adaptation Layer (M2PA) ๐
Okay, the header info, bestie ๐ซถ This is from the Network Working Group, and it's a Standards Track doc, so it's meant to be a real, official protocol ๐. It's dated September 2005 ๐ฆ. The authors are T. George and B. Bidulock from OpenSS7, R. Dantu from the University of North Texas, H. Schwarzbauer from Siemens, and K. Morneault from Cisco Systems โจ. The header doesn't say it obsoletes or updates any other RFCs, so this one stands on its own ๐ธ.
Status of This Memo โจ
Okay so this is the "here's what this doc is" part ๐. It's an Internet standards track protocol for the Internet community, and it's basically asking everyone to talk about it and send ideas for making it better ๐ฌ. If you want to know where it stands officially, check the current edition of "Internet Official Protocol Standards" (STD 1) ๐ฅ. And yes, you can share this memo as much as you want, since distribution is unlimited ๐.
Copyright Notice ๐ธ
Copyright (C) The Internet Society (2005). ๐
Abstract ๐ฆ
Okay, big picture ๐. This doc describes how to carry Signaling System Number 7 (SS7) Message Transfer Part (MTP) Level 3 signaling messages over Internet Protocol (IP), using Stream Control Transmission Protocol (SCTP) to do the hauling ๐. It's meant for SS7 Signaling Points that speak MTP Level 3 to each other ๐ง. Those points can also still use regular SS7 MTP Level 2 links, so both worlds can coexist ๐ซถ. The whole thing acts a lot like MTP Level 2, which gives you peer-to-peer communication between SS7 endpoints. It's giving old-school phone network energy, but make it IP โจ.
Table of Contents ๐ง
1. Introduction ....................................................3
1.1. Scope ......................................................3
1.2. Terminology ................................................3
1.3. Abbreviations ..............................................4
1.4. Conventions ................................................5
1.5. Signaling Transport Architecture ...........................5
1.6. Services Provided by M2PA ..................................7
1.7. Functions Provided by M2PA .................................9
1.8. Definition of the M2PA Boundaries .........................10
1.9. Differences Between M2PA and M2UA .........................10
2. Protocol Elements ..............................................12
2.1. Common Message Header .....................................12
2.2. M2PA Header ...............................................13
2.3. M2PA Messages .............................................14
3. State Control ..................................................17
3.1. SCTP Association State Control ............................17
3.2. M2PA Link State Control ...................................18
4. Procedures .....................................................19
4.1. Procedures to Support MTP2 Features .......................19
4.2. Procedures to Support the MTP3/MTP2 Interface .............30
4.3. SCTP Considerations .......................................33
5. Examples of M2PA Procedures ....................................34
5.1. Link Initialization (Alignment) ...........................34
5.2. Message Transmission and Reception ........................37
5.3. Link Status Indication ....................................37
5.4. Link Status Message (Processor Outage) ....................38
5.5. Level 2 Flow Control ......................................42
5.6. MTP3 Signaling Link Congestion ............................44
5.7. Link Deactivation .........................................45
5.8. Link Changeover ...........................................45
6. Security Considerations ........................................47
7. IANA Considerations ............................................47
7.1. SCTP Payload Protocol Identifier ..........................47
7.2. M2PA Protocol Extensions ..................................48
8. Acknowledgements ...............................................49
9. References .....................................................50
9.1. Normative References ......................................50
9.2. Informative References ....................................51
1. Introduction โจ
1.1. Scope ๐
So why does this even need to exist? ๐ค Basically, Switched Circuit Network (SCN) signaling needs to get delivered over an IP network, like, a lot ๐ญ. That means message transfer between:
- a Signaling Gateway (SG) and a Media Gateway Controller (MGC) [RFC2719]
- a SG and an IP Signaling Point (IPSP)
- an IPSP and an IPSP
This could help signaling and data networks become besties ๐ซถ. SCN signaling nodes would get access to databases and other devices in the IP world that don't use SS7 signaling links ๐ . And IP telephony apps would get access to SS7 services too ๐. There might also be cost and performance perks when regular signaling links get swapped for IP network "connections" ๐ธ.
The delivery mechanism here allows for full MTP3 message handling and network management capabilities between any two SS7 nodes that talk over an IP network ๐ฅ. An SS7 node with an IP network connection is called an IP Signaling Point (IPSP) ๐ฆ. IPSPs work like regular SS7 nodes, just using the IP network instead of SS7 links โจ.
The delivery mechanism should:
- Support seamless operation of MTP3 protocol peers over an IP network connection.
- Support the MTP Level 2 / MTP Level 3 interface boundary.
- Support management of SCTP transport associations and traffic instead of MTP2 Links.
- Support asynchronous reporting of status changes to management.
1.2. Terminology ๐
Okay, vocab time, bestie ๐. Here's what the terms mean.
MTP - The Message Transfer Part of the SS7 protocol [Q.700] [Q.701] [Q.702] [Q.703] [Q.704] [Q.705] [T1.111].
MTP2 - MTP Level 2, the MTP signaling link layer.
MTP3 - MTP Level 3, the MTP signaling network layer.
MTP2-User - A protocol that normally uses the services of MTP Level 2. The only MTP2 user is MTP3. The MTP2 user is equivalent to the M2PA user.
Signaling End Point (SEP) - An SS7 Signaling Point that originates or terminates signaling messages. One example is a central office switch. [RFC2719]
IP Signaling Point (IPSP) - An SS7 Signaling Point with an IP network connection used for SS7 over IP.
Signaling Gateway (SG) - A signaling agent that receives/sends SCN native signaling at the edge of the IP network [RFC2719]. In this context, an SG is an SS7 Signaling Point that has both an IP network connection used for SS7 over IP, and a traditional (non-IP) link to an SS7 network.
Signal Transfer Point (STP) - A Signal Transfer Point as defined by MTP standards, e.g., [Q.700].
Signaling Point (STP) - A Signaling Point as defined by MTP standards, e.g., [Q.700].
Association - An association refers to an SCTP association [RFC2960]. The association provides the transport for MTP3 protocol data units and M2PA adaptation layer peer messages.
Network Byte Order - Most significant byte first, also known as "Big Endian". See [RFC791], Appendix B "Data Transmission Order".
Stream - A stream refers to an SCTP stream [RFC2960].
1.3. Abbreviations ๐
Here's the abbreviation cheat sheet ๐:
BSNT - Backward Sequence Number to be Transmitted
FSNC - Forward Sequence Number of last message accepted by remote
level 2
LI - Length Indicator
MSU - Message Signal Unit
SCCP - Signaling Connection Control Part
SCN - Switched Circuit Network
SCTP - Stream Control Transmission Protocol
SIF - Signaling Information Field
SIO - Service Information Octet
SLC - Signaling Link Code
SS7 - Signaling System Number 7
SSN - Stream Sequence Number
STP - Signal Transfer Point
1.4. Conventions ๐ธ
Last bit of part one, and it's about the key words ๐. The words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] ๐ซถ. Those capitalized words are the ones with real weight, so watch for them ๐.
1.5. Signaling Transport Architecture โจ
okay so the big picture ๐ฆ SCN signaling transport over IP is built from a few pieces that work together: an IP transport protocol, the Stream Control Transmission Protocol (SCTP), and an adaptation module that gives a particular SCN signaling protocol the services it expects from the layer below. That whole setup is defined in [RFC2719].
Inside that framework, this document defines one specific adaptation module, the one for carrying SS7 MTP3 messages. It's called the MTP2 User Peer-to-peer Adaptation Layer (M2PA) ๐. M2PA gives MTP3 an interface and services that look a lot like MTP2's. Basically, MTP2 and the layers under it in the traditional SS7 stack get swapped out for an IP equivalent. ๐
Figure 1 shows how MTP3 interworks seamlessly between two nodes. MTP3 talks to SCTP through M2PA, and M2PA supports all the primitives that run between MTP3 and MTP2. The SCTP association works as one SS7 link between the IPSPs. And an IPSP can run SCCP and other SS7 layers on top of MTP3 ๐
******** IP ********
* IPSP *--------* IPSP *
******** ********
+------+ +------+
| TCAP | | TCAP |
+------+ +------+
| SCCP | | SCCP |
+------+ +------+
| MTP3 | | MTP3 |
+------+ +------+
| M2PA | | M2PA |
+------+ +------+
| SCTP | | SCTP |
+------+ +------+
| IP | | IP |
+------+ +------+
IP - Internet Protocol
IPSP - IP Signaling Point
SCTP - Stream Control Transmission Protocol [RFC2960]
Figure 1. M2PA Symmetrical Peer-to-Peer Architecture
Figure 2 shows M2PA being used in a Signaling Gateway (SG) ๐ง The SG is an IPSP that has both traditional SS7 and IP network connections.
The SEP and the SG talk over a traditional SS7 link, which follows a protocol like [Q.702]. The SG and the IPSP talk over an IP link using M2PA. Messages going from the SEP to the IPSP (and back again) get routed by the SG ๐
Any node in the diagram could run SCCP or other SS7 layers above MTP3. The Signaling Gateway acts as a Signal Transfer Point (STP). Other STPs MAY be present in the SS7 path between the SEP and the SG ๐ซถ
******** SS7 *************** IP ********
* SEP *--------* SG *--------* IPSP *
******** *************** ********
+------+ +------+
| TCAP | | TCAP |
+------+ +------+
| SCCP | | SCCP |
+------+ +-------------+ +------+
| MTP3 | | MTP3 | | MTP3 |
+------+ +------+------+ +------+
| MTP2 | | MTP2 | M2PA | | M2PA |
| | | +------+ +------+
| | | | SCTP | | SCTP |
+------+ +------+------+ +------+
| MTP1 | | MTP1 | IP | | IP |
+------+ +------+------+ +------+
SEP - SS7 Signaling Endpoint
Figure 2. M2PA in IP Signaling Gateway
Figure 2 is just an example, and other configurations are possible ๐ The big takeaway: M2PA treats the SCTP association as an SS7 link. The M2PA/SCTP/IP stack can be used in place of an MTP2/MTP1 stack โจ
1.5.1. Point Code Representation
okay this one's important ๐ MTP needs every node with an MTP3 layer to be identified by an SS7 point code. Specifically, each IPSP MUST have its own SS7 point code. No sharing, no cap ๐
1.6. Services Provided by M2PA
The SS7 MTP3/MTP2 (MTP2-User) interface stays put in the IPSP ๐ธ The M2PA protocol layer is required to give its user a set of services that match what MTP Level 2 gives to MTP Level 3. Main character energy for sure ๐
Those services are described in the subsections below ๐ฆ
1.6.1. Support for MTP Level 2 / MTP Level 3 Interface Boundary
This interface is the same as the MTP2/MTP3 interface in the applicable SS7 standards [Q.703] [Q.704] [T1.111] [Q.2140], with one addition: support for the larger sequence numbers found in [T1.111] and [Q.2210] ๐ฅ
M2PA receives the primitives that MTP3 sends to its lower layer. It then either processes those primitives or maps them to the right primitives at the M2PA/SCTP interface. In the other direction, M2PA sends MTP3 primitives that look similar to the ones used in the MTP3/MTP2 interface ๐
Here's the tricky bit: because M2PA uses bigger sequence numbers than MTP2, the MTP3 Changeover procedure MUST use the Extended Changeover Order and Extended Changeover Acknowledgement messages described in [Q.2210] and [T1.111] ๐ญ
Also, these MTP3/MTP2 primitives must use the larger sequence numbers:
- BSNT Confirmation
- Retrieval Request and FSNC
1.6.2. Support for Peer-to-Peer Communication
okay so in SS7, MTP Level 2 sends three kinds of messages called signal units: Message Signal Units (MSUs), Link Status Signal Units (LSSUs), and Fill-In Signal Units (FISUs) ๐ง
MSUs start at a higher level than MTP2 and are headed for a peer at another node. M2PA passes these from MTP3 to SCTP as data to transport across the link. In M2PA, these are called User Data messages ๐
LSSUs let peer MTP2 layers swap status info. M2PA needs something analogous, and that's the job of the Link Status message ๐
FISUs get sent nonstop whenever there's nothing else waiting to go out. They also carry message acknowledgements. But an IP network is a shared resource, so a message type that gets sent nonstop, the way FISUs do, would be a bad idea ๐ โโ๏ธ On top of that, SCTP doesn't require its upper layer to keep transmitting messages constantly. So M2PA doesn't provide a protocol data unit like the FISU ๐ The M2PA User Data message carries message acknowledgements instead. And if M2PA needs to acknowledge a message but has no MTP3 message of its own to send, it can send an empty User Data message โจ
1.7. Functions Provided by M2PA
1.7.1. MTP2 Functionality
M2PA provides MTP2 functionality that SCTP doesn't cover. Put together, M2PA and SCTP give you functionality similar to MTP2 ๐ฆ
SCTP provides reliable, sequenced delivery of messages ๐ซถ
M2PA functionality includes:
- Data retrieval to support the MTP3 changeover procedure
- Reporting of link status changes to MTP3
- Processor outage procedure
- Link alignment procedure
1.7.2. Mapping of SS7 and IP Entities
The M2PA layer must maintain a map of each of its SS7 links to the corresponding SCTP association ๐บ๏ธ
1.7.3. SCTP Association Management
SCTP lets you specify how many streams get opened during initialization. It's the M2PA layer's job to manage the streams allowed within each association properly ๐
M2PA uses two streams in each direction for each association. Stream 0 in each direction is set aside for Link Status messages. Stream 1 is set aside for User Data messages, plus any Link Status messages that have to stay in sequence with the User Data messages ๐ธ Splitting Link Status and User Data messages into separate streams lets M2PA prioritize them in a way that's similar to MTP2. Iconic design choice ngl ๐
Notifications that come from SCTP get processed by M2PA, or translated into an appropriate notification for the upper layer, MTP3 ๐ฅ
1.7.4. Retention of MTP3 in the SS7 Network
M2PA lets MTP3 do all of its Message Handling and Network Management functions with IPSPs, the same way it does with other SS7 nodes ๐
1.8. Definition of the M2PA Boundaries
1.8.1. Definition of the M2PA / MTP Level 3 Boundary
The upper layer primitives M2PA provides are the same ones MTP2 provides to MTP3. They're described in the applicable SS7 standards [Q.703] [Q.704] [T1.111] [Q.2140] ๐
1.8.2. Definition of the Lower Layer Boundary between M2PA and SCTP
The upper layer primitives SCTP provides are described in [RFC2960] Section 10 "Interface with Upper Layer" ๐ง
1.9. Differences Between M2PA and M2UA ๐ฆ
okay so the MTP2 User Adaptation Layer (M2UA) [M2UA] ALSO adapts MTP3 to the SCTP/IP stack, and it does it through a backhauling architecture [RFC2719]. ๐ this section is here to spell out how M2PA and M2UA are different, bestie.
Here's a possible M2PA architecture, shown in Figure 3. The IPSP's MTP3 uses its underlying M2PA as a replacement for MTP2. The two layers (MTP3/M2PA) talk to each other using the same primitives as SS7 MTP3/MTP2 ๐ฅ. M2PA does stuff similar to MTP2.
******** SS7 *************** IP ********
* SEP *--------* SG *--------* IPSP *
******** *************** ********
+------+ +-------------+ +------+
| SCCP | | SCCP | | SCCP |
+------+ +-------------+ +------+
| MTP3 | | MTP3 | | MTP3 |
+------+ +------+------+ +------+
| MTP2 | | MTP2 | M2PA | | M2PA |
| | | +------+ +------+
| | | | SCTP | | SCTP |
+------+ +------+------+ +------+
| MTP1 | | MTP1 | IP | | IP |
+------+ +------+------+ +------+
Figure 3. M2PA in IP Signaling Gateway
Now the M2UA version is in Figure 4. In M2UA, the MGC's MTP3 uses the SG's MTP2 as its lower SS7 layer ๐ซถ. And the SG's MTP2 uses the MGC's MTP3 as its upper SS7 layer. In SS7, MTP3 and MTP2 talk through primitives. In M2UA, that MTP3/MTP2 communication gets turned into M2UA messages and sent over the IP connection. it's giving a whole new vibe ๐
******** SS7 *************** IP ********
* SEP *--------* SG *--------* MGC *
******** *************** ********
+------+ +------+
| SCCP | | SCCP |
+------+ +------+
| MTP3 | (NIF) | MTP3 |
+------+ +------+------+ +------+
| MTP2 | | MTP2 | M2UA | | M2UA |
| | | +------+ +------+
| | | | SCTP | | SCTP |
+------+ +------+------+ +------+
| MTP1 | | MTP1 | IP | | IP |
+------+ +------+------+ +------+
NIF - Nodal Interworking Function
Figure 4. M2UA in IP Signaling Gateway
M2PA and M2UA are alike in that:
- a. Both transport MTP3 data messages.
- b. Both present an MTP2 upper interface to MTP3.
Now the differences between M2PA and M2UA, which include:
- a. M2PA: IPSP processes MTP3/MTP2 primitives. M2UA: MGC transports MTP3/MTP2 primitives between the SG's MTP2 and the MGC's MTP3 (via the NIF) for processing.
- b. M2PA: SG-IPSP connection is an SS7 link. M2UA: SG-MGC connection is not an SS7 link. It is an extension of MTP to a remote entity.
- c. M2PA: SG is an SS7 node with a point code. M2UA: SG is not an SS7 node and has no point code.
- d. M2PA: SG can have upper SS7 layers, e.g., SCCP. M2UA: SG does not have upper SS7 layers since it has no MTP3.
- e. M2PA: relies on MTP3 for management procedures. M2UA: uses M2UA management procedures.
๐ anyone thinking about using M2PA or M2UA for SS7 signaling transport over IP networks should keep these differences in mind when deciding which one to pick, periodt.
2. Protocol Elements โจ
This section breaks down the format of the messages this protocol uses ๐.
All fields in an M2PA message must be transmitted in the network byte order, i.e., most significant byte first, unless otherwise stated.
2.1. Common Message Header ๐ธ
The M2PA protocol messages need a message header that has a version, a message class, a message type, and a message length. The header looks like Figure 5.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version | Spare | Message Class | Message Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5. Common Message Header
2.1.1. Version
The version field holds the version of M2PA. The supported versions are:
Value
(decimal) Version
--------- -------
1 Release 1.0 of M2PA protocol
2.1.2. Spare
The Spare field SHOULD be set to all zeroes (0's) by the sender and ignored by the receiver. The Spare field SHOULD NOT be used for proprietary information. ๐
2.1.3. Message Class
Here's the list of the valid Message Classes:
Value
(decimal) Message Class
--------- -------------
11 M2PA Messages
Other values are invalid for M2PA.
2.1.4. Message Type
Next up are the message types for the defined messages:
Value
(decimal) Message Type
--------- -------------
1 User Data
2 Link Status
Other values are invalid.
2.1.5. Message Length
The Message Length defines the length of the message in octets, including the Common Header. ๐ง
2.2. M2PA Header ๐
Every M2PA protocol message needs an M2PA-specific header. The header structure is shown in Figure 6.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| unused | BSN |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| unused | FSN |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 6. M2PA-specific Message Header
2.2.1. Backward Sequence Number (BSN)
This is the FSN of the message last received from the peer.
2.2.2. Forward Sequence Number (FSN)
This is the M2PA sequence number of the User Data message being sent.
The FSN and BSN values range from 0 to 16,777,215. ๐ข
2.3. M2PA Messages ๐ฆ
This section defines the messages and the parameter contents. An M2PA message is made up of a Common Message Header and an M2PA Header, followed by whatever data the message needs.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\ \
/ Common Message Header /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\ \
/ M2PA-specific Message Header /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\ \
/ Message Data /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The field "Message Data" contains either:
- a User Data message (Section 2.3.1), or
- a Link State message (Section 2.3.2)
2.3.1. User Data ๐
The User Data is the data sent from MTP3. It's an optional field, and it doesn't need to be included in an acknowledgement-only message.
The format of the User Data 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\ \
/ Data /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The Data field holds these fields from the MTP Message Signal Unit (MSU):
- the Message Priority field (PRI)
- Service Information Octet (SIO)
- Signaling Information Field (SIF)
The MTP MSU is described in Q.703 [Q.703], Section 2.2, "Signal Unit Format", and T1.111.3 [T1.111], Section 2.2, "Signal Unit Format". The Japanese TTC standard uses the PRI field as an MTP3 Message Priority field [JT-Q703] [JT-Q704]. For versions of MTP that do not use these two bits, the entire first octet of the Data field is spare. โจ
The first octet of the Data field looks like this:
0
0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|PRI| spare | (followed by SIO, SIF)
+-+-+-+-+-+-+-+-+
PRI - Priority used only in national MTP defined in [JT-Q703] and
[JT-Q704]. These bits are spare for other MTP versions.
Heads up, the Data field SHALL NOT contain the other components of the MTP MSU format:
- Flag
- Backward Sequence Number (BSN)
- Backward Indicator Bit (BIB)
- Forward Sequence Number (FSN)
- Forward Indicator Bit (FIB)
- Length Indicator (LI)
- Check bits (CK)
The Data field SHALL be transmitted in the byte order as defined by MTP3.
M2PA SHALL NOT add padding to the MTP3 message. ๐ซ
Note: In the SS7 Recommendations, the format of the messages and the fields inside them are based on bit transmission order. In those recommendations, the Least Significant Bit (LSB) of each field sits on the right. The received SS7 fields get filled in octet by octet as they arrive into the 4-octet word, as shown below. ๐ค
As an example, in the ANSI MTP protocol, the Data field format looks like this:
|MSB---------------------------------------------------------LSB|
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|PRI| spare | SIO | SIF octet | ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\ \
/ : /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... | ... | ... | SIF octet |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Within each octet, the Least Significant Bit (LSB) per the SS7 Recommendations sits to the right (e.g., bit 15 of SIO is the LSB). ๐
2.3.2. Link Status โจ
okay bestie, the MTP2 Link Status message is what M2PA peers send to each other to say what state the link is in ๐ It basically does the same job as the Link Status Signal Unit in MTP2, so if you know that one, you already know the vibe ๐ซถ Here's what the format looks like:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| State |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
the valid values for State are in this table ๐ธ
Value
(decimal) Description
--------- -----------
1 Alignment
2 Proving Normal
3 Proving Emergency
4 Ready
5 Processor Outage
6 Processor Recovered
7 Busy
8 Busy Ended
9 Out of Service (OOS)
2.3.2.1. Link Status Proving ๐ฆ
okay so the Link Status Proving message is allowed to (optionally) carry extra bytes ๐ if you do add them, the format looks like this:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| State |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\ \
/ filler /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
it is RECOMMENDED that the length of the Link Status Proving message be similar to the size of the User Data messages that will be carried on the link ๐ so they match the vibe of the traffic on the link ๐
it is RECOMMENDED that the filler field contain a number pattern that varies among the Link Status Proving messages ๐ and that lets the SCTP checksum [RFC3309] be used to verify the accuracy of transmission โจ the filler is doing a whole job, bestie ๐ญ
3. State Control ๐
3.1. SCTP Association State Control ๐ง
Figure 7 illustrates state changes in the M2PA management of the SCTP association, together with the causing events ๐ some of the error conditions are not shown in the state diagram, so don't be surprised if something's missing ๐
here's the list of the M2PA Association States and what each one means ๐
- IDLE - state of the association during power-up initialization ๐
- ASSOCIATING - M2PA is attempting to establish an SCTP association ๐
- ESTABLISHED - SCTP association is established โ
+-----------+
| IDLE |
+-----------+
|
| Associate
| (Issue SCTP associate)
|
| +----------------------+
| | (Issue SCTP |
V V associate) |
+-------------+ |
| ASSOCIATING |----------------->+
+-------------+ SCTP Comm Error |
| |
| |
| SCTP Comm Up |
| |
V |
+-------------+ |
| ESTABLISHED |----------------->+
+-------------+ SCTP Comm Error
OR SCTP Comm Lost
Figure 7. M2PA Association State Transition Diagram ๐ฆ
3.2. M2PA Link State Control ๐ซ
the M2PA link moves from one state to another in response to various events ๐ธ the events that may result in a change of state include:
- MTP3 primitive requests ๐จ
- Receipt of messages from the peer M2PA ๐ฌ
- Expiration of timers โฐ
- SCTP notifications ๐
these events affect the M2PA link state in a manner similar to MTP2 ๐
4. Procedures ๐
because M2PA gives MTP3 an interface and functionality like MTP2, its internal functioning is similar to that of MTP2 ๐ซถ
except as modified in this document, M2PA SHOULD follow the requirements of the applicable MTP2 specification โจ these may include [Q.703] or [T1.111] ๐ the same standard MUST be followed on both ends of the M2PA link ๐ฅ no mixing and matching, bestie ๐ โโ๏ธ
in particular, the corresponding applicable timer value defaults and ranges specified for the applicable MTP2 standard should be used for the M2PA timers โฑ๏ธ
when referring to MTP2 terminology in this document, the terminology of [Q.703] is used ๐ this does not imply that the requirements of [Q.703] are to be followed, so don't get it twisted ๐
4.1. Procedures to Support MTP2 Features ๐
4.1.1. Signal Unit Format, Delimitation, Acceptance ๐
messages for transmission across the network must follow the format described in Section 2 ๐ฆ
SCTP provides reliable, in-sequence delivery of user messages ๐ therefore the related functionality of MTP2 is not needed ๐ SCTP does not provide functions related to Link State Control in MTP2 ๐ญ these functions must be provided by M2PA ๐
since SCTP provides delivery of messages, there is no need for M2PA to delimit its messages with a flag, as is done in MTP2 ๐ธ furthermore, M2PA does not need to perform zero bit insertion and deletion on its messages โจ
since SCTP uses a checksum to detect transmission errors, there is no need for an M2PA checksum, as is needed in MTP2 ๐ซถ this also eliminates the need for the error rate monitors of MTP2 ๐ฅ
since SCTP provides reliable delivery and ordered delivery, M2PA does not perform retransmissions ๐ง this eliminates the need for the forward and backward indicator bits in MTP2 signal units ๐
acceptance of a message is indicated by a successful receipt of the message from SCTP ๐
4.1.2. MTP and SCTP Entities โจ
okay so this bit is all about how M2PA ties the MTP side and the SCTP side together ๐ basically each MTP link is one SCTP association ๐ฆ
To stop duplicate associations from getting made, it is RECOMMENDED that each endpoint knows the IP address (or IP addresses, if multi-homing is used) and port number of both endpoints ๐ SCTP already blocks two associations with the same IP addresses and port numbers, so this is extra protection ๐ซถ
It's necessary for at least one endpoint to be listening on the port the other endpoint is trying to connect to ๐ so at least one of the port numbers SHOULD be the M2PA registered port ๐ธ
If only one association is going to exist between these two IP addresses, then it SHOULD be set up using the M2PA registered port at each endpoint ๐
If you want multiple associations (for multiple links) between the same two IP addresses, you can use different port numbers for each one ๐ฆ but the M2PA registered port number SHOULD still be used at one end of each association ๐ซถ
Each combo of IP address and port for the two endpoints (aka each association) MUST be mapped to the same Signaling Link Code (SLC) at each endpoint ๐ฅ that way each endpoint knows which link is being created when the SCTP association gets set up ๐ง M2PA doesn't do any processing based on the SLC though, so it's just for bookkeeping โจ
Here are some examples of how associations and links relate ๐ a link is an SCTP association identified by two endpoints, each endpoint is an IP address plus a port number, and each association gets mapped to an SLC ๐
Figure 8 shows two IPSPs, each with two IP addresses ๐ the two associations are the links connecting the two IPSPs, and since they're in the same link set, they MUST have different SLCs ๐ญ
Table 1 shows the same thing in table form ๐ it's only conceptual, though, and the actual method for mapping SCTP associations to SLCs is implementation dependent ๐
IPSP X IPSP Y
+-------------+ +-------------+
| | SCTP | |
| IPA | association 1 | IPB |
| port = PW +---------------+ port = PW |
| SLC = a | | SLC = a |
| | | |
| | | |
| | SCTP | |
| IPC | association 2 | IPD |
| port = PW +---------------+ port = PW |
| SLC = b | | SLC = b |
| | | |
| | | |
+-------------+ +-------------+
IPx = IP address
PW = Registered port number for M2PA
Figure 8. Two IPSPs with Two IP Addresses Each
+-------------+---------------------------------------+-----+
| Association | IPSP X | IPSP Y | SLC |
| +------------+------+------------+------+ |
| | IP address | Port | IP address | Port | |
+=============+============+======+============+======+=====+
| 1 | IPA | PW | IPB | PW | a |
+-------------+------------+------+------------+------+-----+
| 2 | IPC | PW | IPD | PW | b |
+-------------+------------+------+------------+------+-----+
Table 1. Two IPSPs with Two IP Addresses Each
Figure 9 and Table 2 cover an example with three IPSPs ๐ฆ here the two links are in different link sets, so the SLC values a and b MAY be equal ๐ธ
IPSP X IPSP Y
+-------------+ +-------------+
| | SCTP | |
| IPA | association 1 | IPB |
| port = PW +---------------+ port = PW |
| SLC = a | | SLC = a |
| | | |
| | | |
| | SCTP | |
| IPC | association 2 | |
| port = PW +-------+ | |
| SLC = b | | | |
| | | | |
| | | | |
+-------------+ | +-------------+
|
|
| IPSP Z
|
| +-------------+
| | |
| | IPD |
+-------+ port = PW |
| SLC = b |
| |
| |
| |
| |
| |
| |
| |
| |
+-------------+
IPx = IP address
PW = Registered port number for M2PA
Figure 9. One IPSP Connected to Two IPSPs
+-------------+---------------------------------------+-----+
| Association | IPSP X | IPSP Y/Z | SLC |
| +------------+------+------------+------+ |
| | IP address | Port | IP address | Port | |
+=============+============+======+============+======+=====+
| 1 | IPA | PW | IPB | PW | a |
+-------------+------------+------+------------+------+-----+
| 2 | IPC | PW | IPD | PW | b |
+-------------+------------+------+------------+------+-----+
Table 2. One IPSP Connected to Two IPSPs
Figure 10 and Table 3 show two associations between the same IP addresses ๐ง this works by using a different port number for each association at one endpoint ๐
IPSP X IPSP Y
+-------------+ +-------------+
| | SCTP | |
| IPA | association 1 | IPB |
| port = P1 +---------------+ port = PW |
| SLC = a | | SLC = a |
| | | |
| | | |
| | SCTP | |
| IPA | association 2 | IPB |
| port = PW +---------------+ port = PW |
| SLC = b | | SLC = b |
| | | |
| | | |
+-------------+ +-------------+
IPx = IP address
P1 = Pre-selected port number
PW = Registered port number for M2PA
Figure 10. Multiple Associations Between Two IP Addresses
+-------------+---------------------------------------+-----+
| Association | IPSP X | IPSP Y | SLC |
| +------------+------+------------+------+ |
| | IP address | Port | IP address | Port | |
+=============+============+======+============+======+=====+
| 1 | IPA | P1 | IPB | PW | a |
+-------------+------------+------+------------+------+-----+
| 2 | IPA | PW | IPB | PW | b |
+-------------+------------+------+------------+------+-----+
Table 3. Multiple Associations Between Two IP Addresses
Now the stream stuff ๐ The association SHALL contain two streams in each direction ๐ซถ Stream 0 is for Link Status messages, and Stream 1 is for User Data messages, plus any Link Status messages that must remain in sequence with the User Data messages ๐
โจ The next two lists are the rules for which Link Status messages go on which stream, so don't skip them, bestie ๐ญ
The following Link Status messages SHALL be sent on the Link Status stream (stream 0):
- Alignment
- Proving Normal
- Proving Emergency
- Ready (when sent during alignment)
- Busy
- Busy Ended
- Out of Service
The following Link Status messages SHALL be sent on the User Data stream (stream 1):
- Processor Outage
- Processor Recovered
- Ready (when sent at the end of processor outage)
4.1.3. Link Alignment โจ
okay so alignment has two big jobs ๐
- handshake time ๐ค: both endpoints need to be ready to send SS7 traffic, and nobody gets to send anything before the other end is ready. no jumping the gun!
- vibe check ๐: make sure the SCTP association is actually suitable to act as an SS7 link.
Alignment happens after the association is established. If SCTP can't get the association up, but M2PA already got a Start Request from its MTP3, then M2PA SHALL report to MTP3 that the link is out of service ๐.
The Link Status Out of Service message is the SIOS replacement from MTP2. Unlike MTP2, it SHOULD NOT be sent nonstop ๐ โโ๏ธ. Once the association is up, M2PA SHALL send a Link Status Out of Service message to its peer. Before alignment even starts, M2PA MAY send extra Link Status Out of Service messages.
The Link Status Alignment message takes over from MTP2's SIO and says "okay, we're starting alignment!" ๐ It also SHOULD NOT be spammed continuously. M2PA MAY keep sending extra Link Status Alignment messages until it hears back with Link Status Alignment, Link Status Proving Normal, or Link Status Proving Emergency from the peer.
The Link Status Proving Normal message replaces MTP2's SIN, and the Link Status Proving Emergency message replaces SIE ๐ธ.
The proving period is skippable ๐ฆ if the applicable MTP2 standard allows it (e.g., [Q.2140]), so M2PA MAY omit it.
If proving does happen, then during the proving period (that's after M2PA starts the proving period timer T4), M2PA SHALL send Link Status Proving messages to its peer every Proving_Interval, which is the protocol parameter that sets the timing โฑ๏ธ. It is RECOMMENDED that Proving_Interval be set so the traffic from the Link Status Proving messages during the proving period is comparable to the normal traffic you'd expect once the link is in service. the vibe should match the real thing! โจ
The Link Status Ready message replaces the FISU that MTP2 sends at the end of proving ๐ซง. It's how both ends confirm that they've both finished proving. When M2PA starts timer T1, it SHALL send a Link Status Ready message to its peer in the case where MTP2 would've sent a FISU after proving was complete. If that Link Status Ready message goes out, M2PA MAY send extra Link Status Ready messages while timer T1 is still running. All of these Link Status Ready messages go out on the Link Status stream ๐.
And if MTP2 would have sent an MSU or SIPO at the end of proving instead, M2PA SHALL send a User Data or Link Status Processor Outage message, respectively ๐.
4.1.4. Processor Outage ๐
The Link Status Processor Outage message replaces MTP2's SIPO. Again, it SHOULD NOT be transmitted continuously, unlike MTP2 ๐ค. M2PA SHALL send a Link Status Processor Outage message to its peer at the start of a processor outage condition, the moment MTP2 would send SIPO. M2PA MAY send extra Link Status Processor Outage messages for as long as that condition lasts. This message SHALL go out on the User Data stream.
When you're in a local processor outage (LPO) condition, here's the tea ๐ซ:
- (a) Any User Data messages received from the peer MUST NOT be acknowledged and MUST be buffered. no acks, just stash them ๐งบ.
- (b) M2PA SHOULD keep acknowledging the User Data messages it received and accepted from MTP3 before the local processor outage started.
- (c) M2PA SHOULD keep transmitting messages that its upper layer MTP3 has sent.
When there's a remote processor outage (RPO) condition, the rules flip a little ๐:
- (a) M2PA SHOULD keep acknowledging the User Data messages it received and accepted by MTP3, no matter what the remote processor outage is doing.
- (b) If any User Data messages that came in from the peer after the Link Status Processor Outage can't be delivered to MTP3, then those messages MUST NOT be acknowledged and MUST be buffered ๐ซฃ.
If M2PA gets a Flush command from MTP3, it's clean-up time ๐งน:
- (a) M2PA SHALL discard any incoming messages that were queued and unacknowledged during the processor outage condition.
- (b) M2PA SHALL discard messages in the transmit and retransmit queues as required by MTP2.
If M2PA gets a Continue command from MTP3, M2PA SHALL start processing the incoming messages that were queued and unacknowledged during the processor outage condition ๐โโ๏ธ.
When the local processor outage ends, M2PA SHALL send a Link Status Processor Recovered message to its peer on the User Data stream ๐. This message is what signals the end of the outage. MTP2 uses an MSU or FISU for that job instead. The BSN in the Link Status Processor Recovered message is set to the FSN of the last User Data message received (and not discarded) from the peer M2PA. After sending it, M2PA SHALL cease transmitting User Data messages until it has received the Link Status Ready message (see below). hold up, no more User Data till that Ready shows up ๐.
When the M2PA in RPO gets that Link Status Processor Recovered message, it SHALL respond with a Link Status Ready message on the User Data stream. The BSN in that Link Status Ready message is set to the FSN of the last User Data message received (and not discarded) from the peer M2PA.
When the M2PA that was formerly in LPO gets the Link Status Ready message, it SHALL respond with a Link Status Ready message on the User Data stream too. The BSN in this one is also set to the FSN of the last User Data message received (and not discarded) from the peer M2PA ๐.
M2PA at both the LPO and RPO ends uses the BSN value in the received Link Status Ready message to resynchronize its sequence numbers, if MTP2 requires that. M2PA SHALL NOT resume transmitting User Data messages until it has sent the Link Status Ready message ๐ .
During resynchronization, M2PA SHALL NOT discard any received User Data messages that were sent after the processor outage ended. they're precious, don't toss them ๐.
If M2PA goes through a local processor outage, it MAY put the link out of service by sending a Link Status Out of Service message, as long as the applicable MTP2 standard allows it (e.g., [Q.2140]).
In every other way, M2PA SHOULD follow the same procedures as MTP2 during a processor outage ๐.
4.1.5. Level 2 Flow Control ๐ฆ
The Link Status Busy message replaces MTP2's SIB. It SHOULD NOT be sent continuously. M2PA SHALL send a Link Status Busy message to its peer at the beginning of a receive congestion condition, where MTP2 would've sent SIB. M2PA MAY send extra Link Status Busy messages as long as that condition persists. When the condition ends, M2PA SHALL send a Link Status Busy Ended message to its peer ๐ซ .
Even while it's in receive congestion, M2PA SHALL keep transmitting messages. BUT it MUST NOT acknowledge the message that triggered the Link Status Busy message, and it MUST NOT acknowledge any messages received before the Link Status Busy Ended was sent ๐.
When the peer M2PA gets that first Link Status Busy message, it SHALL start the Remote Congestion timer T6, but only if there are messages in the retransmission buffer waiting for acknowledgement (in other words, T7 is running). M2PA SHALL stop the T7 timer if it's running. More Link Status Busy messages that arrive while T6 is running don't reset T6, and they don't start T7 either. While T6 is running, T7 SHALL NOT be started ๐.
When the peer M2PA gets the Link Status Busy Ended message and T6 hasn't expired yet, it SHALL stop T6 (if T6 is running) and start T7 (if there are messages awaiting acknowledgement in the retransmission buffer) ๐ท.
The peer M2PA SHOULD keep receiving and acknowledging messages while the other end is busy. But it MUST NOT send User Data messages after receiving Link Status Busy and before receiving Link Status Busy Ended ๐ซถ.
4.1.6. Link Out of Service ๐
The Link Status Out of Service message replaces MTP2's SIOS. Once again, unlike MTP2, it SHOULD NOT be transmitted continuously ๐ โโ๏ธ. M2PA SHALL send a Link Status Out of Service message to its peer at the beginning of a condition where MTP2 would've sent SIOS. M2PA MAY send extra Link Status Out of Service messages as long as that condition persists.
When M2PA puts a link in the OUT OF SERVICE state, M2PA SHOULD NOT terminate the SCTP association ๐ฆ. the link is out, but the association can stay put!
4.1.7. SCTP Association Problems ๐
The SCTP association for a link can become unusable, for example when one of these things happens:
- SCTP sends a Send Failure notification to M2PA.
- SCTP sends a Communication Lost notification to M2PA.
- SCTP sends a Communication Error notification to M2PA.
- The SCTP association is lost.
If the SCTP association for a link becomes unable to transmit or receive messages, M2PA SHALL report to MTP3 that the link is out of service and enter the OUT OF SERVICE state ๐ญ.
4.1.8. Transmission and Reception Priorities ๐
In MTP, Link Status messages get priority over User Data messages ([Q.703], Section 11.2). To make that happen in M2PA, M2PA uses separate streams in its SCTP association: one for Link Status messages and one for User Data messages ๐.
M2PA SHALL send all messages using the ordered delivery option of SCTP ๐ฌ.
When sending messages to SCTP, M2PA SHOULD give higher priority to messages on the Link Status stream than to messages on the User Data stream ๐โโ๏ธ.
When reading, M2PA SHOULD give higher priority to the Link Status stream than to the User Data stream โจ.
And M2PA SHOULD give higher priority to receiving notifications from SCTP than to reading either the Link Status stream or the User Data stream ๐.
4.1.9. M2PA Version Control ๐งฉ
A node that gets upgraded to a newer version of M2PA SHOULD still support the older versions used on other nodes it's talking to. If it does, then alignment can proceed normally ๐ซถ.
For future changes to this protocol, it is recommended that:
- Any newer version SHOULD be able to process messages from an older version.
- A newer version of M2PA SHOULD refrain from sending an older version of M2PA messages that the older version cannot process.
- If an older version of M2PA receives a message it cannot process, it SHOULD discard the message.
- In cases where two versions do different processing for the same format of a message, the newer version SHOULD contain procedures to recognize and handle this appropriately.
If a newer version of M2PA is incompatible with an older version, the newer version SHOULD recognize this and prevent the alignment of the link ๐ซ. And if a Link Status Alignment message with an unsupported version lands on the newer version, the receiving end's M2PA SHOULD reply with a Link Status Out of Service message and not complete the alignment procedure ๐ .
4.2. Procedures to Support the MTP3/MTP2 Interface ๐
4.2.1. Sending and Receiving Messages ๐
Okay so when MTP3 wants to send something, M2PA takes that message and passes the matching M2PA message down to SCTP using the SEND primitive. This is the moment the message actually leaves the building ๐ชโจ
User Data messages SHALL be sent via the User Data stream (stream 1) of the association. ๐
M2PA Link Status messages are passed to SCTP using the SEND primitive. ๐ซถ
These Link Status messages SHALL be sent on the Link Status stream (stream 0), no exceptions bestie:
- Alignment
- Proving Normal
- Proving Emergency
- Ready (when sent during alignment)
- Busy
- Busy Ended
- Out of Service
These Link Status messages SHALL be sent on the User Data stream (stream 1) instead:
- Processor Outage
- Processor Recovered
- Ready (when sent at the end of processor outage)
If M2PA gets a message from SCTP with an invalid Message Class or an unsupported Message Type in the Common Message Header, M2PA SHALL discard the message. Gone. ๐๏ธ๐
For message types other than User Data, the Forward Sequence Number is set to the FSN of the last User Data message sent. ๐ฆ
If M2PA receives a User Data message with an FSN that is out of order, M2PA SHALL discard the message. Out of order is not it ๐ โโ๏ธ
Note: In all calculations involving FSN and BSN, the programmer should be aware that the value wraps around to 0 after reaching its maximum value. The wraparound is literally the plot twist of this whole section ๐
When there is a message to acknowledge, M2PA MUST acknowledge the message with the next User Data message sent. ๐ If there is no User Data message available to be sent when there is a message to acknowledge, M2PA SHOULD generate and send a User Data message with no data payload, without delay. (In other words, in the case where MTP2 would acknowledge a message with a FISU, M2PA SHOULD acknowledge the message with an empty User Data message.) The FSN for this empty User Data message is not incremented. It MUST contain the same FSN as the most recently sent User Data message that contains data. Delaying acknowledgements can result in poor SS7 performance, so don't be that person ๐ญ
If M2PA receives an empty User Data message, it SHALL NOT send an acknowledgement of that message. We don't ack the ack, periodt ๐
Note that there is no reason to place Link Status messages or empty User Data messages in the M2PA retransmit buffer, since these messages are not retrieved for changeover and timer T7 does not apply to them. ๐ง
Note that since SCTP provides reliable delivery and ordered delivery within the stream, M2PA does not perform retransmissions. Nevertheless, M2PA SHALL retain transmitted User Data messages in a retransmit queue until they are acknowledged. These messages are needed in case MTP3 performs data retrieval as part of a changeover procedure. SCTP has our back, but we still keep receipts ๐งพ๐
Because propagation delays in IP networks are more variable than in traditional SS7 networks, a single T7 timer (excessive delay of acknowledgement), as in MTP2, is inadequate. ๐ If any message is unacknowledged after a period equal to the T7 value, the T7 timer SHALL expire. Time's up, no cap โฐ๐ฅ
4.2.2. MTP3 Signaling Link Congestion ๐ฆ
M2PA SHALL detect transmit congestion in its buffers according to the requirements for signaling link transmit congestion in MTP3, e.g., Q.704 [Q.704], Section 3.8. Congestion detection is giving very organised energy ๐โจ
4.2.3. Changeover ๐
Okay this is the big one, so get comfy ๐๏ธ. The objective of the changeover is to make sure that signaling traffic carried by the unavailable signaling link gets diverted to the alternative signaling link(s) as quickly as possible, while avoiding message loss, duplication, or mis-sequencing. For this purpose, the changeover procedure includes data retrieval, which is performed before opening the alternative signaling links to the diverted traffic. Data retrieval consists of these steps:
(1) buffer updating, i.e., identifying all those User Data messages in the retransmission buffer of the unavailable signaling link which have not been received by the far end M2PA, as well as untransmitted messages, and
(2) transferring those messages to the transmission buffers of the alternate links.
Note that only User Data messages containing data are retrieved and transmitted over the alternate links. Link Status messages and empty User Data messages SHALL NOT be retrieved and transmitted over the alternate links. Only the real data gets to move, bestie ๐
M2PA's Sequence Numbers are 24 bits long. MTP2's Forward and Backward Sequence Numbers are only seven bits long. Hence, it is necessary for MTP3 to accommodate the larger sequence numbers. ๐ง This is done through the use of the Extended Changeover Order (XCO) and Extended Changeover Acknowledgement (XCA) messages instead of the Changeover Order (COO) and Changeover Acknowledgement (COA) messages. The XCO and XCA messages are specified in [Q.2210] Section 9.8.1 and T1.111.4 [T1.111], Section 15.4. Only the XCO and XCA messages from [Q.2210] or [T1.111] are required. The BSN is placed in the XCO/XCA message as explained in [Q.2210] and [T1.111]. Upgrade energy, literally ๐
Also, the following MTP3/MTP2 primitives MUST use the larger sequence numbers:
- BSNT Confirmation
- Retrieval Request and FSNC
If M2PA receives a Retrieval Request and FSNC request from MTP3, M2PA SHALL retrieve from its buffers and deliver to MTP3 in order:
(a) any transmitted User Data messages beginning with the first unacknowledged message with FSN greater than FSNC.
(b) any untransmitted User Data messages.
For emergency changeover, MTP3 retrieves only the unsent messages for transmission on the alternate link(s). If M2PA receives a Retrieval Request and FSNC request with no FSNC value, or with an invalid FSNC, then M2PA SHALL retrieve from its buffers and deliver to MTP3 in order:
(a) any untransmitted User Data messages.
The Japanese TTC version of MTP defined in [JT-Q703] and [JT-Q704] has a Retrieval Request (as well as Retrieval Request and FSNC). The Retrieval allows MTP3 to retrieve both unsent and unacknowledged messages for transmission on the alternate link(s). In this version of MTP, if M2PA receives a Retrieval Request, then M2PA SHALL retrieve from its buffers and deliver to MTP3 in order:
(a) any transmitted but unacknowledged User Data messages.
(b) any untransmitted User Data messages.
4.2.3.1. Multiple User Data Streams and Changeover ๐
The changeover procedure makes it problematic for M2PA to have multiple User Data streams in one direction for a link. Buffer updating would have to be done separately for each User Data stream to avoid duplication or loss of messages. But MTP3 provides for only one XCO/XCA message for sending the last-received sequence number. Not ideal, not it ๐ฉ
Even with sequence numbering of User Data messages at the M2PA layer, it is necessary to perform buffer updating on each stream. Since the M2PA messages would be delivered over multiple streams, there could be a gap in the M2PA sequence numbers at the receiving end when the changeover procedure begins. If only the M2PA sequence number is used in the XCO/XCA message, there would be a possibility of losing the messages in the gap, or duplicating messages after the gap. ๐
M2PA links with multiple User Data streams would be possible if a multiple-BSNT XCO/XCA message is defined in MTP3, or if MTP3 allows multiple XCO/XCA messages (one for each User Data stream) to be sent during a changeover. This is beyond the scope of this document. ๐ฎ
4.3. SCTP Considerations ๐ก๏ธ
Some M2PA procedures may be affected by the use of SCTP as a transport layer. These considerations are discussed in this section. SCTP is the transport diva here ๐
4.3.1. SCTP Slow Start ๐ข
SCTP contains a slow start algorithm to control the amount of data being injected into the network. The algorithm allows SCTP to probe the network to determine the available capacity. The algorithm is invoked in these cases: when transmission begins on an association, after a sufficiently long idle period, or after repairing loss detected by the SCTP retransmission timer.
It is possible that transmission of M2PA messages MAY be delayed by SCTP slow start under certain conditions, including the following:
(a) Link Alignment. Link alignment takes place after an association is established. SCTP invokes the slow start algorithm since transmission is beginning on the association.
(b) Changeover. Messages are retrieved from one link (association) and transferred to another for transmission. If the second link had previously been idle, or is in the process of link alignment, SCTP may invoke the slow start algorithm.
(c) Path failure (multi-homing). If SCTP switches from a failed path to a new path, and the new path had previously been idle, SCTP may invoke the slow start algorithm.
(d) Reduced traffic volume. Any time that M2PA sends a low volume of traffic on a link and then the volume increases, SCTP may invoke the slow start algorithm.
Programmers should be aware of this condition and how it may affect M2PA performance. In some cases, it may be possible to avoid the negative effects of slow start. For example, the Link Status Proving messages sent during the proving period may be used to complete slow start before the link is placed in service. Warm up the engine before the main event ๐๏ธ๐จ
5. Examples of M2PA Procedures ๐
In general, messages passed between MTP3 and M2PA are the same as those passed between MTP3 and MTP2. M2PA interprets messages from MTP3 and sends the appropriate message to SCTP. Likewise, messages from SCTP are used to generate a meaningful message to MTP3. Same messages, new outfit ๐โจ
Note that throughout this section, the primitives between MTP3 and M2PA are named using the MTP terminology [Q.700] [Q.701] [Q.702] [Q.703] [Q.704] [Q.705]. Communications between M2PA and SCTP are named using SCTP terminology. Two dictionaries, one vibe ๐๐ซถ
5.1. Link Initialization (Alignment) ๐ฆ
okay so this is the message flow for bringing an SS7 link into service ๐ Figures 11 and 12 show it. Both ends of the link do alignment, but to keep the diagram from getting messy, it's only drawn for one end. Some messages from the remote end are left out too. We're also assuming SCTP has already been initialized โจ
MTP3 M2PA SCTP SCTP M2PA MTP3
---- ---- ---- ---- ---- ----
. . . . . .
. Associate . . . .
. ------------> . . .
. . . . . .
. . (SCTP Association . .
. . procedure) . .
. . . . . .
. Communication Up Communication Up .
. <------------ ------------> .
. . . . . .
. Link Status Out of Service . .
. ------------------------------------> .
. . . . . .
Emergency OR . . . .
Emergency Ceases . . . .
------------> . . . .
. . . . . .
Start . . . . .
------------> . . . .
. . . . . .
. . . . . .
. Link Status Alignment . . .
. ------------------------------------> .
. . . . . .
. Start timer T2 . . .
. . . . . .
. . . Link Status Alignment .
. <------------------------------------ .
. . . . . .
. Stop timer T2 . . .
. . . . . .
Proving period begins.
Figure 11. Example: Link Initialization - Alignment
MTP3 M2PA SCTP SCTP M2PA MTP3
---- ---- ---- ---- ---- ----
. . . . . .
. Start timer T3 . . .
. Link Status Proving . . .
. ------------------------------------> .
. . . . . .
. . . Link Status Proving .
. <------------------------------------ .
. . . . . .
. Stop timer T3 . . .
. . . . . .
. Start timer T4 . . .
. Link Status Proving . . .
. ------------------------------------> .
. ------------------------------------> .
. ------------------------------------> .
. ------------------------------------> .
. ------------------------------------> .
. ------------------------------------> .
. . . . . .
. Timer T4 expires . . .
. . . . . .
Send Link Status Ready (one or more) and wait for the remote end
to complete its proving period.
. . . . . .
. Start timer T1 . . .
. . . . . .
. Link Status Ready . . .
. ------------------------------------> .
. . . . . .
. . . . . .
. . . Link Status Ready .
. <------------------------------------ .
. . . . . .
. Stop timer T1 . . .
. . . . . .
In Service . . In Service
<------------ . . ------------>
. . . . . .
MTP3 MAY begin sending data messages.
Figure 12. Example: Link Initialization - Proving
5.2. Message Transmission and Reception ๐
messages get sent using the Data Request primitive, going from MTP3 down to M2PA โจ Figure 13 is the case where the Link is In Service. The message goes from MTP3 at the source all the way to MTP3 at the destination ๐
MTP3 M2PA SCTP SCTP M2PA MTP3
---- ---- ---- ---- ---- ----
. . . . . .
Message for . . . .
transmission . . . .
------------> . . . .
. . . . . .
. Send . . . .
. (Data Message) . . .
. ------------> . . .
. . . . . .
. . (SCTP sends message) . .
. . . . . .
. . . Receive .
. . . ------------> .
. . . . . .
. . . . Received message
. . . . ------------>
. . . . . .
Figure 13. Example: Link Initialization - In Service
5.3. Link Status Indication ๐ง
okay this one's a Link Status Indication example, shown in Figure 14 ๐ธ If SCTP sends a Communication Lost primitive to M2PA, M2PA tells MTP3 that the link is out of service. MTP3 then responds in its usual way ๐
MTP3 M2PA SCTP SCTP M2PA MTP3
---- ---- ---- ---- ---- ----
. . . . . .
. Communication Lost . . .
. <------------ . . .
. . . . . .
Out of Service . . . .
<------------ . . . .
. . . . . .
Figure 14. Example: Link Status Indication
5.4. Link Status Message (Processor Outage) ๐ซถ
okay bestie, picture this: a local processor goes down ๐ญ and M2PA has to handle it. Figure 15 shows exactly how that goes. M2PA sends a Link Status message to its peer, and the peer M2PA tells MTP3 about the outage. Then MTP3 can follow the processor outage procedures as in [Q.703] ๐ .
MTP3 M2PA SCTP SCTP M2PA MTP3
---- ---- ---- ---- ---- ----
. . . . . .
. M2PA detects . . . .
. Local Processor . . . .
. Outage . . . .
. . . . . .
. Link Status . . . .
. Processor Outage . . .
. ------------------------------------> .
. . . . . .
. . . . Remote Processor
. . . . Outage .
. . . . ------------>
. . . . . .
. Link Status . . .
. Processor . . .
. Recovered . . .
------------------------------------> .
. . . . . .
. . . . Remote Processor
. . . . Outage Ceases
. . . . ------------>
. . . . . .
. . . Link Status Ready .
. <------------------------------------ .
. . . . . .
. Link Status Ready . . .
. ------------------------------------> .
. . . . . .
Message for . . . .
transmission . . . .
------------> . . . .
. . . . . .
. User Data . . .
. ------------------------------------> .
. . . . . .
Figure 15. Example: Link Status Message - Processor Outage โจ
Figure 16 zooms in on a processor outage with way more detail ๐. Every M2PA message in this example goes out on the Data stream (stream 1) ๐.
A B
---------------------------- ----------------------------
MTP3 M2PA SCTP SCTP M2PA MTP3
---- ---- ---- ---- ---- ----
. . . . . .
6 Messages for . . . .
transmission . . . .
------------> . . 6 Messages for
. . . . transmission
. . . . <------------
. User Data FSN=1 . . .
. ------------------------------------> .
. User Data FSN=2 . . .
. ------------------------------------> .
. User Data FSN=3 . . .
. ------------------------------------> .
. . . User Data FSN=11 .
. <------------------------------------ .
. . . User Data FSN=12 .
. <------------------------------------ .
. . . User Data FSN=13 .
. <------------------------------------ .
Side A detects LPO ๐จ.
. . . . . .
. . . User Data FSN=14 BSN=3 .
. <------------------------------------ .
. . . User Data FSN=15 BSN=3 .
. <------------------------------------ .
. . . User Data FSN=16 BSN=3 .
. <------------------------------------ .
. LS PO FSN=3 BSN=11 . . .
. ------------------------------------> .
. . . . Remote Processor
. . . . Outage .
. . . . ------------>
While in LPO, A must buffer messages 14-16 without acknowledging them ๐ซฃ. A may continue transmitting messages from MTP3, and acknowledging messages that were received before LPO ๐ฌ.
. . . . . .
. User Data FSN=4 BSN=13 . . .
. ------------------------------------> .
. User Data FSN=5 BSN=13 . . .
. ------------------------------------> .
. User Data FSN=6 BSN=13 . . .
. ------------------------------------> .
. . . . . .
While in RPO, B may continue acknowledging messages ๐ธ. Suppose that B receives message 4 and 5, but has not processed 6 yet ๐ง.
. . . . . .
. (empty) User Data FSN=16 BSN=4
. <------------------------------------ .
. (empty) User Data FSN=16 BSN=5
. <------------------------------------ .
LPO ends at A. A flushes 14-16 (the messages that were buffered without acknowledgement) ๐งน.
. . . . . .
. LS PR FSN=6 BSN=13 . . .
. ------------------------------------> .
. . . . Remote Processor
. . . . Outage Ceases
. . . . ------------>
. . . . . .
Suppose that B processed message 5, but never processed message 6 ๐. B flushes message 6 from its Receive Buffer. B notifies A of this using the Link Status Ready message setting BSN=5, the last message that was processed at B ๐.
. . . . . .
. . . . . .
. . . LS Ready FSN=13 BSN=5 .
. <------------------------------------ .
. . . . . .
B has completed synchronization of sequence numbers and has sent an LS Ready, so it is able to resume sending data at this point with the new sequence numbers (starting with FSN=14) ๐.
. . . . . .
. . . . . Message for
. . . . transmission
. . . . <------------
. . . User Data FSN=14 BSN=5 .
. <------------------------------------ .
. . . . . .
A can use the Link Status Ready information to resynchronize its sequence numbers to begin with FSN=6 in the next User Data message ๐.
. . . . . .
. LS Ready FSN=5 BSN=13 . . .
. ------------------------------------> .
. . . . . .
A has completed synchronization of sequence number and has both received and sent an LS Ready, so it is able to resume sending data at this point with the new sequence numbers and acknowledging data received after receiving LS Ready ๐.
. . . . . .
. . . . . .
. User Data FSN=5 BSN=14 (empty) . .
. ------------------------------------> .
. . . . . .
Message for . . . Message for
transmission . . transmission
------------> . . <------------
. User Data FSN=6 BSN=14 . . .
. ------------------------------------> .
. . . User Data FSN=15 BSN=5 .
. <------------------------------------ .
. . . . . .
. . (empty) User Data FSN=15 BSN=6 .
. <------------------------------------ .
. User Data FSN=6 BSN=15 (empty) . .
. ------------------------------------> .
. . . . . .
. . . . . .
. . . . . .
Figure 16. Example: Processor Outage and Recovery ๐ฆ
5.5. Level 2 Flow Control โจ
Okay so Figures 17 and 18 show the Level 2 Flow Control procedure, and it's giving drama ๐ In Figure 17, the congestion clears up before timer T6 runs out. In Figure 18, T6 expires and things get messy ๐ญ
MTP3 M2PA SCTP SCTP M2PA MTP3
---- ---- ---- ---- ---- ----
. . . . . .
. Implementation dependent . .
. determination of M2PA . .
. receive congestion onset . .
. . . . . .
. Link Status Busy . . .
. ------------------------------------> .
. . . . . .
. . . . Start .
. . . . Timer T6 .
. . . . . .
. Implementation dependent . .
. determination of M2PA . .
. receive congestion abatement . .
. . . . . .
. Link Status Busy Ended . . .
. ------------------------------------> .
. . . . . .
. . . . Stop .
. . . . Timer T6 .
. . . . . .
Figure 17. Example: Level 2 Flow Control - Congestion Ceases
MTP3 M2PA SCTP SCTP M2PA MTP3
---- ---- ---- ---- ---- ----
. . . . . .
. Implementation dependent . .
. determination of M2PA . .
. receive congestion onset . .
. . . . . .
. Link Status Busy . . .
. ------------------------------------> .
. . . . . .
. . . . Start .
. . . . Timer T6 .
. . . . : .
. . . . : .
. . . . Timer T6 .
. . . . Expires .
. . . . . .
. . Link Status Out of Service .
. <------------------------------------ .
. . . . . .
. . . . Out of Service
. . . . ------------>
. . . . . .
Figure 18. Example: Level 2 Flow Control - Timer T6 Expires
5.6. MTP3 Signaling Link Congestion ๐ธ
In Figure 19, M2PA tells MTP3 about congestion onset and abatement. That notification includes the congestion level, if there are levels of congestion defined. Iconic behaviour ๐
MTP3 M2PA SCTP SCTP M2PA MTP3
---- ---- ---- ---- ---- ----
. . . . . .
. Implementation dependent . .
. determination of M2PA . . .
. transmit congestion . . .
. onset (level) . . .
. . . . . .
Congestion Indication . . . .
(level) . . . . .
<------------ . . . .
. . . . . .
. Implementation dependent . .
. determination of M2PA . . .
. transmit congestion . . .
. abatement (level) . . .
. . . . . .
Congestion Indication . . . .
(level) . . . . .
<------------ . . . .
. . . . . .
Figure 19. Example: MTP3 Signaling Link Congestion
5.7. Link Deactivation ๐ฆ
Figure 20 shows an example of link deactivation. MTP3 can ask for a link to be taken out of service. Simple, but iykyk ๐ซถ
MTP3 M2PA SCTP SCTP M2PA MTP3
---- ---- ---- ---- ---- ----
. . . . . .
Stop . . . . .
------------> . . . .
. . . . . .
. Link Status Out of Service . .
. ------------------------------------> .
. . . . . .
Out of Service . . . .
<------------ . . . .
. . . . . .
Figure 20. Example: Link Deactivation
5.8. Link Changeover ๐ง
In Figure 21, MTP3 does a changeover because the link went out of service. MTP3 picks a different link to resend the unacknowledged and unsent messages. Main character energy, literally ๐
MTP3 M2PA SCTP SCTP M2PA MTP3
---- ---- ---- ---- ---- ----
. . . . . .
. Communication Lost . . .
. <------------ . . .
. . . . . .
Out of Service . . . .
<------------ . . . .
. . . . . .
Retrieve BSNT . . . .
------------> . . . .
. . . . . .
BSNT Confirmation . . . .
<------------ . . . .
. . . . . .
XCO (BSNT) on another link . . .
------------------------------------------------------------>
. . . . . .
. . . . Retrieve BSNT
. . . . <------------
. . . . . .
. . . . BSNT Confirmation
. . . . ------------>
. . . . . .
. . . . . XCA (BSNT)
<------------------------------------------------------------
. . . . . .
Retrieval Request . . . .
and FSNC . . . . .
------------> . . . .
. . . . . .
Retrieved Message . . . .
<------------ . . . .
. : . . . . .
. : . . . . .
<------------ . . . .
. . . . . .
Retrieval Complete . . . .
<------------ . . . .
. . . . . .
Send messages on another link.
Figure 21. Example: Link Changeover
6. Security Considerations ๐
M2PA is designed to carry signaling messages for telephony services. So the security stakes are real, bestie ๐จ M2PA MUST involve the security needs of several parties:
- the end users of the services
- the network providers
- the applications involved
Additional requirements MAY come from local regulation.
These parties may have some overlapping security needs, but their needs may not be identical. Any security solution SHOULD fulfill all of the different parties' needs.
Please don't skip this part. Consult [RFC3788] for a discussion of security requirements and for guidance on the use of security protocols. Implementers of M2PA MUST follow the guidelines in [RFC3788]. ๐
7. IANA Considerations ๐
7.1. SCTP Payload Protocol Identifier ๐
The SCTP Registered User Port Number Assignment for M2PA is 3565. The TCP Registered User Port Number 3565 is also assigned to M2PA, in case a specification for M2PA over TCP is created.
The value IANA assigned for the Payload Protocol Identifier in the SCTP Payload Data chunk is:
M2PA 5
The SCTP Payload Protocol Identifier is included in each SCTP Data chunk, to indicate which protocol the SCTP is carrying. This Payload Protocol Identifier is not directly used by SCTP, but certain network entities may use it to identify the type of information being carried in a Data chunk.
The User Adaptation peer may use the Payload Protocol Identifier as a way of working out additional information about the data SCTP is handing it. ๐ง
7.2. M2PA Protocol Extensions ๐
This protocol may be extended through IANA in three ways:
- through definition of additional message classes,
- through definition of additional message types, and
- through definition of additional message parameters.
Defining new message classes, types, and parameters is an integral part of SIGTRAN adaptation layers, so these extensions are assigned by IANA through an IETF Consensus action as defined in [RFC2434]. ๐
The proposed extension must in no way adversely affect the general working of the protocol. No notes, no cap ๐ โโ๏ธ
The defined values for the message classes, types, and parameters are listed in the Signaling User Adaptation Layer registry (sigtran-adapt).
7.2.1. IETF Defined Message Classes ๐
okay so if you're making a brand new message class, the docs MUST have two things, no exceptions bestie:
- (a) A long and short name for the message class.
- (b) A detailed description of the purpose of the message class.
7.2.2 IETF Defined Message Types ๐
the documentation for a message type MUST contain the following info, periodt:
- (a) A long and short name for the new message type.
- (b) A detailed description of the structure of the message.
- (c) A detailed definition and description of the intended use of each field within the message.
- (d) A detailed procedural description of the use of the new message type within the operation of the protocol.
- (e) A detailed description of error conditions when receiving this message type.
ok and if an implementation gets a message type it doesn't support, it MUST discard the message. ๐๏ธ no keeping it, no cap.
7.2.3. IETF-defined Parameter Extension โจ
the docs for a message parameter MUST contain the following info ๐ฆ
- (a) Name of the parameter type.
- (b) Detailed description of the structure of the parameter field.
- (c) Detailed definition of each component of the parameter value.
- (d) Detailed description of the intended use of this parameter type, and an indication of whether, and under what circumstances, multiple instances of this parameter type may be found within the same message type.
7.2.4. Defined Values ๐ง
this section lists the values defined in this document that should be included in the Signaling User Adaptation Layer registry (sigtran-adapt). the registry is the main character here ๐
the following values for Message Class are defined in this document:
Value
(decimal) Message Class
--------- -------------
11 M2PA Messages
the following values for Message Type are defined in this document:
Value
(decimal) Message Type
--------- -------------
1 User Data
2 Link Status
8. Acknowledgements ๐ซถ
the authors would like to thank the following for their valuable comments and suggestions. they're the real MVPs ๐: Brian Tatum, Wayne Davis, Cliff Thomas, Jeff Copley, Monique Bernard, Malleswar Kalla, Ian Rytina, Greg Sidebottom, Al Varney, Jeff Craig, and Andrew Booth.
9. References ๐
9.1. Normative References
[JT-Q703] TTC, "Message Transfer Part Signalling Link," TTC Standard JT-Q703, Telecommunication Technology Committee (TTC), version 3 (April 27, 1994).
[JT-Q704] TTC, "Message Transfer Part Signalling Network Functions," TTC Standard JT-Q704, Telecommunication Technology Committee (TTC), version 4 (May 30, 2002).
[Q.703] ITU, "Signalling System No. 7 - Signalling Link," ITU-T Recommendation Q.703, ITU-T Telecommunication Standardization Sector of ITU (July 1996).
[Q.704] ITU, "Message Transfer Part - Signalling Network Functions and Messages," ITU-T Recommendation Q.704, ITU-T Telecommunication Standardization Sector of ITU (July 1996).
[Q.2140] ITU, "B-ISDN ATM Adaptation Layer - Service Specific Coordination Function for Signalling at the Network Node Interface (SSCF at NNI)," ITU-T Recommendation Q.2140, ITU-T Telecommunication Standardization Sector of ITU (February 1995).
[Q.2210] ITU, "Message Transfer Part Level 3 Functions and Messages Using the Services of ITU-T Recommendation Q.2140," ITU-T Recommendation Q.2210, ITU-T Telecommunication Standardization Sector of ITU (July 1996).
[RFC791] Postel, J., "Internet Protocol", STD 5, RFC 791, September 1981.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.
[RFC2960] Stewart, R., Xie, Q., Morneault, K., Sharp, C., Schwarzbauer, H., Taylor, T., Rytina, I., Kalla, M., Zhang, L., and V. Paxson, "Stream Control Transmission Protocol", RFC 2960, October 2000.
[RFC3309] Stone, J., Stewart, R., and D. Otis, "Stream Control Transmission Protocol (SCTP) Checksum Change", RFC 3309, September 2002.
[RFC3788] Loughney, J., Tuexen, M., and J. Pastor-Balbas, "Security Considerations for Signaling Transport (SIGTRAN) Protocols", RFC 3788, June 2004.
[T1.111] ANSI, "American National Standard for Telecommunications - Signaling System Number 7 (SS7) - Message Transfer Part (MTP)," ANSI T1.111-2001, American National Standards Institute (February 2001).
9.2. Informative References
[M2UA] K. Morneault, et. al., "Signaling System 7 (SS7) Message Transfer Part 2 (MTP2) - User Adaptation Layer," RFC 3331, Internet Engineering Task Force - Signalling Transport Working Group (September, 2002).
[Q.700] ITU, "Introduction to CCITT Signalling System No. 7," ITU-T Recommendation Q.700, ITU-T Telecommunication Standardization Sector of ITU (March 1993).
[Q.701] ITU, "Functional Description of the Message Transfer Part (MTP) of Signalling System No. 7," ITU-T Recommendation Q.701, ITU-T Telecommunication Standardization Sector of ITU (March 1993).
[Q.702] ITU, "Signalling Data Link," ITU-T Recommendation Q.702, ITU-T Telecommunication Standardization Sector of ITU (November 1988).
[Q.705] ITU, "Signalling System No. 7 - Signalling Network Structure," ITU-T Recommendation Q.705, ITU-T Telecommunication Standardization Sector of ITU (March 1993).
[RFC2719] Ong, L., Rytina, I., Garcia, M., Schwarzbauer, H., Coene, L., Lin, H., Juhasz, I., Holdrege, M., and C. Sharp, "Framework Architecture for Signaling Transport", RFC 2719, October 1999.
Authors' Addresses ๐ธ
the people behind the doc, with their contact info ๐
Tom George
Plano, TX
USA
Phone: +1-972-985-4594
EMail: tgeorge_tx@verizon.net
Brian Bidulock
OpenSS7 Corporation
1469 Jeffreys Crescent
Edmonton, AB T6L 6T1
Canada
Phone: +1-780-490-1141
EMail: bidulock@openss7.org
Ram Dantu, Ph.D.
Assistant Professor
Department of Computer Science
University of North Texas
Denton, TX 76203
USA
Phone: +1-940-565-2822
EMail: rdantu@unt.edu
Hanns Juergen Schwarzbauer
SIEMENS AG
Hofmannstr. 51
81359 Munich
Germany
Phone: +49-89-722-24236
EMail: HannsJuergen.Schwarzbauer@Siemens.com
Ken Morneault
Cisco Systems Inc.
13615 Dulles Technology Drive
Herndon, VA 20171
USA
Phone: +1-703-484-3323
EMail: kmorneau@cisco.com
Full Copyright Statement ๐
Copyright (C) The Internet Society (2005).
This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.
This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property ๐ฅ
The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.
Acknowledgement ๐
Funding for the RFC Editor function is currently provided by the Internet Society. ๐ซถ
๐ฆ where this page comes from
- ietf: rfc4165 2005-09
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms