<p>osmith has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/14096">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">GSUP: document inter-MSC handover additions<br><br>Message formats of the new messages look mostly the same (IMSI,<br>Message Class, Source Name, Destination Name, AN-APDU). That is, because<br>AN-APDU is storing results, error reasons etc. This can be seen clearly<br>in osmo-msc.git:<br>* src/libmsc/msc_a_remote.c:msc_a_remote_fsm_communicating()<br>* src/libmsc/msc_i_remote.c:msc_i_remote_fsm_ready()<br><br>The message squence charts in the E Procedures section are directly<br>based on Neels' interMSC_HO_GSUP_msgs.txt [1].<br><br>It seems that using AN-APDU made some other new IEs redundant: RR Cause,<br>BSSAP Cause, Session Management Cause had been added to GSUP for the MSC<br>handover, and are documented now, but they are currently not used in<br>osmo-msc.git. The new message OSMO_GSUP_MSGT_E_ABORT is not used either,<br>so I left a stub for it in the message format section.<br><br>[1] https://osmocom.org/attachments/3720/interMSC_HO_GSUP_msgs.txt<br><br>Related: OS#3774, OS#3619<br>Change-Id: I6b9f23d08cfe53c8b77f51c6afb900c2badc9e2c<br>---<br>M common/chapters/gsup.adoc<br>1 file changed, 410 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/96/14096/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/common/chapters/gsup.adoc b/common/chapters/gsup.adoc</span><br><span>index 1fd0bb6..679ee2d 100644</span><br><span>--- a/common/chapters/gsup.adoc</span><br><span>+++ b/common/chapters/gsup.adoc</span><br><span>@@ -219,6 +219,112 @@</span><br><span> }</span><br><span> ----</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+=== Procedures (E Interface)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The E interface connects two MSCs in the traditional GSM MAP world. It is used</span><br><span style="color: hsl(120, 100%, 40%);">+for the inter-MSC handover. In GSUP, we don't need that extra connection, as we</span><br><span style="color: hsl(120, 100%, 40%);">+route the messages over the GSUP server (OsmoHLR) instead.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Whenever MSC-A is sending to MSC-B, and vice-versa, the message needs to pass</span><br><span style="color: hsl(120, 100%, 40%);">+through the GSUP server. In order to make the following message sequence charts</span><br><span style="color: hsl(120, 100%, 40%);">+easier to read, this step has been omitted.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== E Handover</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+MSC-A has an active RAN connection and hands it over to MSC-B.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+.E Handover (Normal Case)</span><br><span style="color: hsl(120, 100%, 40%);">+["mscgen"]</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+msc {</span><br><span style="color: hsl(120, 100%, 40%);">+  hscale="1.5";</span><br><span style="color: hsl(120, 100%, 40%);">+  A [label="MSC-A"], B [label="MSC-B"];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  A => B [label="E Prepare Handover Request\n\n(AN-APDU: Handover Request)"];</span><br><span style="color: hsl(120, 100%, 40%);">+  |||;</span><br><span style="color: hsl(120, 100%, 40%);">+  A <= B [label="E Prepare Handover Result\n\n(AN-APDU: Handover Request Ack)"];</span><br><span style="color: hsl(120, 100%, 40%);">+  |||;</span><br><span style="color: hsl(120, 100%, 40%);">+  A <= B [label="E Process Access Signalling Request\n\n(AN-APDU: Handover Detect)"];</span><br><span style="color: hsl(120, 100%, 40%);">+  |||;</span><br><span style="color: hsl(120, 100%, 40%);">+  A <= B [label="E Send End Signal Request\n\n(AN-APDU: Handover Complete)"];</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== E Subsequent Handover</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+MSC-B has an active RAN connection, and asks MSC-A to hand it over to MSC-B'.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+.E Subsequent Handover (Normal Case)</span><br><span style="color: hsl(120, 100%, 40%);">+["mscgen"]</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+msc {</span><br><span style="color: hsl(120, 100%, 40%);">+  hscale="1.5";</span><br><span style="color: hsl(120, 100%, 40%);">+  A [label="MSC-A"], B [label="MSC-B"], B_ [label="MSC-B'"];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  B => A  [label="E Prepare Subsequent Handover Request\n\n(AN-APDU: Handover Required)"];</span><br><span style="color: hsl(120, 100%, 40%);">+  |||;</span><br><span style="color: hsl(120, 100%, 40%);">+  A => B_ [label="E Prepare Handover Request\n\n(AN-APDU: Handover Request)"];</span><br><span style="color: hsl(120, 100%, 40%);">+  |||;</span><br><span style="color: hsl(120, 100%, 40%);">+  B_ => A [label="E Prepare Handover Response\n\n(AN-APDU: Handover Request Ack)"];</span><br><span style="color: hsl(120, 100%, 40%);">+  |||;</span><br><span style="color: hsl(120, 100%, 40%);">+  A => B  [label="E Prepare Subsequent Handover Response\n\n(AN-APDU: Handover Request Ack)"];</span><br><span style="color: hsl(120, 100%, 40%);">+  |||;</span><br><span style="color: hsl(120, 100%, 40%);">+  B_ => A [label="E Process Access Signalling Request\n\n(AN-APDU: Handover Detect)"];</span><br><span style="color: hsl(120, 100%, 40%);">+  |||;</span><br><span style="color: hsl(120, 100%, 40%);">+  B_ => A [label="E Process Access Signalling Request\n\n(AN-APDU: Handover Complete)"];</span><br><span style="color: hsl(120, 100%, 40%);">+  |||;</span><br><span style="color: hsl(120, 100%, 40%);">+  A => B  [label="E Close"];</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== E Forward and Process Access Signalling</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+MSC-A is forwarding a message from its BSS (Base Station Subsystem) to MSC-B.</span><br><span style="color: hsl(120, 100%, 40%);">+MSC-B forwards the message to its BSS, and answers to MSC-A with a Process</span><br><span style="color: hsl(120, 100%, 40%);">+Access Signalling Request.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+.E Process and Forward Access Signalling (Normal Case)</span><br><span style="color: hsl(120, 100%, 40%);">+["mscgen"]</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+msc {</span><br><span style="color: hsl(120, 100%, 40%);">+  hscale="1.5";</span><br><span style="color: hsl(120, 100%, 40%);">+  A [label="MSC-A"], B [label="MSC-B"];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  A => B [label="E Forward Access Signalling Request\n\n(AN-APDU: DTAP, e.g. CC, SMS, ...)"];</span><br><span style="color: hsl(120, 100%, 40%);">+  |||;</span><br><span style="color: hsl(120, 100%, 40%);">+  B => A [label="E Process Access Signalling Request\n\n(AN-APDU: DTAP, e.g. CC, SMS, ...)"];</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== E Routing Error</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The GSUP server can not route any of the requests above, and responds with an</span><br><span style="color: hsl(120, 100%, 40%);">+E Routing Error. Possible reasons for not being able to route the message are</span><br><span style="color: hsl(120, 100%, 40%);">+missing routing IEs, a mismatching source name IE (<<gsup-ie-source-name>>),</span><br><span style="color: hsl(120, 100%, 40%);">+the destination not being connected to the GSUP server or a failed attempt to</span><br><span style="color: hsl(120, 100%, 40%);">+send the message from the GSUP sever to the destination. To figure out, what</span><br><span style="color: hsl(120, 100%, 40%);">+went wrong in detail, refer to the GSUP server's logs.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+In the traditional GSM MAP world, the participants of an E procedure are</span><br><span style="color: hsl(120, 100%, 40%);">+directly connected, hence this routing error message does not exist in MAP.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+.E Routing Error example</span><br><span style="color: hsl(120, 100%, 40%);">+["mscgen"]</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+msc {</span><br><span style="color: hsl(120, 100%, 40%);">+  hscale="1.5";</span><br><span style="color: hsl(120, 100%, 40%);">+  A [label="MSC-A"], HLR [label="GSUP Server (OsmoHLR)"], B [label="MSC-B"];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  A => HLR [label="E Prepare Handover Request"];</span><br><span style="color: hsl(120, 100%, 40%);">+  HLR => A [label="E Routing Error"];</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+////</span><br><span style="color: hsl(120, 100%, 40%);">+End of "Procedures (E Interface)" chapter. Remember to place unrelated</span><br><span style="color: hsl(120, 100%, 40%);">+procedures at the end of the "Procedures" chapter, not here!</span><br><span style="color: hsl(120, 100%, 40%);">+////</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> === Message Format</span><br><span> </span><br><span> ==== General</span><br><span>@@ -722,6 +828,207 @@</span><br><span> |51|IMEI Check Result|<<gsup-ie-imei-result>>|M|TLV|3</span><br><span> |===</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+==== E Prepare Handover Request</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Direction: MSC-A=MSC-I => MSC-B=MSC-T (via HLR)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[options="header",cols="5%,45%,20%,10%,10%,10%"]</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+|IEI|IE|Type|Presence|Format|Length</span><br><span style="color: hsl(120, 100%, 40%);">+|  |Message Type|<<gsup-ie-msgtype>>|M|V|1</span><br><span style="color: hsl(120, 100%, 40%);">+|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10</span><br><span style="color: hsl(120, 100%, 40%);">+|0a|Message Class|<<gsup-ie-message-class>>|M|TLV|3</span><br><span style="color: hsl(120, 100%, 40%);">+|60|Source Name|<<gsup-ie-source-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|61|Destination Name|<<gsup-ie-destination-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|62|AN-APDU|<<gsup-ie-an-apdu>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== E Prepare Handover Error</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Direction: MSC-B=MSC-T => MSC-A=MSC-I (via HLR)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[options="header",cols="5%,45%,20%,10%,10%,10%"]</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+|IEI|IE|Type|Presence|Format|Length</span><br><span style="color: hsl(120, 100%, 40%);">+|  |Message Type|<<gsup-ie-msgtype>>|M|V|1</span><br><span style="color: hsl(120, 100%, 40%);">+|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10</span><br><span style="color: hsl(120, 100%, 40%);">+|0a|Message Class|<<gsup-ie-message-class>>|M|TLV|3</span><br><span style="color: hsl(120, 100%, 40%);">+|60|Source Name|<<gsup-ie-source-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|61|Destination Name|<<gsup-ie-destination-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|62|AN-APDU|<<gsup-ie-an-apdu>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== E Prepare Handover Result</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Direction: MSC-B=MSC-T => MSC-A=MSC-I (via HLR)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[options="header",cols="5%,45%,20%,10%,10%,10%"]</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+|IEI|IE|Type|Presence|Format|Length</span><br><span style="color: hsl(120, 100%, 40%);">+|  |Message Type|<<gsup-ie-msgtype>>|M|V|1</span><br><span style="color: hsl(120, 100%, 40%);">+|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10</span><br><span style="color: hsl(120, 100%, 40%);">+|0a|Message Class|<<gsup-ie-message-class>>|M|TLV|3</span><br><span style="color: hsl(120, 100%, 40%);">+|60|Source Name|<<gsup-ie-source-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|61|Destination Name|<<gsup-ie-destination-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|62|AN-APDU|<<gsup-ie-an-apdu>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== E Prepare Subsequent Handover Request</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Direction: MSC-B=MSC-I => MSC-A (via HLR)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[options="header",cols="5%,45%,20%,10%,10%,10%"]</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+|IEI|IE|Type|Presence|Format|Length</span><br><span style="color: hsl(120, 100%, 40%);">+|  |Message Type|<<gsup-ie-msgtype>>|M|V|1</span><br><span style="color: hsl(120, 100%, 40%);">+|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10</span><br><span style="color: hsl(120, 100%, 40%);">+|0a|Message Class|<<gsup-ie-message-class>>|M|TLV|3</span><br><span style="color: hsl(120, 100%, 40%);">+|60|Source Name|<<gsup-ie-source-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|61|Destination Name|<<gsup-ie-destination-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|62|AN-APDU|<<gsup-ie-an-apdu>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== E Prepare Subsequent Handover Error</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Direction: MSC-A => MSC-B=MSC-I (via HLR)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[options="header",cols="5%,45%,20%,10%,10%,10%"]</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+|IEI|IE|Type|Presence|Format|Length</span><br><span style="color: hsl(120, 100%, 40%);">+|  |Message Type|<<gsup-ie-msgtype>>|M|V|1</span><br><span style="color: hsl(120, 100%, 40%);">+|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10</span><br><span style="color: hsl(120, 100%, 40%);">+|0a|Message Class|<<gsup-ie-message-class>>|M|TLV|3</span><br><span style="color: hsl(120, 100%, 40%);">+|60|Source Name|<<gsup-ie-source-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|61|Destination Name|<<gsup-ie-destination-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|62|AN-APDU|<<gsup-ie-an-apdu>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== E Prepare Subsequent Handover Result</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Direction: MSC-A => MSC-B=MSC-I (via HLR)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[options="header",cols="5%,45%,20%,10%,10%,10%"]</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+|IEI|IE|Type|Presence|Format|Length</span><br><span style="color: hsl(120, 100%, 40%);">+|  |Message Type|<<gsup-ie-msgtype>>|M|V|1</span><br><span style="color: hsl(120, 100%, 40%);">+|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10</span><br><span style="color: hsl(120, 100%, 40%);">+|0a|Message Class|<<gsup-ie-message-class>>|M|TLV|3</span><br><span style="color: hsl(120, 100%, 40%);">+|60|Source Name|<<gsup-ie-source-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|61|Destination Name|<<gsup-ie-destination-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|62|AN-APDU|<<gsup-ie-an-apdu>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== E Send End Signal Request</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Direction: MSC-B=MSC-T => MSC-A=MSC-I (via HLR)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[options="header",cols="5%,45%,20%,10%,10%,10%"]</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+|IEI|IE|Type|Presence|Format|Length</span><br><span style="color: hsl(120, 100%, 40%);">+|  |Message Type|<<gsup-ie-msgtype>>|M|V|1</span><br><span style="color: hsl(120, 100%, 40%);">+|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10</span><br><span style="color: hsl(120, 100%, 40%);">+|0a|Message Class|<<gsup-ie-message-class>>|M|TLV|3</span><br><span style="color: hsl(120, 100%, 40%);">+|60|Source Name|<<gsup-ie-source-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|61|Destination Name|<<gsup-ie-destination-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|62|AN-APDU|<<gsup-ie-an-apdu>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== E Send End Signal Error</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Direction: MSC-A=MSC-I => MSC-B=MSC-T (via HLR)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[options="header",cols="5%,45%,20%,10%,10%,10%"]</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+|IEI|IE|Type|Presence|Format|Length</span><br><span style="color: hsl(120, 100%, 40%);">+|  |Message Type|<<gsup-ie-msgtype>>|M|V|1</span><br><span style="color: hsl(120, 100%, 40%);">+|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10</span><br><span style="color: hsl(120, 100%, 40%);">+|0a|Message Class|<<gsup-ie-message-class>>|M|TLV|3</span><br><span style="color: hsl(120, 100%, 40%);">+|60|Source Name|<<gsup-ie-source-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|61|Destination Name|<<gsup-ie-destination-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|62|AN-APDU|<<gsup-ie-an-apdu>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== E Send End Signal Result</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Direction: MSC-A => MSC-B=MSC-I (via HLR)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[options="header",cols="5%,45%,20%,10%,10%,10%"]</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+|IEI|IE|Type|Presence|Format|Length</span><br><span style="color: hsl(120, 100%, 40%);">+|  |Message Type|<<gsup-ie-msgtype>>|M|V|1</span><br><span style="color: hsl(120, 100%, 40%);">+|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10</span><br><span style="color: hsl(120, 100%, 40%);">+|0a|Message Class|<<gsup-ie-message-class>>|M|TLV|3</span><br><span style="color: hsl(120, 100%, 40%);">+|60|Source Name|<<gsup-ie-source-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|61|Destination Name|<<gsup-ie-destination-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|62|AN-APDU|<<gsup-ie-an-apdu>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== E Process Access Signalling Request</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Direction: MSC-B=MSC-T => MSC-A=MSC-I (via HLR)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[options="header",cols="5%,45%,20%,10%,10%,10%"]</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+|IEI|IE|Type|Presence|Format|Length</span><br><span style="color: hsl(120, 100%, 40%);">+|  |Message Type|<<gsup-ie-msgtype>>|M|V|1</span><br><span style="color: hsl(120, 100%, 40%);">+|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10</span><br><span style="color: hsl(120, 100%, 40%);">+|0a|Message Class|<<gsup-ie-message-class>>|M|TLV|3</span><br><span style="color: hsl(120, 100%, 40%);">+|60|Source Name|<<gsup-ie-source-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|61|Destination Name|<<gsup-ie-destination-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|62|AN-APDU|<<gsup-ie-an-apdu>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== E Forward Access Signalling Request</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Direction: MSC-A => MSC-B=MSC-I (via HLR)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[options="header",cols="5%,45%,20%,10%,10%,10%"]</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+|IEI|IE|Type|Presence|Format|Length</span><br><span style="color: hsl(120, 100%, 40%);">+|  |Message Type|<<gsup-ie-msgtype>>|M|V|1</span><br><span style="color: hsl(120, 100%, 40%);">+|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10</span><br><span style="color: hsl(120, 100%, 40%);">+|0a|Message Class|<<gsup-ie-message-class>>|M|TLV|3</span><br><span style="color: hsl(120, 100%, 40%);">+|60|Source Name|<<gsup-ie-source-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|61|Destination Name|<<gsup-ie-destination-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|62|AN-APDU|<<gsup-ie-an-apdu>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== E Close</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Direction: MSC-A => MSC-B (via HLR)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[options="header",cols="5%,45%,20%,10%,10%,10%"]</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+|IEI|IE|Type|Presence|Format|Length</span><br><span style="color: hsl(120, 100%, 40%);">+|  |Message Type|<<gsup-ie-msgtype>>|M|V|1</span><br><span style="color: hsl(120, 100%, 40%);">+|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10</span><br><span style="color: hsl(120, 100%, 40%);">+|0a|Message Class|<<gsup-ie-message-class>>|M|TLV|3</span><br><span style="color: hsl(120, 100%, 40%);">+|60|Source Name|<<gsup-ie-source-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|61|Destination Name|<<gsup-ie-destination-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== E Abort</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This message was added to GSUP for the inter-MSC handover. But so far it is not</span><br><span style="color: hsl(120, 100%, 40%);">+used yet.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== E Routing Error</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Direction: GSUP Server (HLR) => GSUP Client (MSC)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[options="header",cols="5%,45%,20%,10%,10%,10%"]</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+|IEI|IE|Type|Presence|Format|Length</span><br><span style="color: hsl(120, 100%, 40%);">+|  |Message Type|<<gsup-ie-msgtype>>|M|V|1</span><br><span style="color: hsl(120, 100%, 40%);">+|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10</span><br><span style="color: hsl(120, 100%, 40%);">+|0a|Message Class|<<gsup-ie-message-class>>|M|TLV|3</span><br><span style="color: hsl(120, 100%, 40%);">+|60|Source Name|<<gsup-ie-source-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|61|Destination Name|<<gsup-ie-destination-name>>|M|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|30|Session ID|<<gsup-ie-session-id>>|M|TLV|6</span><br><span style="color: hsl(120, 100%, 40%);">+|31|Session State|<<gsup-ie-session-state>>|M|TLV|3</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> === Information Elements</span><br><span> </span><br><span> [[gsup-ie-msgtype]]</span><br><span>@@ -986,6 +1293,7 @@</span><br><span> |0x07|Freeze P-TMSI|<<gsup-ie-empty>></span><br><span> |0x08|MSISDN|ISDN-AddressString/octet, <<gsup-ie-msisdn>></span><br><span> |0x09|HLR Number|<<gsup-ie-hlr>></span><br><span style="color: hsl(120, 100%, 40%);">+|0x0a|Message Class| <<gsup-ie-message-class>></span><br><span> |0x10|PDP Context ID|<<gsup-ie-pdpctxid>></span><br><span> |0x11|PDP Type|<<gsup-ie-pdptype>></span><br><span> |0x12|Access Point Name|<<gsup-ie-apn>></span><br><span>@@ -1012,6 +1320,12 @@</span><br><span> |0x46|SM Alert Reason|<<gsup-ie-sm-alert-rsn>></span><br><span> |0x50|IMEI|<<gsup-ie-imei>></span><br><span> |0x51|IMEI Check Result|<<gsup-ie-imei-result>></span><br><span style="color: hsl(120, 100%, 40%);">+|0x60|Source Name|<<gsup-ie-source-name>></span><br><span style="color: hsl(120, 100%, 40%);">+|0x61|Destination Name|<<gsup-ie-destination-name>></span><br><span style="color: hsl(120, 100%, 40%);">+|0x62|AN-APDU|<<gsup-ie-an-apdu>></span><br><span style="color: hsl(120, 100%, 40%);">+|0x63|RR Cause|<<gsup-ie-cause-rr>></span><br><span style="color: hsl(120, 100%, 40%);">+|0x64|BSSAP Cause|<<gsup-ie-cause-bssap>></span><br><span style="color: hsl(120, 100%, 40%);">+|0x65|Session Management Cause|<<gsup-ie-cause-sm>></span><br><span> |===</span><br><span> </span><br><span> [[gsup-ie-empty]]</span><br><span>@@ -1192,6 +1506,102 @@</span><br><span> |0x02|NACK</span><br><span> |===</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+[[gsup-ie-message-class]]</span><br><span style="color: hsl(120, 100%, 40%);">+==== Message Class</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Indicate, which kind of message is being sent. This allows to trivially dispatch</span><br><span style="color: hsl(120, 100%, 40%);">+incoming GSUP messages to the right code paths, and should make writing a GSUP</span><br><span style="color: hsl(120, 100%, 40%);">+to MAP converter easier.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This IE was introduced together with inter-MSC handover code. Inter-MSC messages</span><br><span style="color: hsl(120, 100%, 40%);">+must include this IE and set it to the appropriate type. The intention of</span><br><span style="color: hsl(120, 100%, 40%);">+creating this IE was to use it with all GSUP messages eventually.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[options="header",cols="10%,20%,70%"]</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+|Type|Always present|Description</span><br><span style="color: hsl(120, 100%, 40%);">+|1|no |Subscriber Management</span><br><span style="color: hsl(120, 100%, 40%);">+|2|no |SMS</span><br><span style="color: hsl(120, 100%, 40%);">+|3|no |USSD</span><br><span style="color: hsl(120, 100%, 40%);">+|4|yes|Inter-MSC</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[[gsup-ie-source-name]]</span><br><span style="color: hsl(120, 100%, 40%);">+==== Source Name</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+When the GSUP server is asked to forward a message between two GSUP clients, the</span><br><span style="color: hsl(120, 100%, 40%);">+source name is the IPA name of the client where the message is coming from. The</span><br><span style="color: hsl(120, 100%, 40%);">+source name IE is present, when the GSUP server forwards the message to the</span><br><span style="color: hsl(120, 100%, 40%);">+destination. Although redundant, the source name IE is also sent from the source</span><br><span style="color: hsl(120, 100%, 40%);">+to the GSUP server (so it is easier to follow the network traces).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Source and destination names are sent as strings.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+.Message forwarding example</span><br><span style="color: hsl(120, 100%, 40%);">+["mscgen"]</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+msc {</span><br><span style="color: hsl(120, 100%, 40%);">+  hscale="1.5";</span><br><span style="color: hsl(120, 100%, 40%);">+  A [label="GSUP Client A"],</span><br><span style="color: hsl(120, 100%, 40%);">+  HLR [label="GSUP Server (OsmoHLR)"],</span><br><span style="color: hsl(120, 100%, 40%);">+  B [label="GSUP Client B"];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  A => HLR [label="Source: A, Destination: B"];</span><br><span style="color: hsl(120, 100%, 40%);">+  HLR => B [label="Source: A, Destination: B"];</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[[gsup-ie-destination-name]]</span><br><span style="color: hsl(120, 100%, 40%);">+==== Destination Name</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The receiving counterpart to source name (<<gsup-ie-source-name>>).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[[gsup-ie-an-apdu]]</span><br><span style="color: hsl(120, 100%, 40%);">+==== AN-APDU</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This IE encodes the AN-APDU parameter described in 3GPP TS 29.002 7.6.9.1.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+.Access Network Protocol</span><br><span style="color: hsl(120, 100%, 40%);">+[options="header",cols="10%,90%"]</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+|Type|Description</span><br><span style="color: hsl(120, 100%, 40%);">+|0x01|BSSAP</span><br><span style="color: hsl(120, 100%, 40%);">+|0x02|RANAP</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[packetdiag]</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+    colwidth = 8</span><br><span style="color: hsl(120, 100%, 40%);">+  node_height = 24</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    0-6:    AN-APDU IEI</span><br><span style="color: hsl(120, 100%, 40%);">+   7:      Res</span><br><span style="color: hsl(120, 100%, 40%);">+   8-15:   Length of IE content</span><br><span style="color: hsl(120, 100%, 40%);">+  16-23:  Access Network Protocol</span><br><span style="color: hsl(120, 100%, 40%);">+       24-31:  Data</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[[gsup-ie-cause-rr]]</span><br><span style="color: hsl(120, 100%, 40%);">+==== RR Cause</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This IE contains the reason for release or completion of an assignment or</span><br><span style="color: hsl(120, 100%, 40%);">+handover. See 3GPP TS 44.018 10.5.2.31 for reference.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[[gsup-ie-cause-bssap]]</span><br><span style="color: hsl(120, 100%, 40%);">+==== BSSAP Cause</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This IE indicates why an event is happening on the BSSAP interface. See 3GPP TS</span><br><span style="color: hsl(120, 100%, 40%);">+48.008 3.2.2.5 for reference.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[[gsup-ie-cause-sm]]</span><br><span style="color: hsl(120, 100%, 40%);">+==== Session Management Cause</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This IE contains the reason for rejecting a session management request. See 3GPP</span><br><span style="color: hsl(120, 100%, 40%);">+TS 24.008 10.5.6.6 / Table 10.5.157 for reference.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> === Session (transaction) management</span><br><span> </span><br><span> Unlike TCAP/MAP, GSUP is just a transport layer without the</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/14096">change 14096</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/14096"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-gsm-manuals </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I6b9f23d08cfe53c8b77f51c6afb900c2badc9e2c </div>
<div style="display:none"> Gerrit-Change-Number: 14096 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: osmith <osmith@sysmocom.de> </div>