diff options
Diffstat (limited to 'common/chapters/gsup.adoc')
-rw-r--r-- | common/chapters/gsup.adoc | 859 |
1 files changed, 859 insertions, 0 deletions
diff --git a/common/chapters/gsup.adoc b/common/chapters/gsup.adoc new file mode 100644 index 0000000..733b60e --- /dev/null +++ b/common/chapters/gsup.adoc @@ -0,0 +1,859 @@ +[[gsup]] +== GPRS Subscriber Update Protocol + +=== General + +This chapter describes the remote protocol that is used by the SGSN to update +and manage the local subscriber list. Functionally, it resembles the +interface between the SGSN on the one hand side, and HLR/AUC on the +other side. + +For more information, see the specification of the Gr interface (3GPP TS 03.60). + +Traditionally, the GSM MAP (Mobile Application Part) protocol is used +for this purpose, running on top of a full telecom signalling protocol +stck of MTP2/MTP3/SCCP/TCAP, or any of the SIGTRAN alternatvives. + +In order to avoid many of the complexities of MAP, which are difficult +to implement in the plain C language evnironment of the Osmocom +cellular network elements like the SGSN, we introduce the GSUP +protocol. + +The GSUP protocol and the messages are designed after the +corresponding MAP messages (see 3GPP TS 09.02) with the following +main differences: + +* The encoding uses TLV structures instead of ASN.1 BER +* Segmentation is not used, i.e. we rely on the fact that the + underlying transport protocol can transport signalling messages of + any size. + +=== Connection + +The protocol expects that a reliable, ordered, packet boundaries preserving +connection is used (e.g. IPA over TCP). The remote peer is either a service +that understands the protocol natively or a wrapper service that maps the +messages to/from real MAP messages that can be used to directly communicate +with an HLR. + +=== Using IPA + +By default, the following identifiers should be used: + +* IPA Stream ID: 0xEE (OSMO) +* IPA OSMO protocol extension: 0x05 + +For more information about the IPA multiplex, please see the 'OsmoBTS +Abis/IP Specification'. + +=== Procedures + +==== Authentication management + +The SGSN sends a SEND_AUTHENTICATION_INFO_REQ message containing the MS's IMSI +to the peer. On errors, especially if authentication info is not available for +that IMSI, the peer returns a SEND_AUTHENTICATION_INFO_ERR message. Otherwise +the peer returns a SEND_AUTHENTICATION_INFO_RES message. If this message +contains at least one authentication tuple, the SGSN replaces all tuples that +are assigned to the subscriber. If the message doesn't contain any tuple the +SGSN may reject the Attach Request. (see 3GPP TS 09.02, 25.5.6) + +.Send Authentication Info (Normal Case) +["mscgen"] +---- +msc { + hscale="1.5"; + SGSN [label="SGSN"], Peer [label="Network Peer (HLR)"]; + + SGSN => Peer [label="SEND AUTHENTICATION INFO REQUEST (IMSI)"]; + Peer => SGSN [label="SEND AUTHENTICATION INFO RESPONSE (Tuples)"]; +} +---- + +.Send Authentication Info (Erroneous Case) +["mscgen"] +---- +msc { + hscale="1.5"; + SGSN [label="SGSN"], Peer [label="Network Peer (HLR)"]; + + SGSN => Peer [label="SEND AUTHENTICATION INFO REQUEST (IMSI)"]; + Peer => SGSN [label="SEND AUTHENTICATION INFO ERROR (Cause)"]; +} +---- + +==== Reporting of Authentication Failure + +Using this procedure, the SGSN reports authentication failures to the +HLR. + +.Authentication Failure Report (Normal Case) +["mscgen"] +---- +msc { + hscale="1.5"; + SGSN [label="SGSN"], Peer [label="Network Peer (HLR)"]; + + SGSN => Peer [label="AUTHENTICATION FAILURE REPORT (IMSI)"]; +} +---- + +==== Location Updating + +The SGSN sends a UPDATE_LOCATION_REQ to the peer. If the request is denied by +the network, the peer returns an UPDATE_LOCATION_ERR message to the SGSN. +Otherwise the peer returns an UPDATE_LOCATION_RES message containing all +information fields that shall be inserted into the subscriber record. If +the 'PDP info complete' information element is set in the message, the SGSN +clears existing PDP information fields in the subscriber record first. +(see 3GPP TS 09.02, 19.1.1.8) + +.Update Location (Normal Case) +["mscgen"] +---- +msc { + hscale="1.5"; + SGSN [label="SGSN"], Peer [label="Network Peer (HLR)"]; + + SGSN => Peer [label="UPDATE LOCATION REQUEST (IMSI)"]; + Peer => SGSN [label="INSERT SUBSCRIBER DATA"]; + SGSN => Peer [label="INSERT SUBSCRIBER DATA ACK"]; + Peer => SGSN [label="UPDATE LOCATTION RESULT"]; +} +---- + +.Update Location (Error Case) +["mscgen"] +---- +msc { + hscale="1.5"; + SGSN [label="SGSN"], Peer [label="Network Peer (HLR)"]; + + SGSN => Peer [label="UPDATE LOCATION REQUEST (IMSI)"]; + Peer => SGSN [label="UPDATE LOCATTION ERROR (Cause)"]; +} +---- + +==== Location Cancellation + +Using the Location Cancellation procedure, the Network Peer (HLR) can +request the SGSN to remove a subscriber record. + +.Cancel Location (Normal Case) +["mscgen"] +---- +msc { + hscale="1.5"; + SGSN [label="SGSN"], Peer [label="Network Peer (HLR)"]; + + Peer => SGSN [label="CANCEL LOCATION REQUEST (IMSI)"]; + SGSN => Peer [label="CANCEL LOCATION RESULT"]; +} +---- + +.Cancel Location (Error Case) +["mscgen"] +---- +msc { + hscale="1.5"; + SGSN [label="SGSN"], Peer [label="Network Peer (HLR)"]; + + Peer => SGSN [label="CANCEL LOCATION REQUEST (IMSI)"]; + SGSN => Peer [label="CANCEL LOCATION ERROR (Cause)"]; +} +---- + +==== Purge MS + +Using the Purge MS procedure, the SGSN can request purging of MS +related state from a previous SGSN during an inter-SGSN location +update. + +.Purge MS (Normal Case) +["mscgen"] +---- +msc { + hscale="1.5"; + SGSN [label="SGSN"], Peer [label="Network Peer (HLR)"]; + + SGSN => Peer [label="PURGE MS REQUEST (IMSI)"]; + Peer => SGSN [label="PURGE MS RESULT"]; +} +---- + +==== Delete Subscriber Data + +Using the Delete Subscriber Data procedure, the Peer (HLR) can remove +some of the subscriber data from the SGSN. This is used in case the +subscription details (e.g. PDP Contexts / APNs) change while the +subscriber is registred to that SGSN. + +.Delete Subscriber Data (Normal Case) +["mscgen"] +---- +msc { + hscale="1.5"; + SGSN [label="SGSN"], Peer [label="Network Peer (HLR)"]; + + Peer => SGSN [label="DELETE SUBSCRIBER DATA REQUEST (IMSI)"]; + SGSN => Peer [label="DELETE SUBSCRIBER DATA RESULT"]; +} +---- + +=== Message Format + +==== General + +Every message is based on the following message format + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|=== + +If a numeric range is indicated in the 'presence' column, multiple information +elements with the same tag may be used in sequence. The information elements +shall be sent in the given order. Nevertheless after the generic part the +receiver shall be able to received them in any order. Unknown IE shall be +ignored. + +==== Send Authentication Info Request + +Direction: SGSN => Network peer + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|28|CN Domain|<<gsup-ie-cndomain>>|O|TLV|3 +|26|AUTS|<<gsup-ie-auts>>|C|TLV|18 +|20|RAND|<<gsup-ie-rand>>|C|TLV|18 +|=== + +The conditional 'AUTS' and 'RAND' IEs are both present in case the SIM +(via UE) requests an UMTS AKA re-synchronization procedure. Eiter +both optional IEs are present, or none of them. + +==== Send Authentication Info Error + +Direction: Network peer => SGSN + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|02|Cause|<<gsup-ie-cause>>|M|TLV|3 +|=== + +==== Send Authentication Info Response + +Direction: Network peer => SGSN + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|03|Auth Tuple|<<gsup-ie-authtuple>>|0-5|TLV|36 +|=== + +==== Authentication Failure Report + +Direction: SGSN => Network peer + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|28|CN Domain|<<gsup-ie-cndomain>>|O|TLV|3 +|=== + +==== Update Location Request + +Direction: SGSN => Network peer + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|28|CN Domain|<<gsup-ie-cndomain>>|O|TLV|3 +|=== + +==== Update Location Error + +Direction: Network peer => SGSN + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|02|Cause|<<gsup-ie-cause>>|M|TLV|3 +|=== + +==== Update Location Result + +Direction: Network peer => SGSN + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|08|MSISDN|<<gsup-ie-msisdn>>|O|TLV|0-9 +|09|HLR Number|<<gsup-ie-hlr>>|O|TLV|0-9 +|04|PDP info complete|<<gsup-ie-empty>>|O|TLV|2 +|05|PDP info|<<gsup-ie-pdpinfo>>|1-10|TLV| +|=== + +If the PDP info complete IE is present, the old PDP info list shall be cleared. + +==== Location Cancellation Request + +Direction: Network peer => SGSN + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|28|CN Domain|<<gsup-ie-cndomain>>|O|TLV|3 +|06|Cancellation type|<<gsup-ie-canctype>>|O|TLV|3 +|=== + +==== Location Cancellation Result + +Direction: SGSN => Network peer + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|28|CN Domain|<<gsup-ie-cndomain>>|O|TLV|3 +|=== + +==== Purge MS Request + +Direction: SGSN => Network peer + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|28|CN Domain|<<gsup-ie-cndomain>>|O|TLV|3 +|09|HLR Number|<<gsup-ie-hlr>>|M|TLV|0-9 +|=== + +==== Purge MS Error + +Direction: Network peer => SGSN + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|02|Cause|<<gsup-ie-cause>>|M|TLV|3 +|=== + +==== Purge MS Result + +Direction: Network peer => SGSN + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|07|Freeze P-TMSI|<<gsup-ie-empty>>|M|TLV|2 +|=== + +==== Insert Subscriber Data Request + +Direction: Network peer => SGSN + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|28|CN Domain|<<gsup-ie-cndomain>>|O|TLV|3 +|08|MSISDN|<<gsup-ie-msisdn>>|O|TLV|0-9 +|09|HLR Number|<<gsup-ie-hlr>>|O|TLV|0-9 +|04|PDP info complete|<<gsup-ie-empty>>|M|TLV|2 +|05|PDP info|<<gsup-ie-pdpinfo>>|0-10|TLV| +|14|PDP-Charging Characteristics|<<gsup-ie-charging>>|O|TLV|4 +|=== + +If the PDP info complete IE is present, the old PDP info list shall be cleared. + +==== Insert Subscriber Data Error + +Direction: SGSN => Network peer + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|02|Cause|<<gsup-ie-cause>>|M|TLV|3 +|=== + +==== Insert Subscriber Data Result + +Direction: SGSN => Network peer + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|=== + +==== Delete Subscriber Data Request + +Direction: Network peer => SGSN + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|28|CN Domain|<<gsup-ie-cndomain>>|O|TLV|3 +|10|PDP context id|<<gsup-ie-pdpinfo>> (no conditional IE)|0-10|TLV| +|=== + +==== Delete Subscriber Data Error + +Direction: SGSN => Network peer + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|02|Cause|<<gsup-ie-cause>>|M|TLV|3 +|=== + +==== Delete Subscriber Data Result + +Direction: Network peer => SGSN + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|=== + +=== Information Elements + +[[gsup-ie-msgtype]] +==== Message Type + +[options="header",cols="10%,90%"] +|=== +|Type|Description +|0x04|Update Location Request +|0x05|Update Location Error +|0x06|Update Location Result +|0x08|Send Auth Info Request +|0x09|Send Auth Info Error +|0x0a|Send Auth Info Result +|0x0b|Authentication Failure Report +|0x0c|Purge MS Request +|0x0d|Purge MS Error +|0x0e|Purge MS Result +|0x10|Insert Subscriber Data Request +|0x11|Insert Subscriber Data Error +|0x12|Insert Subscriber Data Result +|0x14|Delete Subscriber Data Request +|0x15|Delete Subscriber Data Error +|0x16|Delete Subscriber Data Result +|0x1c|Location Cancellation Request +|0x1d|Location Cancellation Error +|0x1e|Location Cancellation Result +|=== + +[[gsup-ie-ipaddr]] +==== IP Address + +The value part is encoded like in the Packet data protocol address IE defined +in 3GPP TS 04.08, Chapter 10.5.6.4. PDP type organization must be set to +'IETF allocated address'. + +[[gsup-ie-pdpinfo]] +==== PDP Info + +This is a container for information elements describing a single PDP. + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |PDP Info IEI|<<gsup-iei>>|M|V|1 +| |Length of PDP Info IE||M|V|1 +|10|PDP Context ID|<<gsup-ie-pdpctxid>>|C|TLV|3 +|11|PDP Type|<<gsup-ie-pdptype>>|C|TLV|4 +|12|Access Point Name|<<gsup-ie-apn>>|C|TLV|3-102 +|13|Quality of Service|<<gsup-ie-qos>>|O|TLV|1-20 +|14|PDP-Charging Characteristics|<<gsup-ie-charging>>|O|TLV|4 +|=== + +The conditional IE are mandantory unless mentioned otherwise. + +[[gsup-ie-pdptype]] +==== PDP Type + +The PDP type value consists of 2 octets that are encoded like octet 4-5 of the +End User Address defined in 3GPP TS 09.60, 7.9.18. + +[packetdiag] +---- +{ + colwidth = 8 + node_height = 24 + + 0-6: PDP type IEI + 7: Res + 8-15: Length (2) + 16-19: Spare + 20-23: PDP type org + 24-31: PDP type number +} +---- + +The spare bits are left undefined. While 09.60 defines them as '1 1 1 1', there +are MAP traces where these bits are set to '0 0 0 0'. So the receiver shall +ignore these bits. + +Examples: + +* IPv4: PDP type org: 1 (IETF), PDP type number: 0x21 +* IPv6: PDP type org: 1 (IETF), PDP type number: 0x57 + +[[gsup-ie-pdpctxid]] +==== PDP Context ID + +The PDP type context ID IE consists of a single integer byte wrapped in +a TLV. + +[packetdiag] +---- +{ + colwidth = 8 + node_height = 24 + + 0-6: PDP context ID IEI + 7: Res + 8-15: Length (1) + 16-23: PDP Context ID +} +---- + +[[gsup-ie-authtuple]] +==== Auth tuple + +This is a container for information elements describing a single authentication +tuple. + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Auth Tuple IEI|<<gsup-iei>>|M|V|1 +| |Length of Auth Tuple IE||M|V|1 +|20|RAND|<<gsup-ie-rand>>|M|TLV|18 +|21|SRES|<<gsup-ie-sres>>|M|TLV|6 +|22|Kc|<<gsup-ie-kc>>|M|TLV|10 +|23|IK|<<gsup-ie-ik>>|C|TLV|18 +|24|CK|<<gsup-ie-ck>>|C|TLV|18 +|25|AUTN|<<gsup-ie-autn>>|C|TLV|18 +|27|RES|<<gsup-ie-res>>|C|TLV|2-18 +|=== + +The conditional IEs 'IK', 'CK', 'AUTN' and 'RES' are onl present in +case the subscriber supports UMTS AKA. + +[[gsup-ie-rand]] +==== RAND + +The 16-byte Random Challenge of the GSM Authentication Algorithm. + +[[gsup-ie-sres]] +==== SRES + +The 4-byte Authentication Result of the GSM Authentication Algorithm. + +[[gsup-ie-kc]] +==== Kc + +The 8-byte Encryption Key of the GSM Authentication and Key Agreemnt +Algorithm. + +[[gsup-ie-ik]] +==== IK + +The 16-byte Integrity Protection Key generated by the UMTS +Authentication and Key Agreement Algorithm. + +[[gsup-ie-ck]] +==== CK + +The 16-byte Ciphering Key generated by the UMTS Authentication and Key +Agreement Algorithm. + +[[gsup-ie-autn]] +==== AUTN + +The 16-byte Authentication Nonce sent from network to USIM in the UMTS +Authentication and Key Agreement Algorithm. + +[[gsup-ie-auts]] +==== AUTS + +The 14-byte Authentication Synchronization Nonce generated by the USIM +in case the UMTS Authentication and Key Agreement Algorithm needs to +re-synchronize the sequence counters between AUC and USIM. + +[[gsup-ie-res]] +==== RES + +The (variable length, but typically 16 byte) Authentication Result +generated by the USIM in the UMTS Authentication and Key Agreement +Algorithm. + +[[gsup-ie-cndomain]] +==== CN Domain + +This single-byte information element indicates the Core Network +Domain, i.e. if the message is related to Circuit Switched or Packet +Switched services. + +For backwards compatibility reasons, if no CN Domain IE is present +within a request, the PS Domain is assumed. + +.CN Domain Number +[options="header",cols="10%,90%"] +|=== +|Type|Description +|0x01|PS Domain +|0x02|CS Domain +|=== + +[[gsup-ie-canctype]] +==== Cancellation Type + +[packetdiag] +---- +{ + colwidth = 8 + node_height = 24 + + 0-6: PDP type IEI + 7: Res + 8-15: Length (1) + 16-23: Canc. Type Nr. +} +---- + +.Cancellation Type Number +[options="header",cols="10%,90%"] +|=== +|Number|Description +|0x00|Update Procedure +|0x01|Subscription Withdrawn +|=== + +[[gsup-iei]] +==== IE Identifier (informational) + +These are the standard values for the IEI. See the message definitions for the +IEI that shall be used for the encoding. + +.GSUP IE Identifiers +[options="header",cols="15%,35%,50%"] +|=== +|IEI|Info Element|Type / Encoding +|0x01|IMSI|Mobile Identity, 3GPP TS 04.08 Ch. 10.5.1.4 +|0x02|Cause|<<gsup-ie-cause>> +|0x03|Auth Tuple|<<gsup-ie-authtuple>> +|0x04|PDP Info Compl|<<gsup-ie-empty>> +|0x05|PDP Info|<<gsup-ie-pdpinfo>> +|0x06|Cancel Type|<<gsup-ie-canctype>> +|0x07|Freeze P-TMSI|<<gsup-ie-empty>> +|0x08|MSISDN|ISDN-AddressString/octet, <<gsup-ie-msisdn>> +|0x09|HLR Number|<<gsup-ie-hlr>> +|0x10|PDP Context ID|<<gsup-ie-pdpctxid>> +|0x11|PDP Type|<<gsup-ie-pdptype>> +|0x12|Access Point Name|<<gsup-ie-apn>> +|0x13|QoS|<<gsup-ie-qos>> +|0x14|PDP-Charging Characteristics|<<gsup-ie-charging>> +|0x20|RAND|<<gsup-ie-rand>> +|0x21|SRES|<<gsup-ie-sres>> +|0x22|Kc|<<gsup-ie-kc>> +|0x23|IK|<<gsup-ie-ik>> +|0x24|CK|<<gsup-ie-ck>> +|0x25|AUTN|<<gsup-ie-autn>> +|0x26|AUTS|<<gsup-ie-auts>> +|0x27|RES|<<gsup-ie-res>> +|0x28|CN Domain|<<gsup-ie-cndomain>> +|=== + +[[gsup-ie-empty]] +==== Empty field + +This is used for flags, if and only if this IE is present, the flag is set. +The semantics depend on the IEI and the context. + +[packetdiag] +---- +{ + colwidth = 8 + node_height = 24 + + 0-6: PDP type IEI + 7: Res + 8-15: Length (0) +} +---- + +[[gsup-ie-imsi]] +==== IMSI + +The IMSI is encoded like in octet 4-N of the Called Party BCD Number +defined in 3GPP TS 04.08, 10.5.4.7. + +[packetdiag] +---- +{ + colwidth = 8 + node_height = 24 + + 0-6: PDP type IEI + 7: Res + 8-15: Length of IE content + 16-19: Digit 1 + 20-23: Digit 2 + 24-27: Digit ... + 28-31: Digit N + 32-39: see Note +} +---- + +NOTE: Either '1 1 1 1 | Number digit N' (N odd) or 'Number digit N | +Number digit N-1' (N even), where N is the number of digits. + +[[gsup-ie-msisdn]] +==== ISDN-AddressString / MSISDN / Called Party BCD Number + +The MSISDN is encoded as an ISDN-AddressString in 3GPP TS 09.02 and Called Party +BCD Number in 3GPP TS 04.08. It will be stored by the SGSN and then passed as is +to the GGSN during the activation of the primary PDP Context. + +[packetdiag] +---- +{ + colwidth = 8 + node_height = 24 + + 0-6: PDP type IEI + 7: Res + 8-15: Length of IE content + 16-19: NPI + 20-22: TON + 23: ext + 24-27: Digit 1 + 28-31: Digit 2 + 32-35: Digit ... + 36-39: Digit N +} +---- + +[[gsup-ie-apn]] +==== Access Point Name + +This encodes the Access Point Name of a PDP Context. The encoding +is defined in 3GPP TS 23.003. + +[[gsup-ie-qos]] +==== Quality of Service Subscribed Service + +This encodes the subscribed QoS of a subscriber. It will be used by the +SGSN during the PDP Context activation. If the length of the QoS data +is 3 (three) octets it is assumed that these are octets 3-5 of the TS +3GPP TS 24.008 Quality of Service Octets. If it is more than three then +then it is assumed that the first octet is the Allocation/Retention +Priority and the reset are encoded as octets 3-N of 24.008. + +[packetdiag] +---- +{ + colwidth = 8 + node_height = 24 + + 0-6: PDP type IEI + 7: Res + 8-15: Length of IE content + 16-23: Payload +} +---- + + +[[gsup-ie-charging]] +==== PDP-Charging Characteristics + +This encodes the ChargingCharacteristics of 3GPP TS 32.215. A HLR may +send this as part of the InsertSubscriberData or within a single PDP +context definition. If the HLR supplies this information it must be +used by the SGSN when activating a PDP context. + +[packetdiag] +---- +{ + colwidth = 8 + node_height = 24 + + 0-3: Profile Index + 4-15: Behavior +} +---- + + +[[gsup-ie-hlr]] +==== HLR Number encoded as 3GPP TS 09.02 ISDN-AddressString + +The HLR Number is encoded as an ISDN-AddressString in 3GPP TS 09.02. It +will be stored by the SGSN can be used by the CDR module to keep a +record. + +[packetdiag] +---- +{ + colwidth = 8 + node_height = 24 + + 0-6: PDP type IEI + 7: Res + 8-15: Length of IE content + 16-19: NPI + 20-22: TON + 23: ext + 24-27: Digit 1 + 28-31: Digit 2 + 32-35: Digit ... + 36-39: Digit N +} +---- + +[[gsup-ie-cause]] +==== Cause + +This IE shall be encoded according to the 'GMM Cause' as described in +Chapter 10.5.5.14 of 3GPP TS 04.08. |