OsmoPCU » History » Version 30
dexter, 03/24/2023 04:43 PM
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 | [[OsmoTRX:]] and PHY based variants, such as "sysmoBTS":https://www.sysmocom.de/products/bts/. |
||
18 | |||
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 | 28 | laforge | h2. Mailing List |
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 | Please make sure to read our [[cellular-infrastructure:MailingListRules]] before posting. |
||
119 | |||
120 | 30 | dexter | h2. Features |
121 | |||
122 | osmo-pcu is considered stable and is performing useful service for a number of users, but due to the complexity of GPRS |
||
123 | there is still plenty of area for improvement. |
||
124 | |||
125 | 16 | laforge | h3. Supported |
126 | |||
127 | 1 | laforge | * GPRS CS1 to CS4 with dynamic link/rate adaption |
128 | 16 | laforge | * EDGE MCS1-MCS9 with dynamic link/rate adaption |
129 | * Single-slot and multi-slot operation on downlink |
||
130 | * Single-slot operation on uplink |
||
131 | * Independent TFI/USF per PDCH in single-slot allocation mode |
||
132 | * Automatic or fixed PDCH allocation algorithm selection |
||
133 | * Delayed release of downlink TBF |
||
134 | * Active queue management for downlink TBF (!CoDel) |
||
135 | * Initial setting of timing advance based on RACH |
||
136 | 22 | neels | * BSSGP BVC flow control support |
137 | * Using pchan types of @TCH/F_TCH/H_PDCH@ or @TCH/F_PDCH@, OsmoBTS supports |
||
138 | 1 | laforge | dynamic PDCH/TCH switching (implemented entirely in osmo-bts) |
139 | 30 | dexter | * Ericsson RBS2000/RBS6000 support (BSC co-located) |
140 | 1 | laforge | |
141 | 16 | laforge | h3. Shortcomings / Limitations / Restrictions |
142 | 14 | jerlbeck | |
143 | 22 | neels | _Note: this list may be outdated_ |
144 | 16 | laforge | |
145 | * No GPRS/EGPRS mixed mode (yet) |
||
146 | * No support for hand-over of any sort yet |
||
147 | * No support of processing measurement reports |
||
148 | * No timing advance loop, i.e. radial movement is limited |
||
149 | * No support for power control |
||
150 | * No Packet Access Reject message on congestion, access is just ignored |
||
151 | * No PCCCH support |
||
152 | * Only "Dynamic allocation RLC data block transfer" is supported |
||
153 | * No network controlled measurement/cell reselection order supported |
||
154 | * No PTCCH support |
||
155 | * No support for Packet Flow Contexts (PFC) |
||
156 | * No support for MS or PFC flow control |
||
157 | * No support for RLC unacknowledged mode operation |
||
158 | * No support for MBMS |
||
159 | |||
160 | |||
161 | 30 | dexter | h2. Authors / Credits |
162 | 1 | laforge | |
163 | osmo-pcu was originally developed by Ivan Kluchnikov and Andreas Everberg. |
||
164 | |||
165 | 24 | msuraev | Today it is maintaned by Sysmocom. |
166 | 27 | laforge | |
167 | {{include(cellular-infrastructure:MacroCommercialSupport)}} |