blob: e13a7b86f22315a9897f5d2fd9756a2824ba25ea [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
9PCU socket inteface.
10
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"]
29}
30----
31
32=== Software Components
33
34OsmoPCU consists of a variety of components, including
35
36* Gb interface (NS/BSSGP protocol)
37* `pcu_sock` interface towards OsmoBTS
38* TBF management for uplink and downlink TBF
39* RLC/MAC protocol implementation
40* per-MS context for each MS currently served
41* CSN.1 encoding/decoding routines
42
43==== Gb Implementation
44
45OsmoPCU implements the ETSI/3GPP specified Gb interface, including TS
4608.16 (NS), TS 08.18 (BSSGP) protocols. As transport layer for NS, it
47supports NS/IP (NS encapsulated in UDP/IP).
48
49The actual Gb Implementation is part of the libosmogb library, which is
50in turn part of the libosmocore software package. This allows the same
51Gb implementation to be used from OsmoPCU, OsmoGbProxy as well as
52OsmoSGSN.
53
54==== `pcu_sock` Interface to OsmoBTS
55
56The interface towards OsmoBTS is called 'pcu_sock' and implemented as a
57set of non-standardized primitives over a unix domain socket. The
58default file system path for this socket is `/tmp/pcu_bts`.
59
60The PCU socket can be changed on both OmsoBTS and OsmoPCU to a different
61file/path name, primarily to permit running multiple independent BTS+PCU
62pairs on a single Linux machine without having to use filesystem
63namespaces or other complex configurations.
64
65NOTE: If you change the PCU socket path on OsmoBTS by means of the
66`pcu-socket` VTY configuration command, you must ensure to make the
67identical change on the OsmoPCU side.