Osmocom Packet control Unit (PCU): Network-side GPRS (RLC/MAC); BTS- or BSC-colocated https://osmocom.org/projects/osmopcu
Go to file
Philipp Maier 2353ed403f bts: add IMMEDIATE ASSIGNMENT via PCH transmission
In situations where the PCU is co-located to the BSC, the IMMEDIATE ASSIGNMENT
for downlink TBFs must be sent via RSL and the BSC also must instruct the BTS
to transmit the IMMEDIATE ASSIGNMENT via PCH instead of AGCH. Eventually the
BSC must sent a confirmation message (follow-up patch) where the TLLI is used
as an identifer.

This new method will eventually replace the previous method that uses
the MAC block as an identifier. To remain compatible with older versions
of osmo-bsc, we will keep the old method until osmo-bts is migrated as

This patch also requires new features to be added to the PCU socket
interface the version number of the protocol is incremented from 0x0a to
0x0b. Version 0x0a will remain compatible and use the old method, while
version 0x0b will use the new method introduced with this patch.

Change-Id: I2a78651593323e8b9627c39918d949a33497b70f
Related: OS#5198
2023-03-06 17:39:11 +01:00
contrib Bump version: → 1.2.0 2023-02-07 17:10:46 +01:00
debian Bump version: → 1.2.0 2023-02-07 17:10:46 +01:00
doc vty: Introduce command 'gsmtap-remote-host' and 'gsmtap-category enable-all' 2021-11-12 17:01:28 +01:00
include bts: add IMMEDIATE ASSIGNMENT via PCH transmission 2023-03-06 17:39:11 +01:00
src bts: add IMMEDIATE ASSIGNMENT via PCH transmission 2023-03-06 17:39:11 +01:00
tests pcu_l1_if_phy: add new PHY API function to disconnect PDCH 2023-02-27 16:46:01 +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
COPYING import GPLv2 license text to this project 2012-07-22 22:05:44 +02:00
Makefile.am Makefile.am: add 'git-version-gen' to EXTRA_DIST 2022-08-07 19:39:03 +07:00
README.md update git URLs (git -> https; gitea) 2022-06-18 12:31:20 +02:00
TODO TODO: remove those that have obviously been implemented 5+ years ago 2020-04-17 16:02:26 +00:00
TODO-RELEASE Bump version: → 1.0.0 2021-11-16 16:47:29 +01:00
configure.ac Bump version: → 1.2.0 2023-02-07 17:10:46 +01:00
git-version-gen Add auto-foo (partial cleanup, master makefile/configure.ac 2012-06-14 21:05:44 +08:00
osmoappdesc.py Remove dash from name used in VTY cmd prompt 2019-12-02 11:14:26 +00: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


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