This topic describes:
When an inbound message is received, MTP 3 searches its routing tables for a route that matches the destination point code in the message. If a matching up route is found, the message is distributed to the appropriate user part or application based on the service indicator value in the incoming message and the link type (protocol variant) attribute of the link on which the message was received.
The following illustration shows inbound message distribution:
Only the link type of the incoming link and the service indicator portion of the SIO (service information octet) in the incoming message are used to choose the NSAP to receive the incoming message; the sub-service field of the SIO octet (national/international indicator and optional message priority) is not used.
If a matching down route is found for the message, the message is routed as an outbound message (if MTP 3 is configured as an STP) or the message is discarded. If no matching route is found, the message is always discarded.
Message routing for outbound messages originated by local user parts or applications, or received messages being routed outbound when in STP mode, is based on the destination point code (DPC) and signaling link selection (SLS) field associated with the message. If opcRouting is TRUE, the origination point code (OPC) is also used for outbound routing.
When an outbound message is ready for routing, MTP 3 searches its routing tables for a route that matches the DPC (and optionally the OPC) specified for the message. If a matching down route is found for the message, message routing depends on the value specified for the SLS field, as follows:
If MTP 3 recently routed a message with the same combination of DPC and SLS value, the same linkset and link are chosen for transmission to maintain the order of delivery for messages between the same user parts or applications in the same direction with the same SLS value. This combination of DPC/SLS value is called a route instance. A route instance remains in effect until a configurable amount of time elapses with no new messages containing the same DPC/SLS values.
If no current route instance is in effect, MTP 3 finds all active linksets belonging to the combined linkset associated with the target route and chooses the highest priority for transmission. If multiple linksets of the same priority are active, the linkset is chosen on a round-robin basis from all those at the same (highest) priority. Within the linkset, the actual link to transmit the message on is also chosen on a priority basis, again round-robin when multiple links of the same priority are available.
The application is responsible for assigning SLS values for outgoing messages. Related messages must be assigned the same SLS value in order to be sent over the same link and therefore be guaranteed to arrive in the correct order at the other end. For unrelated messages, the SLS value is varied to achieve the desired degree of load sharing. For example, the ISDN user part (ISUP) typically uses the least significant 4 bits of its circuit identification code (CIC) as the SLS value. Therefore, all messages related to a particular circuit use the same link/linkset. Messages for different circuits are load shared across all available links/linksets.
MTP 3 uses routing masks to help decrease the size of the routing tables that must be configured. Routing masks are bit masks that specify a subset of a destination point code to be matched against the routing table when searching for a route for an inbound or an outbound message.
Use routing masks to implement network and cluster routing in ANSI networks. In the following example, rather than specifying explicit routes to each of the seven remote SPs, routing masks and routes are used. All point codes and routing masks, regardless of point code length, are stored internally as 32-bit unsigned integers.
Routing mask |
Details |
0xFFFFFFFF |
Always specify exact match as first mask. |
0xFFFF00 |
Match on network ID and cluster ID next. |
0xFF0000 |
Match on just network ID last. |
Routes |
Details |
1.1.100, UP |
Always specify an up route to self. |
1.1.1, DOWN, linkset 1 |
Explicit route to STP for network 1, cluster 1. |
1.1.0, DOWN, linkset 1 |
Cluster route to network 1, cluster 1. |
1.2.1, DOWN, linkset 2 |
Explicit route to STP for network 1, cluster 2. |
1.2.0, DOWN, linkset 2 |
Cluster route to network 1, cluster 2. |
2.1.1, DOWN, linkset 3 |
Explicit route to STP for network 2. |
2.0.0, DOWN, linkset 3 |
Network route to network 2. |
Routing masks are global to all links, linksets, and user parts, and are applied to both incoming and outgoing messages. Although the previous example is specific to ANSI networks, routing masks can be applied equally to other networks (ITU-T based networks with 14- or 24-bit point codes) to reduce the size of routing tables.
The following illustration shows network and cluster routing: