Difference between revisions of "OAI Reference Architecture for 5G and 6G Research with USRP"

From Ettus Knowledge Base
Jump to: navigation, search
(Configuring the BIOS for gNB and UE Systems)
(Installing and Configuring the gNB System)
Line 321: Line 321:
 
== Installing and Configuring the gNB System ==
 
== Installing and Configuring the gNB System ==
  
Before configuring the gNB system, be sure that you have configured the system BIOS, implemented the Linux performance tuning settings, and installed UHD.
+
Before installing and configuring the gNB system, be sure that you first have configured the system BIOS, implemented the Linux performance tuning settings, and installed UHD.
  
 
== Installing and Configuring the UE System ==
 
== Installing and Configuring the UE System ==

Revision as of 00:15, 7 November 2022

Contents

Author

Neel Pandeya, Bharat Agarwal


Application Note Number

AN-956


Abstract

This Application Note presents a reference design for using the Eurecom OpenAirInterface (OAI) software stack to implement 5G/NR Stand-Alone (SA) systems on the USRP N300, N310, N320, N321, X410 radio devices. The reference design covers the basestation (gNB), the user equipment (UE), and the Core Network (CN) components of the network. Three types of UE are used: a UE running on a USRP radio; a wireless modem module UE; and a commercial (COTS) handset/phone. The reference design supports operation in Frequency Range 1 (FR1), and support for operation in FR2 will be added at a future date. The various aspects of installing, configuring, and running the hardware and software components of the network are discussed in detail, along with a discussion of expected results, methods to benchmark and monitor the system, and troubleshooting steps.


Overview of the USRP N300 and N310

This is example text.


Overview of the USRP N320 and N321

This is example text.


Overview of the USRP X410

This is example text.


Overview of the 5G System and OAI Stack

This is example text.


Bill of Materials (BoM)

The full Bill of Materials (BoM) for the reference design is listed below. The BoM includes all the hardware components for the multiple system configuration scenarios, where the USRP N300, N310, N320, N321, X410 can be used for the gNB and the UE system, and the UE itself can be implemented with a USRP device, or with a wireless modem module, or with a COTS handset.

  • Three desktop computers, with Intel Core i9 CPU, of 10th, 11th, or 12th Generation, with clock speed of minimum 4.0 GHz, with minimum 10 physical cores, and also with only NVMe disk drives. See further details about this item in the Hardware Requirements section.
  • Two 10 Gbps Ethernet networks cards. We recommend the Intel X710-DA2 and the Nvidia/Mellanox MCX4121A-ACAT ConnectX-4 network cards. See further details about this item in the Hardware Requirements section.

Hardware Requirements

Host Computers

Three host computers are needed, one for the gNB, one for the UE, and one for the CN, with the specifications discussed in this section. The requirements for the host computer running the CN are not as high as for the gNB and UE, but we recommend that all three host computers meet the requirements described here. We also strongly recommend that each of the gNB, UE, and CN be implemented on their own dedicated system. A single host computer should only run the gNB, or the UE, or the CN.

CPU

We recommend using an Intel Core i9 CPU, 10th, 11th, or 12th Generation, with minimum clock speed of 4.0 GHz, and with minimum 10 physical cores. Do not use an Intel Xeon CPU. Examples of such a CPU would be the Intel i9-10940X CPU, which has 14 physical cores, 4.60 GHz clock speed, and is 10th generation, and the Intel i9-12900K CPU, which has 16 physical cores, 5.20 GHz clock speed, and is 12th generation. Be sure that the CPU has at least 40 PCIe lanes, or at least enough lanes to support any GPU and 10 Gbps Ethernet card that are being used. The system should ideally support PCIe Gen 4.

Disk

We strongly recommend that only NVMe SSD disks are used. Many systems now use PCIe Gen-4, and we recommend using a PCIe Gen-4 NVMe SSD disk. We recommend the Samsung 980 PRO SSD drive. Do not SATA disks at all. Using a RAID configuration with multiple drives should not be necessary, although this can potentially be an option for further increasing performance and throughput.

Memory

The system should have either dual-channel or quad-channel DDR4 or DDR5 (preferred) memory, with the highest clock speed available. A minimum of 16 GB or 32 GB of memory should be sufficient. Larger amounts of memory should not be necessary, as no virtualization, RAM disk, or other large in-memory buffering is being used.

GPU

The GPU does not matter for the purposes of running UHD and OAI. If you might be doing some AI/ML processing in then GPU, then you may want to use a particular GPU. The OAI 5G stack does not currently leverage the GPU.

