From 19124f4e2e6d73952fde6212e5b40204cd2aa094 Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 2 Mar 2016 18:30:33 +0100 Subject: OsmoPCU: expand NS documentation Add table with NS messages. Add corresponding sections. Clarify spec numbers. --- OsmoPCU/gb/ns.adoc | 153 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 137 insertions(+), 16 deletions(-) (limited to 'OsmoPCU/gb') diff --git a/OsmoPCU/gb/ns.adoc b/OsmoPCU/gb/ns.adoc index 0cc073b..3788389 100644 --- a/OsmoPCU/gb/ns.adoc +++ b/OsmoPCU/gb/ns.adoc @@ -7,10 +7,24 @@ level of compliance with 3GPP TS 08.16. ==== Messages Compliant With TS 08.16 +The NS protocol is implemented inside libosmocore so none of the messages below are sent by OsmoPCU explicitly. +Instead corresponding functions from libosmocore are called which send and receive messages as necessary. See <> for details +on establishing NS connection. + .Messages compliant with TS 08.16 [options="header",cols="10%,10%,20%,35%,5%,20%"] |=== | TS 08.16 § | type code (hex) | This document § | Message | <-/-> | Received/Sent by OsmoPCU +| 9.2.10 | 0x00 | <> | NS-UNITDATA | <-/-> | Received/Sent +| 9.2.5 | 0x02 | <> | NS-RESET | <-/-> | Received/Sent +| 9.2.6 | 0x03 | <> | NS-RESET-ACK | <-/-> | Received/Sent +| 9.2.3 | 0x04 | <> | NS-BLOCK | <-/-> | Received/Sent +| 9.2.4 | 0x05 | <> | NS-BLOCK-ACK | <-/-> | Received/Sent +| 9.2.8 | 0x06 | <> | NS-UNBLOCK | <-/-> | Received/Sent +| 9.2.9 | 0x07 | <> | NS-UNBLOCK-ACK | <-/-> | Received/Sent +| 9.2.7 | 0x08 | <> | NS-STATUS | <-/-> | Received/Sent +| 9.2.1 | 0x0a | <> | NS-ALIVE | <-/-> | Received/Sent +| 9.2.2 | 0x0b | <> | NS-ALIVE-ACK | <-/-> | Received/Sent |=== ==== Messages Specific to OsmoPCU @@ -19,16 +33,92 @@ There are no OsmoPCU specific NS messages. ==== Messages Not Implemented by OsmoPCU -.3GPP TS 08.16 messages not implemented by OsmoPCU -[options="header",cols="10%,10%,80%"] -|=== -| TS 08.16 § | type code (hex) | Message -|=== - +All the NS protocol messages from 3GPP TS 08.16 are implemented in OsmoPCU. === Details on Compliant NS Messages -FIXME +[[ns_unit_data]] +==== NS-UNITDATA + +This PDU transfers one NS SDU (specified in 3GPP TS 08.18) between OsmoPCU and SGSN. Upon receiving it OsmoPCU passes it to BSSGP +implementaton to handle. It is also sent by BSSGP as necessary - see <> for details. +It contains BVCI (<>) and NS SDU (<>) IEs. + +[[ns_reset]] +==== NS-RESET + +This message is send by OsmoPCU in order to initiate reset procedure described in 3GPP TS 08.16 § 7.3. The expected reply is +NS-RESET-ACK (<>) message. If no expected reply is received in 3 seconds than the sending is retried up to 3 times. +When this message is received it is replied with NS-RESET-ACK (<>). +It might be ignored under conditions described in 3GPP TS 08.16 § 7.3.1. +The message conforms to 3GPP TS 08.16 § 9.2.5 specification. +It contains Cause (<>), NSVCI (<>) and NSEI (<>) IEs. + +[[ns_reset_ack]] +==== NS-RESET-ACK + +This message is sent as a response to proper NS-RESET (<>) message initiating reset procedure. +The message conforms to 3GPP TS 08.16 § 9.2.6 specification. +It contains NSVCI (<>) and NSEI (<>) IEs. + +[[ns_block]] +==== NS-BLOCK + +Upon receiving this message corresponding NS-VC is marked as blocked by OsmoPCU and NS-BLOCK-ACK (<>) reply is +transmitted. +When this message is sent by OsmoPCU corresponding NS-BLOCK-ACK (<>) reply is expected before NS-VC is actually marked +as blocked. +This behavior follows the blocking procedure described in 3GPP TS 08.16 § 7.2. +The message conforms to 3GPP TS 08.16 § 9.2.3 specification. +It contains Cause (<>) and NSVCI (<>) IEs. + +[[ns_block_ack]] +==== NS-BLOCK-ACK + +This message is sent by OsmoPCU automatically upon reception of correct NS-BLOCK (<>) message. +It is expected as a reply for NS-BLOCK (<>) message sent by OsmoPCU. +The message conforms to 3GPP TS 08.16 § 9.2.4 specification. +It contains NSVCI (<>) IE. + +[[ns_unblock]] +==== NS-UNBLOCK + +Upon receiving this message corresponding NS-VC is unblocked by OsmoPCU and NS-UNBLOCK-ACK (<>) reply is sent. +When this message is sent by OsmoPCU corresponding NS-UNBLOCK-ACK (<>) reply is expected before NS-VC is actually +marked as unblocked. +This behavior follows the blocking procedure described in 3GPP TS 08.16 § 7.2. +The message conforms to 3GPP TS 08.16 § 9.2.8 specification. + +[[ns_unblock_ack]] +==== NS-UNBLOCK-ACK + +Receiving this message notifies OsmoPCU that NS-VC unblocking request is confirmed and thus NS-VC is marked as unblocked. +This message is also sent as a reply to NS-UNBLOCK (<>) message. +The message conforms to 3GPP TS 08.16 § 9.2.9 specification. + +[[ns_status]] +==== NS-STATUS + +This message is sent to inform other party about error conditions as a response to various unexpected PDUs or PDUs with +unexpected/missing data. If this message is received for unknown NS-VC it is ignored in accordance with 3GPP TS +08.16 § 7.5.1, otherwise the error cause is logged if present in NS-STATUS. +The message conforms to 3GPP TS 08.16 § 9.2.7 specification. +It contains Cause (<>) and might (depending on actual error) contain NSVCI (<>), NS PDU (<>) and BVCI (<>) IEs. + +[[ns_alive]] +==== NS-ALIVE + +This message is sent periodically to test connectivity according to 3GPP TS 08.16 § 4.5.3. The expected response is +NS-ALIVE-ACK (<>). If no such response arrives within given amount of time (3 seconds) than another +NS-ALIVE message is sent and failed test attempt is recorded. +After 10 failed attempts NS connection is considered dead and OsmoPCU tries to reconnect. +The message conforms to 3GPP TS 08.16 § 9.2.1 specification. + +[[ns_alive_ack]] +==== NS-ALIVE-ACK + +This message is sent automatically in reply to NS-ALIVE (<>) message. +The message conforms to 3GPP TS 08.16 § 9.2.2 specification. === Information Elements Overview @@ -37,22 +127,22 @@ additions to TS 08.16 specified in more detail. ==== IEs Conforming to TS 08.16 -The following Information Elements are accepted by OsmoPCU. Not all IEs are -actually evaluated. +The following Information Elements are accepted by OsmoPCU. .IEs conforming to TS 08.16 [options="header",cols="5%,10%,40%,5%,40%"] |=== | tag (hex) | TS 08.16 § | IE name | <-/-> | Received/Sent by OsmoPCU +| 0x00 | 10.3.2 | Cause | <-/-> | Received/Sent +| 0x01 | 10.3.5 | NSVCI | <-/-> | Received/Sent +| 0x02 | 10.3.3 | NS PDU | <-/-> | Received/Sent +| 0x03 | 10.3.1 | BVCI | <-/-> | Received/Sent +| 0x04 | 10.3.6 | NSEI | <-/-> | Received/Sent |=== ==== IEs Not Conforming to TS 08.16 -.IEs not conforming to TS 08.16 -[options="header",cols="5%,10%,30%,55%"] -|=== -| tag (hex) | TS 08.16 § | IE name | Description -|=== +All IEs defined in TS 08.16 § 10.3 are supported by OsmoPCU. ==== Additional Attributes and Parameters @@ -60,8 +150,39 @@ There are no OsmoPCU specific additional Attributes and Parameters. === Details on IEs -FIXME +[[ie_cause]] +==== Cause + +This IE contains reason for a procedure or error as described in TS 08.16 § 10.3.2. + +[[ie_nsvci]] +==== NSVCI + +This IE represents NSVCI identity described in <> and TS 08.16 § 10.3.5. + +[[ie_nspdu]] +==== NS PDU + +This IE contains PDU (possibly truncated) which cause error described in NS-STATUS message (<>) as described in TS 08.16 § 10.3.3. + +[[ie_nssdu]] +==== NS SDU + +This IE contains BSSGP data - see <> for details. + +[[ie_bvci]] +==== BVCI + +This IE represents BSSGP identity described in <> and TS 08.16 § 10.3.1. + +[[ie_nsei]] +==== NSEI + +This IE represents NSEI identity described in <> and TS 08.16 § 10.3.6. +[[ns_init]] === Gb NS Initialization / PCU bring-up -FIXME +OsmoPCU create NS listening socket using UDP port given by OsmoBTS via PCU socket. OsmoBTS in turn receive it from BSC. +After that OsmoPCU tried to connect to remote NS ip:port over UDP using parameters received from BTS. +Following successful connection the reset procedure is initiated as described in <>. -- cgit v1.2.3