69 lines
2.0 KiB
Plaintext
69 lines
2.0 KiB
Plaintext
== Overview
|
|
|
|
=== About OsmoPCU
|
|
|
|
OsmoPCU is the Osmocom implementation of the GPRS PCU (Packet Control
|
|
Unit) element inside the GPRS network.
|
|
|
|
The OsmoPCU is co-located within the BTS and connects to OsmoBTS via its
|
|
PCU socket interface.
|
|
|
|
On the other side, OsmoPCU is connected via the Gb interface to the
|
|
SGSN.
|
|
|
|
[[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]
|
|
}
|
|
----
|
|
|
|
=== Software Components
|
|
|
|
OsmoPCU consists of a variety of components, including
|
|
|
|
* Gb interface (NS/BSSGP protocol)
|
|
* `pcu_sock` interface towards OsmoBTS
|
|
* TBF management for uplink and downlink TBF
|
|
* RLC/MAC protocol implementation
|
|
* per-MS context for each MS currently served
|
|
* CSN.1 encoding/decoding routines
|
|
|
|
==== Gb Implementation
|
|
|
|
OsmoPCU implements the ETSI/3GPP specified Gb interface, including TS
|
|
08.16 (NS), TS 08.18 (BSSGP) protocols. As transport layer for NS, it
|
|
supports NS/IP (NS encapsulated in UDP/IP).
|
|
|
|
The actual Gb Implementation is part of the libosmogb library, which is
|
|
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
|
|
|
|
The interface towards OsmoBTS 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.
|
|
|
|
NOTE: If you change the PCU socket path on OsmoBTS by means of the
|
|
`pcu-socket` VTY configuration command, you must ensure to make the
|
|
identical change on the OsmoPCU side.
|