10 Gbps Ethernet network card

The gNB and UE system will need a two-port 10 Gbps Ethernet network card for connecting to the USRP radio. The CN system does not connect to any USRP, so it does not need a 10 Gbps Ethernet network card.

There are several cards that are relevant and that we recommend, depending on the specific use-case.

The Intel X710-DA2 is a solid network card, and works out-of-the-box with Ubuntu 20.04.4. However, it has some issues with DPDK. This reference design is not initially using DPDK, so these issues are not yet relevant. The card is widely availabe and relatively inexpensive. The X710-DA4 is a four-port version of the card.

Be sure that the computer's chassis can physically accommodate the network card.

The Mellanox MCX4121A-ACAT ConnectX-4 is also a solid network card, and also works out-of-the-box with Ubuntu 20.04.4. Furthermore, it works well with DPDK.

QSFP28-to-SFP28 Breakout Cable for USRP X410

The USRP X410 only has a QSFP28 port, which is for 100 Gbps Ethernet. In order to connect the USRP X410 to the host computer via 10 Gbps Ethernet, a QSFP28-to-SFP28 breakout cable is needed. This cable will be required when using the USRP X410, and will connect directly to the 10 Gbps Ethernet cards. This cable is not needed for the USRP N300, N310, N320, N321.

It is certainly possible to directly connect the host computer to the 100 Gbps QSFP28 port of the USRP X410. In order to do this, a QSFP28 100 Gbps Ethernet card would be needed. We recommend the Mellanox/Nvidia MCX516A-CCAT (PCIe Gen3), and the Mellanox/Nvidia MCX516A-CDAT (PCIe Gen4). You will also need a QSFP28 cable. We recommend the Mellanox/Nvidia MCP1600-C003E26N, and the Mellanox/Nvidia MCP1600-C003E30L and MCP7F00-A001R30N. We also recommend the Intel E810 series network cards. There are both 100 Gbps Ethernet QSFP28 cards and 10 Gbps Ethernet SFP28/SFP+ cards. All these cards work well with Ubuntu 20.04 and DPDK.

However, in this release of the reference design, it is not necessary to use 100 Gbps Ethernet, which is only needed for supporting high aggregate data rates, such as for the larger 200 MHz and 400 MHz FR2 channel bandwidths, and/or for 2x2 MIMO configuration, both of which are not yet supported. For this release of the reference design, we recommend using the Intel X710-DA2 and the Mellanox MCX4121A-ACAT ConnectX-4 cards, and using dual 10 Gbps Ethernet connections.

Example Systems

There are many vendors who sell host computers that meet these requirements. This reference design was implemented using System 76 Thelio Mira systems and Dell Precision 5820 systems. Both systems have flexible configuration options, and can be configured as described in this section.

USRP Devices

Two USRP devices are needed, one for the gNB, and one for the UE. The USRP may be any of USRP N300, N310, N320, N321, X410. The USRP devices can be mixed (i.e., the gNB could be implemented with a USRP X410, while the UE could be implemented with a USRP N310). All these USRP devices can support all the channel bandwidths in FR1, up to and including 100 MHz. For FR2, the USRP N320 can support the 50, 100, 200 MHz channel bandwidths, and the USRP X410 can support all the 50, 100, 200, 400 MHz channel bandwidths.

OctoClock-G

One OctoClock-G device is needed to synchronize the gNB USRP and the UE USRP. Ensure that device used is the "-G" version of the OctoClock, which contains an internal GPSDO module. This is only needed when the UE is implemented on a USRP device.

Host Computer for 5G Wireless Modem Module

One implementation of the UE is a 5G wireless modem module, such as the Quectel RM500Q-GL. The modem module requires a device driver and a connection to a host computer. It is possible to use one of the gNB, UE, CN host computers to also drive the modem module, but it is recommended to have a separate dedicated fourth host computer for this. This host computer need not be powerful or high-performance, and may run either Ubuntu 20.04 or Windows 10. It may be preferred to use Windows 10, as the Qualcomm drivers may work better on Windows than on Linux.

Software Requirements

Operating System

The required operating system for the gNB, UE, CN systems is Ubuntu 20.04.4. Be sure to use the Desktop image, not the Server image. It is also necessary to use the low-latency kernel on the gNB and UE systems, but not on the CN system. The kernel version should be 5.15 for Ubuntu 20.04.4. The "Installing and Configuring the UHD Software" section contains detailed information about what specific package dependencies need to be installed, and how to install the low-latency kernel. Either Kubuntu or Xubuntu may also be used, instead of Ubuntu. Do not run Ubuntu in a Virtual Machine (VM). Do not use any virtualization. Be sure to install Ubuntu on-the-metal.

