blob: 45c0e1d0ec8e94172b4c71369f084888ab394a3f [file] [log] [blame]
Harald Welte9f1331b2016-02-20 10:56:10 +01001[[gsup]]
2== GPRS Subscriber Update Protocol
3
4=== General
5
6This chapter describes the remote protocol that is used by the SGSN to update
Harald Welte779ba702016-07-23 21:00:13 +02007and manage the local subscriber list. Functionally, it resembles the
8interface between the SGSN on the one hand side, and HLR/AUC on the
9other side.
Harald Welte9f1331b2016-02-20 10:56:10 +010010
11For more information, see the specification of the Gr interface (3GPP TS 03.60).
12
Harald Welte779ba702016-07-23 21:00:13 +020013Traditionally, the GSM MAP (Mobile Application Part) protocol is used
14for this purpose, running on top of a full telecom signalling protocol
15stck of MTP2/MTP3/SCCP/TCAP, or any of the SIGTRAN alternatvives.
16
17In order to avoid many of the complexities of MAP, which are difficult
18to implement in the plain C language evnironment of the Osmocom
19cellular network elements like the SGSN, we introduce the GSUP
20protocol.
21
22The GSUP protocol and the messages are designed after the
23corresponding MAP messages (see 3GPP TS 09.02) with the following
24main differences:
25
26* The encoding uses TLV structures instead of ASN.1 BER
27* Segmentation is not used, i.e. we rely on the fact that the
28 underlying transport protocol can transport signalling messages of
29 any size.
30
Harald Welte9f1331b2016-02-20 10:56:10 +010031=== Connection
32
33The protocol expects that a reliable, ordered, packet boundaries preserving
34connection is used (e.g. IPA over TCP). The remote peer is either a service
35that understands the protocol natively or a wrapper service that maps the
36messages to/from real MAP messages that can be used to directly communicate
37with an HLR.
38
39=== Using IPA
40
41By default, the following identifiers should be used:
42
43* IPA Stream ID: 0xEE (OSMO)
44* IPA OSMO protocol extension: 0x05
45
46For more information about the IPA multiplex, please see the 'OsmoBTS
Jonathan Brielmaier5530c912016-05-25 15:01:11 +020047Abis/IP Specification'.
Harald Welte9f1331b2016-02-20 10:56:10 +010048
49=== Procedures
50
51==== Authentication management
52
53The SGSN sends a SEND_AUTHENTICATION_INFO_REQ message containing the MS's IMSI
Jonathan Brielmaier5530c912016-05-25 15:01:11 +020054to the peer. On errors, especially if authentication info is not available for
Harald Welte9f1331b2016-02-20 10:56:10 +010055that IMSI, the peer returns a SEND_AUTHENTICATION_INFO_ERR message. Otherwise
56the peer returns a SEND_AUTHENTICATION_INFO_RES message. If this message
57contains at least one authentication tuple, the SGSN replaces all tuples that
58are assigned to the subscriber. If the message doesn't contain any tuple the
59SGSN may reject the Attach Request. (see 3GPP TS 09.02, 25.5.6)
60
Harald Welte779ba702016-07-23 21:00:13 +020061.Send Authentication Info (Normal Case)
62["mscgen"]
63----
64msc {
65 hscale="1.5";
66 SGSN [label="SGSN"], Peer [label="Network Peer (HLR)"];
67
68 SGSN -> Peer [label="SEND AUTHENTICATION INFO REQUEST (IMSI)"];
69 Peer -> SGSN [label="SEND AUTHENTICATION INFO RESPONSE (Tuples)"];
70}
71----
72
73.Send Authentication Info (Erroneous Case)
74["mscgen"]
75----
76msc {
77 hscale="1.5";
78 SGSN [label="SGSN"], Peer [label="Network Peer (HLR)"];
79
80 SGSN -> Peer [label="SEND AUTHENTICATION INFO REQUEST (IMSI)"];
81 Peer -> SGSN [label="SEND AUTHENTICATION INFO ERROR (Cause)"];
82}
83----
84
85==== Reporting of Authentication Failure
86
87Using this procedure, the SGSN reports authentication failures to the
88HLR.
89
90.Authentication Failure Report (Normal Case)
91["mscgen"]
92----
93msc {
94 hscale="1.5";
95 SGSN [label="SGSN"], Peer [label="Network Peer (HLR)"];
96
97 SGSN -> Peer [label="AUTHENTICATION FAILURE REPORT (IMSI)"];
98}
99----
100
Harald Welte9f1331b2016-02-20 10:56:10 +0100101==== Location Updating
102
103The SGSN sends a UPDATE_LOCATION_REQ to the peer. If the request is denied by
104the network, the peer returns an UPDATE_LOCATION_ERR message to the SGSN.
105Otherwise the peer returns an UPDATE_LOCATION_RES message containing all
106information fields that shall be inserted into the subscriber record. If
107the 'PDP info complete' information element is set in the message, the SGSN
108clears existing PDP information fields in the subscriber record first.
109(see 3GPP TS 09.02, 19.1.1.8)
110
Harald Welte779ba702016-07-23 21:00:13 +0200111.Update Location (Normal Case)
112["mscgen"]
113----
114msc {
115 hscale="1.5";
116 SGSN [label="SGSN"], Peer [label="Network Peer (HLR)"];
117
118 SGSN -> Peer [label="UPDATE LOCATION REQUEST (IMSI)"];
119 Peer -> SGSN [label="INSERT SUBSCRIBER DATA"];
120 SGSN -> Peer [label="INSERT SUBSCRIBER DATA ACK"];
121 Peer -> SGSN [label="UPDATE LOCATTION RESULT"];
122}
123----
124
125.Update Location (Error Case)
126["mscgen"]
127----
128msc {
129 hscale="1.5";
130 SGSN [label="SGSN"], Peer [label="Network Peer (HLR)"];
131
132 SGSN -> Peer [label="UPDATE LOCATION REQUEST (IMSI)"];
133 Peer -> SGSN [label="UPDATE LOCATTION ERROR (Cause)"];
134}
135----
136
137==== Location Cancellation
138
139Using the Location Cancellation procedure, the Network Peer (HLR) can
140request the SGSN to remove a subscriber record.
141
142.Cancel Location (Normal Case)
143["mscgen"]
144----
145msc {
146 hscale="1.5";
147 SGSN [label="SGSN"], Peer [label="Network Peer (HLR)"];
148
149 Peer -> SGSN [label="CANCEL LOCATION REQUEST (IMSI)"];
150 SGSN -> Peer [label="CANCEL LOCATION RESULT"];
151}
152----
153
154.Cancel Location (Error Case)
155["mscgen"]
156----
157msc {
158 hscale="1.5";
159 SGSN [label="SGSN"], Peer [label="Network Peer (HLR)"];
160
161 Peer -> SGSN [label="CANCEL LOCATION REQUEST (IMSI)"];
162 SGSN -> Peer [label="CANCEL LOCATION ERROR (Cause)"];
163}
164----
165
166==== Purge MS
167
168Using the Purge MS procedure, the SGSN can request purging of MS
169related state from a previous SGSN during an inter-SGSN location
170update.
171
172.Purge MS (Normal Case)
173["mscgen"]
174----
175msc {
176 hscale="1.5";
177 SGSN [label="SGSN"], Peer [label="Network Peer (HLR)"];
178
179 SGSN -> Peer [label="PURGE MS REQUEST (IMSI)"];
180 Peer -> SGSN [label="PURGE MS RESULT"];
181}
182----
183
184==== Delete Subscriber Data
185
186Using the Delete Subscriber Data procedure, the Peer (HLR) can remove
187some of the subscriber data from the SGSN. This is used in case the
188subscription details (e.g. PDP Contexts / APNs) change while the
189subscriber is registred to that SGSN.
190
191.Delete Subscriber Data (Normal Case)
192["mscgen"]
193----
194msc {
195 hscale="1.5";
196 SGSN [label="SGSN"], Peer [label="Network Peer (HLR)"];
197
198 Peer -> SGSN [label="DELETE SUBSCRIBER DATA REQUEST (IMSI)"];
199 SGSN -> Peer [label="DELETE SUBSCRIBER DATA RESULT"];
200}
201----
Harald Welte9f1331b2016-02-20 10:56:10 +0100202
203=== Message Format
204
205==== General
206
207Every message is based on the following message format
208
209[options="header",cols="5%,20%,45%,10%,10%,10%"]
210|===
211|IEI|IE|Type|Presence|Format|Length
212| |Message Type|<<gsup-ie-msgtype>>|M|V|1
213|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10
214|===
215
216If a numeric range is indicated in the 'presence' column, multiple information
217elements with the same tag may be used in sequence. The information elements
218shall be sent in the given order. Nevertheless after the generic part the
219receiver shall be able to received them in any order. Unknown IE shall be
220ignored.
221
222==== Send Authentication Info Request
223
224Direction: SGSN -> Network peer
225
226[options="header",cols="5%,20%,45%,10%,10%,10%"]
227|===
228|IEI|IE|Type|Presence|Format|Length
229| |Message Type|<<gsup-ie-msgtype>>|M|V|1
230|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10
Harald Welteed9c53d2016-07-23 14:58:04 +0200231|28|CN Domain|<<gsup-ie-cndomain>>|O|TLV|3
232|26|AUTS|<<gsup-ie-auts>>|C|TLV|18
233|20|RAND|<<gsup-ie-rand>>|C|TLV|18
Harald Welte9f1331b2016-02-20 10:56:10 +0100234|===
235
Harald Welteed9c53d2016-07-23 14:58:04 +0200236The conditional 'AUTS' and 'RAND' IEs are both present in case the SIM
237(via UE) requests an UMTS AKA re-synchronization procedure. Eiter
238both optional IEs are present, or none of them.
239
Harald Welte9f1331b2016-02-20 10:56:10 +0100240==== Send Authentication Info Error
241
242Direction: Network peer -> SGSN
243
244[options="header",cols="5%,20%,45%,10%,10%,10%"]
245|===
246|IEI|IE|Type|Presence|Format|Length
247| |Message Type|<<gsup-ie-msgtype>>|M|V|1
248|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10
249|02|Cause|<<gsup-ie-cause>>|M|TLV|3
250|===
251
252==== Send Authentication Info Response
253
254Direction: Network peer -> SGSN
255
256[options="header",cols="5%,20%,45%,10%,10%,10%"]
257|===
258|IEI|IE|Type|Presence|Format|Length
259| |Message Type|<<gsup-ie-msgtype>>|M|V|1
260|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10
261|03|Auth Tuple|<<gsup-ie-authtuple>>|0-5|TLV|36
262|===
263
Harald Welteed9c53d2016-07-23 14:58:04 +0200264==== Authentication Failure Report
265
266Direction: SGSN -> Network peer
267
268[options="header",cols="5%,20%,45%,10%,10%,10%"]
269|===
270|IEI|IE|Type|Presence|Format|Length
271| |Message Type|<<gsup-ie-msgtype>>|M|V|1
272|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10
273|28|CN Domain|<<gsup-ie-cndomain>>|O|TLV|3
274|===
275
Harald Welte9f1331b2016-02-20 10:56:10 +0100276==== Update Location Request
277
278Direction: SGSN -> Network peer
279
280[options="header",cols="5%,20%,45%,10%,10%,10%"]
281|===
282|IEI|IE|Type|Presence|Format|Length
283| |Message Type|<<gsup-ie-msgtype>>|M|V|1
284|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10
Harald Welteed9c53d2016-07-23 14:58:04 +0200285|28|CN Domain|<<gsup-ie-cndomain>>|O|TLV|3
Harald Welte9f1331b2016-02-20 10:56:10 +0100286|===
287
288==== Update Location Error
289
290Direction: Network peer -> SGSN
291
292[options="header",cols="5%,20%,45%,10%,10%,10%"]
293|===
294|IEI|IE|Type|Presence|Format|Length
295| |Message Type|<<gsup-ie-msgtype>>|M|V|1
296|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10
297|02|Cause|<<gsup-ie-cause>>|M|TLV|3
298|===
299
300==== Update Location Result
301
302Direction: Network peer -> SGSN
303
304[options="header",cols="5%,20%,45%,10%,10%,10%"]
305|===
306|IEI|IE|Type|Presence|Format|Length
307| |Message Type|<<gsup-ie-msgtype>>|M|V|1
308|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10
309|08|MSISDN|<<gsup-ie-msisdn>>|O|TLV|0-9
310|09|HLR Number|<<gsup-ie-hlr>>|O|TLV|0-9
311|04|PDP info complete|<<gsup-ie-empty>>|O|TLV|2
312|05|PDP info|<<gsup-ie-pdpinfo>>|1-10|TLV|
313|===
314
315If the PDP info complete IE is present, the old PDP info list shall be cleared.
316
317==== Location Cancellation Request
318
319Direction: Network peer -> SGSN
320
321[options="header",cols="5%,20%,45%,10%,10%,10%"]
322|===
323|IEI|IE|Type|Presence|Format|Length
324| |Message Type|<<gsup-ie-msgtype>>|M|V|1
325|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10
Harald Welteed9c53d2016-07-23 14:58:04 +0200326|28|CN Domain|<<gsup-ie-cndomain>>|O|TLV|3
Harald Welte9f1331b2016-02-20 10:56:10 +0100327|06|Cancellation type|<<gsup-ie-canctype>>|O|TLV|3
328|===
329
330==== Location Cancellation Result
331
332Direction: SGSN -> Network peer
333
334[options="header",cols="5%,20%,45%,10%,10%,10%"]
335|===
336|IEI|IE|Type|Presence|Format|Length
337| |Message Type|<<gsup-ie-msgtype>>|M|V|1
338|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10
Harald Welteed9c53d2016-07-23 14:58:04 +0200339|28|CN Domain|<<gsup-ie-cndomain>>|O|TLV|3
Harald Welte9f1331b2016-02-20 10:56:10 +0100340|===
341
342==== Purge MS Request
343
344Direction: SGSN -> Network peer
345
346[options="header",cols="5%,20%,45%,10%,10%,10%"]
347|===
348|IEI|IE|Type|Presence|Format|Length
349| |Message Type|<<gsup-ie-msgtype>>|M|V|1
350|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10
Harald Welteed9c53d2016-07-23 14:58:04 +0200351|28|CN Domain|<<gsup-ie-cndomain>>|O|TLV|3
Harald Welte9f1331b2016-02-20 10:56:10 +0100352|09|HLR Number|<<gsup-ie-hlr>>|M|TLV|0-9
353|===
354
355==== Purge MS Error
356
357Direction: Network peer -> SGSN
358
359[options="header",cols="5%,20%,45%,10%,10%,10%"]
360|===
361|IEI|IE|Type|Presence|Format|Length
362| |Message Type|<<gsup-ie-msgtype>>|M|V|1
363|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10
364|02|Cause|<<gsup-ie-cause>>|M|TLV|3
365|===
366
367==== Purge MS Result
368
369Direction: Network peer -> SGSN
370
371[options="header",cols="5%,20%,45%,10%,10%,10%"]
372|===
373|IEI|IE|Type|Presence|Format|Length
374| |Message Type|<<gsup-ie-msgtype>>|M|V|1
375|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10
376|07|Freeze P-TMSI|<<gsup-ie-empty>>|M|TLV|2
377|===
378
379==== Insert Subscriber Data Request
380
381Direction: Network peer -> SGSN
382
383[options="header",cols="5%,20%,45%,10%,10%,10%"]
384|===
385|IEI|IE|Type|Presence|Format|Length
386| |Message Type|<<gsup-ie-msgtype>>|M|V|1
387|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10
Harald Welteed9c53d2016-07-23 14:58:04 +0200388|28|CN Domain|<<gsup-ie-cndomain>>|O|TLV|3
389|08|MSISDN|<<gsup-ie-msisdn>>|O|TLV|0-9
390|09|HLR Number|<<gsup-ie-hlr>>|O|TLV|0-9
Harald Welte9f1331b2016-02-20 10:56:10 +0100391|04|PDP info complete|<<gsup-ie-empty>>|M|TLV|2
392|05|PDP info|<<gsup-ie-pdpinfo>>|0-10|TLV|
393|===
394
395If the PDP info complete IE is present, the old PDP info list shall be cleared.
396
397==== Insert Subscriber Data Error
398
399Direction: SGSN -> Network peer
400
401[options="header",cols="5%,20%,45%,10%,10%,10%"]
402|===
403|IEI|IE|Type|Presence|Format|Length
404| |Message Type|<<gsup-ie-msgtype>>|M|V|1
405|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10
406|02|Cause|<<gsup-ie-cause>>|M|TLV|3
407|===
408
409==== Insert Subscriber Data Result
410
411Direction: SGSN -> Network peer
412
413[options="header",cols="5%,20%,45%,10%,10%,10%"]
414|===
415|IEI|IE|Type|Presence|Format|Length
416| |Message Type|<<gsup-ie-msgtype>>|M|V|1
417|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10
418|===
419
420==== Delete Subscriber Data Request
421
422Direction: Network peer -> SGSN
423
424[options="header",cols="5%,20%,45%,10%,10%,10%"]
425|===
426|IEI|IE|Type|Presence|Format|Length
427| |Message Type|<<gsup-ie-msgtype>>|M|V|1
428|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10
Harald Welteed9c53d2016-07-23 14:58:04 +0200429|28|CN Domain|<<gsup-ie-cndomain>>|O|TLV|3
Harald Welte9f1331b2016-02-20 10:56:10 +0100430|10|PDP context id|<<gsup-ie-pdpinfo>> (no conditional IE)|0-10|TLV|
431|===
432
433==== Delete Subscriber Data Error
434
435Direction: SGSN -> Network peer
436
437[options="header",cols="5%,20%,45%,10%,10%,10%"]
438|===
439|IEI|IE|Type|Presence|Format|Length
440| |Message Type|<<gsup-ie-msgtype>>|M|V|1
441|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10
442|02|Cause|<<gsup-ie-cause>>|M|TLV|3
443|===
444
445==== Delete Subscriber Data Result
446
447Direction: Network peer -> SGSN
448
449[options="header",cols="5%,20%,45%,10%,10%,10%"]
450|===
451|IEI|IE|Type|Presence|Format|Length
452| |Message Type|<<gsup-ie-msgtype>>|M|V|1
453|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10
454|===
455
456=== Information Elements
457
458[[gsup-ie-msgtype]]
459==== Message Type
460
461[options="header",cols="10%,90%"]
462|===
463|Type|Description
464|0x04|Update Location Request
465|0x05|Update Location Error
466|0x06|Update Location Result
467|0x08|Send Auth Info Request
468|0x09|Send Auth Info Error
469|0x0a|Send Auth Info Result
Harald Welteed9c53d2016-07-23 14:58:04 +0200470|0x0b|Authentication Failure Report
Harald Welte9f1331b2016-02-20 10:56:10 +0100471|0x0c|Purge MS Request
472|0x0d|Purge MS Error
473|0x0e|Purge MS Result
474|0x10|Insert Subscriber Data Request
475|0x11|Insert Subscriber Data Error
476|0x12|Insert Subscriber Data Result
477|0x14|Delete Subscriber Data Request
478|0x15|Delete Subscriber Data Error
479|0x16|Delete Subscriber Data Result
480|0x1c|Location Cancellation Request
481|0x1d|Location Cancellation Error
482|0x1e|Location Cancellation Result
483|===
484
485[[gsup-ie-ipaddr]]
486==== IP Address
487
488The value part is encoded like in the Packet data protocol address IE defined
489in 3GPP TS 04.08, Chapter 10.5.6.4. PDP type organization must be set to
490'IETF allocated address'.
491
492[[gsup-ie-pdpinfo]]
493==== PDP Info
494
495This is a container for information elements describing a single PDP.
496
497[options="header",cols="5%,20%,45%,10%,10%,10%"]
498|===
499|IEI|IE|Type|Presence|Format|Length
500| |PDP Info IEI|<<gsup-iei>>|M|V|1
501| |Length of PDP Info IE||M|V|1
502|10|PDP Context ID|<<gsup-ie-pdpctxid>>|C|TLV|3
503|11|PDP Type|<<gsup-ie-pdptype>>|C|TLV|4
504|12|Access Point Name|3GPP TS 04.08, Ch. 10.5.6.1|C|TLV|3-102
505|13|Quality of Service|<<gsup-ie-qos>>|O|TLV|1-20
506|===
507
508The conditional IE are mandantory unless mentioned otherwise.
509
510[[gsup-ie-pdptype]]
511==== PDP Type
512
513The PDP type value consists of 2 octets that are encoded like octet 4-5 of the
514End User Address defined in 3GPP TS 09.60, 7.9.18.
515
516[packetdiag]
517----
518{
519 colwidth = 8
520 node_height = 24
521
522 0-6: PDP type IEI
523 7: Res
524 8-15: Length (2)
525 16-19: Spare
526 20-23: PDP type org
527 24-31: PDP type number
528}
529----
530
531The spare bits are left undefined. While 09.60 defines them as '1 1 1 1', there
532are MAP traces where these bits are set to '0 0 0 0'. So the receiver shall
533ignore these bits.
534
535Examples:
536
537* IPv4: PDP type org: 1 (IETF), PDP type number: 0x21
538* IPv6: PDP type org: 1 (IETF), PDP type number: 0x57
539
540[[gsup-ie-pdpctxid]]
541==== PDP Context ID
542
543The PDP type context ID IE consists of a single integer byte wrapped in
544a TLV.
545
546[packetdiag]
547----
548{
549 colwidth = 8
550 node_height = 24
551
552 0-6: PDP context ID IEI
553 7: Res
554 8-15: Length (1)
555 16-23: PDP Context ID
556}
557----
558
559[[gsup-ie-authtuple]]
560==== Auth tuple
561
562This is a container for information elements describing a single authentication
563tuple.
564
565[options="header",cols="5%,20%,45%,10%,10%,10%"]
566|===
567|IEI|IE|Type|Presence|Format|Length
568| |Auth Tuple IEI|<<gsup-iei>>|M|V|1
569| |Length of Auth Tuple IE||M|V|1
570|20|RAND|<<gsup-ie-rand>>|M|TLV|18
571|21|SRES|<<gsup-ie-sres>>|M|TLV|6
572|22|Kc|<<gsup-ie-kc>>|M|TLV|10
Harald Welteed9c53d2016-07-23 14:58:04 +0200573|23|IK|<<gsup-ie-ik>>|C|TLV|18
574|24|CK|<<gsup-ie-ck>>|C|TLV|18
575|25|AUTN|<<gsup-ie-autn>>|C|TLV|18
576|27|RES|<<gsup-ie-res>>|C|TLV|2-18
Harald Welte9f1331b2016-02-20 10:56:10 +0100577|===
578
Harald Welteed9c53d2016-07-23 14:58:04 +0200579The conditional IEs 'IK', 'CK', 'AUTN' and 'RES' are onl present in
580case the subscriber supports UMTS AKA.
581
Harald Welte9f1331b2016-02-20 10:56:10 +0100582[[gsup-ie-rand]]
583==== RAND
584
585The 16-byte Random Challenge of the GSM Authentication Algorithm.
586
587[[gsup-ie-sres]]
588==== SRES
589
590The 4-byte Authentication Result of the GSM Authentication Algorithm.
591
592[[gsup-ie-kc]]
593==== Kc
594
595The 8-byte Encryption Key of the GSM Authentication and Key Agreemnt
596Algorithm.
597
Harald Welteed9c53d2016-07-23 14:58:04 +0200598[[gsup-ie-ik]]
599==== IK
600
601The 16-byte Integrity Protection Key generated by the UMTS
602Authentication and Key Agreement Algorithm.
603
604[[gsup-ie-ck]]
605==== CK
606
607The 16-byte Ciphering Key generated by the UMTS Authentication and Key
608Agreement Algorithm.
609
610[[gsup-ie-autn]]
611==== AUTN
612
613The 16-byte Authentication Nonce sent from network to USIM in the UMTS
614Authentication and Key Agreement Algorithm.
615
616[[gsup-ie-auts]]
617==== AUTS
618
ikostovc520c3b2017-02-03 19:04:47 +0100619The 14-byte Authentication Synchronization Nonce generated by the USIM
Harald Welteed9c53d2016-07-23 14:58:04 +0200620in case the UMTS Authentication and Key Agreement Algorithm needs to
621re-synchronize the sequence counters between AUC and USIM.
622
623[[gsup-ie-res]]
624==== RES
625
626The (variable length, but typically 16 byte) Authentication Result
627generated by the USIM in the UMTS Authentication and Key Agreement
628Algorithm.
629
630[[gsup-ie-cndomain]]
631==== CN Domain
632
633This single-byte information element indicates the Core Network
634Domain, i.e. if the message is related to Circuit Switched or Packet
635Switched services.
636
637For backwards compatibility reasons, if no CN Domain IE is present
638within a request, the PS Domain is assumed.
639
640.CN Domain Number
641[options="header",cols="10%,90%"]
642|===
643|Type|Description
644|0x01|PS Domain
645|0x02|CS Domain
646|===
647
Harald Welte9f1331b2016-02-20 10:56:10 +0100648[[gsup-ie-canctype]]
649==== Cancellation Type
650
651[packetdiag]
652----
653{
654 colwidth = 8
655 node_height = 24
656
657 0-6: PDP type IEI
658 7: Res
659 8-15: Length (1)
660 16-23: Canc. Type Nr.
661}
662----
663
664.Cancellation Type Number
665[options="header",cols="10%,90%"]
666|===
667|Number|Description
668|0x00|Update Procedure
669|0x01|Subscription Withdrawn
670|===
671
672[[gsup-iei]]
673==== IE Identifier (informational)
674
675These are the standard values for the IEI. See the message definitions for the
676IEI that shall be used for the encoding.
677
678.GSUP IE Identifiers
679[options="header",cols="15%,35%,50%"]
680|===
681|IEI|Info Element|Type / Encoding
682|0x01|IMSI|Mobile Identity, 3GPP TS 04.08 Ch. 10.5.1.4
683|0x02|Cause|<<gsup-ie-cause>>
684|0x03|Auth Tuple|<<gsup-ie-authtuple>>
685|0x04|PDP Info Compl|<<gsup-ie-empty>>
686|0x05|PDP Info|<<gsup-ie-pdpinfo>>
687|0x06|Cancel Type|<<gsup-ie-canctype>>
688|0x07|Freeze P-TMSI|<<gsup-ie-empty>>
689|0x08|MSISDN|ISDN-AddressString/octet, <<gsup-ie-msisdn>>
690|0x09|HLR Number|<<gsup-ie-hlr>>
691|0x10|PDP Context ID|<<gsup-ie-pdpctxid>>
692|0x11|PDP Type|<<gsup-ie-pdptype>>
693|0x12|QoS|<<gsup-ie-qos>>
694|0x20|RAND|<<gsup-ie-rand>>
695|0x21|SRES|<<gsup-ie-sres>>
696|0x22|Kc|<<gsup-ie-kc>>
Harald Welteed9c53d2016-07-23 14:58:04 +0200697|0x23|IK|<<gsup-ie-ik>>
698|0x24|CK|<<gsup-ie-ck>>
699|0x25|AUTN|<<gsup-ie-autn>>
700|0x26|AUTS|<<gsup-ie-auts>>
701|0x27|RES|<<gsup-ie-res>>
702|0x28|CN Domain|<<gsup-ie-cndomain>>
Harald Welte9f1331b2016-02-20 10:56:10 +0100703|===
704
705[[gsup-ie-empty]]
706==== Empty field
707
708This is used for flags, if and only if this IE is present, the flag is set.
709The semantics depend on the IEI and the context.
710
711[packetdiag]
712----
713{
714 colwidth = 8
715 node_height = 24
716
717 0-6: PDP type IEI
718 7: Res
719 8-15: Length (0)
720}
721----
722
723[[gsup-ie-imsi]]
724==== IMSI
725
726The IMSI is encoded like in octet 4-N of the Called Party BCD Number
727defined in 3GPP TS 04.08, 10.5.4.7.
728
729[packetdiag]
730----
731{
732 colwidth = 8
733 node_height = 24
734
735 0-6: PDP type IEI
736 7: Res
737 8-15: Length of IE content
738 16-19: Digit 1
739 20-23: Digit 2
740 24-27: Digit ...
741 28-31: Digit N
742 32-39: see Note
743}
744----
745
746NOTE: Either '1 1 1 1 | Number digit N' (N odd) or 'Number digit N |
747Number digit N-1' (N even), where N is the number of digits.
748
749[[gsup-ie-msisdn]]
750==== ISDN-AddressString / MSISDN / Called Party BCD Number
751
752The MSISDN is encoded as an ISDN-AddressString in 3GPP TS 09.02 and Called Party
753BCD Number in 3GPP TS 04.08. It will be stored by the SGSN and then passed as is
754to the GGSN during the activation of the primary PDP Context.
755
756[packetdiag]
757----
758{
759 colwidth = 8
760 node_height = 24
761
762 0-6: PDP type IEI
763 7: Res
764 8-15: Length of IE content
765 16-19: NPI
766 20-22: TON
767 23: ext
768 24-27: Digit 1
769 28-31: Digit 2
770 32-35: Digit ...
771 36-39: Digit N
772}
773----
774
775[[gsup-ie-qos]]
776==== Quality of Service Subscribed Service
777
778This encodes the subscribed QoS of a subscriber. It will be used by the
779SGSN during the PDP Context activation. If the length of the QoS data
780is 3 (three) octets it is assumed that these are octets 3-5 of the TS
7813GPP TS 24.008 Quality of Service Octets. If it is more than three then
782then it is assumed that the first octet is the Allocation/Retention
783Priority and the reset are encoded as octets 3-N of 24.008.
784
785[packetdiag]
786----
787{
788 colwidth = 8
789 node_height = 24
790
791 0-6: PDP type IEI
792 7: Res
793 8-15: Length of IE content
794 16-23: Payload
795}
796----
797
798[[gsup-ie-hlr]]
799==== HLR Number encoded as 3GPP TS 09.02 ISDN-AddressString
800
801The HLR Number is encoded as an ISDN-AddressString in 3GPP TS 09.02. It
802will be stored by the SGSN can be used by the CDR module to keep a
803record.
804
805[packetdiag]
806----
807{
808 colwidth = 8
809 node_height = 24
810
811 0-6: PDP type IEI
812 7: Res
813 8-15: Length of IE content
814 16-19: NPI
815 20-22: TON
816 23: ext
817 24-27: Digit 1
818 28-31: Digit 2
819 32-35: Digit ...
820 36-39: Digit N
821}
822----
823
824[[gsup-ie-cause]]
825==== Cause
826
827This IE shall be encoded according to the 'GMM Cause' as described in
828Chapter 10.5.5.14 of 3GPP TS 04.08.