blob: 08d7a4ffc3f1cedffe6c72f2a7fcccb6dcac3025 [file] [log] [blame]
Luis Farias9d66fca2020-05-28 19:01:58 -07001.. Copyright (c) 2019 Intel
2..
3.. Licensed under the Apache License, Version 2.0 (the "License");
4.. you may not use this file except in compliance with the License.
5.. You may obtain a copy of the License at
6..
7.. http://www.apache.org/licenses/LICENSE-2.0
8..
9.. Unless required by applicable law or agreed to in writing, software
10.. distributed under the License is distributed on an "AS IS" BASIS,
11.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12.. See the License for the specific language governing permissions and
13.. limitations under the License.
14
Luis Farias9d66fca2020-05-28 19:01:58 -070015
16Architecture Overview
17=====================
18
19.. contents::
20 :depth: 3
21 :local:
22
Luis Farias2de97522022-03-17 20:01:53 -070023This section provides an overview of the O-RAN architecture.
Luis Farias9d66fca2020-05-28 19:01:58 -070024
25.. _introduction-1:
26
27Introduction
28------------
29
Luis Farias2de97522022-03-17 20:01:53 -070030The front haul interface, according to the O-RAN Fronthaul
31specification, is part of the 5G NR L1 reference implementation provided
32with the FlexRAN software package. It performs communication between
33O-RAN Distributed Unit (O-DU) and O-RAN Radio Unit (O-RU) and consists
34of multiple HW and SW components.
Luis Farias9d66fca2020-05-28 19:01:58 -070035
Luis Farias2de97522022-03-17 20:01:53 -070036The logical representation of HW and SW components is shown in *Figure
371*.
38
39The same architecture design is applicable for LTE; however, the FH
40library is not integrated with the PHY pipeline for FlexRAN LTE.
Luis Farias9d66fca2020-05-28 19:01:58 -070041
42.. image:: images/Architecture-Block-Diagram.jpg
43 :width: 600
44 :alt: Figure 1. Architecture Block Diagram
45
46Figure 1. Architecture Block Diagram
47
Luis Farias2de97522022-03-17 20:01:53 -070048
49
Luis Farias9d66fca2020-05-28 19:01:58 -070050
51From the hardware perspective, two networking ports are used to
52communicate to the Front Haul and Back (Mid) Haul network as well as to
53receive PTP synchronization. The system timer is used to provide a
Luis Farias70d9d922020-08-11 16:05:37 -070054sense of time to the gNB application.
Luis Farias9d66fca2020-05-28 19:01:58 -070055
56From the software perspective, the following components are used:
57
Luis Farias2de97522022-03-17 20:01:53 -070058* Linux\* PTP provides synchronization of system timer to GPS time:
59 - ptp4l is used to synchronize oscillator on Network Interface Controller (NIC) to PTP GM.
60 - phc2sys is used to synchronize system timer to oscillator on NIC.
Luis Farias9d66fca2020-05-28 19:01:58 -070061
Luis Farias2de97522022-03-17 20:01:53 -070062* The DPDK to provide the interface to the Ethernet port.
Luis Farias9d66fca2020-05-28 19:01:58 -070063
Luis Farias2de97522022-03-17 20:01:53 -070064* O-RAN library is built on top of DPDK to perform U-plane and C-plane functionality according to the O-RAN Fronthaul specification.
Luis Farias9d66fca2020-05-28 19:01:58 -070065
Luis Farias2de97522022-03-17 20:01:53 -070066* 5GNR reference PHY uses the O-RAN library to access interface to O-RU. The interface between the library and PHY is defined to communicate TTI event, symbol time, C-plane information as well as IQ sample data.
Luis Farias9d66fca2020-05-28 19:01:58 -070067
Luis Farias2de97522022-03-17 20:01:53 -070068* 5G NR PHY communicates with the L2 application using the set of MAC/PHY APIs and the shared memory interface defined as WLS.
Luis Farias9d66fca2020-05-28 19:01:58 -070069
Luis Farias2de97522022-03-17 20:01:53 -070070* L2, in turn, can use Back (Mid) Haul networking port to connect to the CU unit in the context of 3GPP specification.
Luis Farias9d66fca2020-05-28 19:01:58 -070071
Luis Farias2de97522022-03-17 20:01:53 -070072In this document, we focus on details of the design and implementation
73of the O-RAN library for providing Front Haul functionality for both
74mmWave and Sub-6 scenarios as well as LTE.
Luis Farias9d66fca2020-05-28 19:01:58 -070075
Luis Farias2de97522022-03-17 20:01:53 -070076The O-RAN M-plane is not implemented and is outside of the scope of this
Luis Farias70d9d922020-08-11 16:05:37 -070077description. Configuration files are used to specify selected M-plane
Luis Farias9d66fca2020-05-28 19:01:58 -070078level parameters.
79
Luis Farias2de97522022-03-17 20:01:53 -0700805G NR L1 Application Threads
81----------------------------
Luis Farias9d66fca2020-05-28 19:01:58 -070082
Luis Farias2de97522022-03-17 20:01:53 -070083The specifics of the L1 application design and configuration for the
84given scenario can be found in document 603577, *FlexRAN 5G NR Reference
85Solution RefPHY* (Doxygen) (refer to *Table 2*) Only information
86relevant to front haul is presented in this section.
Luis Farias9d66fca2020-05-28 19:01:58 -070087
Luis Farias2de97522022-03-17 20:01:53 -070088Configuration of l1app with O-RAN interface for Front Haul is illustrated
89acting as an O-DU in *Figure 2*.
Luis Farias9d66fca2020-05-28 19:01:58 -070090
Luis Farias2de97522022-03-17 20:01:53 -070091.. image:: images/5G-NR-L1app-Threads.jpg
92 :width: 600
93 :alt: Figure 2. 5G NR L1app Threads
Luis Farias9d66fca2020-05-28 19:01:58 -070094
Luis Farias2de97522022-03-17 20:01:53 -070095Figure 2. 5G NR L1app Threads
Luis Farias9d66fca2020-05-28 19:01:58 -070096
Luis Farias2de97522022-03-17 20:01:53 -070097In this configuration of L1app, the base architecture of 5G NR L1 is not
98changed. The original Front Haul FPGA interface was updated with the
99O-RAN fronthaul interface abstracted via the O-RAN library.
Luis Farias9d66fca2020-05-28 19:01:58 -0700100
Luis Farias2de97522022-03-17 20:01:53 -0700101O-RAN FH Thread Performs:
Luis Farias9d66fca2020-05-28 19:01:58 -0700102
Luis Farias2de97522022-03-17 20:01:53 -0700103- Symbol base time event to the rest of the system based on System Clock synchronized to GPS time via PTP
104
105- Baseline polling mode driver performing TX and RX of Ethernet packets
106
107- Most of the packet processing such as Transport header, Application header, Data section header, and interactions with the rest of the PHY processing pipeline.
108
109- Polling of BBDev for FEC on PAC N3000 acceleration card
110
111The other threads are standard for the L1app and created the independent
112usage of O-RAN as an interface to the Radio.
113
114Communication between L1 and O-RAN layer is performed using a set of
115callback functions where L1 assigned callback and O-RAN layer executes
Luis Farias9d66fca2020-05-28 19:01:58 -0700116those functions at a particular event or time moment. Detailed
Luis Farias2de97522022-03-17 20:01:53 -0700117information on callback function options and setting, as well as design,
Luis Farias9d66fca2020-05-28 19:01:58 -0700118can be found in the sections below.
119
Luis Farias2de97522022-03-17 20:01:53 -0700120Design and installation of the l1app do not depend on the Host, VM, or
121container environment and the same for all cases.
122
Luis Farias9d66fca2020-05-28 19:01:58 -0700123Sample Application Thread Model
124-------------------------------
125
Luis Farias2de97522022-03-17 20:01:53 -0700126Configuration of a sample application for both the O-DU and O-RU follows
127the model of 5G NR l1app application in *Figure 2*, but no BBU or FEC
128related threads are needed as minimal O-RAN FH functionality is used
Luis Farias9d66fca2020-05-28 19:01:58 -0700129only.
130
131.. image:: images/Sample-Application-Threads.jpg
132 :width: 600
133 :alt: Figure 3. Sample Application Threads
134
135Figure 3. Sample Application Threads
136
Luis Farias9d66fca2020-05-28 19:01:58 -0700137In this scenario, the main thread is used only for initializing and
138closing the application. No execution happens on core 0 during run time.
139
140Functional Split
141----------------
142
Luis Farias2de97522022-03-17 20:01:53 -0700143Figure 1 corresponds to the O-RU part of the O-RAN split.
144Implementation of the RU side of the O-RAN protocol is not covered in
145this document.
Luis Farias9d66fca2020-05-28 19:01:58 -0700146
147.. image:: images/eNB-gNB-Architecture-with-O-DU-and-RU.jpg
148 :width: 600
149 :alt: Figure 4. eNB/gNB Architecture with O-DU and RU
150
151Figure 4. eNB/gNB Architecture with O-DU and RU
152
Luis Farias2de97522022-03-17 20:01:53 -0700153
154
Luis Farias9d66fca2020-05-28 19:01:58 -0700155
156More than one RU can be supported with the same implementation of the
Luis Farias2de97522022-03-17 20:01:53 -0700157O-RAN library and depends on the configuration of gNB in general. In this
158document, we address details of implementation for a single O-DU O-RU
Luis Farias9d66fca2020-05-28 19:01:58 -0700159connection.
160
Luis Farias2de97522022-03-17 20:01:53 -0700161The O-RAN Fronthaul specification provides two categories of the split
162of Layer 1 functionality between O-DU and O-RU: Category A and Category
163B.
Luis Farias9d66fca2020-05-28 19:01:58 -0700164
165.. image:: images/Functional-Split.jpg
166 :width: 600
167 :alt: Figure 5. Functional Split
168
169Figure 5. Functional Split
170
Luis Farias2de97522022-03-17 20:01:53 -0700171
Luis Farias9d66fca2020-05-28 19:01:58 -0700172
173Data Flow
174---------
175
Luis Farias2de97522022-03-17 20:01:53 -0700176
Luis Farias9d66fca2020-05-28 19:01:58 -0700177
178Table 3 lists the data flows supported for a single RU with a single
179Component Carrier.
180
Luis Farias2de97522022-03-17 20:01:53 -0700181
182
Luis Farias9d66fca2020-05-28 19:01:58 -0700183
184Table 3. Supported Data Flow
185
Luis Farias76b44952022-04-01 16:10:08 -0700186+---------+----+-----------------+------------------+----------------+
187| Plane | ID | Name | Contents | Periodicity |
188+=========+====+=================+==================+================+
189| U-Plane | 1a || DL Frequency || DL user data | symbol |
190| | || Domain IQ Data || (PDSCH), | |
191| | | || control channel | |
192| | | || data (PDCCH, | |
193| | | || etc.) | |
194| | | | | |
195+---------+----+-----------------+------------------+----------------+
196| | 1b || UL Frequency || UL user data | symbol |
197| | || Domain IQ Data || (PUSCH), | |
198| | | || control channel | |
199| | | || data (PUCCH, | |
200| | | || etc.) | |
201+---------+----+-----------------+------------------+----------------+
202| | 1c || PRACH Frequency| UL PRACH data | slot or symbol |
203| | || Domain IQ Data | | |
204+---------+----+-----------------+------------------+----------------+
205| C-Plane | 2a || Scheduling || Scheduling | ~ slot |
206| | || Commands || information, | |
207| | | || FFT size, CP | |
208| | || (Beamforming is|| length, | |
209| | || not supported) || Subcarrier | |
210| | | || spacing, UL | |
211| | | || PRACH | |
212| | | || scheduling | |
213+---------+----+-----------------+------------------+----------------+
214| S-Plane | S || Timing and || IEEE 1588 PTP | - |
215| | || Synchronization|| packets | |
216+---------+----+-----------------+------------------+----------------+
Luis Farias9d66fca2020-05-28 19:01:58 -0700217
Luis Farias9d66fca2020-05-28 19:01:58 -0700218.. image:: images/Data-Flows.jpg
219 :width: 600
220 :alt: Figure 6. Data Flows
221
222Figure 6. Data Flows
223
Luis Farias2de97522022-03-17 20:01:53 -0700224
225
Luis Farias9d66fca2020-05-28 19:01:58 -0700226
227Information on specific features of C-Plane and U-plane provided in
Luis Farias2de97522022-03-17 20:01:53 -0700228Sample Application Section Configuration of S-plane used on
229test setup for simulation is provided in Appendix 2.
Luis Farias9d66fca2020-05-28 19:01:58 -0700230
231Data flow separation is based on VLAN (applicable when layer 2 or layer
2323 is used for the C/U-plane transport.)
233
Luis Farias2de97522022-03-17 20:01:53 -0700234* The mechanism for assigning VLAN ID to U-Plane and C-Plane is assumed to be via the M-Plane.
Luis Farias9d66fca2020-05-28 19:01:58 -0700235
Luis Farias2de97522022-03-17 20:01:53 -0700236* VLAN Tag is configurable via the standard Linux IP tool, refer to Appendix A, Setup Configuration.
Luis Farias9d66fca2020-05-28 19:01:58 -0700237
Luis Farias2de97522022-03-17 20:01:53 -0700238* No Quality of Service (QoS) is implemented as part of O-RAN library. Standard functionality of ETH port can be used to implement QoS.
Luis Farias9d66fca2020-05-28 19:01:58 -0700239
240.. image:: images/C-plane-and-U-plane-Packet-Exchange.jpg
241 :width: 600
242 :alt: Figure 7. C-plane and U-plane Packet Exchange
243
244Figure 7. C-plane and U-plane Packet Exchange
245
Luis Farias2de97522022-03-17 20:01:53 -0700246
247
Luis Farias9d66fca2020-05-28 19:01:58 -0700248
249Timing, Latency, and Synchronization to GPS
250-------------------------------------------
251
Luis Farias2de97522022-03-17 20:01:53 -0700252The O-RAN Fronthaul specification defines the latency model of the front
253haul interface and interaction between O-DU and 0-RU. This
254implementation of the O-RAN library supports only the category with fixed
255timing advance and Defined Transport methods. It determines O-DU
256transmit and receive windows based on pre-defined transport network
257characteristics, and the delay characteristics of the RUs within the
Luis Farias9d66fca2020-05-28 19:01:58 -0700258timing domain.
259
260Table 4 below provides default values used for the implementation of
Luis Farias2de97522022-03-17 20:01:53 -0700261O-DU O-RU simulation with mmWave scenario. Table 5 and *Table 6* below
Luis Farias9d66fca2020-05-28 19:01:58 -0700262provide default values used for the implementation of O-DU O-RU
Luis Farias70d9d922020-08-11 16:05:37 -0700263simulation with numerology 0 and numerology 1 for Sub6 scenarios.
Luis Farias2de97522022-03-17 20:01:53 -0700264Configuration can be adjusted via configuration files for sample
265application and reference PHY.
Luis Farias9d66fca2020-05-28 19:01:58 -0700266
Luis Farias2de97522022-03-17 20:01:53 -0700267However, simulation of the different range of the settings was not
268performed, and additional implementation changes might be required as
269well as testing with actual O-RU. The parameters for the front haul
270network are out of scope as a direct connection between O-DU and 0-RU
271is used for simulation.
Luis Farias9d66fca2020-05-28 19:01:58 -0700272
273Table 4. Front Haul Interface Latency (numerology 3 - mmWave)
274
Luis Farias76b44952022-04-01 16:10:08 -0700275+------+------------+---------------+---------------+------------+------------+
276| || Model | C-Plane | U-Plane |
277| || Parameters| | |
278+ + +---------------+---------------+------------+------------+
279| | | DL | UL | DL | UL |
280+------+------------+---------------+---------------+------------+------------+
281| O-RU | T2amin || T2a_min_cp_dl|| T2a_min_cp_ul|| T2a_min_up| NA |
282| | || = 50 || = 50 || = 25 | |
283+ +------------+---------------+---------------+------------+------------+
284| | T2amax || T2a_max_cp_dl|| T2a_max_cp_ul|| T2a_max_up| NA |
285| | || = 140 || = 140 || = 140 | |
286+ +------------+---------------+---------------+------------+------------+
287| |   | Tadv_cp_dl | NA | NA | NA |
288+ +------------+---------------+---------------+------------+------------+
289| | Ta3min | NA | NA | NA | Ta3_min=20 |
290+ +------------+---------------+---------------+------------+------------+
291| | Ta3max | NA | NA | NA | Ta3_max=32 |
292+------+------------+---------------+---------------+------------+------------+
293| O-DU | T1amin || T1a_min_cp_dl|| T1a_min_cp_ul|| T1a_min_up| NA |
294| | || = 70 || = 60 || = 35 | |
295+ +------------+---------------+---------------+------------+------------+
296| | T1amax || T1a_max_cp_dl|| T1a_max_cp_ul|| T1a_max_up| NA |
297| | || = 100 || = 70 || = 50 | |
298+ +------------+---------------+---------------+------------+------------+
299| | Ta4min | NA | NA | NA | Ta4_min=0 |
300+ +------------+---------------+---------------+------------+------------+
301| | Ta4max | NA | NA | NA | Ta4_max=45 |
302+------+------------+---------------+---------------+------------+------------+
Luis Farias9d66fca2020-05-28 19:01:58 -0700303
Luis Farias9d66fca2020-05-28 19:01:58 -0700304Table 5. Front Haul Interface Latency (numerology 0 - Sub6)
305
306+------+----------+----------+----------+----------+----------+
Luis Farias76b44952022-04-01 16:10:08 -0700307| || Model | C-Plane | | U-Plane | |
308| || Pa\ | | | | |
Luis Farias9d66fca2020-05-28 19:01:58 -0700309| | rameters | | | | |
Luis Farias2de97522022-03-17 20:01:53 -0700310+ + +----------+----------+----------+----------+
Luis Farias9d66fca2020-05-28 19:01:58 -0700311| | | DL | UL | DL | UL |
312+------+----------+----------+----------+----------+----------+
Luis Farias76b44952022-04-01 16:10:08 -0700313| O-RU | T2amin || T2a_min\|| T2a_min\|| T2a_min\| NA |
314| | | _cp_dl | _cp_ul | _up | |
315| | || = 400 || = 400 || = 200 | |
Luis Farias2de97522022-03-17 20:01:53 -0700316+ +----------+----------+----------+----------+----------+
Luis Farias76b44952022-04-01 16:10:08 -0700317| | T2amax || T2a_max\|| T2a_max\|| T2a_max\| NA |
318| | | _cp_dl | _cp_ul | _up | |
319| | || = 1120 || = 1120 || = 1120 | |
Luis Farias2de97522022-03-17 20:01:53 -0700320+ +----------+----------+----------+----------+----------+
Luis Farias76b44952022-04-01 16:10:08 -0700321| |   | Ta\ | NA | NA | NA |
Luis Farias9d66fca2020-05-28 19:01:58 -0700322| | | dv_cp_dl | | | |
Luis Farias2de97522022-03-17 20:01:53 -0700323+ +----------+----------+----------+----------+----------+
Luis Farias76b44952022-04-01 16:10:08 -0700324| | Ta3min | NA | NA | NA || Ta3_min |
325| | | | | || = 160 |
Luis Farias2de97522022-03-17 20:01:53 -0700326+ +----------+----------+----------+----------+----------+
Luis Farias76b44952022-04-01 16:10:08 -0700327| | Ta3max | NA | NA | NA || Ta3_max |
328| | | | | || = 256 |
Luis Farias9d66fca2020-05-28 19:01:58 -0700329+------+----------+----------+----------+----------+----------+
Luis Farias76b44952022-04-01 16:10:08 -0700330| O-DU | T1amin || T1a_min\|| T1a_min\|| T1a_min\| NA |
331| | | _cp_dl | _cp_ul | _up | |
332| | || = 560 || = 480 || = 280 | |
Luis Farias2de97522022-03-17 20:01:53 -0700333+ +----------+----------+----------+----------+----------+
Luis Farias76b44952022-04-01 16:10:08 -0700334| | T1amax || T1a_max\|| T1a_max\|| T1a_max\| NA |
335| | | _cp_dl | _cp_ul | _up | |
336| | || = 800 || = 560 || = 400 | |
Luis Farias2de97522022-03-17 20:01:53 -0700337+ +----------+----------+----------+----------+----------+
Luis Farias9d66fca2020-05-28 19:01:58 -0700338| | Ta4min | NA | NA | NA | T |
339| | | | | | a4_min=0 |
Luis Farias2de97522022-03-17 20:01:53 -0700340+ +----------+----------+----------+----------+----------+
Luis Farias9d66fca2020-05-28 19:01:58 -0700341| | Ta4max | NA | NA | NA | Ta4 |
342| | | | | | _max=360 |
343+------+----------+----------+----------+----------+----------+
344
Luis Farias2de97522022-03-17 20:01:53 -0700345
346
347
Luis Farias9d66fca2020-05-28 19:01:58 -0700348
349Table 6. Front Haul Interface Latency (numerology 1 - Sub6)
350
Luis Farias76b44952022-04-01 16:10:08 -0700351+------+------------+---------------+---------------+------------+------------+
352| | Model | C-Plane | U-Plane | | |
353| | Parameters | | | | |
354+ + +---------------+---------------+------------+------------+
355| | | DL | UL | DL | UL |
356+------+------------+---------------+---------------+------------+------------+
357| O-RU | T2amin || T2a_min_cp_dl|| T2a_min_cp_ul|| T2a_min_up| NA |
358| | || = 285 || = 285 || = 71 | |
359+ +------------+---------------+---------------+------------+------------+
360| | T2amax || T2a_max_cp_dl|| T2a_max_cp_ul|| T2a_max_up| NA |
361| | || = 429 || = 429 || = 428 | |
362+ +------------+---------------+---------------+------------+------------+
363| |   | Tadv_cp_dl | NA | NA | NA |
364+ +------------+---------------+---------------+------------+------------+
365| | Ta3min | NA | NA | NA || Ta3_min |
366| | | | | || = 20 |
367+ +------------+---------------+---------------+------------+------------+
368| | Ta3max | NA | NA | NA || Ta3_max |
369| | | | | || = 32 |
370+------+------------+---------------+---------------+------------+------------+
371| O-DU | T1amin || T1a_min_cp_dl|| T1a_min_cp_ul|| T1a_min_up| NA |
372| | || = 285 || = 285 || = 96 | |
373+ +------------+---------------+---------------+------------+------------+
374| | T1amax || T1a_max_cp_dl|| T1a_max_cp_ul|| T1a_max_up| NA |
375| | || = 429 || = 300 || = 196 | |
376+ +------------+---------------+---------------+------------+------------+
377| | Ta4min | NA | NA | NA || Ta4_min |
378| | | | | || = 0 |
379+ +------------+---------------+---------------+------------+------------+
380| | Ta4max | NA | NA | NA || Ta4_max |
381| | | | | || = 75 |
382+------+------------+---------------+---------------+------------+------------+
Luis Farias9d66fca2020-05-28 19:01:58 -0700383
Luis Farias2de97522022-03-17 20:01:53 -0700384
385
386
Luis Farias9d66fca2020-05-28 19:01:58 -0700387
388IEEE 1588 protocol and PTP for Linux\* implementations are used to
389synchronize local time to GPS time. Details of the configuration used
Luis Farias2de97522022-03-17 20:01:53 -0700390are provided in Appendix B, PTP Configuration. Local time is used to get
391Top of the Second (ToS) as a 1 PPS event for SW implementation. Timing
392event is obtained by performing polling of local time using
393clock_gettime(CLOCK_REALTIME,..)
Luis Farias9d66fca2020-05-28 19:01:58 -0700394
Luis Farias2de97522022-03-17 20:01:53 -0700395All-time intervals are specified concerning the GPS time, which
Luis Farias9d66fca2020-05-28 19:01:58 -0700396corresponds to OTA time.
397
Luis Farias9d66fca2020-05-28 19:01:58 -0700398Virtualization and Container-Based Usage
399----------------------------------------
400
Luis Farias2de97522022-03-17 20:01:53 -0700401O-RAN implementation is deployment agnostic and does not require special
402changes to be used in virtualized or container-based deployment options.
Luis Farias9d66fca2020-05-28 19:01:58 -0700403The only requirement is to provide one SRIOV base virtual port for
404C-plane and one port for U-plane traffic per O-DU instance. This can be
405achieved with the default Virtual Infrastructure Manager (VIM) as well
406as using standard container networking.
407
408
409
Luis Farias2de97522022-03-17 20:01:53 -0700410To configure the networking ports, refer to the FlexRAN and Mobile Edge
411Compute (MEC) Platform Setup Guide (*Table 2*) and readme.md in O-RAN
412library or Appendix A.