blob: c94e01842f422b0568e414490da380bf2c7daaef [file] [log] [blame]
Harald Welteb682cd62016-02-29 15:09:55 +01001== Network Service (NS)
2
3=== List of Messages
4
5The following tables list the NS messages used by OsmoPCU, grouped by their
6level of compliance with 3GPP TS 08.16.
7
Harald Welte032f94b2016-03-10 12:49:03 +07008==== Messages Compliant With 3GPP TS 08.16
Harald Welteb682cd62016-02-29 15:09:55 +01009
Max4e2a1e32016-03-02 18:30:33 +010010The NS protocol is implemented inside libosmocore so none of the messages below are sent by OsmoPCU explicitly.
11Instead corresponding functions from libosmocore are called which send and receive messages as necessary. See <<ns_init>> for details
12on establishing NS connection.
13
Harald Welte032f94b2016-03-10 12:49:03 +070014.Messages compliant with 3GPP TS 08.16
Harald Welteb682cd62016-02-29 15:09:55 +010015[options="header",cols="10%,10%,20%,35%,5%,20%"]
16|===
17| TS 08.16 § | type code (hex) | This document § | Message | <-/-> | Received/Sent by OsmoPCU
Max4e2a1e32016-03-02 18:30:33 +010018| 9.2.10 | 0x00 | <<ns_unit_data>> | NS-UNITDATA | <-/-> | Received/Sent
19| 9.2.5 | 0x02 | <<ns_reset>> | NS-RESET | <-/-> | Received/Sent
20| 9.2.6 | 0x03 | <<ns_reset_ack>> | NS-RESET-ACK | <-/-> | Received/Sent
21| 9.2.3 | 0x04 | <<ns_block>> | NS-BLOCK | <-/-> | Received/Sent
22| 9.2.4 | 0x05 | <<ns_block_ack>> | NS-BLOCK-ACK | <-/-> | Received/Sent
23| 9.2.8 | 0x06 | <<ns_unblock>> | NS-UNBLOCK | <-/-> | Received/Sent
24| 9.2.9 | 0x07 | <<ns_unblock_ack>> | NS-UNBLOCK-ACK | <-/-> | Received/Sent
25| 9.2.7 | 0x08 | <<ns_status>> | NS-STATUS | <-/-> | Received/Sent
26| 9.2.1 | 0x0a | <<ns_alive>> | NS-ALIVE | <-/-> | Received/Sent
27| 9.2.2 | 0x0b | <<ns_alive_ack>> | NS-ALIVE-ACK | <-/-> | Received/Sent
Harald Welteb682cd62016-02-29 15:09:55 +010028|===
29
30==== Messages Specific to OsmoPCU
31
32There are no OsmoPCU specific NS messages.
33
34==== Messages Not Implemented by OsmoPCU
35
Max4e2a1e32016-03-02 18:30:33 +010036All the NS protocol messages from 3GPP TS 08.16 are implemented in OsmoPCU.
Harald Welteb682cd62016-02-29 15:09:55 +010037
38=== Details on Compliant NS Messages
39
Max4e2a1e32016-03-02 18:30:33 +010040[[ns_unit_data]]
41==== NS-UNITDATA
42
Harald Welte32b58e62016-03-10 12:45:22 +070043This PDU transfers one NS SDU (specified in 3GPP TS 08.18) between
44OsmoPCU and SGSN. Upon receiving it OsmoPCU passes it to BSSGP
45implementation to handle. It is also sent by BSSGP as necessary - see
46<<bssgp>> for details.
47
Max4e2a1e32016-03-02 18:30:33 +010048It contains BVCI (<<ie_bvci>>) and NS SDU (<<ie_nssdu>>) IEs.
49
50[[ns_reset]]
51==== NS-RESET
52
Harald Welte32b58e62016-03-10 12:45:22 +070053This message is send by OsmoPCU in order to initiate reset procedure
54described in 3GPP TS 08.16 § 7.3. The expected reply is NS-RESET-ACK
55(<<ns_reset_ack>>) message. If no expected reply is received in 3
56seconds than the sending is retried up to 3 times. When this message
57is received it is replied with NS-RESET-ACK (<<ns_reset_ack>>).
Max4e2a1e32016-03-02 18:30:33 +010058It might be ignored under conditions described in 3GPP TS 08.16 § 7.3.1.
Harald Welte32b58e62016-03-10 12:45:22 +070059
Max4e2a1e32016-03-02 18:30:33 +010060The message conforms to 3GPP TS 08.16 § 9.2.5 specification.
Harald Welte32b58e62016-03-10 12:45:22 +070061
Max4e2a1e32016-03-02 18:30:33 +010062It contains Cause (<<ie_cause>>), NSVCI (<<ie_nsvci>>) and NSEI (<<ie_nsei>>) IEs.
63
64[[ns_reset_ack]]
65==== NS-RESET-ACK
66
Harald Welte32b58e62016-03-10 12:45:22 +070067This message is sent as a response to proper NS-RESET (<<ns_reset>>)
68message initiating reset procedure.
69
Max4e2a1e32016-03-02 18:30:33 +010070The message conforms to 3GPP TS 08.16 § 9.2.6 specification.
Harald Welte32b58e62016-03-10 12:45:22 +070071
Max4e2a1e32016-03-02 18:30:33 +010072It contains NSVCI (<<ie_nsvci>>) and NSEI (<<ie_nsei>>) IEs.
73
74[[ns_block]]
75==== NS-BLOCK
76
Harald Welte32b58e62016-03-10 12:45:22 +070077Upon receiving this message corresponding NS-VC is marked as blocked
78by OsmoPCU and NS-BLOCK-ACK (<<ns_block_ack>>) reply is transmitted.
79When this message is sent by OsmoPCU corresponding NS-BLOCK-ACK
80(<<ns_block_ack>>) reply is expected before NS-VC is actually marked
81as blocked. This behavior follows the blocking procedure described in
823GPP TS 08.16 § 7.2.
83
Max4e2a1e32016-03-02 18:30:33 +010084The message conforms to 3GPP TS 08.16 § 9.2.3 specification.
Harald Welte32b58e62016-03-10 12:45:22 +070085
Max4e2a1e32016-03-02 18:30:33 +010086It contains Cause (<<ie_cause>>) and NSVCI (<<ie_nsvci>>) IEs.
87
88[[ns_block_ack]]
89==== NS-BLOCK-ACK
90
Harald Welte32b58e62016-03-10 12:45:22 +070091This message is sent by OsmoPCU automatically upon reception of
92correct NS-BLOCK (<<ns_block>>) message. It is expected as a reply
93for NS-BLOCK (<<ns_block>>) message sent by OsmoPCU.
94
Max4e2a1e32016-03-02 18:30:33 +010095The message conforms to 3GPP TS 08.16 § 9.2.4 specification.
Harald Welte32b58e62016-03-10 12:45:22 +070096
Max4e2a1e32016-03-02 18:30:33 +010097It contains NSVCI (<<ie_nsvci>>) IE.
98
99[[ns_unblock]]
100==== NS-UNBLOCK
101
Harald Welte32b58e62016-03-10 12:45:22 +0700102Upon receiving this message corresponding NS-VC is unblocked by
103OsmoPCU and NS-UNBLOCK-ACK (<<ns_unblock_ack>>) reply is sent. When
104this message is sent by OsmoPCU corresponding NS-UNBLOCK-ACK
105(<<ns_unblock_ack>>) reply is expected before NS-VC is actually marked
106as unblocked. This behavior follows the blocking procedure described
107in 3GPP TS 08.16 § 7.2.
108
Max4e2a1e32016-03-02 18:30:33 +0100109The message conforms to 3GPP TS 08.16 § 9.2.8 specification.
110
111[[ns_unblock_ack]]
112==== NS-UNBLOCK-ACK
113
Harald Welte32b58e62016-03-10 12:45:22 +0700114Receiving this message notifies OsmoPCU that NS-VC unblocking request
115is confirmed and thus NS-VC is marked as unblocked. This message is
116also sent as a reply to NS-UNBLOCK (<<ns_unblock>>) message.
117
Max4e2a1e32016-03-02 18:30:33 +0100118The message conforms to 3GPP TS 08.16 § 9.2.9 specification.
119
120[[ns_status]]
121==== NS-STATUS
122
Harald Welte32b58e62016-03-10 12:45:22 +0700123This message is sent to inform other party about error conditions as a
124response to various unexpected PDUs or PDUs with unexpected/missing
125data. If this message is received for unknown NS-VC it is ignored in
126accordance with 3GPP TS 08.16 § 7.5.1, otherwise the error cause is
127logged if present in NS-STATUS.
128
Max4e2a1e32016-03-02 18:30:33 +0100129The message conforms to 3GPP TS 08.16 § 9.2.7 specification.
Harald Welte32b58e62016-03-10 12:45:22 +0700130
131It contains Cause (<<ie_cause>>) and might (depending on actual error)
132contain NSVCI (<<ie_nsvci>>), NS PDU (<<ie_nspdu>>) and BVCI
133(<<ie_bvci>>) IEs.
Max4e2a1e32016-03-02 18:30:33 +0100134
135[[ns_alive]]
136==== NS-ALIVE
137
Harald Welte32b58e62016-03-10 12:45:22 +0700138This message is sent periodically to test connectivity according to
1393GPP TS 08.16 § 4.5.3. The expected response is NS-ALIVE-ACK
140(<<ns_alive_ack>>). If no such response arrives within given amount of
141time (3 seconds) than another NS-ALIVE message is sent and failed test
142attempt is recorded. After 10 failed attempts NS connection is
143considered dead and OsmoPCU tries to reconnect.
144
Max4e2a1e32016-03-02 18:30:33 +0100145The message conforms to 3GPP TS 08.16 § 9.2.1 specification.
146
147[[ns_alive_ack]]
148==== NS-ALIVE-ACK
149
Harald Welte32b58e62016-03-10 12:45:22 +0700150This message is sent automatically in reply to NS-ALIVE (<<ns_alive>>)
151message.
152
Max4e2a1e32016-03-02 18:30:33 +0100153The message conforms to 3GPP TS 08.16 § 9.2.2 specification.
Harald Welteb682cd62016-02-29 15:09:55 +0100154
155=== Information Elements Overview
156
157All of the IEs handled by OsmoPCU are listed below, with limitations and
Harald Welte032f94b2016-03-10 12:49:03 +0700158additions to 3GPP TS 08.16 specified in more detail.
Harald Welteb682cd62016-02-29 15:09:55 +0100159
Harald Welte032f94b2016-03-10 12:49:03 +0700160==== IEs Conforming to 3GPP TS 08.16
Harald Welteb682cd62016-02-29 15:09:55 +0100161
Max4e2a1e32016-03-02 18:30:33 +0100162The following Information Elements are accepted by OsmoPCU.
Harald Welteb682cd62016-02-29 15:09:55 +0100163
Harald Welte032f94b2016-03-10 12:49:03 +0700164.IEs conforming to 3GPP TS 08.16
Harald Welteb682cd62016-02-29 15:09:55 +0100165[options="header",cols="5%,10%,40%,5%,40%"]
166|===
167| tag (hex) | TS 08.16 § | IE name | <-/-> | Received/Sent by OsmoPCU
Max4e2a1e32016-03-02 18:30:33 +0100168| 0x00 | 10.3.2 | Cause | <-/-> | Received/Sent
169| 0x01 | 10.3.5 | NSVCI | <-/-> | Received/Sent
170| 0x02 | 10.3.3 | NS PDU | <-/-> | Received/Sent
171| 0x03 | 10.3.1 | BVCI | <-/-> | Received/Sent
172| 0x04 | 10.3.6 | NSEI | <-/-> | Received/Sent
Harald Welteb682cd62016-02-29 15:09:55 +0100173|===
174
Harald Welte032f94b2016-03-10 12:49:03 +0700175==== IEs Not Conforming to 3GPP TS 08.16
Harald Welteb682cd62016-02-29 15:09:55 +0100176
Harald Welte032f94b2016-03-10 12:49:03 +0700177All IEs defined in 3GPP TS 08.16 § 10.3 are supported by OsmoPCU.
Harald Welteb682cd62016-02-29 15:09:55 +0100178
179==== Additional Attributes and Parameters
180
181There are no OsmoPCU specific additional Attributes and Parameters.
182
183=== Details on IEs
184
Max4e2a1e32016-03-02 18:30:33 +0100185[[ie_cause]]
186==== Cause
Harald Welteb682cd62016-02-29 15:09:55 +0100187
Harald Welte032f94b2016-03-10 12:49:03 +0700188This IE contains reason for a procedure or error as described in 3GPP TS 08.16 § 10.3.2.
Max4e2a1e32016-03-02 18:30:33 +0100189
190[[ie_nsvci]]
191==== NSVCI
192
Harald Welte032f94b2016-03-10 12:49:03 +0700193This IE represents NSVCI identity described in <<ident>> and 3GPP TS 08.16 § 10.3.5.
Max4e2a1e32016-03-02 18:30:33 +0100194
195[[ie_nspdu]]
196==== NS PDU
197
Harald Welte32b58e62016-03-10 12:45:22 +0700198This IE contains PDU (possibly truncated) which cause error described
Harald Welte032f94b2016-03-10 12:49:03 +0700199in NS-STATUS message (<<ns_status>>) as described in 3GPP TS 08.16 §
Harald Welte32b58e62016-03-10 12:45:22 +070020010.3.3.
Max4e2a1e32016-03-02 18:30:33 +0100201
202[[ie_nssdu]]
203==== NS SDU
204
205This IE contains BSSGP data - see <<bssgp>> for details.
206
207[[ie_bvci]]
208==== BVCI
209
Harald Welte032f94b2016-03-10 12:49:03 +0700210This IE represents BSSGP identity described in <<ident>> and 3GPP TS 08.16
Harald Welte32b58e62016-03-10 12:45:22 +0700211§ 10.3.1.
Max4e2a1e32016-03-02 18:30:33 +0100212
213[[ie_nsei]]
214==== NSEI
215
Harald Welte032f94b2016-03-10 12:49:03 +0700216This IE represents NSEI identity described in <<ident>> and 3GPP TS 08.16 §
Harald Welte32b58e62016-03-10 12:45:22 +070021710.3.6.
Max4e2a1e32016-03-02 18:30:33 +0100218
219[[ns_init]]
Harald Welteb682cd62016-02-29 15:09:55 +0100220=== Gb NS Initialization / PCU bring-up
221
Harald Welte6fb29632016-03-10 12:53:06 +0700222OsmoPCU binds and connects an UDP socket for NS using port numbers and IP
223information given by OsmoBTS via the PCU socket. OsmoBTS in turn
224receives this information from the BSC vi A-bis OML.
225
226Following successful initialization of the UDP socket, the reset
Harald Welte32b58e62016-03-10 12:45:22 +0700227procedure is initiated as described in <<ns_reset>>.