From 2342d605d9b6d0f09e15f51f4dc97dbf59074c41 Mon Sep 17 00:00:00 2001 From: Philipp Maier Date: Fri, 24 Mar 2023 15:04:04 +0100 Subject: [PATCH] doc: Add details regarding BSC co-location As of now the manual only focusses on the BTS co-located scenario. Since we recently introduced support for Ericsson RBS 2000/6000 base stations, we also had to add support for the BSC co-located scenario. Let's update the manual accordingly. Related: OS#5198 Change-Id: Ib2a3b60849fd312b21073a3511b8ca36b4536343 --- doc/manuals/chapters/configuration.adoc | 19 ++++++ doc/manuals/chapters/overview.adoc | 84 ++++++++++++++++++++----- 2 files changed, 88 insertions(+), 15 deletions(-) diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index ca3963d7..d1336e61 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -328,6 +328,25 @@ pcu <1> Time out if the SGSN doesn't answer our RIM RAN-INFO request request after 500 ms <2> Keep resolved remote neighbor System Information cached for 60 seconds +[[cfg_e1_line]] +=== Configuring E1 line for CCU access + +Depending on the configuration the PCU may require direct access to a BTS CCU +(channel coding unit) via an E1 line. This is in particular the case when +OsmoPCU runs in co-location with OsmoBSC. + +The exact timeslot configuration is passed to the PCU via the pcu_sock +interface. Only basic E1 line settings are required. However, it is important +that the E1 line number is the same as the E1 line number that is used in the +timeslot configuration of OsmoBSC. + +.Example: Configure an E1 line +---- +e1_input + e1_line 0 driver dahdi + e1_line 0 port 2 + no e1_line 0 keepalive +---- === GPRS vs EGPRS considerations diff --git a/doc/manuals/chapters/overview.adoc b/doc/manuals/chapters/overview.adoc index 5b831d37..69d0672f 100644 --- a/doc/manuals/chapters/overview.adoc +++ b/doc/manuals/chapters/overview.adoc @@ -2,14 +2,17 @@ === About OsmoPCU -OsmoPCU is the Osmocom implementation of the GPRS PCU (Packet Control -Unit) element inside the GPRS network. +OsmoPCU is the Osmocom implementation of the GPRS PCU (Packet Control Unit) +element inside the GPRS network. Depending on the BTS type the PCU will be +co-located within the BTS or run in co-location with the BSC. -The OsmoPCU is co-located within the BTS and connects to OsmoBTS via its -PCU socket interface. +[[pcu_co_located_with_bts]] +==== OsmoPCU in co-location with OsmoBTS -On the other side, OsmoPCU is connected via the Gb interface to the -SGSN. +In most OsmoPCU-supported base stations, the PCU is co-located with the BTS. +In this scenario OsmoPCU and OsmoBTS run on the same host system. Both are +interconnected using a unix domain socket based interface. +(see also: <>) [[fig-gprs-pcubts]] .GPRS network architecture with PCU in BTS @@ -31,12 +34,62 @@ digraph G { } ---- +NOTE: Depending on the hardware architecture, OsmoPCU may also have direct +access on the PHY interface to exchange PDCH traffic efficiently. The socket +interface is then only used for signalling. + +==== OsmoPCU in co-location with OsmoBSC + +Classic E1 based BTSs usually do not include a PCU. Instead those base stations +typically rely on an external PCU that is co-located with the BSC. The +signalling traffic (paging, channel assignments ect.) is then exchanged with the +BTS via RSL, while the PDCH traffic is handled by the PCU through a dedicated +TRAU frame based E1 connection. + +OsmoPCU supports this scenario as well. Due to the dedicated E1 connection, the +implementation is complex and strongly hardware specific. As of now (March 2023) +OsmoPCU supports Ericsson RBS2000/RBS6000 only. This implementation has been +made possible through funding by the NLnet Foundation. + +[[fig-gprs-pcubts]] +.GPRS network architecture with PCU in BTS +[graphviz] +---- +digraph G { + rankdir=LR; + MS0 [label="MS"] + MS1 [label="MS"] + MS0->BTS [label="Um"] + MS1->BTS [label="Um"] + BTS->BSC [label="Abis"] + BSC->MSC [label="A"] + BTS->PCU [label="pcu_sock"] + PCU->SGSN [label="Gb"] + SGSN->GGSN [label="GTP"] + PCU [color=red] + { rank=same BTS PCU } +} +---- + +When OsmoPCU runs in co-location to OsmoBSC, both are connected through the +same unix domain socket interface as mentioned above. +(see also: <>) The socket is used to pass signalling +traffic between PCU and BSC while the PCU controls the PDCH by directly talking +to the BTS CCU (channel coding unit) through a dedicated E1 connection. The +E1 line interface uses TRAU frames and is vastly comparable to the interface that +is used when speech is transferred. + +Since the PCU is mainly set up by OsmoBSC (or OsmoBTS) via the PCU socket, the +configuration in the BSC co-located scenario is no different from the BTS +co-located scenario. However, since the PCU requires a direct E1 connection to +the BTS an E1 line must be set up. (See also: <>) + === Software Components OsmoPCU consists of a variety of components, including * Gb interface (NS/BSSGP protocol) -* `pcu_sock` interface towards OsmoBTS +* `pcu_sock` interface towards OsmoBTS (or OsmoBSC) * TBF management for uplink and downlink TBF * RLC/MAC protocol implementation * per-MS context for each MS currently served @@ -53,17 +106,18 @@ in turn part of the libosmocore software package. This allows the same Gb implementation to be used from OsmoPCU, OsmoGbProxy as well as OsmoSGSN. -==== `pcu_sock` Interface to OsmoBTS +[[pcu_sock_iface]] +==== `pcu_sock` Interface to OsmoBTS/OsmoBSC -The interface towards OsmoBTS is called 'pcu_sock' and implemented as a -set of non-standardized primitives over a unix domain socket. The +The interface towards OsmoBTS/OsmoBSC is called 'pcu_sock' and implemented +as a set of non-standardized primitives over a unix domain socket. The default file system path for this socket is `/tmp/pcu_bts`. -The PCU socket can be changed on both OsmoBTS and OsmoPCU to a different -file/path name, primarily to permit running multiple independent BTS+PCU -pairs on a single Linux machine without having to use filesystem -namespaces or other complex configurations. +The PCU socket path can be freely configured to a different file/path name, +primarily to permit running multiple independent BTS+PCU (or BSC+PCU) pairs +on a single Linux machine without having to use filesystem namespaces or other +complex configurations. -NOTE: If you change the PCU socket path on OsmoBTS by means of the +NOTE: If you change the PCU socket path on OsmoBTS/OsmoBSC by means of the `pcu-socket` VTY configuration command, you must ensure to make the identical change on the OsmoPCU side.