aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2014-12-11 15:14:14 +0100
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2015-01-10 20:55:46 +0100
commit0024cee9f84c0f24b70e4bc98756702d5182a20b (patch)
treeddf8abcf9794553d7e2393a6832a5aaee89c495d
parent17fb3d46ffcf48685943cc9dd4a2e80700f4fa64 (diff)
sgsn/doc: Add protocol specification for remote subscriber update
This is the first version of the specification for the GPRS Subscriber Update Protocol. Sponsored-by: On-Waves ehf
-rw-r--r--openbsc/doc/sgsn-remote-protocol.txt385
1 files changed, 385 insertions, 0 deletions
diff --git a/openbsc/doc/sgsn-remote-protocol.txt b/openbsc/doc/sgsn-remote-protocol.txt
new file mode 100644
index 000000000..7ca9094e6
--- /dev/null
+++ b/openbsc/doc/sgsn-remote-protocol.txt
@@ -0,0 +1,385 @@
+
+ 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. 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
+
+TODO
+
+3.2.11. Purge MS Result
+
+Network peer -> SGSN
+
+TODO
+
+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 |
+ | 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.