idnits 2.17.1 draft-ietf-sigtran-m2pa-13.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** It looks like you're using RFC 3978 boilerplate. You should update this to the boilerplate described in the IETF Trust License Policy document (see https://trustee.ietf.org/license-info), which is required now. -- Found old boilerplate from RFC 3667, Section 5.1 on line 51. -- Found old boilerplate from RFC 3978, Section 5.5 on line 2344. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 2355. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 2362. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 2368. ** Found boilerplate matching RFC 3978, Section 5.4, paragraph 1 (on line 2335), which is fine, but *also* found old RFC 2026, Section 10.4C, paragraph 1 text on line 44. ** The document claims conformance with section 10 of RFC 2026, but uses some RFC 3978/3979 boilerplate. As RFC 3978/3979 replaces section 10 of RFC 2026, you should not claim conformance with it if you have changed to using RFC 3978/3979 boilerplate. ** The document seems to lack an RFC 3978 Section 5.1 IPR Disclosure Acknowledgement -- however, there's a paragraph with a matching beginning. Boilerplate error? ** This document has an original RFC 3978 Section 5.4 Copyright Line, instead of the newer IETF Trust Copyright according to RFC 4748. ** This document has an original RFC 3978 Section 5.5 Disclaimer, instead of the newer disclaimer which includes the IETF Trust according to RFC 4748. ** The document uses RFC 3667 boilerplate or RFC 3978-like boilerplate instead of verbatim RFC 3978 boilerplate. After 6 May 2005, submission of drafts without verbatim RFC 3978 boilerplate is not accepted. The following non-3978 patterns matched text found in the document. That text should be removed or replaced: By submitting this Internet-Draft, I certify that any applicable patent or other IPR claims of which I am aware have been disclosed, or will be disclosed, and any of which I become aware will be disclosed, in accordance with RFC 3668. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity -- however, there's a paragraph with a matching beginning. Boilerplate error? == No 'Intended status' indicated for this document; assuming Proposed Standard == It seems as if not all pages are separated by form feeds - found 0 form feeds but 58 pages Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (February 18, 2005) is 7008 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'JT-Q704' is defined on line 2180, but no explicit reference was found in the text -- Possible downref: Non-RFC (?) normative reference: ref. 'JT-Q703' -- Possible downref: Non-RFC (?) normative reference: ref. 'JT-Q704' ** Obsolete normative reference: RFC 2434 (Obsoleted by RFC 5226) ** Obsolete normative reference: RFC 2960 (Obsoleted by RFC 4960) ** Obsolete normative reference: RFC 3309 (Obsoleted by RFC 4960) Summary: 12 errors (**), 0 flaws (~~), 4 warnings (==), 9 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Network Working Group Tom George 2 INTERNET-DRAFT Brian Bidulock 3 OpenSS7 4 Ram Dantu 5 University of North Texas 6 Hanns Juergen Schwarzbauer 7 Siemens 8 Ken Morneault 9 Cisco Systems 11 Expires August 2005 February 18, 2005 13 Signaling System 7 (SS7) Message Transfer Part 2 (MTP2) - User 14 Peer-to-Peer Adaptation Layer (M2PA) 15 17 Status of This Memo 19 This document is an Internet-Draft and is in full conformance with all 20 provisions of Section 10 of RFC 2026. Internet-Drafts are working 21 documents of the Internet Engineering Task Force (IETF), its areas, 22 and its working groups. Note that other groups may also distribute 23 working documents as Internet-Drafts. 25 Internet-Drafts are draft documents valid for a maximum of six months 26 and may be updated, replaced, or obsoleted by other documents at any 27 time. It is inappropriate to use Internet-Drafts as reference 28 material or to cite them other than as 'work in progress.' 30 The list of current Internet-Drafts can be accessed at 31 http://www.ietf.org/ietf/1id-abstracts.txt 33 The list of Internet-Draft Shadow Directories can be accessed at 34 http://www.ietf.org/shadow.html. 36 To learn the current status of any Internet-Draft, please check the 37 '1id-abstracts.txt' listing contained in the Internet-Drafts Shadow 38 Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), 39 munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast), or 40 ftp.isi.edu (US West Coast). 42 Copyright Notice 44 Copyright (C) The Internet Society (2005). All Rights Reserved. 46 Intellectual Property Notice 48 By submitting this Internet-Draft, I certify that any applicable 49 patent or other IPR claims of which I am aware have been disclosed, or 50 will be disclosed, and any of which I become aware will be disclosed, 51 in accordance with RFC 3668. 53 Abstract 55 This Internet Draft defines a protocol supporting the transport of 56 Signaling System Number 7 (SS7) Message Transfer Part (MTP) Level 3 57 signaling messages over Internet Protocol (IP) using the services of 58 the Stream Control Transmission Protocol (SCTP). This protocol would 59 be used between SS7 Signaling Points using the MTP Level 3 60 protocol. The SS7 Signaling Points may also use standard SS7 links 61 using the SS7 MTP Level 2 to provide transport of MTP Level 3 62 signaling messages. The protocol operates in a manner similar to MTP 63 Level 2 so as to provide peer-to-peer communication between SS7 64 endpoints. 66 TABLE OF CONTENTS 68 1. Introduction............................................. 4 69 1.1 Scope................................................. 4 70 1.2 Terminology........................................... 4 71 1.3 Abbreviations......................................... 5 72 1.4 Conventions........................................... 6 73 1.5 Signaling Transport Architecture...................... 6 74 1.6 Services Provided by M2PA............................. 9 75 1.7 Functions Provided by M2PA............................10 76 1.8 Definition of the M2PA Boundaries.....................11 77 1.9 Differences Between M2PA and M2UA.....................11 78 2. Protocol Elements........................................14 79 2.1 Common Message Header.................................14 80 2.2 M2PA Header...........................................15 81 2.3 M2PA Messages.........................................16 82 3. State Control............................................20 83 3.1 SCTP Association State Control........................20 84 3.2 M2PA Link State Control...............................21 85 4. Procedures...............................................22 86 4.1 Procedures to Support MTP2 Features...................22 87 4.2 Procedures to Support the MTP3/MTP2 Interface.........33 88 4.3 SCTP Considerations...................................37 89 5. Examples of M2PA Procedures..............................38 90 5.1 Link Initialization (Alignment).......................38 91 5.2 Message Transmission and Reception....................41 92 5.3 Link Status Indication................................41 93 5.4 Link Status Message (Processor Outage)................42 94 5.5 Level 2 Flow Control..................................46 95 5.6 MTP3 Signaling Link Congestion........................48 96 5.7 Link Deactivation.....................................48 97 5.8 Link Changeover.......................................49 98 6. Security.................................................50 99 7. IANA Considerations......................................50 100 7.1 SCTP Payload Protocol Identifier......................50 101 7.2 M2PA Protocol Extensions..............................51 102 8. Acknowledgements.........................................54 103 9. References...............................................54 104 9.1 Normative..............................................54 105 9.2 Informative............................................56 106 10. Author's Addresses.......................................57 107 11. Full Copyright Statement.................................58 108 1. Introduction 110 1.1 Scope 112 There is a need for Switched Circuit Network (SCN) signaling protocol 113 delivery over an IP network. This includes message transfer between 114 the following: 116 - a Signaling Gateway (SG) and a Media Gateway Controller (MGC) 117 [RFC2719] 119 - a SG and an IP Signaling Point (IPSP) 121 - an IPSP and an IPSP 123 This could allow for convergence of some signaling and data 124 networks. SCN signaling nodes would have access to databases and other 125 devices in the IP network domain that do not use SS7 signaling 126 links. Likewise, IP telephony applications would have access to SS7 127 services. There may also be operational cost and performance 128 advantages when traditional signaling links are replaced by IP network 129 "connections". 131 The delivery mechanism described in this document allows for full MTP3 132 message handling and network management capabilities between any two 133 SS7 nodes, communicating over an IP network. An SS7 node equipped with 134 an IP network connection is called an IP Signaling Point (IPSP). The 135 IPSPs function as traditional SS7 nodes using the IP network instead 136 of SS7 links. 138 The delivery mechanism should: 140 - Support seamless operation of MTP3 protocol peers over an IP 141 network connection. 143 - Support the MTP Level 2 / MTP Level 3 interface boundary. 145 - Support management of SCTP transport associations and traffic 146 instead of MTP2 Links. 148 - Support asynchronous reporting of status changes to management. 150 1.2 Terminology 152 MTP - The Message Transfer Part of the SS7 protocol [Q.700] [Q.701] 153 [Q.702] [Q.703] [Q.704] [Q.705] [T1.111]. 155 MTP2 - MTP Level 2, the MTP signaling link layer. 157 MTP3 - MTP Level 3, the MTP signaling network layer. 159 MTP2-User - A protocol that normally uses the services of MTP 160 Level 2. The only MTP2 user is MTP3. The MTP2 user is equivalent to 161 the M2PA user. 163 Signaling End Point (SEP) - An SS7 Signaling Point that originates 164 or terminates signaling messages. One example is a central office 165 switch. [RFC2719] 167 IP Signaling Point (IPSP) - An SS7 Signaling Point with an IP 168 network connection used for SS7 over IP. 170 Signaling Gateway (SG) - A signaling agent that receives/sends SCN 171 native signaling at the edge of the IP network [RFC2719]. In this 172 context, an SG is an SS7 Signaling Point that has both an IP network 173 connection used for SS7 over IP, and a traditional (non-IP) link to an 174 SS7 network. 176 Signal Transfer Point (STP) - A Signal Transfer Point as defined by MTP 177 standards, e.g., [Q.700]. 179 Signaling Point (STP) - A Signaling Point as defined by MTP standards, 180 e.g., [Q.700]. 182 Association - An association refers to an SCTP association 183 [RFC2960]. The association provides the transport for MTP3 protocol 184 data units and M2PA adaptation layer peer messages. 186 Network Byte Order - Most significant byte first, also known as "Big 187 Endian". See [RFC791], Appendix B "Data Transmission Order". 189 Stream - A stream refers to an SCTP stream [RFC2960]. 191 1.3 Abbreviations 193 BSNT - Backward Sequence Number to be Transmitted 195 FSNC - Forward Sequence Number of last message accepted by 196 remote level 2 198 LI - Length Indicator 200 MSU - Message Signal Unit 202 SCCP - Signaling Connection Control Part 204 SCN - Switched Circuit Network 206 SCTP - Stream Control Transmission Protocol 208 SIF - Signaling Information Field 210 SIO - Service Information Octet 211 SLC - Signaling Link Code 213 SS7 - Signaling System Number 7 215 SSN - Stream Sequence Number 217 STP - Signal Transfer Point 219 1.4 Conventions 221 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL 222 NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and 223 "OPTIONAL" in this document are to be interpreted as described in 224 [RFC2119]. 226 1.5 Signaling Transport Architecture 228 The architecture that has been defined [RFC2719] for Switched Circuit 229 Network (SCN) signaling transport over IP uses multiple components, 230 including an IP transport protocol, the Stream Control Transmission 231 Protocol (SCTP), and an adaptation module to support the services 232 expected by a particular SCN signaling protocol from its underlying 233 protocol layer. 235 Within this framework architecture, this document defines an SCN 236 adaptation module that is suitable for the transport of SS7 MTP3 237 messages. The adaptation layer, known as the MTP2 User Peer-to-peer 238 Adaptation Layer (M2PA), provides MTP3 with an interface and services 239 similar to MTP2. In effect, MTP2 and lower layers of the traditional 240 SS7 protocol stack are replaced by an IP equivalent. 242 Figure 1 shows the seamless interworking at the MTP3 layer. MTP3 is 243 adapted to the SCTP layer using the MTP2 User Peer-to-peer Adaptation 244 Layer (M2PA). All the primitives between MTP3 and MTP2 are supported 245 by M2PA. The SCTP association acts as one SS7 link between the IPSPs. 246 An IPSP may have the Signaling Connection Control Part (SCCP) and 247 other SS7 layers above MTP3. 249 ******** IP ******** 250 * IPSP *--------* IPSP * 251 ******** ******** 253 +------+ +------+ 254 | TCAP | | TCAP | 255 +------+ +------+ 256 | SCCP | | SCCP | 257 +------+ +------+ 258 | MTP3 | | MTP3 | 259 +------+ +------+ 260 | M2PA | | M2PA | 261 +------+ +------+ 262 | SCTP | | SCTP | 263 +------+ +------+ 264 | IP | | IP | 265 +------+ +------+ 267 IP - Internet Protocol 268 IPSP - IP Signaling Point 269 SCTP - Stream Control Transmission Protocol [RFC2960] 271 Figure 1. M2PA Symmetrical Peer-to-Peer Architecture 273 Figure 2 shows an example of M2PA used in a Signaling Gateway 274 (SG). The SG is an IPSP equipped with both traditional SS7 and IP 275 network connections. 277 The SEP and the SG communicate through a traditional SS7 link, which 278 follows a protocol such as [Q.702]. The SG and the IPSP communicate 279 through an IP link using the M2PA protocol. Messages sent from the SEP 280 to the IPSP (and vice versa) are routed by the SG. 282 Any of the nodes in the diagram could have SCCP or other SS7 layers 283 above MTP3. The Signaling Gateway acts as a Signal Transfer Point 284 (STP). Other STPs MAY be present in the SS7 path between the SEP and 285 the SG. 287 ******** SS7 *************** IP ******** 288 * SEP *--------* SG *--------* IPSP * 289 ******** *************** ******** 291 +------+ +------+ 292 | TCAP | | TCAP | 293 +------+ +------+ 294 | SCCP | | SCCP | 295 +------+ +-------------+ +------+ 296 | MTP3 | | MTP3 | | MTP3 | 297 +------+ +------+------+ +------+ 298 | MTP2 | | MTP2 | M2PA | | M2PA | 299 | | | +------+ +------+ 300 | | | | SCTP | | SCTP | 301 +------+ +------+------+ +------+ 302 | MTP1 | | MTP1 | IP | | IP | 303 +------+ +------+------+ +------+ 305 SEP - SS7 Signaling Endpoint 307 Figure 2. M2PA in IP Signaling Gateway 309 Figure 2 is only an example. Other configurations are possible. In 310 short, M2PA uses the SCTP association as an SS7 link. The M2PA/SCTP/IP 311 stack can be used in place of an MTP2/MTP1 stack. 313 1.5.1 Point Code Representation 315 MTP requires that each node with an MTP3 layer is identified by an SS7 316 point code. In particular, each IPSP MUST have its own SS7 point code. 318 1.6 Services Provided by M2PA 320 The SS7 MTP3/MTP2 (MTP2-User) interface is retained in the IPSP. The 321 M2PA protocol layer is required to provide the equivalent set of 322 services to its user as provided by MTP Level 2 to MTP Level 3. 324 These services are described in the following subsections. 326 1.6.1 Support for MTP Level 2 / MTP Level 3 interface boundary 328 This interface is the same as the MTP2/MTP3 interface described in the 329 applicable SS7 standards [Q.703] [Q.704] [T1.111] [Q.2140], with the 330 addition of support for larger sequence numbers in [T1.111] and 331 [Q.2210]. 333 M2PA receives the primitives sent from MTP3 to its lower layer. M2PA 334 processes these primitives or maps them to appropriate primitives at 335 the M2PA/SCTP interface. Likewise, M2PA sends primitives to MTP3 like 336 those used in the MTP3/MTP2 interface. 338 Because M2PA uses larger sequence numbers than MTP2, the MTP3 339 Changeover procedure MUST use the Extended Changeover Order and 340 Extended Changeover Acknowledgment messages described in [Q.2210] and 341 [T1.111]. 343 Also, the following MTP3/MTP2 primitives must use the larger sequence 344 numbers: 346 - BSNT Confirmation 348 - Retrieval Request and FSNC 350 1.6.2 Support for peer-to-peer communication 352 In SS7, MTP Level 2 sends three types of messages, known as signal 353 units: Message Signal Units (MSUs), Link Status Signal Units (LSSUs), 354 and Fill-In Signal Units (FISUs). 356 MSUs originate at a higher level than MTP2, and are destined for a 357 peer at another node. Likewise, M2PA passes these messages from MTP3 358 to SCTP as data for transport across a link. These are called User 359 Data messages in M2PA. 361 LSSUs allow peer MTP2 layers to exchange status information. Analogous 362 messages are needed for M2PA. The Link Status message serves this 363 purpose. 365 FISUs are transmitted continuously when no other signal units are 366 waiting to be sent. FISUs also carry acknowledgment of messages. Since 367 an IP network is a shared resource, it would be undesirable to have a 368 message type that is sent continuously as the FISUs are. Furthermore, 369 SCTP does not require its upper layer to continuously transmit 370 messages. Therefore, M2PA does not provide a protocol data unit like 371 the FISU. The M2PA User Data message is used to carry acknowledgment 372 of messages. If M2PA needs to acknowledge a message and it has no MTP3 373 message of its own to send, an empty User Data message can be sent. 375 1.7 Functions Provided by M2PA 377 1.7.1 MTP2 Functionality 379 M2PA provides MTP2 functionality that is not provided by SCTP, so that 380 together M2PA and SCTP provide functionality similar to that of 381 MTP2. 383 SCTP provides reliable, sequenced delivery of messages. 385 M2PA functionality includes: 387 - Data retrieval to support the MTP3 changeover procedure 389 - Reporting of link status changes to MTP3 391 - Processor outage procedure 393 - Link alignment procedure 395 1.7.2 Mapping of SS7 and IP Entities 397 The M2PA layer must maintain a map of each of its SS7 links to the 398 corresponding SCTP association. 400 1.7.3 SCTP Association Management 402 SCTP allows a user-specified number of streams to be opened during the 403 initialization. It is the responsibility of the M2PA layer to ensure 404 proper management of the streams allowed within each association. 406 M2PA uses two streams in each direction for each association. Stream 0 407 in each direction is designated for Link Status messages. Stream 1 is 408 designated for User Data messages, as well as Link Status messages 409 that must remain in sequence with the User Data messages. Separating 410 the Link Status and User Data messages onto separate streams allows 411 M2PA to prioritize the messages in a manner similar to MTP2. 413 Notifications received from SCTP are processed by M2PA or translated 414 into an appropriate notification to be sent to the upper layer MTP3. 416 1.7.4 Retention of MTP3 in the SS7 Network 418 M2PA allows MTP3 to perform all of its Message Handling and Network 419 Management functions with IPSPs as with other SS7 nodes. 421 1.8 Definition of the M2PA Boundaries 423 1.8.1 Definition of the M2PA / MTP Level 3 boundary 425 The upper layer primitives provided by M2PA are the same as those 426 provided by MTP2 to MTP3. These primitives are described in the 427 applicable SS7 standards [Q.703] [Q.704] [T1.111] [Q.2140]. 429 1.8.2 Definition of the Lower Layer Boundary between M2PA and SCTP 431 The upper layer primitives provided by SCTP are described in [RFC2960] 432 Section 10 "Interface with Upper Layer". 434 1.9 Differences Between M2PA and M2UA 436 The MTP2 User Adaptation Layer (M2UA) [M2UA] also adapts the MTP3 437 layer to the SCTP/IP stack. It does so through a backhauling 438 architecture [RFC2719]. This section is intended to clarify some of 439 the differences between the M2PA and M2UA approaches. 441 A possible M2PA architecture is shown in Figure 3. Here the IPSP's 442 MTP3 uses its underlying M2PA as a replacement for MTP2. Communication 443 between the two layers MTP3/M2PA is defined by the same primitives as 444 in SS7 MTP3/MTP2. M2PA performs functions similar to MTP2. 446 ******** SS7 *************** IP ******** 447 * SEP *--------* SG *--------* IPSP * 448 ******** *************** ******** 450 +------+ +-------------+ +------+ 451 | SCCP | | SCCP | | SCCP | 452 +------+ +-------------+ +------+ 453 | MTP3 | | MTP3 | | MTP3 | 454 +------+ +------+------+ +------+ 455 | MTP2 | | MTP2 | M2PA | | M2PA | 456 | | | +------+ +------+ 457 | | | | SCTP | | SCTP | 458 +------+ +------+------+ +------+ 459 | MTP1 | | MTP1 | IP | | IP | 460 +------+ +------+------+ +------+ 462 Figure 3. M2PA in IP Signaling Gateway 464 A comparable architecture for M2UA is shown in Figure 4. In M2UA, the 465 MGC's MTP3 uses the SG's MTP2 as its lower SS7 layer. Likewise, the 466 SG's MTP2 uses the MGC's MTP3 as its upper SS7 layer. In SS7, 467 communication between the MTP3 and MTP2 layers is defined by 468 primitives. In M2UA, the MTP3/MTP2 communication is defined as M2UA 469 messages and sent over the IP connection. 471 ******** SS7 *************** IP ******** 472 * SEP *--------* SG *--------* MGC * 473 ******** *************** ******** 475 +------+ +------+ 476 | SCCP | | SCCP | 477 +------+ +------+ 478 | MTP3 | (NIF) | MTP3 | 479 +------+ +------+------+ +------+ 480 | MTP2 | | MTP2 | M2UA | | M2UA | 481 | | | +------+ +------+ 482 | | | | SCTP | | SCTP | 483 +------+ +------+------+ +------+ 484 | MTP1 | | MTP1 | IP | | IP | 485 +------+ +------+------+ +------+ 487 NIF - Nodal Interworking Function 489 Figure 4. M2UA in IP Signaling Gateway 491 M2PA and M2UA are similar in that: 493 a. Both transport MTP3 data messages. 495 b. Both present an MTP2 upper interface to MTP3. 497 Differences between M2PA and M2UA include: 499 a. M2PA: IPSP processes MTP3/MTP2 primitives. 500 M2UA: MGC transports MTP3/MTP2 primitives between the SG's MTP2 501 and the MGC's MTP3 (via the NIF) for processing. 503 b. M2PA: SG-IPSP connection is an SS7 link. 504 M2UA: SG-MGC connection is not an SS7 link. It is an 505 extension of MTP to a remote entity. 507 c. M2PA: SG is an SS7 node with a point code. 508 M2UA: SG is not an SS7 node and has no point code. 510 d. M2PA: SG can have upper SS7 layers, e.g., SCCP. 511 M2UA: SG does not have upper SS7 layers since it has no MTP3. 513 e. M2PA: relies on MTP3 for management procedures. 514 M2UA: uses M2UA management procedures. 516 Potential users of M2PA and M2UA should be aware of these differences 517 when deciding how to use them for SS7 signaling transport over IP 518 networks. 520 2. Protocol Elements 522 This section describes the format of various messages used in this 523 protocol. 525 All fields in an M2PA message must be transmitted in the network byte 526 order, i.e., most significant byte first, unless otherwise stated. 528 2.1 Common Message Header 530 The protocol messages for M2PA require a message header structure 531 which contains a version, message class, message type, and message 532 length. The header structure is shown in Figure 5. 534 0 1 2 3 535 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 536 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 537 | Version | Spare | Message Class | Message Type | 538 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 539 | Message Length | 540 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 542 Figure 5. Common Message Header 544 2.1.1 Version 546 The version field contains the version of M2PA. The supported versions 547 are: 549 Value 550 (decimal) Version 551 --------- ------- 552 1 Release 1.0 of M2PA protocol 554 2.1.2 Spare 556 The Spare field SHOULD be set to all zeroes (0's) by the sender and 557 ignored by the receiver. The Spare field SHOULD NOT be used for 558 proprietary information. 560 2.1.3 Message Class 562 The following List contains the valid Message Classes: 564 Value 565 (decimal) Message Class 566 --------- ------------- 567 11 M2PA Messages 569 Other values are invalid for M2PA. 571 2.1.4 Message Type 573 The following list contains the message types for the defined 574 messages. 576 Value 577 (decimal) Message Type 578 --------- ------------- 579 1 User Data 580 2 Link Status 582 Other values are invalid. 584 2.1.5 Message Length 586 The Message Length defines the length of the message in octets, 587 including the Common Header. 589 2.2 M2PA Header 591 All protocol messages for M2PA require an M2PA-specific header. The 592 header structure is shown in Figure 6. 594 0 1 2 3 595 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 596 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 597 | unused | BSN | 598 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 599 | unused | FSN | 600 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 602 Figure 6. M2PA-specific Message Header 604 2.2.1 Backward Sequence Number (BSN) 606 This is the FSN of the message last received from the peer. 608 2.2.2 Forward Sequence Number (FSN) 610 This is the M2PA sequence number of the User Data message being sent. 612 The FSN and BSN values range from 0 to 16,777,215. 614 2.3 M2PA Messages 616 The following section defines the messages and parameter contents. An 617 M2PA message consists of a Common Message Header and M2PA Header 618 followed by the data appropriate to the message. 620 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 621 \ \ 622 / Common Message Header / 623 \ \ 624 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 625 \ \ 626 / M2PA-specific Message Header / 627 \ \ 628 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 629 \ \ 630 / Message Data / 631 \ \ 632 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 634 The field "Message Data" contains either: 635 - a User Data message (section 2.3.1), or 636 - a Link State message (section 2.3.2) 638 2.3.1 User Data 640 The User Data is the data sent from MTP3. The User Data is an optional 641 field. It need not be included in an acknowlegement-only message. 643 The format for the User Data message is as follows: 645 0 1 2 3 646 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 647 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 648 \ \ 649 / Data / 650 \ \ 651 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 653 The Data field contains the following fields of the MTP Message Signal 654 Unit (MSU): 656 - the Message Priority field (PRI) 657 - Service Information Octet (SIO) 658 - Signaling Information Field (SIF) 660 The MTP MSU is described in Q.703 [Q.703], section 2.2 "Signal Unit 661 Format", and T1.111.3 [T1.111] section 2.2 "Signal Unit Format". 662 The Japanese TTC standard uses the PRI field as an MTP3 Message 663 Priority field [JT-Q703]. For versions of MTP that do not use these 664 two bits, the entire first octet of the Data field is spare. 666 The format of the first octet of the Data field is: 668 0 669 0 1 2 3 4 5 6 7 670 +-+-+-+-+-+-+-+-+ 671 |PRI| spare | (followed by SIO, SIF) 672 +-+-+-+-+-+-+-+-+ 674 PRI - Priority used only in national MTP defined in [JT-Q703]. 675 Spare for other MTP versions. 677 Note that the Data field SHALL NOT contain other components of the MTP 678 MSU format: 680 - Flag 681 - Backward Sequence Number (BSN) 682 - Backward Indicator Bit (BIB) 683 - Forward Sequence Number (FSN) 684 - Forward Indicator Bit (FIB) 685 - Length Indicator (LI) 686 - Check bits (CK) 688 The Data field SHALL be transmitted in the byte order as defined by 689 MTP3. 691 M2PA SHALL NOT add padding to the MTP3 message. 693 Note: In the SS7 Recommendations, the format of the messages and 694 fields within the messages are based on bit transmission order. In 695 these recommendations the Least Significant Bit (LSB) of each field is 696 positioned to the right. The received SS7 fields are populated octet 697 by octet as received into the 4-octet word as shown below. 699 As an example, in the ANSI MTP protocol, the Data field format is 700 shown below: 702 |MSB---------------------------------------------------------LSB| 703 0 1 2 3 704 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 705 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 706 |PRI| spare | SIO | SIF octet | ... | 707 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 708 \ : \ 709 / : / 710 \ : \ 711 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 712 | ... | ... | ... | SIF octet | 713 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 715 Within each octet the Least Significant Bit (LSB) per the SS7 716 Recommendations is to the right (e.g., bit 15 of SIO is the LSB). 718 2.3.2 Link Status 720 The MTP2 Link Status message can be sent between M2PA peers to 721 indicate link status. This message performs a function similar to the 722 the Link Status Signal Unit in MTP2. The format for the Link Status 723 message is as follows: 725 0 1 2 3 726 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 727 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 728 | State | 729 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 731 The valid values for State are shown in the following table. 733 Value 734 (decimal) Description 735 --------- ----------- 736 1 Alignment 737 2 Proving Normal 738 3 Proving Emergency 739 4 Ready 740 5 Processor Outage 741 6 Processor Recovered 742 7 Busy 743 8 Busy Ended 744 9 Out of Service (OOS) 746 2.3.2.1 Link Status Proving 748 The Link Status Proving message may optionally carry additional 749 bytes. If the optional bytes are used, the format for the message is 750 as follows. 752 0 1 2 3 753 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 754 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 755 | State | 756 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 757 \ \ 758 / filler / 759 \ \ 760 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 762 It is RECOMMENDED that the length of the Link Status Proving message 763 be similar to the size of the User Data messages that will be carried 764 on the link. 766 It is RECOMMENDED that the filler field contain a number pattern which 767 varies among the Link Status Proving messages, and that will allow the 768 SCTP checksum [RFC3309] to be used to verify the accuracy of 769 transmission. 771 3. State Control 773 3.1 SCTP Association State Control 775 Figure 7 illustrates state changes in the M2PA management of the SCTP 776 association together with the causing events. Note that some of the 777 error conditions are not shown in the state diagram. 779 Following is a list of the M2PA Association States and a description 780 of each. 782 IDLE - State of the association during power-up initialization. 784 ASSOCIATING - M2PA is attempting to establish an SCTP association. 786 ESTABLISHED - SCTP association is established. 788 +-----------+ 789 | IDLE | 790 +-----------+ 791 | 792 | Associate 793 | (Issue SCTP associate) 794 | 795 | +----------------------+ 796 | | (Issue SCTP | 797 V V associate) | 798 +-------------+ | 799 | ASSOCIATING |----------------->+ 800 +-------------+ SCTP Comm Error | 801 | | 802 | | 803 | SCTP Comm Up | 804 | | 805 V | 806 +-------------+ | 807 | ESTABLISHED |----------------->+ 808 +-------------+ SCTP Comm Error 809 OR SCTP Comm Lost 811 Figure 7. M2PA Association State Transition Diagram 813 3.2 M2PA Link State Control 815 The M2PA link moves from one state to another in response to various 816 events. The events that may result in a change of state include: 818 - MTP3 primitive requests 820 - Receipt of messages from the peer M2PA 822 - Expiration of timers 824 - SCTP notifications 826 These events affect the M2PA link state in a manner similar to MTP2. 828 4. Procedures 830 Since M2PA provides MTP3 with an interface and functionality like 831 MTP2, its internal functioning is similar to that of MTP2. 833 Except as modified in this document, M2PA SHOULD follow the 834 requirements of the applicable MTP2 specification. These may include 835 [Q.703] or [T1.111]. The same standard MUST be followed on both ends 836 of the M2PA link. 838 In particular, the the corresponding applicable timer value defaults 839 and ranges specified for the applicable MTP2 standard should be used 840 for the M2PA timers. 842 When referring to MTP2 terminology in this document, the terminology 843 of [Q.703] is used. This does not imply that the requirements of 844 [Q.703] are to be followed. 846 4.1 Procedures to Support MTP2 Features 848 4.1.1 Signal Unit Format, Delimitation, Acceptance 850 Messages for transmission across the network must follow the format 851 described in section 2. 853 SCTP provides reliable, in-sequence delivery of user 854 messages. Therefore the related functionality of MTP2 is not 855 needed. SCTP does not provide functions related to Link State Control 856 in MTP2. These functions must be provided by M2PA. 858 Since SCTP provides delivery of messages, there is no need for M2PA to 859 delimit its messages with a flag as in MTP2. Furthermore, M2PA does 860 not need to perform zero bit insertion and deletion on its messages. 862 Since SCTP uses a checksum to detect transmission errors, there is no 863 need for an M2PA checksum as in MTP2. This also eliminates the need 864 for the error rate monitors of MTP2. 866 Since SCTP provides reliable delivery and ordered delivery, M2PA does 867 not perform retransmissions. This eliminates the need for the forward 868 and backward indicator bits in MTP2 signal units. 870 Acceptance of a message is indicated by a successful receipt of the 871 message from SCTP. 873 4.1.2 MTP and SCTP Entities 875 This section describes how M2PA relates MTP and SCTP entities. 877 Each MTP link corresponds to an SCTP association. To prevent duplicate 878 associations from being established, it is RECOMMENDED that each 879 endpoint know the IP address (or IP addresses, if multi-homing is 880 used) and port number of both endpoints. SCTP prevents two 881 associations with the same IP addresses and port numbers from being 882 established. 884 It is necessary for at least one of the endpoints to be listening on 885 the port on which the other endpoint is trying to establish the 886 association. Therefore, at least one of the port numbers SHOULD be the 887 M2PA registered port. 889 If only one association is to be established between these two IP 890 addresses, then the association SHOULD be established using the M2PA 891 registered port at each endpoint. 893 If it is desirable to create multiple associations (for multiple 894 links) between the two IP addresses, different port numbers can be 895 used for each association. Nevertheless, the M2PA registered port 896 number SHOULD be used at one end of each association. 898 Each combination of IP address/port for the two endpoints (i.e., each 899 association) MUST be mapped to the same Signaling Link Code (SLC) at 900 each endpoint, so that each endpoint knows which link is being created 901 at the time the SCTP association is established. However, M2PA does 902 not do any processing based on the SLC. 904 Following are examples of the relationships between associations and 905 links. Note that a link is an SCTP association identified by two 906 endpoints. Each endpoint is identified by an IP address and port 907 number. Each association is mapped to an SLC. 909 Figure 8 shows a case with two IPSPs, each with two IP addresses. Two 910 associations are the links that connect the two IPSPs. Since these 911 links are in the same link set, they MUST have different SLCs. 913 Table 1 shows the relationships in tabular form. Table 1 is only 914 conceptual. The actual method for mapping the SCTP associations to the 915 SLCs is implementation dependent. 917 IPSP X IPSP Y 919 +-------------+ +-------------+ 920 | | SCTP | | 921 | IPA | association 1 | IPB | 922 | port = PW +---------------+ port = PW | 923 | SLC = a | | SLC = a | 924 | | | | 925 | | | | 926 | | SCTP | | 927 | IPC | association 2 | IPD | 928 | port = PW +---------------+ port = PW | 929 | SLC = b | | SLC = b | 930 | | | | 931 | | | | 932 +-------------+ +-------------+ 934 IPx = IP address 935 PW = Registered port number for M2PA 937 Figure 8. Two IPSPs with Two IP Addresses Each 939 Table 1. Two IPSPs with Two IP Addresses Each 941 +-------------+---------------------------------------+-----+ 942 | Association | IPSP X | IPSP Y | SLC | 943 | +------------+------+------------+------+ | 944 | | IP address | Port | IP address | Port | | 945 +=============+============+======+============+======+=====+ 946 | 1 | IPA | PW | IPB | PW | a | 947 +-------------+------------+------+------------+------+-----+ 948 | 2 | IPC | PW | IPD | PW | b | 949 +-------------+------------+------+------------+------+-----+ 951 Figure 9 and Table 2 show an example with three IPSPs. Note that in 952 this example, the two links are in different link sets. Therefore, it 953 is possible that the SLC values a and b MAY be equal. 955 IPSP X IPSP Y 957 +-------------+ +-------------+ 958 | | SCTP | | 959 | IPA | association 1 | IPB | 960 | port = PW +---------------+ port = PW | 961 | SLC = a | | SLC = a | 962 | | | | 963 | | | | 964 | | SCTP | | 965 | IPC | association 2 | | 966 | port = PW +-------+ | | 967 | SLC = b | | | | 968 | | | | | 969 | | | | | 970 +-------------+ | +-------------+ 971 | 972 | 973 | IPSP Z 974 | 975 | +-------------+ 976 | | | 977 | | IPD | 978 +-------+ port = PW | 979 | SLC = b | 980 | | 981 | | 982 | | 983 | | 984 | | 985 | | 986 | | 987 | | 988 +-------------+ 990 IPx = IP address 991 PW = Registered port number for M2PA 993 Figure 9. One IPSP Connected to Two IPSPs 994 Table 2. One IPSP Connected to Two IPSPs 996 +-------------+---------------------------------------+-----+ 997 | Association | IPSP X | IPSP Y/Z | SLC | 998 | +------------+------+------------+------+ | 999 | | IP address | Port | IP address | Port | | 1000 +=============+============+======+============+======+=====+ 1001 | 1 | IPA | PW | IPB | PW | a | 1002 +-------------+------------+------+------------+------+-----+ 1003 | 2 | IPC | PW | IPD | PW | b | 1004 +-------------+------------+------+------------+------+-----+ 1006 Figure 10 and Table 3 show two associations between the same IP 1007 addresses. This is accomplished by using different port numbers for 1008 each association at one endpoint. 1010 IPSP X IPSP Y 1012 +-------------+ +-------------+ 1013 | | SCTP | | 1014 | IPA | association 1 | IPB | 1015 | port = P1 +---------------+ port = PW | 1016 | SLC = a | | SLC = a | 1017 | | | | 1018 | | | | 1019 | | SCTP | | 1020 | IPA | association 2 | IPB | 1021 | port = PW +---------------+ port = PW | 1022 | SLC = b | | SLC = b | 1023 | | | | 1024 | | | | 1025 +-------------+ +-------------+ 1027 IPx = IP address 1028 P1 = Pre-selected port number 1029 PW = Registered port number for M2PA 1031 Figure 10. Multiple Associations Between Two IP Addresses 1033 Table 3. Multiple Associations Between Two IP Addresses 1035 +-------------+---------------------------------------+-----+ 1036 | Association | IPSP X | IPSP Y | SLC | 1037 | +------------+------+------------+------+ | 1038 | | IP address | Port | IP address | Port | | 1039 +=============+============+======+============+======+=====+ 1040 | 1 | IPA | P1 | IPB | PW | a | 1041 +-------------+------------+------+------------+------+-----+ 1042 | 2 | IPA | PW | IPB | PW | b | 1043 +-------------+------------+------+------------+------+-----+ 1045 The association SHALL contain two streams in each direction. Stream 0 1046 is designated for Link Status messages. Stream 1 is designated for 1047 User Data messages, as well as Link Status messages that must remain 1048 in sequence with the User Data messages. 1050 The following Link Status messages SHALL be sent on the Link Status 1051 stream (stream 0): 1053 - Alignment 1054 - Proving Normal 1055 - Proving Emergency 1056 - Ready (when sent during alignment) 1057 - Busy 1058 - Busy Ended 1059 - Out of Service 1061 The following Link Status messages SHALL be sent on the User Data 1062 stream (stream 1): 1064 - Processor Outage 1065 - Processor Recovered 1066 - Ready (when sent at the end of processor outage) 1068 4.1.3 Link Alignment 1070 The purposes of the alignment procedure are: 1072 (1) To provide a handshaking procedure so that both endpoints are 1073 prepared to send SS7 traffic, and to prevent traffic from being 1074 sent before the other end is ready. 1076 (2) To verify that the SCTP association is suitable for use as an 1077 SS7 link. 1079 Link alignment takes place after the association is established. If 1080 SCTP fails to establish the association, and M2PA has received a Start 1081 Request from its MTP3, then M2PA SHALL report to MTP3 that the link is 1082 out of service. 1084 The Link Status Out of Service message replaces the SIOS message of 1085 MTP2. Unlike MTP2, the message SHOULD NOT be transmitted 1086 continuously. After the association is established, M2PA SHALL send a 1087 Link Status Out of Service message to its peer. Prior to the beginning 1088 of alignment, M2PA MAY send additional Link Status Out of Service 1089 messages. 1091 The Link Status Alignment message replaces the SIO message of 1092 MTP2. This message is sent to signal the beginning of the alignment 1093 procedure. The Link Status Alignment message SHOULD NOT be transmitted 1094 continuously. M2PA MAY send additional Link Status Alignment until it 1095 receives Link Status Alignment, Link Status Proving Normal, or Link 1096 Status Proving Emergency from the peer. 1098 The Link Status Proving Normal message replaces the SIN message of 1099 MTP2. The Link Status Proving Emergency message replaces the SIE 1100 message of MTP2. 1102 The proving period MAY be omitted if this is allowed by the applicable 1103 MTP2 standard (e. g., [Q.2140]). 1105 If proving is performed, then during the proving period (i.e., after 1106 M2PA starts the proving period timer T4), M2PA SHALL send Link Status 1107 Proving messages to its peer at an interval defined by the protocol 1108 parameter Proving_Interval. It is RECOMMENDED that Proving_Interval be 1109 set so that the traffic load generated with the Link Status Proving 1110 messages during the proving period is comparable to the normal traffic 1111 load expected when the link is in service. 1113 The Link Status Ready message replaces the FISU of MTP2 that is sent 1114 at the end of the proving period. The Link Status Ready message is 1115 used to verify that both ends have completed proving. When M2PA starts 1116 timer T1, it SHALL send a Link Status Ready message to its peer in the 1117 case where MTP2 would send a FISU after proving is complete. If the 1118 Link Status Ready message is sent, then M2PA MAY send additional Link 1119 Status Ready messages while timer T1 is running. These Link Status 1120 Ready messages are sent on the Link Status stream. 1122 In the case that MTP2 sends an MSU or SIPO message at the end of 1123 proving, M2PA SHALL send (respectively) a User Data or Link Status 1124 Processor Outage message. 1126 4.1.4 Processor Outage 1128 The Link Status Processor Outage message replaces the SIPO message of 1129 MTP2. Unlike MTP2, the message SHOULD NOT be transmitted 1130 continuously. M2PA SHALL send a Link Status Processor Outage message 1131 to its peer at the beginning of a processor outage condition where 1132 MTP2 would send SIPO. M2PA MAY send additional Link Status Processor 1133 Outage messages as long as that condition persists. The Link Status 1134 Processor Outage message SHALL be sent on the User Data stream. 1136 While in a local processor outage (LPO) condition: 1138 (a) Any User Data messages received from the peer MUST NOT be 1139 acknowledged and MUST be buffered. 1141 (b) M2PA SHOULD continue to acknowledge User Data messages received 1142 and accepted by MTP3 before the local processor outage. 1144 (c) M2PA SHOULD continue to transmit messages that have been sent 1145 by its upper layer MTP3. 1147 While there is a remote processor outage (RPO) condition: 1149 (a) M2PA SHOULD continue to acknowledge User Data messages received 1150 and accepted by MTP3 regardless of the remote processor outage. 1152 (b) If any User Data messages received from the peer after the Link 1153 Status Processor Outage cannot be delivered to MTP3, then these 1154 messages MUST NOT be acknowledged and MUST be buffered. 1156 If M2PA receives a Flush command from MTP3, 1158 (a) M2PA SHALL discard any incoming messages that were queued and 1159 unacknowledged during the processor outage condition. 1161 (b) M2PA SHALL discard messages in the transmit and retransmit 1162 queues as required by MTP2. 1164 If M2PA receives a Continue command from MTP3, M2PA SHALL begin 1165 processing the incoming messages that were queued and unacknowledged 1166 during the processor outage condition. 1168 When the local processor outage condition ends, M2PA SHALL send a Link 1169 Status Processor Recovered message to its peer on the User Data 1170 stream. This message is used to signal the end of the processor outage 1171 condition, instead of an MSU or FISU as in MTP2. The BSN in the Link 1172 Status Processor Recovered message is set to the FSN of the last User 1173 Data message received (and not discarded) from the peer M2PA. M2PA 1174 SHALL cease transmitting User Data messages after sending the Link 1175 Status Processor Recovered message, until it has received the Link 1176 Status Ready message (see below). 1178 Upon receiving the Link Status Processor Recovered message, the M2PA 1179 in RPO SHALL respond with a Link Status Ready message on the User Data 1180 stream. The BSN in the Link Status Ready message is set to the FSN of 1181 the last User Data message received (and not discarded) from the peer 1182 M2PA. 1184 Upon receiving the Link Status Ready message, the M2PA formerly in LPO 1185 SHALL respond with a Link Status Ready message on the User Data 1186 stream. The BSN in the Link Status Ready message is set to the FSN of 1187 the last User Data message received (and not discarded) from the peer 1188 M2PA. 1190 M2PA (at both the LPO and RPO ends) uses the BSN value in the received 1191 Link Status Ready message to resynchronize its sequence numbers, if 1192 this is required by MTP2. M2PA SHALL NOT resume transmitting User Data 1193 messages until it has received the Link Status Ready message. 1195 During resynchronization, M2PA SHALL NOT discard any received User 1196 Data messages that were sent after the processor outage ended. 1198 When M2PA experiences a local processor outage, it MAY put the link 1199 out of service by sending a Link Status Out of Service message if 1200 allowed by the applicable MTP2 standard (e.g., [Q.2140]). 1202 In other respects, M2PA SHOULD follow the same procedures as MTP2 in 1203 processor outage. 1205 4.1.5 Level 2 Flow Control 1207 The Link Status Busy message replaces the SIB message of MTP2. The 1208 message SHOULD NOT be transmitted continuously. M2PA SHALL send a Link 1209 Status Busy message to its peer at the beginning of a receive 1210 congestion condition where MTP2 would send SIB. M2PA MAY send 1211 additional Link Status Busy messages as long as that condition 1212 persists. When the condition ends, M2PA SHALL send a Link Status Busy 1213 Ended message to its peer. 1215 M2PA SHALL continue transmitting messages while it is in receive 1216 congestion, but MUST NOT acknowledge the message that triggered the 1217 sending of the Link Status Busy message, nor any messages received 1218 before the sending of Link Status Busy Ended. 1220 When the peer M2PA receives the first Link Status Busy message, it 1221 SHALL start the Remote Congestion timer T6 if there are messages in 1222 the retransmission buffer awaiting acknowledgement (i.e., T7 is 1223 running). In addition, M2PA SHALL stop the T7 timer if it is running. 1224 Additional Link Status Busy messages received while T6 is running do 1225 not cause T6 to be reset and do not cause T7 to be started. Also, 1226 while T6 is running, T7 SHALL NOT be started. 1228 When the peer M2PA receives the Link Status Busy Ended message and T6 1229 has not expired, it SHALL stop T6 if T6 is running and start T7 if 1230 there are messages awaiting acknowledgement in the retransmission 1231 buffer. 1233 The peer M2PA SHOULD continue receiving and acknowledging messages 1234 while the other end is busy, but MUST NOT send User Data messages 1235 after receiving Link Status Busy and before receiving Link Status Busy 1236 Ended. 1238 4.1.6 Link Out of Service 1240 The Link Status Out of Service message replaces the SIOS message of 1241 MTP2. Unlike MTP2, the message SHOULD NOT be transmitted 1242 continuously. M2PA SHALL send a Link Status Out of Service message to 1243 its peer at the beginning of a condition where MTP2 would send 1244 SIOS. M2PA MAY send additional Link Status Out of Service messages as 1245 long as that condition persists. 1247 When M2PA places a link in the OUT OF SERVICE state, M2PA SHOULD NOT 1248 terminate the SCTP association. 1250 4.1.7 SCTP Association Problems 1252 The SCTP association for a link may become unusable, such as when one 1253 of the following occurs: 1255 - SCTP sends a Send Failure notification to M2PA. 1257 - SCTP sends a Communication Lost notification to M2PA. 1259 - SCTP sends a Communication Error notification to M2PA. 1261 - The SCTP association is lost. 1263 If the SCTP association for a link becomes unable to transmit or 1264 receive messages, M2PA SHALL report to MTP3 that the link is out of 1265 service and enter the OUT OF SERVICE state. 1267 4.1.8 Transmission and Reception Priorities 1269 In MTP, Link Status messages have priority over User Data messages 1270 ([Q.703], section 11.2). To achieve this in M2PA, M2PA uses separate 1271 streams in its SCTP association for Link Status messages and User Data 1272 messages. 1274 M2PA SHALL send all messages using the ordered delivery option of 1275 SCTP. 1277 M2PA SHOULD give higher priority to messages sent on the Link Status 1278 stream than to messages sent on the User Data stream when sending 1279 messages to SCTP. 1281 M2PA SHOULD give higher priority to reading the Link Status stream 1282 than to reading the User Data stream. 1284 M2PA SHOULD give higher priority to receiving notifications from SCTP 1285 than to reading either the Link Status stream or the User Data stream. 1287 4.1.9 M2PA Version Control 1289 A node upgraded to a newer version of M2PA SHOULD support the older 1290 versions used on other nodes with which it is communicating. If that 1291 is the case, then alignment can proceed normally. 1293 In particular, it is recommended that for future modifications to this 1294 protocol: 1296 - Any newer version SHOULD be able to process the messages from an 1297 older version. 1299 - A newer version of M2PA SHOULD refrain from sending messages to an 1300 older version of M2PA messages that the older version cannot 1301 process. 1303 - If an older version of M2PA receives a message that it cannot 1304 process, it SHOULD discard the message. 1306 - In cases where different processing is done in two versions for the 1307 same format of a message, then the newer version SHOULD contain 1308 procedures to recognize this and handle it appropriately. 1310 In case a newer version of M2PA is incompatible with an older version, 1311 the newer version SHOULD recognize this and prevent the alignment of 1312 the link. If a Link Status Alignment message with an unsupported 1313 version is received by the newer version, the receiving end's M2PA 1314 SHOULD reply with a Link Status Out of Service message and not 1315 complete the alignment procedure. 1317 4.2 Procedures to Support the MTP3/MTP2 Interface 1319 4.2.1 Sending and receiving messages 1321 When MTP3 sends a message for transmission to M2PA, M2PA passes the 1322 corresponding M2PA message to SCTP using the SEND primitive. 1324 User Data messages SHALL be sent via the User Data stream (stream 1) 1325 of the association. 1327 M2PA Link Status messages are passed to SCTP using the SEND primitive. 1329 The following Link Status messages SHALL be sent on the Link Status 1330 stream (stream 0): 1332 - Alignment 1333 - Proving Normal 1334 - Proving Emergency 1335 - Ready (when sent during alignment) 1336 - Busy 1337 - Busy Ended 1338 - Out of Service 1340 The following Link Status messages SHALL be sent on the User Data 1341 stream (stream 1): 1343 - Processor Outage 1344 - Processor Recovered 1345 - Ready (when sent at the end of processor outage) 1347 If M2PA receives a message from SCTP with an invalid Message Class or 1348 unsupported Message Type in the Common Message Header, M2PA SHALL 1349 discard the message. 1351 For message types other than User Data, the Forward Sequence Number is 1352 set to the FSN of the last User Data message sent. 1354 If M2PA receives a User Data message with an FSN that is out of order, 1355 M2PA SHALL discard the message. 1357 Note: In all calculations involving FSN and BSN, the programmer should 1358 be aware that the value wraps around to 0 after reaching its maximum 1359 value. 1361 When there is a message to acknowledge, M2PA MUST acknowledge the 1362 message with the next User Data message sent. If there is no User 1363 Data message available to be sent when there is a message to 1364 acknowledge, M2PA SHOULD generate and send a User Data message with no 1365 data payload, without delay. (In other words, in the case where MTP2 1366 would acknowledge a message with a FISU, M2PA SHOULD acknowledge the 1367 message with an empty User Data message.) The FSN for this empty User 1368 Data message is not incremented. It MUST contain the same FSN as the 1369 most recently sent User Data message containing Data. Delaying of 1370 acknowledgements can result in poor SS7 performance. 1372 If M2PA receives an empty User Data message, it SHALL NOT send an 1373 acknowledgement of that message. 1375 Note that there is no reason to place Link Status messages or empty 1376 User Data messages in the M2PA retransmit buffer, since these messages 1377 are not retrieved for changeover and timer T7 does not apply to them. 1379 Note that since SCTP provides reliable delivery and ordered delivery 1380 within the stream, M2PA does not perform 1381 retransmissions. Nevertheless, M2PA SHALL retain transmitted User Data 1382 messages in a retransmit queue until they are acknowledged. These 1383 messages are needed in case MTP3 performs data retrieval as part of a 1384 changeover procedure. 1386 Because propagation delays in IP networks are more variable than in 1387 traditional SS7 networks, a single T7 timer (excessive delay of 1388 acknowledgement) as in MTP2 is inadequate. If any message is 1389 unacknowledged after a period equal to the T7 value, the T7 timer 1390 SHALL expire. 1392 4.2.2 MTP3 Signaling Link Congestion 1394 M2PA SHALL detect transmit congestion in its buffers according to the 1395 requirements for signaling link transmit congestion in MTP3, e.g., 1396 Q.704 [Q.704], section 3.8. 1398 4.2.3 Changeover 1400 The objective of the changeover is to ensure that signaling traffic 1401 carried by the unavailable signaling link is diverted to the 1402 alternative signaling link(s) as quickly as possible while avoiding 1403 message loss, duplication, or mis-sequencing. For this purpose, the 1404 changeover procedure includes data retrieval, which is performed 1405 before opening the alternative signaling links to the diverted 1406 traffic. Data retrieval consists of these steps: 1408 (1) buffer updating, i.e., identifying all those User Data 1409 messages in the retransmission buffer of the unavailable 1410 signaling link which have not been received by the far end 1411 M2PA, as well as untransmitted messages, and 1413 (2) transferring those messages to the transmission buffers of the 1414 alternate links. 1416 Note that only User Data messages containing data are retrieved and 1417 transmitted over the alternate links. Link Status messages and empty 1418 User Data messages SHALL NOT be retrieved and transmitted over the 1419 alternate links. 1421 M2PA's Sequence Numbers are 24 bits long. MTP2's Forward and Backward 1422 Sequence Numbers are only seven bits long. Hence it is necessary for 1423 MTP3 to accommodate the larger sequence numbers. This is done through 1424 the use of the Extended Changeover Order (XCO) and Extended Changeover 1425 Acknowledgement (XCA) messages instead of the Changeover Order (COO) 1426 and Changeover Acknowledgement (COA) messages. The XCO and XCA 1427 messages are specified in [Q.2210] section 9.8.1 and T1.111.4 1428 [T1.111], section 15.4. Only the XCO and XCA messages from [Q.2210] or 1429 [T1.111] are required. The BSN is placed in the XCO/XCA message as 1430 explained in [Q.2210] and [T1.111]. 1432 Also, the following MTP3/MTP2 primitives MUST use the larger sequence 1433 numbers: 1435 - BSNT Confirmation 1437 - Retrieval Request and FSNC 1439 If M2PA receives a Retrieval Request and FSNC request from MTP3, M2PA 1440 SHALL retrieve from its buffers and deliver to MTP3 in order: 1442 (a) any transmitted User Data messages beginning with the first 1443 unacknowledged message with FSN greater than FSNC. 1445 (b) any untransmitted User Data messages. 1447 For emergency changeover, MTP3 retrieves only the unsent messages for 1448 transmission on the alternate link(s). If M2PA receives a Retrieval 1449 Request and FSNC request with no FSNC value, or with an invalid FSNC, 1450 then M2PA SHALL retrieve from its buffers and deliver to MTP3 in 1451 order: 1453 (a) any untransmitted User Data messages. 1455 The Japanese TTC version of MTP defined in [JT-Q703] has a Retrieval 1456 Request (as well as Retrieval Request and FSNC). The Retrieval Request 1457 allows MTP3 to retrieve both unsent and unacknowleged messages for 1458 transmission on the alternate link(s). In this version of MTP, if M2PA 1459 receives a Retrieval Request, then M2PA SHALL retrieve from its 1460 buffers and deliver to MTP3 in order: 1462 (a) any transmitted but unacknowledged User Data messages. 1464 (b) any untransmitted User Data messages. 1466 4.2.3.1 Multiple User Data Streams and Changeover 1468 The changeover procedure makes it problematic for M2PA to have 1469 multiple User Data streams in one direction for a link. Buffer 1470 updating would have to be done for each User Data stream separately to 1471 avoid duplication or loss of messages. But MTP3 provides for only one 1472 XCO/XCA message for sending the last-received sequence number. 1474 Even with sequence numbering of User Data messages at the M2PA layer, 1475 it is necessary to perform buffer updating on each stream. Since the 1476 M2PA messages would be delivered over multiple streams, there could be 1477 a gap in the M2PA sequence numbers at the receiving end when the 1478 changeover procedure begins. If only the M2PA sequence number is used 1479 in the XCO/XCA message, there would be a possibility of losing the 1480 messages in the gap, or duplicating messages after the gap. 1482 M2PA links with multiple User Data streams would be possible if a 1483 multiple-BSNT XCO/XCA message is defined in MTP3, or MTP3 allows 1484 multiple XCO/XCA messages (one for each User Data stream) to be sent 1485 during a changeover. This is beyond the scope of this document. 1487 4.3 SCTP Considerations 1489 Some M2PA procedures may be affected by the use of SCTP as a transport 1490 layer. These considerations are discussed in this section. 1492 4.3.1 SCTP Slow Start 1494 SCTP contains a slow start algorithm to control the amount of data 1495 being injected into the network. The algorithm allows SCTP to probe 1496 the network to determine the available capacity. The algorithm is 1497 invoked when transmission begins on an association, after a 1498 sufficiently long idle period, or after repairing loss detected by the 1499 SCTP retransmission timer. 1501 It is possible that transmission of M2PA messages MAY be delayed by 1502 SCTP slow start under certain conditions, including the following: 1504 (a) Link Alignment. Link alignment takes place after an association 1505 is established. SCTP invokes the slow start algorithm since 1506 transmission is beginning on the association. 1508 (b) Changeover. Messages are retrieved from one link (association) 1509 and transferred to another for transmission. If the second link 1510 had previously been idle, or is in the process of link 1511 alignment, SCTP may invoke the slow start algorithm. 1513 (c) Path failure (multi-homing). If SCTP switches from a failed 1514 path to a new path, and the new path had previously been idle, 1515 SCTP may invoke the slow start algorithm. 1517 (d) Reduced traffic volume. Any time that M2PA sends a low volume 1518 of traffic on a link and then the volume increases, SCTP may 1519 invoke the slow start algorithm. 1521 Programmers should be aware of this condition and how it may affect 1522 M2PA performance. In some cases, it may be possible to avoid the 1523 negative effects of slow start. For example, the Link Status Proving 1524 messages sent during the proving period may be used to complete slow 1525 start before the link is placed in service. 1527 5. Examples of M2PA Procedures 1529 In general, messages passed between MTP3 and M2PA are the same as 1530 those passed between MTP3 and MTP2. M2PA interprets messages from 1531 MTP3 and sends the appropriate message to SCTP. Likewise, messages 1532 from SCTP are used to generate a meaningful message to MTP3. 1534 Note that throughout this section, the primitives between MTP3 and 1535 M2PA are named using the MTP terminology [Q.700] [Q.701] [Q.702] 1536 [Q.703] [Q.704] [Q.705]. Communications between M2PA and SCTP are 1537 named using SCTP terminology. 1539 5.1 Link Initialization (Alignment) 1541 An example of the message flow to bring an SS7 link in service is 1542 shown in Figures 11 and 12. Alignment is done by both ends of the 1543 link. To simplify the diagram, alignment is shown on one end 1544 only. Some messages from the remote end are not shown. It is assumed 1545 in this example that SCTP has been initialized. 1547 MTP3 M2PA SCTP SCTP M2PA MTP3 1548 ---- ---- ---- ---- ---- ---- 1549 . . . . . . 1550 . Associate . . . . 1551 . ------------> . . . 1552 . . . . . . 1553 . . (SCTP Association . . 1554 . . procedure) . . 1555 . . . . . . 1556 . Communication Up Communication Up . 1557 . <------------ ------------> . 1558 . . . . . . 1559 . Link Status Out of Service . . 1560 . ------------------------------------> . 1561 . . . . . . 1562 Emergency OR . . . . 1563 Emergency Ceases . . . . 1564 ------------> . . . . 1565 . . . . . . 1566 Start . . . . . 1567 ------------> . . . . 1568 . . . . . . 1569 . . . . . . 1570 . Link Status Alignment . . . 1571 . ------------------------------------> . 1572 . . . . . . 1573 . Start timer T2 . . . 1574 . . . . . . 1575 . . . Link Status Alignment . 1576 . <------------------------------------ . 1577 . . . . . . 1578 . Stop timer T2 . . . 1579 . . . . . . 1581 Proving period begins. 1583 Figure 11. Example: Link Initialization - Alignment 1585 MTP3 M2PA SCTP SCTP M2PA MTP3 1586 ---- ---- ---- ---- ---- ---- 1587 . . . . . . 1588 . Start timer T3 . . . 1589 . Link Status Proving . . . 1590 . ------------------------------------> . 1591 . . . . . . 1592 . . . Link Status Proving . 1593 . <------------------------------------ . 1594 . . . . . . 1595 . Stop timer T3 . . . 1596 . . . . . . 1597 . Start timer T4 . . . 1598 . Link Status Proving . . . 1599 . ------------------------------------> . 1600 . ------------------------------------> . 1601 . ------------------------------------> . 1602 . ------------------------------------> . 1603 . ------------------------------------> . 1604 . ------------------------------------> . 1605 . . . . . . 1606 . Timer T4 expires . . . 1607 . . . . . . 1609 Send Link Status Ready (one or more) and wait for the remote end 1610 to complete its proving period. 1612 . . . . . . 1613 . Start timer T1 . . . 1614 . . . . . . 1615 . Link Status Ready . . . 1616 . ------------------------------------> . 1617 . . . . . . 1618 . . . . . . 1619 . . . Link Status Ready . 1620 . <------------------------------------ . 1621 . . . . . . 1622 . Stop timer T1 . . . 1623 . . . . . . 1624 In Service . . In Service 1625 <------------ . . ------------> 1626 . . . . . . 1628 MTP3 MAY begin sending data messages. 1630 Figure 12. Example: Link Initialization - Proving 1632 5.2 Message Transmission and Reception 1634 Messages are transmitted using the Data Request primitive from MTP3 to 1635 M2PA. Figure 13 shows the case where the Link is In Service. The 1636 message is passed from MTP3 of the source to MTP3 of the destination. 1638 MTP3 M2PA SCTP SCTP M2PA MTP3 1639 ---- ---- ---- ---- ---- ---- 1640 . . . . . . 1641 Message for . . . . 1642 transmission . . . . 1643 ------------> . . . . 1644 . . . . . . 1645 . Send . . . . 1646 . (Data Message) . . . 1647 . ------------> . . . 1648 . . . . . . 1649 . . (SCTP sends message) . . 1650 . . . . . . 1651 . . . Receive . 1652 . . . ------------> . 1653 . . . . . . 1654 . . . . Received message 1655 . . . . ------------> 1656 . . . . . . 1658 Figure 13. Example: Link Initialization - In Service 1660 5.3 Link Status Indication 1662 An example of a Link Status Indication is shown in Figure 14. If SCTP 1663 sends a Communication Lost primitive to M2PA, M2PA notifies MTP3 that 1664 the link is out of service. MTP3 responds in its usual way. 1666 MTP3 M2PA SCTP SCTP M2PA MTP3 1667 ---- ---- ---- ---- ---- ---- 1668 . . . . . . 1669 . Communication Lost . . . 1670 . <------------ . . . 1671 . . . . . . 1672 Out of Service . . . . 1673 <------------ . . . . 1674 . . . . . . 1676 Figure 14. Example: Link Status Indication 1678 5.4 Link Status Message (Processor Outage) 1680 Figure 15 shows how M2PA responds to a local processor outage. M2PA 1681 sends a Link Status message to its peer. The peer M2PA notifies MTP3 1682 of the outage. MTP3 can then follow the processor outage procedures as 1683 in [Q.703]. 1685 MTP3 M2PA SCTP SCTP M2PA MTP3 1686 ---- ---- ---- ---- ---- ---- 1687 . . . . . . 1688 . M2PA detects . . . . 1689 . Local Processor . . . . 1690 . Outage . . . . 1691 . . . . . . 1692 . Link Status . . . . 1693 . Processor Outage . . . 1694 . ------------------------------------> . 1695 . . . . . . 1696 . . . . Remote Processor 1697 . . . . Outage . 1698 . . . . ------------> 1699 . . . . . . 1700 . Link Status . . . 1701 . Processor . . . 1702 . Recovered . . . 1703 . ------------------------------------> . 1704 . . . . . . 1705 . . . . Remote Processor 1706 . . . . Outage Ceases 1707 . . . . ------------> 1708 . . . . . . 1709 . . . Link Status Ready . 1710 . <------------------------------------ . 1711 . . . . . . 1712 . Link Status Ready . . . 1713 . ------------------------------------> . 1714 . . . . . . 1715 Message for . . . . 1716 transmission . . . . 1717 ------------> . . . . 1718 . . . . . . 1719 . User Data . . . 1720 . ------------------------------------> . 1721 . . . . . . 1723 Figure 15. Example: Link Status Message - Processor Outage 1725 Figure 16 shows an example of processor outage in more detail. All 1726 M2PA messages in this example are sent on the Data stream (stream 1). 1728 A B 1729 ---------------------------- ---------------------------- 1731 MTP3 M2PA SCTP SCTP M2PA MTP3 1732 ---- ---- ---- ---- ---- ---- 1733 . . . . . . 1734 6 Messages for . . . . 1735 transmission . . . . 1736 ------------> . . 6 Messages for 1737 . . . . transmission 1738 . . . . <------------ 1739 . User Data FSN=1 . . . 1740 . ------------------------------------> . 1741 . User Data FSN=2 . . . 1742 . ------------------------------------> . 1743 . User Data FSN=3 . . . 1744 . ------------------------------------> . 1745 . . . User Data FSN=11 . 1746 . <------------------------------------ . 1747 . . . User Data FSN=12 . 1748 . <------------------------------------ . 1749 . . . User Data FSN=13 . 1750 . <------------------------------------ . 1752 Side A detects LPO. 1754 . . . . . . 1755 . . . User Data FSN=14 BSN=3 . 1756 . <------------------------------------ . 1757 . . . User Data FSN=15 BSN=3 . 1758 . <------------------------------------ . 1759 . . . User Data FSN=16 BSN=3 . 1760 . <------------------------------------ . 1761 . LS PO FSN=3 BSN=11 . . . 1762 . ------------------------------------> . 1763 . . . . Remote Processor 1764 . . . . Outage . 1765 . . . . ------------> 1767 While in LPO, A must buffer messages 14-16 without acknowledging 1768 them. A may continue transmitting messages from MTP3, and 1769 acknowledging messages that were received before LPO. 1771 . . . . . . 1772 . User Data FSN=4 BSN=13 . . . 1773 . ------------------------------------> . 1774 . User Data FSN=5 BSN=13 . . . 1775 . ------------------------------------> . 1776 . User Data FSN=6 BSN=13 . . . 1777 . ------------------------------------> . 1778 . . . . . . 1780 While in RPO, B may continue acknowledging messages. Suppose that B 1781 receives message 4, but has not processed 5 and 6 yet. 1783 . . . . . . 1784 . (empty) User Data FSN=16 BSN=4 1785 . <------------------------------------ . 1787 LPO ends at A. A flushes 14-16 (the messages that were buffered 1788 without acknowledgement). 1790 . . . . . . 1791 . LS PR FSN=6 BSN=13 . . . 1792 . ------------------------------------> . 1793 . . . . Remote Processor 1794 . . . . Outage Ceases 1795 . . . . ------------> 1796 . . . . . . 1798 A should discard any incoming acknowledgements at this point. They 1799 could have been sent before the LS PR. 1801 . . . . . . 1802 . (empty) User Data FSN=16 BSN=5 1803 . <------------------------------------ . 1804 . (discard) . . . . 1805 . . . . . . 1807 B should not resynchronize its sequence numbers now and start with 1808 FSN=14. If B sent a message now with FSN=14, A might confuse this with 1809 a message sent before the LS PR. 1811 Suppose that B processed message 5, but never processed message 6. B 1812 flushes message 6 from its Receive Buffer. B notifies A of this using 1813 the Link Status Ready message: 1815 . . . . . . 1816 . . . LS Ready FSN=16 BSN=5 . 1817 . <------------------------------------ . 1818 . . . . . . 1820 B should discard any incoming acknowledgements at this point. They 1821 could have been sent before B's LS Ready. 1823 A can use the Link Status Ready information to resynchronize its 1824 sequence numbers to begin with FSN=6 for the next User Data message. 1826 . . . . . . 1827 . LS Ready FSN=5 BSN=13 . . . 1828 . ------------------------------------> . 1829 . . . . . . 1830 . . . . . . 1831 . . . . . . 1832 . . . . . . 1834 B can use this information to resynchronize its sequence numbers to 1835 begin with FSN=14. Each side can resume sending User Data: 1837 . . . . . . 1838 Message for . . . Message for 1839 transmission . . transmission 1840 ------------> . . <------------ 1841 . User Data FSN=6 BSN=13 . . . 1842 . ------------------------------------> . 1843 . . . User Data FSN=14 BSN=5 . 1844 . <------------------------------------ . 1845 . . . . . . 1847 Figure 16. Example: Processor Outage and Recovery 1849 5.5 Level 2 Flow Control 1851 Figures 17 and 18 illustrate the Level 2 Flow Control procedure. In 1852 Figure 17, congestion ceases before timer T6 expires. Figure 18 shows 1853 the case where T6 expires. 1855 MTP3 M2PA SCTP SCTP M2PA MTP3 1856 ---- ---- ---- ---- ---- ---- 1857 . . . . . . 1858 . Implementation dependent . . 1859 . determination of M2PA . . 1860 . receive congestion onset . . 1861 . . . . . . 1862 . Link Status Busy . . . 1863 . ------------------------------------> . 1864 . . . . . . 1865 . . . . Start . 1866 . . . . Timer T6 . 1867 . . . . . . 1868 . Implementation dependent . . 1869 . determination of M2PA . . 1870 . receive congestion abatement . . 1871 . . . . . . 1872 . Link Status Busy Ended . . . 1873 . ------------------------------------> . 1874 . . . . . . 1875 . . . . Stop . 1876 . . . . Timer T6 . 1877 . . . . . . 1879 Figure 17. Example: Level 2 Flow Control - Congestion Ceases 1881 MTP3 M2PA SCTP SCTP M2PA MTP3 1882 ---- ---- ---- ---- ---- ---- 1883 . . . . . . 1884 . Implementation dependent . . 1885 . determination of M2PA . . 1886 . receive congestion onset . . 1887 . . . . . . 1888 . Link Status Busy . . . 1889 . ------------------------------------> . 1890 . . . . . . 1891 . . . . Start . 1892 . . . . Timer T6 . 1893 . . . . : . 1894 . . . . : . 1895 . . . . Timer T6 . 1896 . . . . Expires . 1897 . . . . . . 1898 . . Link Status Out of Service . 1899 . <------------------------------------ . 1900 . . . . . . 1901 . . . . Out of Service 1902 . . . . ------------> 1903 . . . . . . 1905 Figure 18. Example: Level 2 Flow Control - Timer T6 Expires 1907 5.6 MTP3 Signaling Link Congestion 1909 In Figure 19, M2PA notifies MTP3 of congestion onset and 1910 abatement. The notification includes the congestion level, if there 1911 are levels of congestion defined. 1913 MTP3 M2PA SCTP SCTP M2PA MTP3 1914 ---- ---- ---- ---- ---- ---- 1915 . . . . . . 1916 . Implementation dependent . . 1917 . determination of M2PA . . . 1918 . transmit congestion . . . 1919 . onset (level) . . . 1920 . . . . . . 1921 Congestion Indication . . . . 1922 (level) . . . . . 1923 <------------ . . . . 1924 . . . . . . 1925 . Implementation dependent . . 1926 . determination of M2PA . . . 1927 . transmit congestion . . . 1928 . abatement (level) . . . 1929 . . . . . . 1930 Congestion Indication . . . . 1931 (level) . . . . . 1932 <------------ . . . . 1933 . . . . . . 1935 Figure 19. Example: MTP3 Signalling Link Congestion 1937 5.7 Link Deactivation 1939 Figure 20 shows an example of link deactivation. MTP3 can request that 1940 a link be taken out of service. 1942 MTP3 M2PA SCTP SCTP M2PA MTP3 1943 ---- ---- ---- ---- ---- ---- 1944 . . . . . . 1945 Stop . . . . . 1946 ------------> . . . . 1947 . . . . . . 1948 . Link Status Out of Service . . 1949 . ------------------------------------> . 1950 . . . . . . 1951 Out of Service . . . . 1952 <------------ . . . . 1953 . . . . . . 1955 Figure 20. Example: Link Deactivation 1957 5.8 Link Changeover 1959 In Figure 21, MTP3 performs a changeover because the link went out of 1960 service. MTP3 selects a different link to retransmit the 1961 unacknowledged and unsent messages. 1963 MTP3 M2PA SCTP SCTP M2PA MTP3 1964 ---- ---- ---- ---- ---- ---- 1965 . . . . . . 1966 . Communication Lost . . . 1967 . <------------ . . . 1968 . . . . . . 1969 Out of Service . . . . 1970 <------------ . . . . 1971 . . . . . . 1972 Retrieve BSNT . . . . 1973 ------------> . . . . 1974 . . . . . . 1975 BSNT Confirmation . . . . 1976 <------------ . . . . 1977 . . . . . . 1978 XCO (BSNT) on another link . . . 1979 ------------------------------------------------------------> 1980 . . . . . . 1981 . . . . Retrieve BSNT 1982 . . . . <------------ 1983 . . . . . . 1984 . . . . BSNT Confirmation 1985 . . . . ------------> 1986 . . . . . . 1987 . . . . . XCA (BSNT) 1988 <------------------------------------------------------------ 1989 . . . . . . 1990 Retrieval Request . . . . 1991 and FSNC . . . . . 1992 ------------> . . . . 1993 . . . . . . 1994 Retrieved Message . . . . 1995 <------------ . . . . 1996 . : . . . . . 1997 . : . . . . . 1998 <------------ . . . . 1999 . . . . . . 2000 Retrieval Complete . . . . 2001 <------------ . . . . 2002 . . . . . . 2003 Send messages on another link. 2005 Figure 21. Example: Link Changeover 2007 6. Security 2009 M2PA is designed to carry signaling messages for telephony 2010 services. As such, M2PA MUST involve the security needs of several 2011 parties: 2013 - the end users of the services 2015 - the network providers 2017 - the applications involved 2019 Additional requirements MAY come from local regulation. 2021 While these parties may have some overlapping security needs, their 2022 needs may not be identical. Any security solution SHOULD fulfill all 2023 of the different parties' needs. 2025 Consult [RFC3788] for a discussion of security requirements and for 2026 guidance on the use of security protocols. Implementers of M2PA MUST 2027 follow the guidelines in [RFC3788]. 2029 7. IANA Considerations 2031 7.1 SCTP Payload Protocol Identifier 2033 The SCTP Registered User Port Number Assignment for M2PA is 3565. The 2034 TCP Registered User Port Number 3565 is also assigned to M2PA, in case 2035 a specification for M2PA over TCP is created. 2037 The value assigned by IANA for the Payload Protocol Identifier in the 2038 SCTP Payload Data chunk is 2040 M2PA 5 2042 The SCTP Payload Protocol Identifier is included in each SCTP Data 2043 chunk, to indicate which protocol the SCTP is carrying. This Payload 2044 Protocol Identifier is not directly used by SCTP but may be used by 2045 certain network entities to identify the type of information being 2046 carried in a Data chunk. 2048 The User Adaptation peer may use the Payload Protocol Identifier as a 2049 way of determining additional information about the data being 2050 presented to it by SCTP. 2052 7.2 M2PA Protocol Extensions 2054 This protocol may be extended through IANA in three ways: 2056 - through definition of additional message classes, 2058 - through definition of additional message types, and 2060 - through definition of additional message parameters. 2062 The definition and use of new message classes, types, and parameters 2063 is an integral part of SIGTRAN adaptation layers. Thus, these 2064 extensions are assigned by IANA through an IETF Consensus action as 2065 defined in [RFC2434]. 2067 The proposed extension must in no way adversely affect the general 2068 working of the protocol. 2070 The defined values for the message classes, types, and parameters are 2071 listed in the Signaling User Adaptation Layer registry 2072 (sigtran-adapt). 2074 7.2.1 IETF Defined Message Classes 2076 The documentation for a new message class MUST include the following 2077 information: 2079 (a) A long and short name for the message class. 2081 (b) A detailed description of the purpose of the message class. 2083 7.2.2 IETF Defined Message Types 2085 Documentation of the message type MUST contain the following 2086 information: 2088 (a) A long and short name for the new message type. 2090 (b) A detailed description of the structure of the message. 2092 (c) A detailed definition and description of the intended use 2093 of each field within the message. 2095 (d) A detailed procedural description of the use of the new 2096 message type within the operation of the protocol. 2098 (e) A detailed description of error conditions when receiving this 2099 message type. 2101 When an implementation receives a message type which it does not 2102 support, it MUST discard the message. 2104 7.2.3 IETF-defined Parameter Extension 2106 Documentation of the message parameter MUST contain the following 2107 information: 2109 (a) Name of the parameter type. 2111 (b) Detailed description of the structure of the parameter field. 2113 (c) Detailed definition of each component of the parameter value. 2115 (d) Detailed description of the intended use of this parameter type, 2116 and an indication of whether and under what circumstances 2117 multiple instances of this parameter type may be found within 2118 the same message type. 2120 7.2.4 Defined Values 2122 This section lists the values defined in this document that should be 2123 included in the Signaling User Adaptation Layer registry 2124 (sigtran-adapt). 2126 The following values for Message Class are defined in this document: 2128 Value 2129 (decimal) Message Class 2130 --------- ------------- 2131 11 M2PA Messages 2133 The following values for Message Type are defined in this document: 2135 Value 2136 (decimal) Message Type 2137 --------- ------------- 2138 1 User Data 2139 2 Link Status 2141 The following values for Version are defined in this document: 2143 Value 2144 (decimal) Version 2145 --------- ------- 2146 1 Release 1.0 of M2PA protocol 2148 The following values for the State parameter are defined in this 2149 document: 2151 Value 2152 (decimal) Description 2153 --------- ----------- 2154 1 Alignment 2155 2 Proving Normal 2156 3 Proving Emergency 2157 4 Ready 2158 5 Processor Outage 2159 6 Processor Recovered 2160 7 Busy 2161 8 Busy Ended 2162 9 Out of Service (OOS) 2164 8. Acknowledgements 2166 The authors would like to thank the following for their valuable 2167 comments and suggestions: Brian Tatum, Wayne Davis, Cliff Thomas, 2168 Jeff Copley, Monique Bernard, Malleswar Kalla, Ian Rytina, 2169 Greg Sidebottom, Al Varney, Jeff Craig, Andrew Booth. 2171 9. References 2173 9.1 Normative 2175 [JT-Q703] 2176 TTC, "Message Transfer Part Signalling Link," TTC Standard 2177 JT-Q703, Telecommunication Technology Committee (TTC), version 2178 3 (April 27, 1994). 2180 [JT-Q704] 2181 TTC, "Message Transfer Part Signalling Network Functions," TTC 2182 Standard JT-Q704, Telecommunication Technology Committee (TTC), 2183 version 4 (May 30, 2002). 2185 [Q.703] 2186 ITU, "Signalling System No. 7 - Signalling Link," ITU-T 2187 Recommendation Q.703, ITU-T Telecommunication Standardization 2188 Sector of ITU (July 1996). 2190 [Q.Imp703] 2191 ITU, "Implementors' Guide (03/99) for Recommendation Q.703 2192 (07/96)" ITU-T Recommendation Q.Imp703, ITU-T Telecommunication 2193 Standardization Sector of ITU (March 1999). 2195 [Q.704] 2196 ITU, "Message Transfer Part - Signalling Network Functions and 2197 Messages," ITU-T Recommendation Q.704, ITU-T Telecommunication 2198 Standardization Sector of ITU (July 1996). 2200 [Q.Imp704] 2201 ITU, "Implementors' Guide (12/2000) for Recommendation Q.704 2202 (07/96)" ITU-T Recommendation Q.Imp704, ITU-T Telecommunication 2203 Standardization Sector of ITU (December 2000). 2205 [Q.2140] 2206 ITU, "B-ISDN ATM Adaptation Layer - Service Specific 2207 Coordination Function for Signalling at the Network Node 2208 Interface (SSCF at NNI)," ITU-T Recommendation Q.2140, ITU-T 2209 Telecommunication Standardization Sector of ITU (February 2210 1995). 2212 [Q.Imp2140] 2213 ITU, "Implementors' Guide (03/99) for Recommendation Q.2140 2214 (02/95)" ITU-T Recommendation Q.Imp2140, ITU-T 2215 Telecommunication Standardization Sector of ITU (March 1999). 2217 [Q.2210] 2218 ITU, "Message Transfer Part Level 3 Functions and Messages 2219 Using the Services of ITU-T Recommendation Q.2140," ITU-T 2220 Recommendation Q.2210, ITU-T Telecommunication Standardization 2221 Sector of ITU (July 1996). 2223 [Q.Imp2210] 2224 ITU, "Implementors' Guide (12/99) for Recommendation Q.2210 2225 (07/96)" ITU-T Recommendation Q.Imp2210, ITU-T 2226 Telecommunication Standardization Sector of ITU (December 2227 1999). 2229 [RFC791] 2230 Information Sciences Institute, "Internet Protocol - DARPA 2231 Internet Program - Protocol Specification," RFC 791, The 2232 Internet Society (September 1981). 2234 [RFC2119] 2235 S. Bradner, "Key words for use in RFCs to Indicate Requirement 2236 Levels," BCP 14, RFC 2119, Internet Engineering Task Force 2237 (March 1997). 2239 [RFC2434] 2240 T. Narten, H. T. Alvestrand, "Guidelines for Writing an IANA 2241 Considerations Section in RFCs," BCP 26, RFC 2434, The Internet 2242 Society (October, 1998). 2244 [RFC2960] 2245 R. Stewart, et. al., "Stream Control Transmission Protocol 2246 (SCTP)," RFC 2960, The Internet Society (February 2000). 2248 [RFC3309] 2249 J. Stone, R. Stewart, and D. Otis, "Stream Control Transmission 2250 Protocol (SCTP) Checksum Change," RFC 3309, The Internet 2251 Society (September 2002). 2253 [RFC3788] 2254 J. Loughney, M. Tuexen, and J. Pastor-Balbas, "Security 2255 Considerations for Signaling Transport (SIGTRAN) Protocols," 2256 RFC 3788, The Internet Society (June 2004). 2258 [T1.111] 2259 ANSI, "American National Standard for Telecommunications - 2260 Signaling System Number 7 (SS7) - Message Transfer Part (MTP)," 2261 ANSI T1.111-2001, American National Standards Institute 2262 (February 2001). 2264 9.2 Informative 2266 [M2UA] 2267 K. Morneault, et. al., "Signaling System 7 (SS7) Message 2268 Transfer Part 2 (MTP2) - User Adaptation Layer," RFC 3331, 2269 Internet Engineering Task Force - Signalling Transport Working 2270 Group (September, 2002). 2272 [Q.700] 2273 ITU, "Introduction to CCITT Signalling System No. 7," ITU-T 2274 Recommendation Q.700, ITU-T Telecommunication Standardization 2275 Sector of ITU (March 1993). 2277 [Q.701] 2278 ITU, "Functional Description of the Message Transfer Part (MTP) 2279 of Signalling System No. 7," ITU-T Recommendation Q.701, ITU-T 2280 Telecommunication Standardization Sector of ITU (March 1993). 2282 [Q.702] 2283 ITU, "Signalling Data Link," ITU-T Recommendation Q.702, ITU-T 2284 Telecommunication Standardization Sector of ITU (November 2285 1988). 2287 [Q.705] 2288 ITU, "Signalling System No. 7 - Signalling Network Structure," 2289 ITU-T Recommendation Q.705, ITU-T Telecommunication 2290 Standardization Sector of ITU (March 1993). 2292 [Q.Imp705] 2293 ITU, "Implementors' guide (version 09/97) for Q.705 (03/93)" 2294 ITU-T Recommendation Q.Imp705, ITU-T Telecommunication 2295 Standardization Sector of ITU (September 1997). 2297 [RFC2719] 2298 L. Ong, et. al., "Framework Architecture for Signaling 2299 Transport," RFC 2719, The Internet Society (October 1999). 2301 10. Author's Addresses 2303 Tom George Telephone: +1-972-985-4594 2304 Plano, TX EMail: tgeorge_tx@verizon.net 2305 USA 2307 Brian Bidulock Telephone: +1-780-490-1141 2308 OpenSS7 Corporation EMail: bidulock@openss7.org 2309 1469 Jeffreys Crescent 2310 Edmonton, AB T6L 6T1 2311 Canada 2313 Ram Dantu, Ph.D. Telephone: +1-940-565-2822 2314 Assistant Professor EMail: rdantu@unt.edu 2315 Department of Computer Science 2316 University of North Texas 2317 Denton, TX 76203 2318 USA 2320 Hanns Juergen Schwarzbauer Telephone: +49-89-722-24236 2321 SIEMENS AG EMail: HannsJuergen.Schwarzbauer@Siemens.com 2322 Hofmannstr. 51 2323 81359 Munich 2324 Germany 2326 Ken Morneault Telephone: +1-703-484-3323 2327 Cisco Systems Inc. EMail: kmorneau@cisco.com 2328 13615 Dulles Technology Drive 2329 Herndon, VA 20171 2330 USA 2331 11. Full Copyright Statement 2333 Copyright (C) The Internet Society (2005). This document is subject 2334 to the rights, licenses and restrictions contained in BCP 78, and 2335 except as set forth therein, the authors retain all their rights. 2337 This document and the information contained herein are provided on 2338 an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE 2339 REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND 2340 THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, 2341 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT 2342 THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR 2343 ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A 2344 PARTICULAR PURPOSE. 2346 Intellectual Property 2348 The IETF takes no position regarding the validity or scope of any 2349 Intellectual Property Rights or other rights that might be claimed 2350 to pertain to the implementation or use of the technology 2351 described in this document or the extent to which any license 2352 under such rights might or might not be available; nor does it 2353 represent that it has made any independent effort to identify any 2354 such rights. Information on the procedures with respect to 2355 rights in RFC documents can be found in BCP 78 and BCP 79. 2357 Copies of IPR disclosures made to the IETF Secretariat and any 2358 assurances of licenses to be made available, or the result of an 2359 attempt made to obtain a general license or permission for the use 2360 of such proprietary rights by implementers or users of this 2361 specification can be obtained from the IETF on-line IPR repository 2362 at http://www.ietf.org/ipr. 2364 The IETF invites any interested party to bring to its attention 2365 any copyrights, patents or patent applications, or other 2366 proprietary rights that may cover technology that may be required 2367 to implement this standard. Please address the information to the 2368 IETF at ietf-ipr@ietf.org. 2370 Acknowledgment 2372 Funding for the RFC Editor function is currently provided by the 2373 Internet Society. 2375 This Internet Draft expires August 2005.