Harald Welte | b682cd6 | 2016-02-29 15:09:55 +0100 | [diff] [blame] | 1 | == Network Service (NS) |
| 2 | |
| 3 | === List of Messages |
| 4 | |
| 5 | The following tables list the NS messages used by OsmoPCU, grouped by their |
| 6 | level of compliance with 3GPP TS 08.16. |
| 7 | |
| 8 | ==== Messages Compliant With TS 08.16 |
| 9 | |
Max | 4e2a1e3 | 2016-03-02 18:30:33 +0100 | [diff] [blame^] | 10 | The NS protocol is implemented inside libosmocore so none of the messages below are sent by OsmoPCU explicitly. |
| 11 | Instead corresponding functions from libosmocore are called which send and receive messages as necessary. See <<ns_init>> for details |
| 12 | on establishing NS connection. |
| 13 | |
Harald Welte | b682cd6 | 2016-02-29 15:09:55 +0100 | [diff] [blame] | 14 | .Messages compliant with TS 08.16 |
| 15 | [options="header",cols="10%,10%,20%,35%,5%,20%"] |
| 16 | |=== |
| 17 | | TS 08.16 § | type code (hex) | This document § | Message | <-/-> | Received/Sent by OsmoPCU |
Max | 4e2a1e3 | 2016-03-02 18:30:33 +0100 | [diff] [blame^] | 18 | | 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 Welte | b682cd6 | 2016-02-29 15:09:55 +0100 | [diff] [blame] | 28 | |=== |
| 29 | |
| 30 | ==== Messages Specific to OsmoPCU |
| 31 | |
| 32 | There are no OsmoPCU specific NS messages. |
| 33 | |
| 34 | ==== Messages Not Implemented by OsmoPCU |
| 35 | |
Max | 4e2a1e3 | 2016-03-02 18:30:33 +0100 | [diff] [blame^] | 36 | All the NS protocol messages from 3GPP TS 08.16 are implemented in OsmoPCU. |
Harald Welte | b682cd6 | 2016-02-29 15:09:55 +0100 | [diff] [blame] | 37 | |
| 38 | === Details on Compliant NS Messages |
| 39 | |
Max | 4e2a1e3 | 2016-03-02 18:30:33 +0100 | [diff] [blame^] | 40 | [[ns_unit_data]] |
| 41 | ==== NS-UNITDATA |
| 42 | |
| 43 | This PDU transfers one NS SDU (specified in 3GPP TS 08.18) between OsmoPCU and SGSN. Upon receiving it OsmoPCU passes it to BSSGP |
| 44 | implementaton to handle. It is also sent by BSSGP as necessary - see <<bssgp>> for details. |
| 45 | It contains BVCI (<<ie_bvci>>) and NS SDU (<<ie_nssdu>>) IEs. |
| 46 | |
| 47 | [[ns_reset]] |
| 48 | ==== NS-RESET |
| 49 | |
| 50 | This message is send by OsmoPCU in order to initiate reset procedure described in 3GPP TS 08.16 § 7.3. The expected reply is |
| 51 | NS-RESET-ACK (<<ns_reset_ack>>) message. If no expected reply is received in 3 seconds than the sending is retried up to 3 times. |
| 52 | When this message is received it is replied with NS-RESET-ACK (<<ns_reset_ack>>). |
| 53 | It might be ignored under conditions described in 3GPP TS 08.16 § 7.3.1. |
| 54 | The message conforms to 3GPP TS 08.16 § 9.2.5 specification. |
| 55 | It contains Cause (<<ie_cause>>), NSVCI (<<ie_nsvci>>) and NSEI (<<ie_nsei>>) IEs. |
| 56 | |
| 57 | [[ns_reset_ack]] |
| 58 | ==== NS-RESET-ACK |
| 59 | |
| 60 | This message is sent as a response to proper NS-RESET (<<ns_reset>>) message initiating reset procedure. |
| 61 | The message conforms to 3GPP TS 08.16 § 9.2.6 specification. |
| 62 | It contains NSVCI (<<ie_nsvci>>) and NSEI (<<ie_nsei>>) IEs. |
| 63 | |
| 64 | [[ns_block]] |
| 65 | ==== NS-BLOCK |
| 66 | |
| 67 | Upon receiving this message corresponding NS-VC is marked as blocked by OsmoPCU and NS-BLOCK-ACK (<<ns_block_ack>>) reply is |
| 68 | transmitted. |
| 69 | When this message is sent by OsmoPCU corresponding NS-BLOCK-ACK (<<ns_block_ack>>) reply is expected before NS-VC is actually marked |
| 70 | as blocked. |
| 71 | This behavior follows the blocking procedure described in 3GPP TS 08.16 § 7.2. |
| 72 | The message conforms to 3GPP TS 08.16 § 9.2.3 specification. |
| 73 | It contains Cause (<<ie_cause>>) and NSVCI (<<ie_nsvci>>) IEs. |
| 74 | |
| 75 | [[ns_block_ack]] |
| 76 | ==== NS-BLOCK-ACK |
| 77 | |
| 78 | This message is sent by OsmoPCU automatically upon reception of correct NS-BLOCK (<<ns_block>>) message. |
| 79 | It is expected as a reply for NS-BLOCK (<<ns_block>>) message sent by OsmoPCU. |
| 80 | The message conforms to 3GPP TS 08.16 § 9.2.4 specification. |
| 81 | It contains NSVCI (<<ie_nsvci>>) IE. |
| 82 | |
| 83 | [[ns_unblock]] |
| 84 | ==== NS-UNBLOCK |
| 85 | |
| 86 | Upon receiving this message corresponding NS-VC is unblocked by OsmoPCU and NS-UNBLOCK-ACK (<<ns_unblock_ack>>) reply is sent. |
| 87 | When this message is sent by OsmoPCU corresponding NS-UNBLOCK-ACK (<<ns_unblock_ack>>) reply is expected before NS-VC is actually |
| 88 | marked as unblocked. |
| 89 | This behavior follows the blocking procedure described in 3GPP TS 08.16 § 7.2. |
| 90 | The message conforms to 3GPP TS 08.16 § 9.2.8 specification. |
| 91 | |
| 92 | [[ns_unblock_ack]] |
| 93 | ==== NS-UNBLOCK-ACK |
| 94 | |
| 95 | Receiving this message notifies OsmoPCU that NS-VC unblocking request is confirmed and thus NS-VC is marked as unblocked. |
| 96 | This message is also sent as a reply to NS-UNBLOCK (<<ns_unblock>>) message. |
| 97 | The message conforms to 3GPP TS 08.16 § 9.2.9 specification. |
| 98 | |
| 99 | [[ns_status]] |
| 100 | ==== NS-STATUS |
| 101 | |
| 102 | This message is sent to inform other party about error conditions as a response to various unexpected PDUs or PDUs with |
| 103 | unexpected/missing data. If this message is received for unknown NS-VC it is ignored in accordance with 3GPP TS |
| 104 | 08.16 § 7.5.1, otherwise the error cause is logged if present in NS-STATUS. |
| 105 | The message conforms to 3GPP TS 08.16 § 9.2.7 specification. |
| 106 | It contains Cause (<<ie_cause>>) and might (depending on actual error) contain NSVCI (<<ie_nsvci>>), NS PDU (<<ie_nspdu>>) and BVCI (<<ie_bvci>>) IEs. |
| 107 | |
| 108 | [[ns_alive]] |
| 109 | ==== NS-ALIVE |
| 110 | |
| 111 | This message is sent periodically to test connectivity according to 3GPP TS 08.16 § 4.5.3. The expected response is |
| 112 | NS-ALIVE-ACK (<<ns_alive_ack>>). If no such response arrives within given amount of time (3 seconds) than another |
| 113 | NS-ALIVE message is sent and failed test attempt is recorded. |
| 114 | After 10 failed attempts NS connection is considered dead and OsmoPCU tries to reconnect. |
| 115 | The message conforms to 3GPP TS 08.16 § 9.2.1 specification. |
| 116 | |
| 117 | [[ns_alive_ack]] |
| 118 | ==== NS-ALIVE-ACK |
| 119 | |
| 120 | This message is sent automatically in reply to NS-ALIVE (<<ns_alive>>) message. |
| 121 | The message conforms to 3GPP TS 08.16 § 9.2.2 specification. |
Harald Welte | b682cd6 | 2016-02-29 15:09:55 +0100 | [diff] [blame] | 122 | |
| 123 | === Information Elements Overview |
| 124 | |
| 125 | All of the IEs handled by OsmoPCU are listed below, with limitations and |
| 126 | additions to TS 08.16 specified in more detail. |
| 127 | |
| 128 | ==== IEs Conforming to TS 08.16 |
| 129 | |
Max | 4e2a1e3 | 2016-03-02 18:30:33 +0100 | [diff] [blame^] | 130 | The following Information Elements are accepted by OsmoPCU. |
Harald Welte | b682cd6 | 2016-02-29 15:09:55 +0100 | [diff] [blame] | 131 | |
| 132 | .IEs conforming to TS 08.16 |
| 133 | [options="header",cols="5%,10%,40%,5%,40%"] |
| 134 | |=== |
| 135 | | tag (hex) | TS 08.16 § | IE name | <-/-> | Received/Sent by OsmoPCU |
Max | 4e2a1e3 | 2016-03-02 18:30:33 +0100 | [diff] [blame^] | 136 | | 0x00 | 10.3.2 | Cause | <-/-> | Received/Sent |
| 137 | | 0x01 | 10.3.5 | NSVCI | <-/-> | Received/Sent |
| 138 | | 0x02 | 10.3.3 | NS PDU | <-/-> | Received/Sent |
| 139 | | 0x03 | 10.3.1 | BVCI | <-/-> | Received/Sent |
| 140 | | 0x04 | 10.3.6 | NSEI | <-/-> | Received/Sent |
Harald Welte | b682cd6 | 2016-02-29 15:09:55 +0100 | [diff] [blame] | 141 | |=== |
| 142 | |
| 143 | ==== IEs Not Conforming to TS 08.16 |
| 144 | |
Max | 4e2a1e3 | 2016-03-02 18:30:33 +0100 | [diff] [blame^] | 145 | All IEs defined in TS 08.16 § 10.3 are supported by OsmoPCU. |
Harald Welte | b682cd6 | 2016-02-29 15:09:55 +0100 | [diff] [blame] | 146 | |
| 147 | ==== Additional Attributes and Parameters |
| 148 | |
| 149 | There are no OsmoPCU specific additional Attributes and Parameters. |
| 150 | |
| 151 | === Details on IEs |
| 152 | |
Max | 4e2a1e3 | 2016-03-02 18:30:33 +0100 | [diff] [blame^] | 153 | [[ie_cause]] |
| 154 | ==== Cause |
Harald Welte | b682cd6 | 2016-02-29 15:09:55 +0100 | [diff] [blame] | 155 | |
Max | 4e2a1e3 | 2016-03-02 18:30:33 +0100 | [diff] [blame^] | 156 | This IE contains reason for a procedure or error as described in TS 08.16 § 10.3.2. |
| 157 | |
| 158 | [[ie_nsvci]] |
| 159 | ==== NSVCI |
| 160 | |
| 161 | This IE represents NSVCI identity described in <<ident>> and TS 08.16 § 10.3.5. |
| 162 | |
| 163 | [[ie_nspdu]] |
| 164 | ==== NS PDU |
| 165 | |
| 166 | This IE contains PDU (possibly truncated) which cause error described in NS-STATUS message (<<ns_status>>) as described in TS 08.16 § 10.3.3. |
| 167 | |
| 168 | [[ie_nssdu]] |
| 169 | ==== NS SDU |
| 170 | |
| 171 | This IE contains BSSGP data - see <<bssgp>> for details. |
| 172 | |
| 173 | [[ie_bvci]] |
| 174 | ==== BVCI |
| 175 | |
| 176 | This IE represents BSSGP identity described in <<ident>> and TS 08.16 § 10.3.1. |
| 177 | |
| 178 | [[ie_nsei]] |
| 179 | ==== NSEI |
| 180 | |
| 181 | This IE represents NSEI identity described in <<ident>> and TS 08.16 § 10.3.6. |
| 182 | |
| 183 | [[ns_init]] |
Harald Welte | b682cd6 | 2016-02-29 15:09:55 +0100 | [diff] [blame] | 184 | === Gb NS Initialization / PCU bring-up |
| 185 | |
Max | 4e2a1e3 | 2016-03-02 18:30:33 +0100 | [diff] [blame^] | 186 | OsmoPCU create NS listening socket using UDP port given by OsmoBTS via PCU socket. OsmoBTS in turn receive it from BSC. |
| 187 | After that OsmoPCU tried to connect to remote NS ip:port over UDP using parameters received from BTS. |
| 188 | Following successful connection the reset procedure is initiated as described in <<ns_reset>>. |