Osmocom Packet control Unit (PCU): Network-side GPRS (RLC/MAC); BTS- or BSC-colocated
  • C 57.4%
  • C++ 40.9%
  • Makefile 0.7%
  • M4 0.6%
  • Shell 0.4%
Find a file
Pau Espin Pedrol ed70903760 Avoid accessing struct log_target members directly
Use newly available APIs instead.

Change-Id: Ib6e34e948e4ad9b8a8883febf54b31345c3bcd97
Depends: libosmocore.git Change-Id Ie48e7e635feb91509b9c034394df4fb16cb931a3
2026-01-20 13:55:01 +01:00
contrib contrib/jenkins: libosmo-abis after libosmo-netif 2024-11-22 11:11:05 +01:00
debian Bump version: 1.5.1.12-0273 → 1.5.2 2025-08-26 16:11:02 +02:00
doc doc: Introduce code architecture section with main class diagram 2024-04-12 21:53:02 +02:00
include pcu_l1_if: signal BTS model via PCUIF 2023-11-21 09:17:14 +00:00
src Avoid accessing struct log_target members directly 2026-01-20 13:55:01 +01:00
tests llc_queue: Store MetaInfo in msgb headroom instead of cb[] 2025-08-18 14:42:13 +02:00
.checkpatch.conf checkpath: Exclude csn1 files 2025-03-13 19:43:02 +01:00
.gitignore Makefile.am: generate missing .version file 2022-08-07 19:31:47 +07:00
.gitreview add .gitreview 2016-05-19 06:39:45 +00:00
configure.ac Bump version: 1.4.0.15-e192 → 1.5.0 2024-07-24 16:16:30 +02:00
COPYING import GPLv2 license text to this project 2012-07-22 22:05:44 +02:00
git-version-gen Add auto-foo (partial cleanup, master makefile/configure.ac 2012-06-14 21:05:44 +08:00
Makefile.am contrib: remove rpm spec file 2024-05-08 14:41:07 +02:00
osmoappdesc.py Remove dash from name used in VTY cmd prompt 2019-12-02 11:14:26 +00:00
README.md README.md: cosmetic: fix a typo 2024-06-05 18:34:07 +07:00
TODO TODO: remove those that have obviously been implemented 5+ years ago 2020-04-17 16:02:26 +00:00
TODO-RELEASE Avoid accessing struct log_target members directly 2026-01-20 13:55:01 +01:00

osmo-pcu - Osmocom Packet Control Unit

This repository contains a C/C++-language implementation of a GPRS Packet Control Unit, as specified by ETSI/3GPP. It is part of the Osmocom Open Source Mobile Communications project.

The Packet Control Unit is terminating the Layer 2 (RLC/MAC) of the GPRS radio interface and adapting it to the Gb Interface (BSSGP+NS Protocol) towards the SGSN.

The PCU interfaces with the physical layer of the radio interface. OsmoPCU is typically used co-located with the BTS, specifically OsmoBTS. For legacy BTSs that run proprietary sotware without an interface to OsmoPCU, you may also co-locate it with the BSC, specifically OsmoBSC

Homepage

The official homepage of the project is https://osmocom.org/projects/osmopcu/wiki/OsmoPCU

GIT Repository

You can clone from the official osmo-pcu.git repository using

git clone https://gitea.osmocom.org/cellular-infrastructure/osmo-pcu

There is a web interface at https://gitea.osmocom.org/cellular-infrastructure/osmo-pcu

Documentation

We provide a user manual as well as a vty reference manual

Please note that a lot of the PCU configuration actually happens inside the BSC, which passes this configuration via A-bis OML to the BTS, which then in turn passes it via the PCU socket into OsmoPCU.

Mailing List

Discussions related to osmo-pcu are happening on the osmocom-net-gprs@lists.osmocom.org mailing list, please see https://lists.osmocom.org/mailman/listinfo/osmocom-net-gprs for subscription options and the list archive.

Please observe the Osmocom Mailing List Rules when posting.

Contributing

Our coding standards are described at https://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standards

We use a Gerrit based patch submission/review process for managing contributions. Please see https://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit for more details

The current patch queue for osmo-pcu can be seen at https://gerrit.osmocom.org/#/q/project:osmo-pcu+status:open

Current limitations

  • No PFC support
  • No fixed allocation support (was removed from 3GPP Rel >= 5 anyway)
  • No extended dynamic allocation support
  • No unacknowledged mode operation
  • No half-duplex class support (only semi-duplex)
  • No TA loop
  • No power loop
  • Multi-BTS support not tested