X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=o-du%2Fphy.git;a=blobdiff_plain;f=docs%2FArchitecture-Overview_fh.rst;fp=docs%2FArchitecture-Overview_fh.rst;h=72476b203c1d72a0af1155c131f6f15110cf677e;hp=3538e6998da3233c647cfe4b15c8695dd6f7317b;hb=2de97529a4c5a1922214ba0e6f0fb84cacbd0bc7;hpb=81a09690b36b3a4e89b4dae34f30933de13f7f90 diff --git a/docs/Architecture-Overview_fh.rst b/docs/Architecture-Overview_fh.rst index 3538e69..72476b2 100644 --- a/docs/Architecture-Overview_fh.rst +++ b/docs/Architecture-Overview_fh.rst @@ -12,9 +12,6 @@ .. See the License for the specific language governing permissions and .. limitations under the License. -.. |br| raw:: html - -
Architecture Overview ===================== @@ -23,18 +20,24 @@ Architecture Overview :depth: 3 :local: -This section provides an overview of the xRAN architecture. +This section provides an overview of the O-RAN architecture. .. _introduction-1: Introduction ------------ -The front haul interface, according to the ORAN Fronthaul specification, -performs communication between O-RAN Distributed Unit (O-DU) and O-RAN -Radio Unit (O-RU) and consists of multiple HW and SW components. +The front haul interface, according to the O-RAN Fronthaul +specification, is part of the 5G NR L1 reference implementation provided +with the FlexRAN software package. It performs communication between +O-RAN Distributed Unit (O-DU) and O-RAN Radio Unit (O-RU) and consists +of multiple HW and SW components. + +The logical representation of HW and SW components is shown in *Figure +1*. -The logical representation of HW and SW components is shown in Figure 1. +The same architecture design is applicable for LTE; however, the FH +library is not integrated with the PHY pipeline for FlexRAN LTE. .. image:: images/Architecture-Block-Diagram.jpg :width: 600 @@ -42,8 +45,8 @@ The logical representation of HW and SW components is shown in Figure 1. Figure 1. Architecture Block Diagram -|br| -|br| + + From the hardware perspective, two networking ports are used to communicate to the Front Haul and Back (Mid) Haul network as well as to @@ -52,68 +55,77 @@ receive PTP synchronization. The system timer is used to provide a From the software perspective, the following components are used: -* Linux PTP provides synchronization of system timer to GPS time: +* Linux\* PTP provides synchronization of system timer to GPS time: + - ptp4l is used to synchronize oscillator on Network Interface Controller (NIC) to PTP GM. + - phc2sys is used to synchronize system timer to oscillator on NIC. - - Ptp4l is used to synchronize oscillator on Network Interface - Controller (NIC) to PTP GM. +* The DPDK to provide the interface to the Ethernet port. - - Phc2sys is used to synchronize system timer to oscillator on NIC. +* O-RAN library is built on top of DPDK to perform U-plane and C-plane functionality according to the O-RAN Fronthaul specification. -* DPDK to provide the interface to the Ethernet port. +* 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. -* xRAN library is built on top of DPDK to perform U-plane and C-plane - functionality according to the ORAN Fronthaul specification. +* 5G NR PHY communicates with the L2 application using the set of MAC/PHY APIs and the shared memory interface defined as WLS. -* 5GNR reference PHY uses the xRAN 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. +* L2, in turn, can use Back (Mid) Haul networking port to connect to the CU unit in the context of 3GPP specification. -* 5G NR PHY communicates with the L2 application using the set of - MAC/PHY APIs and the shared memory interface defined as WLS. +In this document, we focus on details of the design and implementation +of the O-RAN library for providing Front Haul functionality for both +mmWave and Sub-6 scenarios as well as LTE. -* L2, in turn, can use Back (Mid) Haul networking port to connect to - the CU unit in the context of 3GPP specification. - -In this document, we focus on the details of the design and -implementation of the xRAN library with respect to providing Front Haul -functionality for both mmWave and Sub-6 scenarios. - -The xRAN M-plane is not implemented and is outside of the scope of this +The O-RAN M-plane is not implemented and is outside of the scope of this description. Configuration files are used to specify selected M-plane level parameters. -ORAN FH Threads ---------------- +5G NR L1 Application Threads +---------------------------- + +The specifics of the L1 application design and configuration for the +given scenario can be found in document 603577, *FlexRAN 5G NR Reference +Solution RefPHY* (Doxygen) (refer to *Table 2*) Only information +relevant to front haul is presented in this section. + +Configuration of l1app with O-RAN interface for Front Haul is illustrated +acting as an O-DU in *Figure 2*. -ORAN FH Thread Performs: +.. image:: images/5G-NR-L1app-Threads.jpg + :width: 600 + :alt: Figure 2. 5G NR L1app Threads + +Figure 2. 5G NR L1app Threads + +In this configuration of L1app, the base architecture of 5G NR L1 is not +changed. The original Front Haul FPGA interface was updated with the +O-RAN fronthaul interface abstracted via the O-RAN library. + +O-RAN FH Thread Performs: -- Symbol base “time event” to the rest of the system based on System - Clock synchronized to GPS time via PTP. +- Symbol base “time event” to the rest of the system based on System Clock synchronized to GPS time via PTP -- Baseline polling mode driver performing TX and RX of Ethernet packets. +- Baseline polling mode driver performing TX and RX of Ethernet packets -- Most of the packet processing such as Transport header, Application - header, Data section header and interactions with the rest of the PHY - processing pipeline. +- Most of the packet processing such as Transport header, Application header, Data section header, and interactions with the rest of the PHY processing pipeline. -- Polling of other call back function that was registered. +- Polling of BBDev for FEC on PAC N3000 acceleration card -ORAN FH thread created the independent of usage of xRAN as an interface -to the Radio. +The other threads are standard for the L1app and created the independent +usage of O-RAN as an interface to the Radio. -Communication between L1 and xRAN layer is performed using a set of -callback functions where L1 assigned callback and xRAN layer executes +Communication between L1 and O-RAN layer is performed using a set of +callback functions where L1 assigned callback and O-RAN layer executes those functions at a particular event or time moment. Detailed -information on callback function options and setting as well as design, +information on callback function options and setting, as well as design, can be found in the sections below. +Design and installation of the l1app do not depend on the Host, VM, or +container environment and the same for all cases. + Sample Application Thread Model ------------------------------- -Configuration of a sample application for both O-DU and O-RU follows the -model of 5G NR l1app application in the section of xRAN only. No BBU or -FEC related threads are needed as minimal xRAN functionality is used +Configuration of a sample application for both the O-DU and O-RU follows +the model of 5G NR l1app application in *Figure 2*, but no BBU or FEC +related threads are needed as minimal O-RAN FH functionality is used only. .. image:: images/Sample-Application-Threads.jpg @@ -122,17 +134,15 @@ only. Figure 3. Sample Application Threads -|br| -|br| - In this scenario, the main thread is used only for initializing and closing the application. No execution happens on core 0 during run time. Functional Split ---------------- -Figure 1 corresponds to the O-RU part of the xRAN split. Implementation -of the RU side of the xRAN protocol is not covered in this document. +Figure 1 corresponds to the O-RU part of the O-RAN split. +Implementation of the RU side of the O-RAN protocol is not covered in +this document. .. image:: images/eNB-gNB-Architecture-with-O-DU-and-RU.jpg :width: 600 @@ -140,16 +150,17 @@ of the RU side of the xRAN protocol is not covered in this document. Figure 4. eNB/gNB Architecture with O-DU and RU -|br| -|br| + + More than one RU can be supported with the same implementation of the -xRAN library and depends on the configuration of gNB in general. In this -document, we address details of implementation for single O-DU – O-RU +O-RAN library and depends on the configuration of gNB in general. In this +document, we address details of implementation for a single O-DU – O-RU connection. -The ORAN Fronthaul specification provides two categories of the split of -Layer 1 functionality between O-DU and O‑RU: Category A and Category B. +The O-RAN Fronthaul specification provides two categories of the split +of Layer 1 functionality between O-DU and O-RU: Category A and Category +B. .. image:: images/Functional-Split.jpg :width: 600 @@ -157,24 +168,24 @@ Layer 1 functionality between O-DU and O‑RU: Category A and Category B. Figure 5. Functional Split -|br| + Data Flow --------- -|br| + Table 3 lists the data flows supported for a single RU with a single Component Carrier. -|br| -|br| + + Table 3. Supported Data Flow +---------+----+-----------------+-----------------+----------------+ | Plane | ID | Name | Contents | Periodicity | -+---------+----+-----------------+-----------------+----------------+ ++=========+====+=================+=================+================+ | U-Plane | 1a | DL Frequency | DL user data | symbol | | | | Domain IQ Data | (PDSCH), | | | | | | control channel | | @@ -199,39 +210,31 @@ Table 3. Supported Data Flow | | | | PRACH | | | | | | scheduling | | +---------+----+-----------------+-----------------+----------------+ -| S-Plane | S | Timing and | IEEE 1588 PTP | | +| S-Plane | S | Timing and | IEEE 1588 PTP | - | | | | Synchronization | packets | | +---------+----+-----------------+-----------------+----------------+ -|br| -|br| - .. image:: images/Data-Flows.jpg :width: 600 :alt: Figure 6. Data Flows Figure 6. Data Flows -|br| -|br| + + Information on specific features of C-Plane and U-plane provided in -Section 6.0. Configuration of S-plane used on test setup for simulation -is provided in Appendix Appendix 2. +Sample Application Section Configuration of S-plane used on +test setup for simulation is provided in Appendix 2. Data flow separation is based on VLAN (applicable when layer 2 or layer 3 is used for the C/U-plane transport.) -#. The mechanism for assigning VLAN ID to U-Plane and C-Plane is assumed -to be via the M-Plane. +* The mechanism for assigning VLAN ID to U-Plane and C-Plane is assumed to be via the M-Plane. -VLAN Tag is configurable via the standard Linux IP tool (refer to -Appendix Appendix 1). +* VLAN Tag is configurable via the standard Linux IP tool, refer to Appendix A, Setup Configuration. -No Quality of Service (QoS) is supported. - -|br| -|br| +* No Quality of Service (QoS) is implemented as part of O-RAN library. Standard functionality of ETH port can be used to implement QoS. .. image:: images/C-plane-and-U-plane-Packet-Exchange.jpg :width: 600 @@ -239,157 +242,151 @@ No Quality of Service (QoS) is supported. Figure 7. C-plane and U-plane Packet Exchange -|br| -|br| + + Timing, Latency, and Synchronization to GPS ------------------------------------------- -The ORAN Fronthaul specification defines the latency model of the front -haul interface and interaction between O-DU and O-RU. This -implementation of the xRAN library supports only the category with fixed -timing advance and Defined Transport method. It determines O-DU transmit -and receive windows based on pre-defined transport network characteristics, and the delay characteristics of the RUs within the +The O-RAN Fronthaul specification defines the latency model of the front +haul interface and interaction between O-DU and 0-RU. This +implementation of the O-RAN library supports only the category with fixed +timing advance and Defined Transport methods. It determines O-DU +transmit and receive windows based on pre-defined transport network +characteristics, and the delay characteristics of the RUs within the timing domain. Table 4 below provides default values used for the implementation of -O-DU – O-RU simulation with mmWave scenario. Table 5 and Table 6 below +O-DU – O-RU simulation with mmWave scenario. Table 5 and *Table 6* below provide default values used for the implementation of O-DU – O-RU simulation with numerology 0 and numerology 1 for Sub6 scenarios. -Configuration can be adjusted via configuration files for sample |br| -application and reference PHY. However, simulation of the different -range of the settings was not performed, and additional implementation changes might be required as well as testing with actual O-RU. The -parameters for the front haul network are out of scope as a direct connection between O-DU and 0-RU is used for simulation. +Configuration can be adjusted via configuration files for sample +application and reference PHY. -|br| -|br| +However, simulation of the different range of the settings was not +performed, and additional implementation changes might be required as +well as testing with actual O-RU. The parameters for the front haul +network are out of scope as a direct connection between O-DU and 0-RU +is used for simulation. Table 4. Front Haul Interface Latency (numerology 3 - mmWave) +------+------------+-------------------+-------------------+----------------+------------+ -| | Model | C-Plane | U-Plane | | | -| | Parameters | | | | | -+------+------------+-------------------+-------------------+----------------+------------+ +| | Model | C-Plane | U-Plane | +| | Parameters | | | ++ + +-------------------+-------------------+----------------+------------+ | | | DL | UL | DL | UL | +------+------------+-------------------+-------------------+----------------+------------+ | O-RU | T2amin | T2a_min_cp_dl=50 | T2a_min_cp_ul=50 | T2a_min_up=25 | NA | -+------+------------+-------------------+-------------------+----------------+------------+ ++ +------------+-------------------+-------------------+----------------+------------+ | | T2amax | T2a_max_cp_dl=140 | T2a_max_cp_ul=140 | T2a_max_up=140 | NA | -+------+------------+-------------------+-------------------+----------------+------------+ ++ +------------+-------------------+-------------------+----------------+------------+ | |   | Tadv_cp_dl | NA | NA | NA | -+------+------------+-------------------+-------------------+----------------+------------+ ++ +------------+-------------------+-------------------+----------------+------------+ | | Ta3min | NA | NA | NA | Ta3_min=20 | -+------+------------+-------------------+-------------------+----------------+------------+ ++ +------------+-------------------+-------------------+----------------+------------+ | | Ta3max | NA | NA | NA | Ta3_max=32 | +------+------------+-------------------+-------------------+----------------+------------+ | O-DU | T1amin | T1a_min_cp_dl=70 | T1a_min_cp_ul=60 | T1a_min_up=35 | NA | -+------+------------+-------------------+-------------------+----------------+------------+ ++ +------------+-------------------+-------------------+----------------+------------+ | | T1amax | T1a_max_cp_dl=100 | T1a_max_cp_ul=70 | T1a_max_up=50 | NA | -+------+------------+-------------------+-------------------+----------------+------------+ ++ +------------+-------------------+-------------------+----------------+------------+ | | Ta4min | NA | NA | NA | Ta4_min=0 | -+------+------------+-------------------+-------------------+----------------+------------+ ++ +------------+-------------------+-------------------+----------------+------------+ | | Ta4max | NA | NA | NA | Ta4_max=45 | +------+------------+-------------------+-------------------+----------------+------------+ -|br| -|br| -|br| - Table 5. Front Haul Interface Latency (numerology 0 - Sub6) +------+----------+----------+----------+----------+----------+ -| | Model | C-Plane | U-Plane | | | +| | Model | C-Plane | | U-Plane | | | | Pa | | | | | | | rameters | | | | | -+------+----------+----------+----------+----------+----------+ ++ + +----------+----------+----------+----------+ | | | DL | UL | DL | UL | +------+----------+----------+----------+----------+----------+ | O-RU | T2amin | T | T | T2a_mi | NA | | | | 2a_min_c | 2a_min_c | n_up=200 | | | | | p_dl=400 | p_ul=400 | | | -+------+----------+----------+----------+----------+----------+ ++ +----------+----------+----------+----------+----------+ | | T2amax | T2 | T2 | T2a_max | NA | | | | a_max_cp | a_max_cp | _up=1120 | | | | | _dl=1120 | _ul=1120 | | | -+------+----------+----------+----------+----------+----------+ ++ +----------+----------+----------+----------+----------+ | |   | Ta | NA | NA | NA | | | | dv_cp_dl | | | | -+------+----------+----------+----------+----------+----------+ ++ +----------+----------+----------+----------+----------+ | | Ta3min | NA | NA | NA | Ta3 | | | | | | | _min=160 | -+------+----------+----------+----------+----------+----------+ ++ +----------+----------+----------+----------+----------+ | | Ta3max | NA | NA | NA | Ta3 | | | | | | | _max=256 | +------+----------+----------+----------+----------+----------+ | O-DU | T1amin | T | T | T1a_mi | NA | | | | 1a_min_c | 1a_min_c | n_up=280 | | | | | p_dl=560 | p_ul=480 | | | -+------+----------+----------+----------+----------+----------+ ++ +----------+----------+----------+----------+----------+ | | T1amax | T | T | T1a_ma | NA | | | | 1a_max_c | 1a_max_c | x_up=400 | | | | | p_dl=800 | p_ul=560 | | | -+------+----------+----------+----------+----------+----------+ ++ +----------+----------+----------+----------+----------+ | | Ta4min | NA | NA | NA | T | | | | | | | a4_min=0 | -+------+----------+----------+----------+----------+----------+ ++ +----------+----------+----------+----------+----------+ | | Ta4max | NA | NA | NA | Ta4 | | | | | | | _max=360 | +------+----------+----------+----------+----------+----------+ -|br| -|br| -|br| + + + Table 6. Front Haul Interface Latency (numerology 1 - Sub6) +------+------------+-------------------+-------------------+----------------+------------+ | | Model | C-Plane | U-Plane | | | | | Parameters | | | | | -+------+------------+-------------------+-------------------+----------------+------------+ ++ + +-------------------+-------------------+----------------+------------+ | | | DL | UL | DL | UL | +------+------------+-------------------+-------------------+----------------+------------+ | O-RU | T2amin | T2a_min_cp_dl=285 | T2a_min_cp_ul=285 | T2a_min_up=71 | NA | -+------+------------+-------------------+-------------------+----------------+------------+ ++ +------------+-------------------+-------------------+----------------+------------+ | | T2amax | T2a_max_cp_dl=429 | T2a_max_cp_ul=429 | T2a_max_up=428 | NA | -+------+------------+-------------------+-------------------+----------------+------------+ ++ +------------+-------------------+-------------------+----------------+------------+ | |   | Tadv_cp_dl | NA | NA | NA | -+------+------------+-------------------+-------------------+----------------+------------+ ++ +------------+-------------------+-------------------+----------------+------------+ | | Ta3min | NA | NA | NA | Ta3_min=20 | -+------+------------+-------------------+-------------------+----------------+------------+ ++ +------------+-------------------+-------------------+----------------+------------+ | | Ta3max | NA | NA | NA | Ta3_max=32 | +------+------------+-------------------+-------------------+----------------+------------+ | O-DU | T1amin | T1a_min_cp_dl=285 | T1a_min_cp_ul=285 | T1a_min_up=96 | NA | -+------+------------+-------------------+-------------------+----------------+------------+ ++ +------------+-------------------+-------------------+----------------+------------+ | | T1amax | T1a_max_cp_dl=429 | T1a_max_cp_ul=300 | T1a_max_up=196 | NA | -+------+------------+-------------------+-------------------+----------------+------------+ ++ +------------+-------------------+-------------------+----------------+------------+ | | Ta4min | NA | NA | NA | Ta4_min=0 | -+------+------------+-------------------+-------------------+----------------+------------+ ++ +------------+-------------------+-------------------+----------------+------------+ | | Ta4max | NA | NA | NA | Ta4_max=75 | +------+------------+-------------------+-------------------+----------------+------------+ -|br| -|br| -|br| + + + IEEE 1588 protocol and PTP for Linux\* implementations are used to synchronize local time to GPS time. Details of the configuration used -are provided in Appendix Appendix 2. Local time is used to get Top of -the Second (ToS) as a 1pps event for SW implementation. Timing event is -obtained by performing polling of local time using clock_gettime(CLOCK_REALTIME,..) +are provided in Appendix B, PTP Configuration. Local time is used to get +Top of the Second (ToS) as a 1 PPS event for SW implementation. Timing +event is obtained by performing polling of local time using +clock_gettime(CLOCK_REALTIME,..) -All-time intervals are specified with respect to GPS time which +All-time intervals are specified concerning the GPS time, which corresponds to OTA time. -|br| -|br| -|br| - Virtualization and Container-Based Usage ---------------------------------------- -xRAN implementation is deployment agnostic and does not require special -changes to be used in virtualized or |br| -container-based deployment options. +O-RAN implementation is deployment agnostic and does not require special +changes to be used in virtualized or container-based deployment options. The only requirement is to provide one SRIOV base virtual port for C-plane and one port for U-plane traffic per O-DU instance. This can be achieved with the default Virtual Infrastructure Manager (VIM) as well @@ -397,3 +394,6 @@ as using standard container networking. +To configure the networking ports, refer to the FlexRAN and Mobile Edge +Compute (MEC) Platform Setup Guide (*Table 2*) and readme.md in O-RAN +library or Appendix A.