It is expected that sometime in early 2023, Ubuntu 22.04 will also be officially supported.

UHD

UHD is the open-source device driver for all USRP radios. The required version of UHD for this reference design is 4.2.0.0. The "Installing and Configuring the UHD Software" section contains detailed information about the installation and configuration procedure. The "Building and Installing the USRP Open-Source Toolchain (UHD and GNU Radio) on Linux" Application Note also contains details and thorough information about how to install and configure UHD. We recommend that you build UHD from source code, and do not install it from a binary package. We also recommend that you build UHD first, before building and installing OAI, and that you do not build UHD using the OAI build_oai script. UHD is required on both the gNB system and the UE system, but it is not needed on the CN system.

OpenAirInterface (OAI)

The required version of OAI for this reference design is either 2022.w33 or the devel branch. We recommend that you build OAI from source code, using the build_oai script. The OAI software is required on the gNB, UE, and CN systems. The "Installing and Configuring the CN System", "Installing and Configuring the gNB System", and "Installing and Configuring the UE System" sections contains detailed information about the installation and configuration procedure for the OAI software. Be sure to build and install OAI only after building and installing UHD.

DPDK

The Data Plane Development Kit (DPDK) is an open-source software project that provides a set of data plane libraries and network interface controller polling-mode drivers for offloading TCP packet processing from the operating system kernel to processes running in user-space. This offloading achieves higher computing efficiency and higher packet throughput than is possible using the interrupt-driven processing provided in the kernel. By putting the network interface driver in user space, avoiding context switches, and pinning I/O threads to cores, UHD and DPDK combine to largely prevent the latency spikes induced by the kernel scheduler, and the overall overhead for packet processing is reduced.

The current version of the reference design does not use DPDK, but it is expected that DPDK will be required in the next release of the reference design.

The "Getting Started with DPDK and UHD" Application Note contains detailed information about DPDK.


Installing and Configuring the UHD Software

This is example text.


Installing and Configuring the USRP Radio

The USRP N300, N310, N320, N321, X410 may all be used as either the gNB or the UE.

For the USRP N300 and N310

This is example text.

For the USRP N320 and N321

This is example text.

For the USRP X410

This is example text.


Configuring the Ubuntu Linux Operating System

This is example text.


Configuring the BIOS for gNB and UE Systems

On the gNB system, and on the UE system, if the UE being used is a USRP radio, there are several specific settings that need to be made. The hyperthreading, CPU frequency control, C-states, P-states, and any other power management should all be disabled. Each BIOS will have a different way to do this. The two screenshots below show where in the BIOS menu to disable C-states and to disable Hyperthreading. Once these options are set in the BIOS, reboot the system.

c states.jpg

disable-hyperthreading.jpg

Installing and Configuring the CN System

This is example text.


Installing and Configuring the gNB System

Before installing and configuring the gNB system, be sure that you first have configured the system BIOS, implemented the Linux performance tuning settings, and installed UHD.

Installing and Configuring the UE System

There are three scenarios for the UE implementation: the USRP radio; the wireless modem module; and the COTS handset.

Configuring the SIM Card and Card Reader/Writer

This is example text.

For the USRP as the UE

This is example text.

For the Wireless Modem Module as the UE

This is example text.

For the COTS Handset as the UE

This is example text.

Running the System

This is example text.

Invoking the CN System

This is example text.

Invoking the gNB System

This is example text.

Invoking the USRP UE System

This is example text.

Invoking the 5G Wireless Modem Module UE

This is example text.

Invoking the COTS Handset UE

This is example text.


Monitoring and Benchmarking the System

This is example text.


Troubleshooting

This is example text.


Technical Support

Mailing Lists

There are two mailing lists that provide help.

USRP Mailing List

This is example text.

OAI Mailing List

This is example text.

Email

Technical support can be requested via email at support@ettus.com .

This is example text.


FAQ

5G/NR FAQ List

This is example text.

OAI FAQ List

This is example text.

USRP & UHD FAQ List

This is example text.


Resources

Acronyms

The table below contains a list of acronyms used in this document, and their definitions.

Table 999. List Acronyms and Definitions
Acronym Definition
3GPP 3rd Generation Partnership Project

Related Documentation

This is example text.

5G Band Allocations

This is example text.

Training Resources

This is example text.

Recommended Books

This is example text.

Recommended Blogs and Online Materials

This is example text.

Recommended IEEE Papers

This is example text.