M3UA protocol tutorial. Explained 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 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. The M3UA layer adapts the user of MTP3, so it 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

Application Server:

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. However, 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. An ss7 point code represents a signaling gateway. 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 on 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 depend on the message type.

M3ua Header

      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.

Management Messages:

ASP state maintenance messages.

asp state maintenance messages
asp state maintenance messages

The m3ua layer uses this class of messages for changing the ASP state. Initially, when an  ASP is added,  the state of the ASP is down. After association at the SCTP level is up, ASP Up and ASP UP Ack are exchanged.

Then ASP moves to the INACTIVE state. This means ASP can handle management messages but not user or data messages. The ASP down procedure is used to move an ASP state from Inactive to Down.

ASP Traffic Maintenance Message:

Once the ASP is up, the asp traffic maintenance messages are used to prepare AS 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.

asp traffic maintenance messages
asp traffic maintenance messages

Once management wants to remove an AS from processing traffic, the ASP Inactive is used. The AS state is relative to an ASP. One AS might be 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, 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(Destination unavailable), the message is sent from SG to AS for a point code that 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 available to the point code, then it 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 it sends DAVA to the M3UA and TFA to other adjacent SS7 nodes.

DAUD or destination audit, a message is sent 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 to inform 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 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 to establish 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, sends the SS7 message, and receives a response from the remote SSP.

M3ua Startup Sequence
M3ua Startup Sequence