Osmocom Packet control Unit (PCU): Network-side GPRS (RLC/MAC); BTS- or BSC-colocated https://osmocom.org/projects/osmopcu
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Vadim Yanitskiy e33c236db0
{ms,gprs_pcu}_talloc_destructor(): call osmo_timer_del() unconditionally
8 months ago
contrib Bump version: → 1.1.0 9 months ago
debian Bump version: → 1.1.0 9 months ago
doc vty: Introduce command 'gsmtap-remote-host' and 'gsmtap-category enable-all' 1 year ago
include Support Neighbor Address Resolution over PCUIF IPA multiplex 2 years ago
src {ms,gprs_pcu}_talloc_destructor(): call osmo_timer_del() unconditionally 8 months ago
tests tests: target 'check-local' does not depend on BUILT_SOURCES 8 months ago
.gitignore Makefile.am: generate missing .version file 8 months ago
.gitreview add .gitreview 7 years ago
COPYING import GPLv2 license text to this project 11 years ago
Makefile.am Makefile.am: add 'git-version-gen' to EXTRA_DIST 8 months ago
README.md update git URLs (git -> https; gitea) 9 months ago
TODO TODO: remove those that have obviously been implemented 5+ years ago 3 years ago
TODO-RELEASE Bump version: → 1.0.0 1 year ago
configure.ac Bump version: → 1.1.0 9 months ago
git-version-gen Add auto-foo (partial cleanup, master makefile/configure.ac 11 years ago
osmoappdesc.py Remove dash from name used in VTY cmd prompt 3 years ago


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


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


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.


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

We us 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
  • Only single slot assignment on uplink direction
  • No half-duplex class support (only semi-duplex)
  • No TA loop
  • No power loop
  • Multi-BTS support not tested