From: Harald Welte laforge@gnumonks.org
--- OsmoPCU/Makefile | 3 +- OsmoPCU/gb/bssgp.adoc | 67 +++++++++++++++++++++++++++++++ OsmoPCU/gb/gb-startup.msc | 0 OsmoPCU/gb/ns.adoc | 67 +++++++++++++++++++++++++++++++ OsmoPCU/osmopcu-gb-docinfo.xml | 58 +++++++++++++++++++++++++++ OsmoPCU/osmopcu-gb.adoc | 89 ++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 283 insertions(+), 1 deletion(-) create mode 100644 OsmoPCU/gb/bssgp.adoc create mode 100644 OsmoPCU/gb/gb-startup.msc create mode 100644 OsmoPCU/gb/ns.adoc create mode 100644 OsmoPCU/osmopcu-gb-docinfo.xml create mode 100644 OsmoPCU/osmopcu-gb.adoc
diff --git a/OsmoPCU/Makefile b/OsmoPCU/Makefile index f742e07..ef80327 100644 --- a/OsmoPCU/Makefile +++ b/OsmoPCU/Makefile @@ -14,11 +14,12 @@ docbooktotypes = pdf # htmlcss =
TOPDIR := .. -ASCIIDOCS := osmopcu-usermanual +ASCIIDOCS := osmopcu-usermanual osmopcu-gb
include $(TOPDIR)/build/Makefile.asciidoc.inc include $(TOPDIR)/build/Makefile.inc
+osmopcu-gb.pdf: gb/*.adoc gb/*.msc osmopcu-usermanual.pdf: chapters/*.adoc
clean: diff --git a/OsmoPCU/gb/bssgp.adoc b/OsmoPCU/gb/bssgp.adoc new file mode 100644 index 0000000..c354fc1 --- /dev/null +++ b/OsmoPCU/gb/bssgp.adoc @@ -0,0 +1,67 @@ +== BSS GPRS Protocol (BSSGP) + +=== List of Messages + +The following tables list the BSSGP messages used by OsmoPCU, grouped by their +level of compliance with 3GPP TS 08.18. + +==== Messages Compliant With TS 08.18 + +.Messages compliant with TS 08.18 +[options="header",cols="10%,10%,20%,35%,5%,20%"] +|=== +| TS 08.18 § | type code (hex) | This document § | Message | <-/-> | Received/Sent by OsmoPCU +|=== + +==== Messages Specific to OsmoPCU + +There are no OsmoPCU specific BSSGP messages. + +==== Messages Not Implemented by OsmoPCU + +.3GPP TS 08.18 messages not implemented by OsmoPCU +[options="header",cols="10%,10%,80%"] +|=== +| TS 08.18 § | type code (hex) | Message +|=== + + +=== Details on Compliant BSSGP Messages + +FIXME + +=== Information Elements Overview + +All of the IEs handled by OsmoPCU are listed below, with limitations and +additions to TS 08.18 specified in more detail. + +==== IEs Conforming to TS 08.18 + +The following Information Elements are accepted by OsmoPCU. Not all IEs are +actually evaluated. + +.IEs conforming to TS 08.18 +[options="header",cols="5%,10%,40%,5%,40%"] +|=== +| tag (hex) | TS 08.18 § | IE name | <-/-> | Received/Sent by OsmoPCU +|=== + +==== IEs Not Conforming to TS 08.18 + +.IEs not conforming to TS 08.18 +[options="header",cols="5%,10%,30%,55%"] +|=== +| tag (hex) | TS 08.18 § | IE name | Description +|=== + +==== Additional Attributes and Parameters + +There are no OsmoPCU specific additional Attributes and Parameters. + +=== Details on IEs + +FIXME + +=== Gb BSSGP Initialization / PCU bring-up + +FIXME diff --git a/OsmoPCU/gb/gb-startup.msc b/OsmoPCU/gb/gb-startup.msc new file mode 100644 index 0000000..e69de29 diff --git a/OsmoPCU/gb/ns.adoc b/OsmoPCU/gb/ns.adoc new file mode 100644 index 0000000..0cc073b --- /dev/null +++ b/OsmoPCU/gb/ns.adoc @@ -0,0 +1,67 @@ +== Network Service (NS) + +=== List of Messages + +The following tables list the NS messages used by OsmoPCU, grouped by their +level of compliance with 3GPP TS 08.16. + +==== Messages Compliant With TS 08.16 + +.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 +|=== + +==== Messages Specific to OsmoPCU + +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 +|=== + + +=== Details on Compliant NS Messages + +FIXME + +=== Information Elements Overview + +All of the IEs handled by OsmoPCU are listed below, with limitations and +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. + +.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 +|=== + +==== 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 +|=== + +==== Additional Attributes and Parameters + +There are no OsmoPCU specific additional Attributes and Parameters. + +=== Details on IEs + +FIXME + +=== Gb NS Initialization / PCU bring-up + +FIXME diff --git a/OsmoPCU/osmopcu-gb-docinfo.xml b/OsmoPCU/osmopcu-gb-docinfo.xml new file mode 100644 index 0000000..280c6f7 --- /dev/null +++ b/OsmoPCU/osmopcu-gb-docinfo.xml @@ -0,0 +1,58 @@ +<revhistory> + <revision> + <revnumber>0</revnumber> + <date>February 2016</date> + <authorinitials>HW, MS</authorinitials> + <revremark> + Initial version, reflecting OsmoPCU master branch as on FIXME + (commit FIXME). + </revremark> + </revision> +</revhistory> + +<authorgroup> + <author> + <firstname>Max</firstname> + <surname>Suraev</surname> + <email>msuraev@sysmocom.de</email> + <authorinitials>MS</authorinitials> + <affiliation> + <shortaffil>sysmocom</shortaffil> + <orgname>sysmocom - s.f.m.c. GmbH</orgname> + <jobtitle>Software Developer</jobtitle> + </affiliation> + </author> + <author> + <firstname>Harald</firstname> + <surname>Welte</surname> + <email>hwelte@sysmocom.de</email> + <authorinitials>HW</authorinitials> + <affiliation> + <shortaffil>sysmocom</shortaffil> + <orgname>sysmocom - s.f.m.c. GmbH</orgname> + <jobtitle>Managing Director</jobtitle> + </affiliation> + </author> +</authorgroup> + +<copyright> + <year>2015-2016</year> + <holder>sysmocom - s.f.m.c. GmbH</holder> +</copyright> + +<legalnotice> + <para> + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.3 or any later version published by the Free Software + Foundation; with no Invariant Sections, no Front-Cover Texts, + and no Back-Cover Texts. A copy of the license is included in + the section entitled "GNU Free Documentation License". + </para> + <para> + The Asciidoc source code of this manual can be found at + <ulink url="http://git.osmocom.org/osmo-gsm-manuals/"> + http://git.osmocom.org/osmo-gsm-manuals/ + </ulink> + </para> +</legalnotice> diff --git a/OsmoPCU/osmopcu-gb.adoc b/OsmoPCU/osmopcu-gb.adoc new file mode 100644 index 0000000..261f7db --- /dev/null +++ b/OsmoPCU/osmopcu-gb.adoc @@ -0,0 +1,89 @@ +OsmoPCU Gb Protocol Specification +================================= +Harald Welte nhofmeyr@sysmocom.de + +== Introduction + +This document describes the Gb interface of *OsmoPCU*. Based on 3GPP TS +FIXME and FIXME, this document indicates which of the 3GPP specified Gb +messages and IEs are implemented according to 3GPP specifications, which of +these are not or not fully implemented, as well as OsmoPCU-specific extensions +to the Gb interface not specified by 3GPP. + +Extensions to the Gb interface specific to OsmoPCU are detailed in this +document. For details on the messages and IEs that comply with abovementioned +3GPP specifications, please refer to those documents. + +.3GPP document versions referred to by this document +[cols="20%,80%"] +|=== +|3GPP TS 08.56 | version 8.0.1 Release 1999 +|3GPP TS 08.58 | version 8.6.0 Release 1999 +|3GPP TS 08.60 | version 8.2.1 Release 1999 +|3GPP TS 12.21 | version 8.0.0 Release 1999 +|=== + +.IETF documents referred to by his document +[cols="20%,80%"] +|=== +|IETF RFC 768 | User Datagram Protocol +|IETF RFC 791 | Internet Protocol +|=== + +== Overview + +The OsmoPCU Gb interface consists of the NS (Network Services) and +BSSGP (Base Station Subsystem Gateway Protocol), encapsulated in UDP +(User Datagram Protocol) and IP (Internet Protocol) version 4. + +.UDP port numbers used by OsmoPCU Gb/IP +[options="header",width="50%",cols="35%,65%"] +|=== +|TCP Port Number|Usage +|23000|NS over UDP +|=== + +The NS-over-UDP link is established in the PCU -> SGSN direction, i.e. +the PCU is running as client while the SGSN is running as server. + +Establishment of the NS-over-UDP link is only possible after OsmoPCU +has been configured viat the *PCU socket* interface from OsmoBTS. + +OsmoBTS in turn receives relevant configuration parameters from +OsmoBSC or the BSC component inside OsmoNITB. + +.Overview of Gb link establishment +["mscgen"] +---- +include::gb/gb-startup.msc[] +---- + +=== Identities + +The Gb interface identities of the PCU are configured via BSC -> +OsmoBTS -> PCU Socket. They consist of + +NSEI:: NS Equipment Identifier +NSVCI:: NS Virtual Connection Identifier +BVCI:: BSSGP Virtual Connection Identifier + +For an explanation of those identifiers and their use in the NS and +BSSGP protocols, please see the reelvant 3GPP specifications for NS +and BSSGP. + +In most cases, all above identities belong to different namespaces and +must be unique within their respective namespace and within the SGSN +they connect to. + +This means that typically each OsmoPCU has one unique set of NSEI, +NSVCI and BVCI in your network. + +include::gb/ns.adoc[] + +include::gb/bssgp.adoc[] + +include::../common/chapters/port_numbers.adoc[] + +include::../common/chapters/glossary.adoc[] + +include::../common/chapters/gfdl.adoc[]
From: Max msuraev@sysmocom.de
Add date and commit refs. Add relevant standards. Fix email typo. --- OsmoPCU/osmopcu-gb-docinfo.xml | 4 ++-- OsmoPCU/osmopcu-gb.adoc | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/OsmoPCU/osmopcu-gb-docinfo.xml b/OsmoPCU/osmopcu-gb-docinfo.xml index 280c6f7..23ec3d1 100644 --- a/OsmoPCU/osmopcu-gb-docinfo.xml +++ b/OsmoPCU/osmopcu-gb-docinfo.xml @@ -4,8 +4,8 @@ <date>February 2016</date> <authorinitials>HW, MS</authorinitials> <revremark> - Initial version, reflecting OsmoPCU master branch as on FIXME - (commit FIXME). + Initial version, reflecting OsmoPCU master branch as on 2016-Mar-02 + (commit 22d7e75e1f160e5337140d9f3dcb2679b621b646). </revremark> </revision> </revhistory> diff --git a/OsmoPCU/osmopcu-gb.adoc b/OsmoPCU/osmopcu-gb.adoc index 261f7db..6ebcf18 100644 --- a/OsmoPCU/osmopcu-gb.adoc +++ b/OsmoPCU/osmopcu-gb.adoc @@ -1,11 +1,11 @@ OsmoPCU Gb Protocol Specification ================================= -Harald Welte nhofmeyr@sysmocom.de +Harald Welte hwelte@sysmocom.de
== Introduction
This document describes the Gb interface of *OsmoPCU*. Based on 3GPP TS -FIXME and FIXME, this document indicates which of the 3GPP specified Gb +08.16 and 08.18, this document indicates which of the 3GPP specified Gb messages and IEs are implemented according to 3GPP specifications, which of these are not or not fully implemented, as well as OsmoPCU-specific extensions to the Gb interface not specified by 3GPP. @@ -21,6 +21,8 @@ document. For details on the messages and IEs that comply with abovementioned |3GPP TS 08.58 | version 8.6.0 Release 1999 |3GPP TS 08.60 | version 8.2.1 Release 1999 |3GPP TS 12.21 | version 8.0.0 Release 1999 +|3GPP TS 08.16 | version 8.0.1 Release 1999 +|3GPP TS 08.18 | version 8.12.0 Release 1999 |===
.IETF documents referred to by his document
Hi Max,
I merged your OsmoPCU documentation changes, and performed some additional clean-up / spelling fixes and clarifications. It's now part of master and has already been built and deployed automatically at http://ftp.osmocom.org/docs/latest/osmopcu-gb.pdf
Regards, Harald
On 10 Mar 2016, at 07:08, Harald Welte laforge@gnumonks.org wrote:
Hi Max,
Hi,
I merged your OsmoPCU documentation changes, and performed some additional clean-up / spelling fixes and clarifications. It's now part of master and has already been built and deployed automatically at http://ftp.osmocom.org/docs/latest/osmopcu-gb.pdf
could you please change the status on the patches to something like "Accepted" so that they are removed from the patchwork view.
thank you holger
From: Max msuraev@sysmocom.de
Add table with NS messages. Add corresponding sections. Clarify spec numbers. --- OsmoPCU/gb/ns.adoc | 153 +++++++++++++++++++++++++++++++++++++++++++----- OsmoPCU/osmopcu-gb.adoc | 6 +- 2 files changed, 141 insertions(+), 18 deletions(-)
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 <<ns_init>> 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_unit_data>> | NS-UNITDATA | <-/-> | Received/Sent +| 9.2.5 | 0x02 | <<ns_reset>> | NS-RESET | <-/-> | Received/Sent +| 9.2.6 | 0x03 | <<ns_reset_ack>> | NS-RESET-ACK | <-/-> | Received/Sent +| 9.2.3 | 0x04 | <<ns_block>> | NS-BLOCK | <-/-> | Received/Sent +| 9.2.4 | 0x05 | <<ns_block_ack>> | NS-BLOCK-ACK | <-/-> | Received/Sent +| 9.2.8 | 0x06 | <<ns_unblock>> | NS-UNBLOCK | <-/-> | Received/Sent +| 9.2.9 | 0x07 | <<ns_unblock_ack>> | NS-UNBLOCK-ACK | <-/-> | Received/Sent +| 9.2.7 | 0x08 | <<ns_status>> | NS-STATUS | <-/-> | Received/Sent +| 9.2.1 | 0x0a | <<ns_alive>> | NS-ALIVE | <-/-> | Received/Sent +| 9.2.2 | 0x0b | <<ns_alive_ack>> | 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 <<bssgp>> for details. +It contains BVCI (<<ie_bvci>>) and NS SDU (<<ie_nssdu>>) 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 (<<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 (<<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 (<<ie_cause>>), NSVCI (<<ie_nsvci>>) and NSEI (<<ie_nsei>>) IEs. + +[[ns_reset_ack]] +==== NS-RESET-ACK + +This message is sent as a response to proper NS-RESET (<<ns_reset>>) message initiating reset procedure. +The message conforms to 3GPP TS 08.16 § 9.2.6 specification. +It contains NSVCI (<<ie_nsvci>>) and NSEI (<<ie_nsei>>) IEs. + +[[ns_block]] +==== NS-BLOCK + +Upon receiving this message corresponding NS-VC is marked as blocked by OsmoPCU and NS-BLOCK-ACK (<<ns_block_ack>>) reply is +transmitted. +When this message is sent by OsmoPCU corresponding NS-BLOCK-ACK (<<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 (<<ie_cause>>) and NSVCI (<<ie_nsvci>>) IEs. + +[[ns_block_ack]] +==== NS-BLOCK-ACK + +This message is sent by OsmoPCU automatically upon reception of correct NS-BLOCK (<<ns_block>>) message. +It is expected as a reply for NS-BLOCK (<<ns_block>>) message sent by OsmoPCU. +The message conforms to 3GPP TS 08.16 § 9.2.4 specification. +It contains NSVCI (<<ie_nsvci>>) IE. + +[[ns_unblock]] +==== NS-UNBLOCK + +Upon receiving this message corresponding NS-VC is unblocked by OsmoPCU and NS-UNBLOCK-ACK (<<ns_unblock_ack>>) reply is sent. +When this message is sent by OsmoPCU corresponding NS-UNBLOCK-ACK (<<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 (<<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 (<<ie_cause>>) and might (depending on actual error) contain NSVCI (<<ie_nsvci>>), NS PDU (<<ie_nspdu>>) and BVCI (<<ie_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 (<<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 (<<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 <<ident>> 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 (<<ns_status>>) as described in TS 08.16 § 10.3.3. + +[[ie_nssdu]] +==== NS SDU + +This IE contains BSSGP data - see <<bssgp>> for details. + +[[ie_bvci]] +==== BVCI + +This IE represents BSSGP identity described in <<ident>> and TS 08.16 § 10.3.1. + +[[ie_nsei]] +==== NSEI + +This IE represents NSEI identity described in <<ident>> 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 <<ns_reset>>. diff --git a/OsmoPCU/osmopcu-gb.adoc b/OsmoPCU/osmopcu-gb.adoc index 6ebcf18..620d336 100644 --- a/OsmoPCU/osmopcu-gb.adoc +++ b/OsmoPCU/osmopcu-gb.adoc @@ -37,6 +37,7 @@ document. For details on the messages and IEs that comply with abovementioned The OsmoPCU Gb interface consists of the NS (Network Services) and BSSGP (Base Station Subsystem Gateway Protocol), encapsulated in UDP (User Datagram Protocol) and IP (Internet Protocol) version 4. +Use of other underlying protocols (e. g. FrameRelay) is not supported.
.UDP port numbers used by OsmoPCU Gb/IP [options="header",width="50%",cols="35%,65%"] @@ -60,6 +61,7 @@ OsmoBSC or the BSC component inside OsmoNITB. include::gb/gb-startup.msc[] ----
+[[ident]] === Identities
The Gb interface identities of the PCU are configured via BSC -> @@ -70,8 +72,8 @@ NSVCI:: NS Virtual Connection Identifier BVCI:: BSSGP Virtual Connection Identifier
For an explanation of those identifiers and their use in the NS and -BSSGP protocols, please see the reelvant 3GPP specifications for NS -and BSSGP. +BSSGP protocols, please see the reelvant 3GPP specifications for NS (TS 08.16) +and BSSGP (TS 08.18).
In most cases, all above identities belong to different namespaces and must be unique within their respective namespace and within the SGSN
From: Max msuraev@sysmocom.de
--- OsmoPCU/gb/bssgp.adoc | 379 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 376 insertions(+), 3 deletions(-)
diff --git a/OsmoPCU/gb/bssgp.adoc b/OsmoPCU/gb/bssgp.adoc index c354fc1..3a49a71 100644 --- a/OsmoPCU/gb/bssgp.adoc +++ b/OsmoPCU/gb/bssgp.adoc @@ -1,3 +1,4 @@ +[[bssgp]] == BSS GPRS Protocol (BSSGP)
=== List of Messages @@ -11,24 +12,207 @@ level of compliance with 3GPP TS 08.18. [options="header",cols="10%,10%,20%,35%,5%,20%"] |=== | TS 08.18 § | type code (hex) | This document § | Message | <-/-> | Received/Sent by OsmoPCU +6+<| *RL and BSSGP SAP Messages:* +| 10.2.1 | 0x00 | <<dl_unit_data>> | DL-UNITDATA | <- | Received +| 10.2.2 | 0x01 | <<ul_unit_data>> | UL-UNITDATA | -> | Sent +| 10.2.3 | 0x02 | <<ra_capab>> | RA-CAPABILITY | <- | Received +6+<| *GMM SAP Messages:* +| 10.3.1 | 0x06 | <<paging_ps>> | PAGING PS | <- | Received +| 10.3.2 | 0x07 | <<paging_cs>> | PAGING CS | <- | Received +| 10.3.7 | 0x0c | <<susp_ack>> | SUSPEND-ACK | <- | Received +| 10.3.8 | 0x0d | <<susp_nack>> | SUSPEND-NACK | <- | Received +| 10.3.10 | 0x0f | <<res_ack>> | RESUME-ACK | <- | Received +| 10.3.11 | 0x10 | <<res_nack>> | RESUME-NACK | <- | Received +6+<| *NM SAP Messages:* +| 10.4.9 | 0x21 | <<block_ack>> | BVC-BLOCK-ACK | <- | Received +| 10.4.12 | 0x22 | <<bvc_reset>> | BVC-RESET | <-/-> | Received/Sent +| 10.4.13 | 0x23 | <<reset_ack>> | BVC-RESET-ACK | <- | Received +| 10.4.10 | 0x24 | <<bvc_unblock>> | BVC-UNBLOCK | -> | Sent +| 10.4.11 | 0x25 | <<unblock_ack>> | BVC-UNBLOCK-ACK | <- | Received +| 10.4.4 | 0x26 | <<flow_bvc>> | FLOW-CONTROL-BVC | -> | Sent +| 10.4.5 | 0x27 | <<flow_bvc_ack>> | FLOW-CONTROL-BVC-ACK | <- | Received +| 10.4.7 | 0x29 | <<flow_ms_ack>> | FLOW-CONTROL-MS-ACK | <- | Received +| 10.4.1 | 0x2a | <<flush_ll>> | FLUSH-LL | <- | Received +| 10.4.15 | 0x40 | <<invoke_trace>> | SGSN-INVOKE-TRACE | <- | Received +| 10.4.14 | 0x41 | <<bssgp_status>> | STATUS | <-/-> | Received/Sent |===
==== Messages Specific to OsmoPCU
There are no OsmoPCU specific BSSGP messages.
+[[not_impl]] ==== Messages Not Implemented by OsmoPCU
.3GPP TS 08.18 messages not implemented by OsmoPCU [options="header",cols="10%,10%,80%"] |=== | TS 08.18 § | type code (hex) | Message +3+<| *RL (relay) and BSSGP SAP Messages:* +| 10.2.4 | 0x03 | PTM-UNITDATA +3+<| *GMM (GPRS mobility management) SAP Messages:* +| 10.3.3 | 0x08 | RA-CAPABILITY-UPDATE +| 10.3.4 | 0x09 | RA-CAPABILITY-UPDATE-ACK +| 10.3.5 | 0x0a | RADIO-STATUS +| 10.3.6 | 0x0b | SUSPEND +| 10.3.9 | 0x0e | RESUME +3+<| *NM (network management) SAP Messages:* +| 10.4.8 | 0x20 | BVC-BLOCK +| 10.4.6 | 0x28 | FLOW-CONTROL-MS +| 10.4.2 | 0x2b | FLUSH-LL-ACK +| 10.4.3 | 0x2c | LLC-DISCARDED +3+<| *PFM (packet flow management) SAP Messages:* +| 10.4.16 | 0x50 | DOWNLOAD-BSS-PFC +| 10.4.17 | 0x51 | CREATE-BSS-PFC +| 10.4.18 | 0x52 | CREATE-BSS-PFC-ACK +| 10.4.19 | 0x53 | CREATE-BSS-PFC-NACK +| 10.4.20 | 0x54 | MODIFY-BSS-PFC +| 10.4.21 | 0x55 | MODIFY-BSS-PFC-ACK +| 10.4.22 | 0x56 | DELETE-BSS-PFC +| 10.4.23 | 0x57 | DELETE-BSS-PFC-ACK |===
=== Details on Compliant BSSGP Messages
-FIXME +[[dl_unit_data]] +==== DL-UNITDATA + +This message conforms to 3GPP TS 08.18 § 10.2.1, with the following limitations: OsmoPCU does not support QoS, +all optional IEs except for IMSI and old TLLI are ignored. + +._DL-UNITDATA_ IE limitations +[options="header",cols="10%,30%,60%"] +|=== +| TS 08.18 § | IE Name | Handling +| 11.3.28 | QoS Profile | _ignored_ +| 11.3.22 | MS Radio Access Capability | _ignored_ +| 11.3.27 | Priority | _ignored_ +| 11.3.11 | DRX Parameters | _ignored_ +| 1.3.42 | PFI | _ignored_ +| 11.3.19 | LSA Information | _ignored_ +| 11.3.47 | Service UTRAN CCO | _ignored_ +|=== + +[[ul_unit_data]] +==== UL-UNITDATA + +This message conforms to 3GPP TS 08.18 § 10.2.2, with the following limitations: +OsmoPCU does not send optional IEs - PFI (§ 12.3.42) and LSA Identifier List (§ 11.3.18). +QoS Profile (§ 11.3.28) IE is always set to 0x04. + +[[ra_capab]] +==== RA-CAPABILITY + +This message is received and logged but ignored by OsmoPCU at the moment. + +[[paging_ps]] +==== PAGING PS + +This message conforms to 3GPP TS 08.18 § 10.3.1, with the following limitations: +only IMSI and P-TMSI are parsed by OsmoPCU. + +._DL-UNITDATA_ IE limitations +[options="header",cols="10%,30%,60%"] +|=== +| TS 08.18 § | IE Name | Handling +| 11.3.11 | DRX Parameters | _ignored_ +| 11.3.6 | BVCI | _ignored_ +| 11.3.17 | Location Are | _ignored_ +| 11.3.31 | Routeing Area | _ignored_ +| 11.3.3 | BSS Area Indication | _ignored_ +| 1.3.42 | PFI | _ignored_ +| 11.3.43 | ABQP | _ignored_ +| 11.3.28 | QoS Profile | _ignored_ +| 11.3.36 | P-TMSI | treated as mandatory (in case of absence paging with 0-length P-TMSI will be sent) +|=== + + +[[paging_cs]] +==== PAGING CS + +This message is received and logged but ignored by OsmoPCU at the moment. + +[[susp_ack]] +==== SUSPEND-ACK + +This message is received and logged but ignored by OsmoPCU at the moment. + +[[susp_nack]] +==== SUSPEND-NACK + +This message is received and logged but ignored by OsmoPCU at the moment. + +[[res_ack]] +==== RESUME-ACK + +This message is received and logged but ignored by OsmoPCU at the moment. + +[[res_nack]] +==== RESUME-NACK + +This message is received and logged but ignored by OsmoPCU at the moment. + +[[block_ack]] +==== BVC-BLOCK-ACK + +This message is received and logged but ignored by OsmoPCU at the moment. + +[[bvc_reset]] +==== BVC-RESET + +OsmoPCU never transmits optional Feature bitmap (3GPP TS 08.18 § 11.3.40) IE. +Receiving BVC RESET will cause OsmoPCU to respond with "Unknown BVCI" status message. + +[[reset_ack]] +==== BVC-RESET-ACK + +This message conforms to 3GPP TS 08.18 § 10.4.13. +After receiving it OsmoPCU completes the RESET procedure for BVC according to 3GPP TS 08.18 § 8.4. + +[[unblock_ack]] +==== BVC-UNBLOCK-ACK + +This message conforms to 3GPP TS 08.18 § 10.4.11. +After receiving it OsmoPCU completes the RESET procedure for BVC according to 3GPP TS 08.18 § 8.3. + +[[bvc_unblock]] +==== BVC-UNBLOCK + +This message conforms to 3GPP TS 08.18 § 10.4.10 and is send by OsmoPCU as part of UNBLOCK procedure +described in 3GPP TS 08.18 § 8.3. + +[[flow_ms_ack]] +==== FLOW-CONTROL-MS-ACK + +This message is received and logged but ignored by OsmoPCU at the moment. + +[[flow_bvc_ack]] +==== FLOW-CONTROL-BVC-ACK + +This message is received and logged but ignored by OsmoPCU at the moment. + +[[flow_bvc]] +==== FLOW-CONTROL-BVC + +This message conforms to 3GPP TS 08.18 § 10.4.4, with the following limitations: +OsmoPCU does not support Current Bucket Level (CBL) feature so Bucket_Full Ratio (TS 08.18 § 11.3.46) IE +is not transmitted as part of this message. + +[[flush_ll]] +==== FLUSH-LL + +This message is received and logged but ignored by OsmoPCU at the moment. + +[[invoke_trace]] +==== SGSN-INVOKE-TRACE + +This message is received and logged but ignored by OsmoPCU at the moment. + +[[bssgp_status]] +==== STATUS + +This message conforms to 3GPP TS 08.18 § 10.4.14.
=== Information Elements Overview
@@ -44,6 +228,50 @@ actually evaluated. [options="header",cols="5%,10%,40%,5%,40%"] |=== | tag (hex) | TS 08.18 § | IE name | <-/-> | Received/Sent by OsmoPCU +| 0x00 | 11.3.1 | Alignment Octets | <-/-> | Received/Sent +| 0x01 | 11.3.2 | Bmax default MS | -> | Sent +| 0x02 | 11.3.3 | BSS Area Indication | <- | Received +| 0x03 | 11.3.4 | Bucket Leak Rate | -> | Sent +| 0x04 | 11.3.6 | BVCI | <-/-> | Received/Sent +| 0x05 | 11.3.5 | BVC Bucket Size | -> | Sent +| 0x06 | 11.3.7 | BVC Measurement | -> | Sent +| 0x07 | 11.3.8 | Cause | <-/-> | Received/Sent +| 0x08 | 11.3.9 | Cell Identifier | -> | Sent +| 0x09 | 11.3.10 | Channel needed | <- | Received +| 0x0a | 11.3.11 | DRX Parameters | <- | Received +| 0x0b | 11.3.12 | eMLPP-Priority | <- | Received +| 0x0c | 11.3.13 | Flush Action | <- | Received +| 0x0d | 11.3.14 | IMSI | <-/-> | Received/Sent +| 0x0e | 11.3.15 | LLC-PDU | <-/-> | Received/Sent +| 0x0f | 11.3.16 | LLC Frames Discarded | -> | Sent +| 0x10 | 11.3.17 | Location Area | <- | Received +| 0x11 | 11.3.20 | Mobile Id | <- | Received +| 0x12 | 11.3.21 | MS Bucket Size | -> | Sent +| 0x13 | 11.3.22 | MS Radio Access Capability | <- | Received +| 0x14 | 11.3.23 | OMC Id | <- | Received +| 0x15 | 11.3.24 | PDU In Error | <-/-> | Received/Sent +| 0x16 | 11.3.25 | PDU Lifetime | <- | Received +| 0x17 | 11.3.27 | Priority | <- | Received +| 0x19 | 11.3.29 | Radio Cause | -> | Sent +| 0x1a | 11.3.30 | RA-Cap-UPD-Cause | -> | Sent +| 0x1b | 11.3.31 | Routeing Area | <-/-> | Received/Sent +| 0x1c | 11.3.32 | R_default_MS | -> | Sent +| 0x1d | 11.3.33 | Suspend Reference Number | <-/-> | Received/Sent +| 0x1e | 11.3.34 | Tag | <-/-> | Received/Sent +| 0x1f | 11.3.35 | TLLI | <-/-> | Received/Sent +| 0x20 | 11.3.36 | TMSI | <-/-> | Received/Sent +| 0x21 | 11.3.37 | Trace Reference | <- | Received +| 0x22 | 11.3.38 | Trace Type | <- | Received +| 0x23 | 11.3.39 | TransactionId | <- | Received +| 0x24 | 11.3.40 | Trigger Id | <- | Received +| 0x25 | 11.3.41 | Number of octets affected | -> | Sent +| 0x26 | 11.3.18 | LSA Identifier List | -> | Sent +| 0x27 | 11.3.19 | LSA Information | <- | Received +| 0x28 | 11.3.42 | Packet Flow Identifier | <-/-> | Received/Sent +| 0x3a | 11.3.43 | Aggregate BSS QoS Profile (ABQP) | <-/-> | Received/Sent +| 0x3b | 11.3.45 | Feature Bitmap | <-/-> | Received/Sent +| 0x3c | 11.3.46 | Bucket_Full Ratio | -> | Sent +| 0x3d | 11.3.47 | Service UTRAN CCO (Cell Change Order) | <- | Received |===
==== IEs Not Conforming to TS 08.18 @@ -52,6 +280,7 @@ actually evaluated. [options="header",cols="5%,10%,30%,55%"] |=== | tag (hex) | TS 08.18 § | IE name | Description +| 0x18 | 11.3.28 | QoS Profile | Received value is ignored. Sent value is hardcoded to 0x4 (3 octets). |===
==== Additional Attributes and Parameters @@ -60,8 +289,152 @@ There are no OsmoPCU specific additional Attributes and Parameters.
=== Details on IEs
-FIXME +==== BSS Area Indication + +This IE is ignored by OsmoPCU. + +==== Bucket Leak Rate + +The value used by OsmoPCU for this IE can be set through configuration file or vty via +"flow-control force-ms-leak-rate <1-6553500>" command. + +==== BVC Bucket Size + +The value used by OsmoPCU for this IE can be set through configuration file or vty via +"flow-control force-bvc-bucket-size <1-6553500>" command. + +==== Channel needed + +This IE is ignored because entire message which contains it is ignored by OsmoPCU - see <<paging_cs>> for details. + +==== DRX Parameters + +This IE is ignored by OsmoPCU. + +==== eMLPP-Priority + +This IE is ignored because entire message which contains it is ignored by OsmoPCU - see <<paging_cs>> for details. + +==== Flush Action + +This IE is ignored because entire message which contains it is ignored by OsmoPCU - see <<flush_ll>> for details. + +==== LLC Frames Discarded + +This IE is not available because entire message which contains it (LLC-DISCARDED) is not implemented by +OsmoPCU - see for <<not_impl>> details. + +==== Location Area + +This IE is ignored by OsmoPCU. + +==== Mobile Id + +This IE is ignored because entire message which contains it is ignored by OsmoPCU - see <<invoke_trace>> for details. + +==== MS Bucket Size + +The value used by OsmoPCU for this IE can be set through configuration file or vty via +"flow-control force-ms-bucket-size <1-6553500>" command. + +==== MS Radio Access Capability + +This IE is ignored by OsmoPCU. + +==== OMC Id + +This IE is ignored because entire message which contains it is ignored by OsmoPCU - see <<invoke_trace>> for details. + +==== Priority + +This IE is ignored by OsmoPCU. + +==== QoS Profile + +No QoS is supported by OsmoPCU so this IE is ignored or safe default used when mandatory. + +==== Radio Cause + +This IE is not available because entire message which contains it (RADIO-STATUS) is not implemented by +OsmoPCU - see for <<not_impl>> details. + +==== RA-Cap-UPD-Cause + +This IE is not available because entire message which contains it (RA-CAPABILITY-UPDATE-ACK) is not implemented by +OsmoPCU - see for <<not_impl>> details. + +==== Routeing Area + +This IE is ignored by OsmoPCU upon receiving. +The messages which might require this IE to be send are not implemented by OsmoPCU - see for <<not_impl>> details. + +==== Suspend Reference Number + +This IE is ignored by OsmoPCU upon receiving. +The messages which might require this IE to be send are not implemented by OsmoPCU - see for <<not_impl>> details. + +==== Tag + +This IE currently only used by OsmoPCU for Flow Control procedure (TS 08.18 § 8.2). In other cases it's either ignored or unavailable. + +==== Trace Reference + +This IE is ignored because entire message which contains it is ignored by OsmoPCU - see <<invoke_trace>> for details. + +==== Trace Type + +This IE is ignored because entire message which contains it is ignored by OsmoPCU - see <<invoke_trace>> for details. + +==== TransactionId + +This IE is ignored because entire message which contains it is ignored by OsmoPCU - see <<invoke_trace>> for details. + +==== Trigger Id + +This IE is ignored because entire message which contains it is ignored by OsmoPCU - see <<invoke_trace>> for details. + +==== Number of octets affected + +This IE is not available because the messages which contains it (FLUSH-LL-ACK and LLC-DISCARDE) are not implemented by +OsmoPCU - see for <<not_impl>> details. + +==== LSA Information + +This IE is ignored by OsmoPCU. + +==== LSA Identifier List + +This IE is not implemented by OsmoPCU. + +==== Packet Flow Identifier + +This IE is ignored by OsmoPCU upon receiving. +The messages which might require this IE to be send are not implemented by OsmoPCU - see for <<not_impl>> details. + +==== Aggregate BSS QoS Profile (ABQP) + +This IE is ignored by OsmoPCU upon receiving. +The messages which might require this IE to be send are not implemented by OsmoPCU - see for <<not_impl>> details. + +==== Feature Bitmap + +This IE is not implemented by OsmoPCU. +This IE is ignored by OsmoPCU when received. +Absence of Feature Bitmap automatically disables optional features for Network Service Entity (NSE) communicating with OsmoPCU. + +==== Bucket_Full Ratio + +This IE is not implemented by OsmoPCU. + +==== Service UTRAN CCO (Cell Change Order) + +This IE is ignored by OsmoPCU.
=== Gb BSSGP Initialization / PCU bring-up
-FIXME +The BSSGP initialization directly follows NS connection establishment described in <<ns_init>>. +OsmoPCU allocates BVC context for BVCI given by OsmoBTS which in turn gets it from OpenBSC. +In addition to BVCI identifying OsmoPCU side of BSSGP connection there is also special BVCI which is accepted by OsmoPCU +in accordance with TS 08.18 § 5.4.1: BVCI = 0 represents signaling data between SGSN and PCU in contrast +to PTP (Peer-To-Peer) user's data. +The mapping between BSSGP PDUs and signaling or PTP BVCIs is available in TS 08.18 Table 5.4.