Project

General

Profile

OsmoPCU » History » Version 32

laforge, 11/02/2023 08:34 AM

1 1 laforge
h1. osmo-pcu
2 16 laforge
3 17 laforge
{{>toc}}
4 16 laforge
5 30 dexter
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
6 1 laforge
Um (radio) interface on the MS-facing side, as well as the Gb Interface (NS,BSSGP) on the SGSN-facing side.
7
8 30 dexter
OsmoPCU is the Osmocom implementation of this PCU functionality.
9 26 msuraev
10
Towards the SGSN, the BSSGP and NS protocols are implemented over UDP/IP, sometimes called "NS over IP". 
11
It has been tested with [[OsmoSGSN:]] as well as an Ericsson SGSN so far.
12 1 laforge
13
14 30 dexter
h2. OsmoPCU in co-location with OsmoBTS
15 1 laforge
16 30 dexter
OsmoPCU is usually used in co-location with [[OsmoBTS:]]. In this scenario all OsmoBTS variants are supported, including
17 32 laforge
[[OsmoTRX:]] and PHY based variants, such as "sysmoBTS":https://sysmocom.de/products/bts/.
18 30 dexter
19 1 laforge
{{graphviz_link()
20
digraph G {
21
    rankdir = LR;
22
    OsmoBTS -> OsmoBSC [label="Abis/IP"];
23
    OsmoBSC -> OsmoMSC [label="3GPP AoIP"];
24
    OsmoBTS -> OsmoPCU [label="pcu_sock"];
25
    OsmoPCU -> OsmoSGSN [label="Gb/IP"];
26
    OsmoMSC -> OsmoHLR [label="GSUP"];
27
    OsmoSGSN -> OsmoHLR [label="GSUP"];
28
    OsmoSGSN -> OsmoGGSN [label="Gp"];
29
    OsmoGGSN -> Internet [label="Gi"];
30
    OsmoPCU [color=red];
31 30 dexter
    { rank=same OsmoBTS OsmoPCU }
32
    { rank=same OsmoMSC OsmoSGSN }    
33 1 laforge
}
34
}}
35
36
37 30 dexter
h2. OsmoPCU in co-location with OsmoBSC
38
39
OsmoPCU can also be used in co-location with [[OsmoBSC:]]. This scenario is required to support third party BTSs that
40
do not include an integrated PCU. This is mainly the case for classic E1 based BTS, such as the [[ericsson-rbs-6xxx:]]
41
series.
42
43
{{graphviz_link()
44
digraph G {
45
    rankdir = LR;
46
    BTS -> OsmoBSC [label="Abis/IP"];
47
    BTS -> OsmoPCU [label="GPRS/TRAU"];    
48
    OsmoBSC -> OsmoMSC [label="3GPP AoIP"];
49
    OsmoBSC -> OsmoPCU [label="pcu_sock"];
50
    OsmoPCU -> OsmoSGSN [label="Gb/IP"];
51
    OsmoMSC -> OsmoHLR [label="GSUP"];
52
    OsmoSGSN -> OsmoHLR [label="GSUP"];
53
    OsmoSGSN -> OsmoGGSN [label="Gp"];
54
    OsmoGGSN -> Internet [label="Gi"];
55
    OsmoPCU [color=red];
56
    { rank=same OsmoBSC OsmoPCU }
57
}
58
}}
59
60
The support for BSC co-location in OsmoPCU and OsmoBSC, as well as the hardware specific extensions needed to support
61
Ericsson RBS2000/RBS6000 base stations have been made possible through funding by the
62
"NLnet foundation":https://nlnet.nl/ (see also: https://nlnet.nl/project/Osmocom-RBS/).
63
64
65
h2. Interface between OsmoPCU and OsmoBTS/OsmoBSC
66
67
The interface between OsmoPCU and OsmoBTS/OsmoBSC runs over UNIX socket of SOCK_SEQPACKET type. It is used to configure
68
the network parameters inside the PCU and to exchange signalling information. It also features a custom L1 interface
69
that allows PDCH MAC blocks. However, for enhanced performance, OsmoPCU also implements a direct PHY acces for some BTS
70
models.
71
72
h3. Documentation
73
74
The primitives, which are exchanged between OsmoPCU and OsmoBTS/OsmoBSC are defined in pcuif_proto.h
75
* pcuif_proto.h: https://gitea.osmocom.org/cellular-infrastructure/osmo-pcu/src/branch/master/include/osmocom/pcu/pcuif_proto.h
76
77
Message flow charts that explain PDCH activation and deactivation can be found in the OsmoBTS Abis Protocol Specification
78
* OsmoBTS Abis Protocol Specification: https://ftp.osmocom.org/docs/osmo-bts/master/osmobts-abis.pdf
79
80
h3. Debugging
81
82
One of the ways of debugging the PCU socket interface would be via socat:
83
<pre>
84
socat -t30 -x -v UNIX-LISTEN:/tmp/pcu_bts.socat,mode=755,type=5 UNIX-CONNECT:/tmp/pcu_bts,type=5
85
</pre>
86
One might even forward it over network:
87
<pre>
88
socat -t30 -x -v UDP-LISTEN:1666,reuseaddr,fork UNIX-CONNECT:/tmp/pcu_bts,type=5
89
socat -t30 -x -v UNIX-LISTEN:/tmp/pcu_bts.socat,mode=755,type=5 UDP-CONNECT:127.0.0.1:1666
90
</pre>
91
Note: in the examples above OsmoBTS (listening side) uses default @/tmp/pcu_bts@ socket while OsmoPCU (connecting side)
92
is configured to use @/tmp/pcu_bts.socat@ via @pcu-socket /tmp/pcu_bts.socat@ config option. It's not recommeded to use
93
outside of TTCN-3 test environment due to amount of traffic over the socket.
94
95 28 laforge
h2. Manuals
96
97
* User Manual: https://ftp.osmocom.org/docs/latest/osmopcu-usermanual.pdf
98 16 laforge
* VTY Reference: https://ftp.osmocom.org/docs/latest/osmopcu-vty-reference.pdf
99 17 laforge
* Gb/IP Manual: https://ftp.osmocom.org/docs/latest/osmopcu-gb.pdf
100
101 1 laforge
h2. Source Code
102
103
The source code is available from https://gitea.osmocom.org/cellular-infrastructure/osmo-pcu.git
104
105
You can browse it online via https://gitea.osmocom.org/cellular-infrastructure/osmo-pcu
106 28 laforge
107 1 laforge
h2. Test Suite
108 28 laforge
109 1 laforge
We have a TTCN-3 test suite as part of our [[cellular-infrastructure:Titan_TTCN3_Testsuites]]
110 25 laforge
* source code: https://gitea.osmocom.org/ttcn3/osmo-ttcn3-hacks/src/branch/master/pcu
111
* results: https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-pcu-test/
112
113 31 laforge
h2. Mailing List / Forum
114 25 laforge
115
There is a mailing list for (development) discussion regarding the PCU: osmocom-net-gprs@lists.osmocom.org
116 16 laforge
You can subscribe to it (or manage your subscription) at http://lists.osmocom.org/cgi-bin/mailman/listinfo/osmocom-net-gprs
117
118 1 laforge
Please make sure to read our [[cellular-infrastructure:MailingListRules]] before posting.
119 31 laforge
120
There's now also a "2G RAN category in our discourse forum":https://discourse.osmocom.org/c/cni/geran
121 16 laforge
122 30 dexter
h2. Features 
123
124
osmo-pcu is considered stable and is performing useful service for a number of users, but due to the complexity of GPRS
125
there is still plenty of area for improvement.
126
127 16 laforge
h3. Supported
128
129 1 laforge
* GPRS CS1 to CS4 with dynamic link/rate adaption
130 16 laforge
* EDGE MCS1-MCS9 with dynamic link/rate adaption
131
* Single-slot and multi-slot operation on downlink
132
* Single-slot operation on uplink
133
* Independent TFI/USF per PDCH in single-slot allocation mode
134
* Automatic or fixed PDCH allocation algorithm selection
135
* Delayed release of downlink TBF
136
* Active queue management for downlink TBF (!CoDel)
137
* Initial setting of timing advance based on RACH
138 22 neels
* BSSGP BVC flow control support
139
* Using pchan types of @TCH/F_TCH/H_PDCH@ or @TCH/F_PDCH@, OsmoBTS supports
140 1 laforge
  dynamic PDCH/TCH switching (implemented entirely in osmo-bts)
