Osmocom Packet control Unit (PCU): Network-side GPRS (RLC/MAC); BTS- or BSC-colocated https://osmocom.org/projects/osmopcu
Go to file
Max 731e2bb328 Simplify TS alloc: move slot check into functions
Move timeslot applicability check outside of nested for loop into
separate functions and document them. Add corresponding tests.

This allows us to clarify types used in TS-related computations.

Change-Id: Ic39e848da47dc11357782362fdf6206d2c1457c2
Related: OS#2282
2018-02-21 12:08:40 +00:00
contrib jenkins.sh: Disable building doxygen for deps 2018-01-17 15:56:57 +00:00
debian Tag/Release Version 0.4.0 2017-10-29 12:10:13 +01:00
examples Revert "pcu: Improve default config" 2015-11-30 12:11:48 +01:00
include Add pcu-socket vty config 2017-08-09 12:17:39 +02:00
src Simplify TS alloc: move slot check into functions 2018-02-21 12:08:40 +00:00
tests Simplify TS alloc: move slot check into functions 2018-02-21 12:08:40 +00:00
.gitignore Ignore test binaries using mask 2017-07-10 10:49:02 +02: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 Facilitate future releases 2017-08-24 13:53:25 +02:00
README.md README: Clarify that fixed allocations have been revmoved from 3GPP specs 2017-07-29 22:15:02 +02:00
TODO TODO: Update the todolist with some musings... 2014-01-16 10:11:57 +01:00
configure.ac Allow specifying sysmocom headers explicitly 2018-01-17 11:17:43 +00:00
git-version-gen Add auto-foo (partial cleanup, master makefile/configure.ac 2012-06-14 21:05:44 +08:00
osmo-pcu.pc.in Add pkg-config file 2017-03-09 12:17:35 +01:00
osmoappdesc.py Added conditional python-based tests for VTY/config handling 2013-04-06 11:00:20 +02: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 git://git.osmocom.org/osmo-pcu.git

There is a cgit interface at http://git.osmocom.org/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