| |
| GPRS Subscriber Update Protocol |
| |
| 1. General |
| |
| This document describes the remote protocol that is used by the SGSN to update |
| and manage the local subscriber list. The protocol and the messages are |
| designed after the corresponding MAP messages (see GSM 09.02) with the |
| following differences: |
| |
| - The encoding uses TLV structures instead of ASN.1 encodings |
| - Segmentation is not used |
| |
| See the specification of the Gr interface (GSM 03.60). |
| |
| 2. 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. |
| |
| 2.1. Using IPA |
| |
| By default, the following identifiers should be used: |
| - IPA protocol: 0xee (OSMO) |
| - IPA OSMO protocol extension: 0x05 |
| |
| 2. Procedures |
| |
| 2.1. 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 availabe 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 GSM 09.02, 25.5.6) |
| |
| 2.2. 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 GSM 09.02, 19.1.1.8) |
| |
| [...] |
| |
| 3. Message Format |
| |
| 3.1. General |
| |
| Every message is based on the following message format |
| |
| IEI Info Element Type Pres. Format Length |
| Message type 4.2.1 M V 1 |
| 01 IMSI 4.2.9 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. |
| |
| 3.2.1. Send Authentication Info Request |
| |
| SGSN -> Network peer |
| |
| IEI Info Element Type Pres. Format Length |
| Message type 4.2.1 M V 1 |
| 01 IMSI 4.2.9 M TLV 2-10 |
| |
| 3.2.2. Send Authentication Info Error |
| |
| Network peer -> SGSN |
| |
| IEI Info Element Type Pres. Format Length |
| Message type 4.2.1 M V 1 |
| 01 IMSI 4.2.9 M TLV 2-10 |
| 02 Cause GMM cause, M TLV 3 |
| 04.08: 10.5.5.14 |
| |
| 3.2.3. Send Authentication Info Response |
| |
| Network peer -> SGSN |
| |
| IEI Info Element Type Pres. Format Length |
| Message type 4.2.1 M V 1 |
| 01 IMSI 4.2.9 M TLV 2-10 |
| 03 Auth tuple 4.2.5 0-5 TLV 36 |
| |
| 3.2.4. Update Location Request |
| |
| SGSN -> Network peer |
| |
| IEI Info Element Type Pres. Format Length |
| Message type 4.2.1 M V 1 |
| 01 IMSI 4.2.9 M TLV 2-10 |
| |
| 3.2.5. Update Location Error |
| |
| Network peer -> SGSN |
| |
| IEI Info Element Type Pres. Format Length |
| Message type 4.2.1 M V 1 |
| 01 IMSI 4.2.9 M TLV 2-10 |
| 02 Cause GMM cause, M TLV 3 |
| 04.08: 10.5.5.14 |
| |
| 3.2.6. Update Location Result |
| |
| Network peer -> SGSN |
| |
| IEI Info Element Type Pres. Format Length |
| Message type 4.2.1 M V 1 |
| 01 IMSI 4.2.9 M TLV 2-10 |
| 04 PDP info complete 4.2.8 O TLV 2 |
| 05 PDP info 4.2.3 1-10 TLV |
| |
| If the PDP info complete IE is present, the old PDP info list shall be cleared. |
| |
| 3.2.7. Location Cancellation Request |
| |
| Network peer -> SGSN |
| |
| IEI Info Element Type Pres. Format Length |
| Message type 4.2.1 M V 1 |
| 01 IMSI 4.2.9 M TLV 2-10 |
| 06 Cancellation type 4.2.6 M TLV 3 |
| |
| 3.2.8. Location Cancellation Result |
| |
| SGSN -> Network peer |
| |
| IEI Info Element Type Pres. Format Length |
| Message type 4.2.1 M V 1 |
| 01 IMSI 4.2.9 M TLV 2-10 |
| |
| 3.2.9. Purge MS Request |
| |
| SGSN -> Network peer |
| |
| IEI Info Element Type Pres. Format Length |
| Message type 4.2.1 M V 1 |
| 01 IMSI 4.2.9 M TLV 2-10 |
| |
| 3.2.10. Purge MS Error |
| |
| Network peer -> SGSN |
| |
| IEI Info Element Type Pres. Format Length |
| Message type 4.2.1 M V 1 |
| 01 IMSI 4.2.9 M TLV 2-10 |
| 02 Cause GMM cause, M TLV 3 |
| 04.08: 10.5.5.14 |
| |
| 3.2.11. Purge MS Result |
| |
| Network peer -> SGSN |
| |
| IEI Info Element Type Pres. Format Length |
| Message type 4.2.1 M V 1 |
| 01 IMSI 4.2.9 M TLV 2-10 |
| 07 Freeze P-TMSI 4.2.8 O TLV 2 |
| |
| 3.2.12. Insert Subscriber Data Request |
| |
| Network peer -> SGSN |
| |
| IEI Info Element Type Pres. Format Length |
| Message type 4.2.1 M V 1 |
| 01 IMSI 4.2.9 M TLV 2-10 |
| 04 PDP info complete 4.2.8 O TLV 2 |
| 05 PDP info 4.2.3 0-10 TLV |
| |
| If the PDP info complete IE is present, the old PDP info list shall be cleared. |
| |
| 3.2.13. Insert Subscriber Data Error |
| |
| SGSN -> Network peer |
| |
| IEI Info Element Type Pres. Format Length |
| Message type 4.2.1 M V 1 |
| 01 IMSI 4.2.9 M TLV 2-10 |
| 02 Cause GMM cause, M TLV 3 |
| 04.08: 10.5.5.14 |
| |
| 3.2.14. Insert Subscriber Data Result |
| |
| SGSN -> Network peer |
| |
| IEI Info Element Type Pres. Format Length |
| Message type 4.2.1 M V 1 |
| 01 IMSI 4.2.9 M TLV 2-10 |
| |
| 3.2.15. Delete Subscriber Data Request |
| |
| Network peer -> SGSN |
| |
| IEI Info Element Type Pres. Format Length |
| Message type 4.2.1 M V 1 |
| 01 IMSI 4.2.9 M TLV 2-10 |
| 10 PDP context id 4.2.3 0-10 TLV |
| (no conditional IE) |
| |
| 3.2.16. Delete Subscriber Data Error |
| |
| SGSN -> Network peer |
| |
| IEI Info Element Type Pres. Format Length |
| Message type 4.2.1 M V 1 |
| 01 IMSI 4.2.9 M TLV 2-10 |
| 02 Cause GMM cause, M TLV 3 |
| 04.08: 10.5.5.14 |
| |
| 3.2.17. Delete Subscriber Data Result |
| |
| Network peer -> SGSN |
| |
| IEI Info Element Type Pres. Format Length |
| Message type 4.2.1 M V 1 |
| 01 IMSI 4.2.9 M TLV 2-10 |
| |
| 4. Information Elements |
| |
| 4.1. General |
| |
| [...] |
| |
| 4.2.1. Message Type |
| |
| +---------------------------------------------------+ |
| | 8 7 6 5 4 3 2 1 | |
| | | |
| | 0 0 0 0 0 1 0 0 - Update Location Request | |
| | 0 0 0 0 0 1 0 1 - Update Location Error | |
| | 0 0 0 0 0 1 1 0 - Update Location Result | |
| | | |
| | 0 0 0 0 1 0 0 0 - Send Auth Info Request | |
| | 0 0 0 0 1 0 0 1 - Send Auth Info Error | |
| | 0 0 0 0 1 0 1 0 - Send Auth Info Result | |
| | | |
| | 0 0 0 0 1 1 0 0 - Purge MS Request | |
| | 0 0 0 0 1 1 0 1 - Purge MS Error | |
| | 0 0 0 0 1 1 1 0 - Purge MS Result | |
| | | |
| | 0 0 0 1 0 0 0 0 - Insert Subscr. Data Request | |
| | 0 0 0 1 0 0 0 1 - Insert Subscr. Data Error | |
| | 0 0 0 1 0 0 1 0 - Insert Subscr. Data Result | |
| | | |
| | 0 0 0 1 0 1 0 0 - Delete Subscr. Data Request | |
| | 0 0 0 1 0 1 0 1 - Delete Subscr. Data Error | |
| | 0 0 0 1 0 1 1 0 - Delete Subscr. Data Result | |
| | | |
| | 0 0 0 1 1 1 0 0 - Location Cancellation Request | |
| | 0 0 0 1 1 1 0 1 - Location Cancellation Error | |
| | 0 0 0 1 1 1 1 0 - Location Cancellation Result | |
| | | |
| +---------------------------------------------------+ |
| |
| 4.2.2. IP Address |
| |
| The value part is encoded like in the Packet data protocol address IE defined |
| in GSM 04.08, 10.5.6.4. PDP type organization must be set to 'IETF allocated |
| address'. |
| |
| 4.2.3. PDP Info |
| |
| This is a container for information elements describing a single PDP. |
| |
| IEI Info Element Type Pres. Format Length |
| PDP Info IEI M V 1 |
| Length of PDP Info IE length, no ext M V 1 |
| 10 PDP context id big endian int, 1-N C TLV 3 |
| 11 PDP type 4.2.4 C TLV 4 |
| 12 Access point name 04.08, 10.5.6.1 C TLV 3-102 |
| |
| The conditional IE are mandantory unless mentioned otherwise. |
| |
| 4.2.4. PDP Type |
| |
| The PDP type value consists of 2 octets that are encoded like octet 4-5 of the |
| End User Address defined in GSM 09.60, 7.9.18. |
| |
| 8 7 6 5 4 3 2 1 |
| +-----------------------------------------------------+ |
| | | PDP type IEI | octet 1 |
| +-----------------------------------------------------+ |
| | Length of PDP type IE contents (2) | octet 2 |
| +-----------------------------------------------------+ |
| | Spare | PDP type org. | octet 3 |
| +-----------------------------------------------------+ |
| | PDP type number | octet 4 |
| +-----------------------------------------------------+ |
| |
| 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 |
| |
| 4.2.5. Auth tuple |
| |
| This is a container for information elements describing a single authentication |
| tuple. |
| |
| IEI Info Element Type Pres. Format Length |
| Auth. Tuple IEI M V 1 |
| Length of Ath Tuple IE length, no ext M V 1 |
| 20 RAND octet string (16) M TLV 18 |
| 21 SRES octet string (4) M TLV 6 |
| 22 Kc octet string (8) M TLV 10 |
| |
| 4.2.6. Cancellation Type |
| |
| 8 7 6 5 4 3 2 1 |
| +-----------------------------------------------------+ |
| | | Cancellation type IEI | octet 1 |
| +-----------------------------------------------------+ |
| | Length of Cancellation Type IE contents (1) | octet 2 |
| +-----------------------------------------------------+ |
| | Cancellation type number | octet 4 |
| +-----------------------------------------------------+ |
| |
| Where the cancellation type number is: |
| |
| +---------------------------------------------------+ |
| | 8 7 6 5 4 3 2 1 | |
| | | |
| | 0 0 0 0 0 0 0 0 - Update Procedure | |
| | 0 0 0 0 0 0 0 1 - Subscription Withdraw | |
| +---------------------------------------------------+ |
| |
| 4.2.7. 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. |
| |
| +---------------------------------------------------------+ |
| | IEI Info Element Type | |
| | | |
| | 0x01 IMSI Mobile identity, 04.08: 10.5.1.4 | |
| | 0x02 Cause GMM cause, 04.08: 10.5.5.14 | |
| | 0x03 Auth tuple 4.2.5 | |
| | 0x04 PDP info compl 4.2.8 | |
| | 0x05 PDP info 4.2.3 | |
| | 0x06 Cancel type 4.2.6 | |
| | 0x07 Freeze P-TMSI 4.2.8 | |
| | 0x10 PDP context id big endian int | |
| | 0x11 PDP type 4.2.4 | |
| | 0x12 APN 04.08, 10.5.6.1 | |
| | 0x20 RAND octet string | |
| | 0x21 SRES octet string | |
| | 0x22 Kc octet string | |
| +---------------------------------------------------------+ |
| |
| |
| 4.2.8 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. |
| |
| 8 7 6 5 4 3 2 1 |
| +-----------------------------------------------------+ |
| | | IEI | octet 1 |
| +-----------------------------------------------------+ |
| | Length of IE contents (0) | octet 2 |
| +-----------------------------------------------------+ |
| |
| 4.2.9. IMSI |
| |
| The IMSI is encoded like in octet 4-N of the Called Party BCD Number defined in GSM 04.08, 10.5.4.7. |
| |
| 8 7 6 5 4 3 2 1 |
| +-----------------------------------------------------+ |
| | | IMSI IEI | octet 1 |
| +-----------------------------------------------------+ |
| | Length of IMSI IE contents | octet 2 |
| +-----------------------------------------------------+ |
| | Number digit 2 | Number digit 1 | octet 3 |
| +-----------------------------------------------------+ |
| | Number digit 4 | Number digit 3 | octet 4 |
| +-----------------------------------------------------+ |
| : : : |
| +-----------------------------------------------------+ |
| | see note 1) | octet 2+(N+1)div2 |
| +-----------------------------------------------------+ |
| |
| Note 1) 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. |