osmo-pcu¶
- Table of contents
- osmo-pcu
- Commercial Support
A PCU (Packet Control Unit) is one of the two GPRS elements in the BSS. It implements the RLC and MAC layers of the GPRS
Um (radio) interface on the MS-facing side, as well as the Gb Interface (NS,BSSGP) on the SGSN-facing side.
OsmoPCU is the Osmocom implementation of this PCU functionality.
Towards the SGSN, the BSSGP and NS protocols are implemented over UDP/IP, sometimes called "NS over IP".
It has been tested with OsmoSGSN as well as an Ericsson SGSN so far.
OsmoPCU in co-location with OsmoBTS¶
OsmoPCU is usually used in co-location with OsmoBTS. In this scenario all OsmoBTS variants are supported, including
OsmoTRX and PHY based variants, such as sysmoBTS.
OsmoPCU in co-location with OsmoBSC¶
OsmoPCU can also be used in co-location with OsmoBSC. This scenario is required to support third party BTSs that
do not include an integrated PCU. This is mainly the case for classic E1 based BTS, such as the ericsson-rbs-6xxx
series.
The support for BSC co-location in OsmoPCU and OsmoBSC, as well as the hardware specific extensions needed to support
Ericsson RBS2000/RBS6000 base stations have been made possible through funding by the
NLnet foundation (see also: https://nlnet.nl/project/Osmocom-RBS/).
Interface between OsmoPCU and OsmoBTS/OsmoBSC¶
The interface between OsmoPCU and OsmoBTS/OsmoBSC runs over UNIX socket of SOCK_SEQPACKET type. It is used to configure
the network parameters inside the PCU and to exchange signalling information. It also features a custom L1 interface
that allows PDCH MAC blocks. However, for enhanced performance, OsmoPCU also implements a direct PHY acces for some BTS
models.
Documentation¶
The primitives, which are exchanged between OsmoPCU and OsmoBTS/OsmoBSC are defined in pcuif_proto.h- pcuif_proto.h: https://gitea.osmocom.org/cellular-infrastructure/osmo-pcu/src/branch/master/include/osmocom/pcu/pcuif_proto.h
- OsmoBTS Abis Protocol Specification: https://ftp.osmocom.org/docs/osmo-bts/master/osmobts-abis.pdf
Debugging¶
One of the ways of debugging the PCU socket interface would be via socat:
socat -t30 -x -v UNIX-LISTEN:/tmp/pcu_bts.socat,mode=755,type=5 UNIX-CONNECT:/tmp/pcu_bts,type=5
One might even forward it over network:
socat -t30 -x -v UDP-LISTEN:1666,reuseaddr,fork UNIX-CONNECT:/tmp/pcu_bts,type=5 socat -t30 -x -v UNIX-LISTEN:/tmp/pcu_bts.socat,mode=755,type=5 UDP-CONNECT:127.0.0.1:1666
Note: in the examples above OsmoBTS (listening side) uses default
/tmp/pcu_bts
socket while OsmoPCU (connecting side)is configured to use
/tmp/pcu_bts.socat
via pcu-socket /tmp/pcu_bts.socat
config option. It's not recommeded to useoutside of TTCN-3 test environment due to amount of traffic over the socket.
Manuals¶
- User Manual: https://ftp.osmocom.org/docs/latest/osmopcu-usermanual.pdf
- VTY Reference: https://ftp.osmocom.org/docs/latest/osmopcu-vty-reference.pdf
- Gb/IP Manual: https://ftp.osmocom.org/docs/latest/osmopcu-gb.pdf
Source Code¶
The source code is available from https://gitea.osmocom.org/cellular-infrastructure/osmo-pcu.git
You can browse it online via https://gitea.osmocom.org/cellular-infrastructure/osmo-pcu
Test Suite¶
We have a TTCN-3 test suite as part of our Titan_TTCN3_Testsuites- source code: https://gitea.osmocom.org/ttcn3/osmo-ttcn3-hacks/src/branch/master/pcu
- results: https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-pcu-test/
Mailing List / Forum¶
There is a mailing list for (development) discussion regarding the PCU: osmocom-net-gprs@lists.osmocom.org
You can subscribe to it (or manage your subscription) at http://lists.osmocom.org/cgi-bin/mailman/listinfo/osmocom-net-gprs
Please make sure to read our MailingListRules before posting.
There's now also a 2G RAN category in our discourse forum
Features¶
osmo-pcu is considered stable and is performing useful service for a number of users, but due to the complexity of GPRS
there is still plenty of area for improvement.
Supported¶
- GPRS CS1 to CS4 with dynamic link/rate adaption
- EDGE MCS1-MCS9 with dynamic link/rate adaption
- Single-slot and multi-slot operation on downlink
- Single-slot operation on uplink
- Independent TFI/USF per PDCH in single-slot allocation mode
- Automatic or fixed PDCH allocation algorithm selection
- Delayed release of downlink TBF
- Active queue management for downlink TBF (!CoDel)
- Initial setting of timing advance based on RACH
- BSSGP BVC flow control support
- Using pchan types of
TCH/F_TCH/H_PDCH
orTCH/F_PDCH
, OsmoBTS supports
dynamic PDCH/TCH switching (implemented entirely in osmo-bts) - Ericsson RBS2000/RBS6000 support (BSC co-located)
Shortcomings / Limitations / Restrictions¶
Note: this list may be outdated
- No GPRS/EGPRS mixed mode (yet)
- No support for hand-over of any sort yet
- No support of processing measurement reports
- No timing advance loop, i.e. radial movement is limited
- No support for power control
- No Packet Access Reject message on congestion, access is just ignored
- No PCCCH support
- Only "Dynamic allocation RLC data block transfer" is supported
- No network controlled measurement/cell reselection order supported
- No PTCCH support
- No support for Packet Flow Contexts (PFC)
- No support for MS or PFC flow control
- No support for RLC unacknowledged mode operation
- No support for MBMS
Authors / Credits¶
osmo-pcu was originally developed by Ivan Kluchnikov and Andreas Everberg.
Today it is maintaned by Sysmocom.
Commercial Support¶
Commercial support as well as development, system integration and training services for this project are available from sysmocom
Updated by laforge 27 days ago ยท 32 revisions