141 30 dexter
* Ericsson RBS2000/RBS6000 support (BSC co-located)
142 1 laforge
143 16 laforge
h3. Shortcomings / Limitations / Restrictions
144 14 jerlbeck
145 22 neels
_Note: this list may be outdated_
146 16 laforge
147
* No GPRS/EGPRS mixed mode (yet)
148
* No support for hand-over of any sort yet
149
* No support of processing measurement reports
150
* No timing advance loop, i.e. radial movement is limited
151
* No support for power control
152
* No Packet Access Reject message on congestion, access is just ignored
153
* No PCCCH support
154
* Only "Dynamic allocation RLC data block transfer" is supported
155
* No network controlled measurement/cell reselection order supported
156
* No PTCCH support
157
* No support for Packet Flow Contexts (PFC)
158
* No support for MS or PFC flow control
159
* No support for RLC unacknowledged mode operation
160
* No support for MBMS
161
162
163 30 dexter
h2. Authors / Credits
164 1 laforge
165
osmo-pcu was originally developed by Ivan Kluchnikov and Andreas Everberg.
166
167 24 msuraev
Today it is maintaned by Sysmocom.
168 27 laforge
169
{{include(cellular-infrastructure:MacroCommercialSupport)}}
Add picture from clipboard (Maximum size: 48.8 MB)