blob: 6ae6f7e0a4450d95c44d71e2ffeb0ecc1f6f0473 [file] [log] [blame]
Harald Welte4ff37fe2016-02-20 10:56:10 +01001== Overview
2
3=== About OsmoPCU
4
5OsmoPCU is the Osmocom implementation of the GPRS PCU (Packet Control
6Unit) element inside the GPRS network.
7
8The OsmoPCU is co-located within the BTS and connects to OsmoBTS via its
Jonathan Brielmaier58721eb2016-05-25 15:01:11 +02009PCU socket interface.
Harald Welte4ff37fe2016-02-20 10:56:10 +010010
11On the other side, OsmoPCU is connected via the Gb interface to the
12SGSN.
13
14[[fig-gprs-pcubts]]
15.GPRS network architecture with PCU in BTS
16[graphviz]
17----
18digraph G {
19 rankdir=LR;
20 MS0 [label="MS"]
21 MS1 [label="MS"]
22 MS0->BTS [label="Um"]
23 MS1->BTS [label="Um"]
24 BTS->BSC [label="Abis"]
25 BSC->MSC [label="A"]
26 BTS->PCU [label="pcu_sock"]
27 PCU->SGSN [label="Gb"]
28 SGSN->GGSN [label="GTP"]
Pau Espin Pedrol7b7fb222021-01-29 13:04:36 +010029 PCU [color=red]
Harald Welte4ff37fe2016-02-20 10:56:10 +010030}
31----
32
33=== Software Components
34
35OsmoPCU consists of a variety of components, including
36
37* Gb interface (NS/BSSGP protocol)
38* `pcu_sock` interface towards OsmoBTS
39* TBF management for uplink and downlink TBF
40* RLC/MAC protocol implementation
41* per-MS context for each MS currently served
42* CSN.1 encoding/decoding routines
43
44==== Gb Implementation
45
46OsmoPCU implements the ETSI/3GPP specified Gb interface, including TS
4708.16 (NS), TS 08.18 (BSSGP) protocols. As transport layer for NS, it
48supports NS/IP (NS encapsulated in UDP/IP).
49
50The actual Gb Implementation is part of the libosmogb library, which is
51in turn part of the libosmocore software package. This allows the same
52Gb implementation to be used from OsmoPCU, OsmoGbProxy as well as
53OsmoSGSN.
54
55==== `pcu_sock` Interface to OsmoBTS
56
57The interface towards OsmoBTS is called 'pcu_sock' and implemented as a
58set of non-standardized primitives over a unix domain socket. The
59default file system path for this socket is `/tmp/pcu_bts`.
60
Vadim Yanitskiy088dcbc2020-05-31 03:54:34 +070061The PCU socket can be changed on both OsmoBTS and OsmoPCU to a different
Harald Welte4ff37fe2016-02-20 10:56:10 +010062file/path name, primarily to permit running multiple independent BTS+PCU
63pairs on a single Linux machine without having to use filesystem
64namespaces or other complex configurations.
65
66NOTE: If you change the PCU socket path on OsmoBTS by means of the
67`pcu-socket` VTY configuration command, you must ensure to make the
68identical change on the OsmoPCU side.