M3UA protocol tutorial. Explained with messages and call flows.
We have got an understanding of SIGTRAN. Sigtran has an M3UA adaptation layer for sending and receiving ss7 messages over the IP network. There are multiple adaptation layers, each has its own purpose. M3ua is the most used layer.
It works at the network layer level as per the OSI model. This tutorial explains the m3ua protocol in detail. It also covers the general adaptation layer concepts. M3UA layer adapts the user of MTP3, so provides services to the SCCP and ISUP layers. The user uses the same primitives to/from m3ua, as used for the mtp3 layer. The protocol specification is given in RFC 4666.
Elements in m3ua
A logical entity, a kind of address of node running using SIGTRAN. The simplest example is the point code. An application server can be represented via a point code and with other parameters. The set of parameters identifying an AS is called a routing key. Although this may be a Point code only or Point code and si etc. An AS is identified by a unique integer value, called routing context.
Application Server Process Or ASP:
Asp is the actual entity that handles the protocol messages. ASP maintains the SCTP associations with peer m3ua. An asp can be connected directly to other nodes over the IP network. It is the IPSP model. In the ASP model, m3ua connects to other network elements via a signaling gateway or SG. An asp can serve multiple application servers.
Signaling Gateway or SG:
This node is the interface between SS7 and Sigtran. It’s a logical entity. It implements the Sigtran stack and SS7 stack. For Sigtran there is IP connectivity and for ss7 there is E1 or T1 connectivity. A signaling gateway is represented by an ss7 point code. There can be multiple ASPs and SSPs can connect to a single SG.
Signaling Gateway Process or SGP:
This is the actual process in SG. This maintains the connection with the peer node and ss7 connection with other SSPs. There can be multiple SGPs in a single SG. An SGP can serve multiple Signaling gateways located to the same node.
Messages in m3ua
Like other protocols, m3ua also has protocol messages. Some are protocol management messages and other user messages. Management messages are for updating the element’s status. The data message carries the actual user data over m3ua.
M3ua Protocol messages:
A message has a conman header and parameter section. The parameter section has multiple parameters in TLV or tag length value format. The number of parameters and type of parameters depends on the message type.
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |M3ua Version | Reserved | MessageClass | Message Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Message |
M3ua Version is the version of the protocol. Currently, only version 1 is used.
Message Class is the grouping of messages at a broad level. The following are the message classes.
Management Messages (0) Data Transfer Messages (1) Network Management Messages (2) ASP state maintenance Messages (3) ASP traffic maintenance message (4) Routing Key Management Messages (9). Other values are reserved.
ASP state maintenance messages.
This class of messages is used by the m3ua layer for changing the ASP state. Initially, when an ASP is added, the state of ASP is down. After association at SCTP level is up and ASP Up and ASP UP Ack are exchanged.
Then ASP moves to the INACTIVE state. This means ASP can handle management messages but not any user or data messages. To move an ASP state from Inactive to Down the ASP down procedure is used.
ASP Traffic Maintenance Message:
Once the ASP is up, the asp traffic maintenance messages are used to make AS, ready for receiving/sending Sigtran user traffic. The state of AS is changed within an ASP. To move an AS inactive for traffic, ASP active is used.
Once management wants to remove an AS from processing traffic, the ASP Inactive is used. The AS state is relative to an ASP. This might happen that one AS is active in an ASP, while the other is not. The routing context of AS is included in the ASP Active message for moving it to the active state. Routing context is an optional parameter, if not included then all AS configured in an ASP will be marked active.
Network Management Messages:
Once as is active it can send and receive messages to/from other point codes in SS7 via a signaling gateway. The point code or SSN status may change on SG for a node in the SS7 network. There are m3ua management messages used to convey the status of point code and SSN to nodes connected to SG.
DUNA or destination unavailable, message is sent from SG to AS for a point code which is no more available from SG. If the SG received TFP from MTP3 for an ss7 point code and there is no other active route is available to the point code then sends DUNA to the M3UA and TFP to other adjacent SS7 nodes.
DAVA or destination available, a message is sent from SG to AS once an unavailable point code gets available. If the SG receives TFPA from MTP3 for an ss7 point code and no other route to the point code is available, then sends DAVA to the M3UA and TFA to other adjacent SS7 nodes.
DAUD or destination audit, a message is sent bt as to the SG, for querying the status of an SSP point code.
SCON or Signaling Congestion, this message is sent by SG to the AS for informing that a point code is congested.
DUPU or Destination User Part Unavailable conveys the status of an SSN on an SS7 point code.
DRST or Destination Restricted message, conveys to the AS from the SG, that a remote ss7 point code is restricted.
User data Message, this is the user application message, which carries the actual ss7 messages for m3ua users.
SCTP services for M3ua
SCTP protocol provides transport services to the M3ua. SCTP needs to configure along with the adaptation layer configuration. It requires the parameters needed for setting up an association with the peer or remote SCTP. While configuring a local ASP or SGP, a local endpoint is created in the SCTP layer.
A remote endpoint is created when a remote ASP or SGP is configured. Each endpoint has a port and a list of IP addresses. When m3ua is enabled, it starts setting up an SCTP association between local and remote endpoints by issuing a connect request to the SCTP layer. Once an association is set up, the user layer receives the COMM UP indication, and the SCTP user can transmit or receive the messages.
M3ua Startup sequence
Following is the startup sequence where ASP/AS comes up with a signaling gateway and sends the SS7 message and received a response from the remote SSP.