Amarisoft

LTE SimServer

The purpose of this tutorial is to show you how to do throughput test with LTE SimServer. LTE SimServer is a built in utiliy that comes with LTE callbox that generate UDP packets for throughput test. In this tutorial, I will demonstrate not only the basic operations of LTESimServer but also throughuts for various different bandwidth.

If you are using iperf, there are cases where it is very hard to get very high throughput mainly because it is difficult to find exact options to flood enough amount of packets from iperf to radio protocol stack. Even if you managed to figure out those options with one setup(e.g, for one PC) and it may not work with another setup and you need to figure it out again for the changed setup. With LteSimServer, you can easily reach near max throughput as long as PHY throughput support (NOTE : IP throughput can never be exactly same or higher than PHY throughput. If you are getting lower throughput than you expected, the first thing you need to do is to check if you are getting enough throughput at PHY without any CRC error)

It is assumed that you are familiar with the basic operations of the callbox and I would not explain about the very basic operations of callbox. If you are not familiar with the basic operation of the callbox, refer to other tutorials like LTE Attach, SA setup, NSA setup etc.

NOTE : In some test, you will see the throughput does not reach the ideal throughput. It is because the test is done with commercial mobile phone which does not expose RF port to perform the test in conductive way.

Table of Contents

Introduction

LTE SimServer is an integrated utility designed for LTE callboxes, primarily utilized for conducting high-performance throughput testing within LTE networks. By generating UDP packets at the radio protocol layer, LTE SimServer enables precise evaluation of data transmission capabilities across different channel bandwidth configurations, providing a practical alternative to conventional user-space tools such as iperf. Unlike iperf, which often struggles to saturate the radio protocol stack due to host-level limitations and complex tuning requirements, LTE SimServer leverages its close integration with the callbox hardware and protocol stack to achieve throughput results that closely reflect the maximum capabilities offered by the physical layer (PHY), assuming optimal radio conditions and minimal CRC errors. Architecturally, LTE SimServer operates within the LTE eNodeB emulation environment, interfacing directly with the network interface and the protocol stack, thereby bypassing many of the bottlenecks and variabilities encountered in traditional software-based throughput tests. This makes it a powerful tool for benchmarking, troubleshooting, and validating LTE data performance under diverse test scenarios and device configurations. The significance of LTE SimServer lies in its ability to provide consistent, reproducible, and accurate measurements crucial for radio access network development, device validation, and quality assurance. In the broader telecommunications ecosystem, such throughput testing is essential for optimizing network resources, ensuring device interoperability, and maintaining compliance with evolving 3GPP standards. This tutorial focuses on demonstrating the operational workflow of LTE SimServer, highlighting its efficiency in producing meaningful throughput results across varying bandwidths, and providing guidance on interpreting and troubleshooting the outcomes. It is assumed that users possess foundational knowledge of LTE callbox operation, and the tutorial is structured to expand on throughput testing methodology rather than introductory callbox procedures.

Summary of the Tutorial

This tutorial provides detailed steps for performing out-of-the-box throughput tests on LTE and NR SA systems with various configurations. The following summarizes the procedures and methodologies for each test case described:

General Methodology:

Test Setup

Test setup for this tutorial is as shown below.

I connected the antennas to the first and second SDR cards, labeled RF 1,2 / sdr 0,1. The UE connects to the eNB over the air.

Callbox antennas on the first two SDR cards for an over-the-air UE connection

Test 1 : LTE FDD b7 BW 5 Mhz 2x2 MIMO

I start with enb.default.cfg and send traffic to the UE with LTE SimServer. The eNB trace provides the radio throughput and link-quality values for this baseline test.

Configuration :

In this test, I used default LTE configuration as shown below.

Test 1 enb.cfg symbolic link selecting enb.default.cfg

Following is the configuration in enb.default.cfg

I set N_RB_DL to 25 for 5 MHz and N_ANTENNA_DL to 2 for 2x2 MIMO. TDD is 0, which selects FDD.

N_ANTENNA_UL is 2, and CHANNEL_SIM is 0 to disable the channel simulator. NG_ENB is also 0. Change N_RB_DL when you want to use another LTE bandwidth.

Test 1 configuration selecting 5 MHz and two downlink antennas

Peform the Test

Check cell configuration and confirm that they (frequency, band, bandwidth, mimo etc) are configured as you intented

I use cell phy to verify LTE band 7 with a 5 MHz bandwidth. The downlink ARFCN is 3350, and the uplink ARFCN is 21350.

The downlink has ANT 2 and NL 2, with SCS 15 and QAM 256. The uplink has ANT 2 and NL 1, with SCS 15 and QAM 64.

The cell command reports PCI 1, TAC 0x0001, and PLMN 00101. Check these values along with the frequency and bandwidth before attaching the UE.

Test 1 cell phy and cell output for 5 MHz LTE

Power on UE and Get UE attached to the cell and check the IP assigned to UE

I use ue at the MME prompt to check the subscriber entry. REG is Y, and IP_ADDR includes 192.168.3.2 and 192.168.4.2. I use 192.168.3.2 as the destination for the traffic command.

Test 1 MME ue listing with REG Y and address 192.168.3.2

Go to the directory /root/mme and run ./ltesim_server

After ./ltesim_server starts, I enter help at the (sim) prompt to list the available commands. cbr_send starts the sending simulation, and cbr_recv starts the receiving simulation. quit stops the Simulation server and exits.

Test 1 LTE SimServer startup and help command list

Generate IP throughput

I use cbr_send with destination 192.168.3.2, data rate 100M, and duration 600 seconds. The first argument is the UE IP address. The second sets the data rate, and the third sets the test duration in seconds.

Set the data rate a little higher than the maximum throughput the UE can achieve. If the UE receives a different IP address, use that address as the destination.

Test 1 cbr_send targeting 192.168.3.2 at 100M for 600 seconds

Verify the throughput

Verify the throughput with 't' command and tweak radio link condition to achieve the throughput as much as possible.

The DL brate is mostly 41.8M, with one entry at 42.3M. CQI is 15, ri is 2, mcs is 25.9, and retx is 0.

For these checks, aim for mcs near 28 with 64QAM or 27 with 256QAM. Low CQI or high retx can prevent this. Compare DL brate with the expected maximum for the channel bandwidth and maximum modulation scheme.

Adjust distance, antenna direction, or cable connections to reach CQI 15 and ri 2 for the configured MIMO. Keep retx as low as possible.

Test 1 throughput trace with DL brate CQI rank MCS and retransmissions

Test 2 : LTE FDD b7 BW 20 Mhz 2x2 MIMO

I increase the LTE bandwidth by setting N_RB_DL to 100. I then use a higher traffic rate to check throughput with the wider channel.

Configuration :

In this test, I used a configuration file that are modified from enb-b7-20Mhz-2x2.cfg which was copied from gnb-sa.cfg as shown below.

Test 2 enb.cfg symbolic link selecting enb-b7-20Mhz-2x2.cfg

Following is the configuration in enb-b7-20Mhz-2x2.cfg

I set N_RB_DL to 100 for 20 MHz and N_ANTENNA_DL to 2 for 2x2 MIMO. TDD is 0, which selects FDD.

N_ANTENNA_UL is 2, and CHANNEL_SIM is 0 to disable the channel simulator. NG_ENB is also 0. Change N_RB_DL when you want to use another LTE bandwidth.

Test 2 configuration selecting 20 MHz and two downlink antennas

Peform the Test

Check cell configuration and confirm that they (frequency, band, bandwidth, mimo etc) are configured as you intented

I use cell phy to verify LTE band 7 with a 20 MHz bandwidth. The downlink ARFCN is 3350, and the uplink ARFCN is 21350.

The downlink has ANT 2 and NL 2, with SCS 15 and QAM 256. The uplink has ANT 2 and NL 1, with SCS 15 and QAM 64.

The cell command reports PCI 1, TAC 0x0001, and PLMN 00101. Check these values along with the frequency and bandwidth before attaching the UE.

Test 2 cell phy and cell output for 20 MHz LTE

Power on UE and Get UE attached to the cell and check the IP assigned to UE

I use ue at the MME prompt to check the subscriber entry. REG is Y, and IP_ADDR includes 192.168.3.2 and 192.168.4.2. I use 192.168.3.2 as the destination for the traffic command.

Test 2 MME ue listing with REG Y and address 192.168.3.2

Go to the directory /root/mme and run ./ltesim_server

After ./ltesim_server starts, I enter help at the (sim) prompt to list the available commands. cbr_send starts the sending simulation, and cbr_recv starts the receiving simulation. quit stops the Simulation server and exits.

Test 2 LTE SimServer startup and help command list

Generate IP throughput

I use cbr_send with destination 192.168.3.2, data rate 200M, and duration 600 seconds. The first argument is the UE IP address. The second sets the data rate, and the third sets the test duration in seconds.

Set the data rate a little higher than the maximum throughput the UE can achieve. If the UE receives a different IP address, use that address as the destination.

Test 2 cbr_send targeting 192.168.3.2 at 200M for 600 seconds

Verify the throughput

Verify the throughput with 't' command and tweak radio link condition to achieve the throughput as much as possible.

The DL brate ranges from 193M to 195M. CQI is 15, ri is 2, and mcs is 27.0. The retx values range from 1 to 37.

For these checks, aim for mcs near 28 with 64QAM or 27 with 256QAM. Low CQI or high retx can prevent this. Compare DL brate with the expected maximum for the channel bandwidth and maximum modulation scheme.

Adjust distance, antenna direction, or cable connections to reach CQI 15 and ri 2 for the configured MIMO. Keep retx as low as possible.

Test 2 throughput trace with DL brate CQI rank MCS and retransmissions

Test 3 : NR SA TDD n78 BW20 Mhz 2x2 MIMO

I select gnb-sa.cfg for the NR test and send traffic to the UE with LTE SimServer. The gNB trace lets me check throughput together with CQI and retransmissions.

Configuration :

In this test, I used default NR SA configuration (gnb-sa.cfg) as shown below.

Test 3 enb.cfg symbolic link selecting gnb-sa.cfg

Following is the configuration in gnb-sa.cfg

NR_TDD is 1 for TDD, and FR2 is 0 for FR1. NR_BANDWIDTH is 20 MHz, and N_ANTENNA_DL is 2 for 2x2 MIMO.

NR_TDD_CONFIG is 2, N_ANTENNA_UL is 1, and NR_LONG_PUCCH_FORMAT is 2. Change NR_BANDWIDTH when you want to use another NR channel bandwidth.

Test 3 configuration selecting 20 MHz and two downlink antennas

Peform the Test

Check cell configuration and confirm that they (frequency, band, bandwidth, mimo etc) are configured as you intented

I use cell phy to verify NR band n78 with a 20 MHz bandwidth. The downlink and uplink ARFCN values are both 632628.

The downlink has ANT 2 and NL 2, while the uplink has ANT 1 and NL 1. Both use SCS 30 and QAM 256. The SSB ARFCN is 632544, with SCS 30.

The cell command reports PCI 500, TAC 0x000064, and PLMN 00101. Check these values along with the frequency and bandwidth before attaching the UE.

Test 3 cell phy and cell output for 20 MHz NR

Power on UE and Get UE attached to the cell and check the IP assigned to UE

I use ue at the MME prompt to check the subscriber entry. REG is Y, and IP_ADDR includes 192.168.3.2 and 192.168.4.2. I use 192.168.3.2 as the destination for the traffic command.

Test 3 MME ue listing with REG Y and address 192.168.3.2

Go to the directory /root/mme and run ./ltesim_server

After ./ltesim_server starts, I enter help at the (sim) prompt to list the available commands. cbr_send starts the sending simulation, and cbr_recv starts the receiving simulation. quit stops the Simulation server and exits.

Test 3 LTE SimServer startup and help command list

Generate IP throughput

I use cbr_send with destination 192.168.3.2, data rate 300M, and duration 600 seconds. The first argument is the UE IP address. The second sets the data rate, and the third sets the test duration in seconds.

Set the data rate a little higher than the maximum throughput the UE can achieve. If the UE receives a different IP address, use that address as the destination.

Test 3 cbr_send targeting 192.168.3.2 at 300M for 600 seconds

Verify the throughput

Verify the throughput with 't' command and tweak radio link condition to achieve the throughput as much as possible.

The DL brate is mostly 108M, with one entry at 110M. CQI is 15 and ri is 2, but mcs remains 23.0. After the first entry, retx is about 300.

For these checks, aim for mcs near 28 with 64QAM or 27 with 256QAM. Low CQI or high retx can prevent this. Compare DL brate with the expected maximum for the channel bandwidth and maximum modulation scheme.

Adjust distance, antenna direction, or cable connections to reach CQI 15 and ri 2 for the configured MIMO. Keep retx as low as possible.

Check that frequency, band, bandwidth, and MIMO match the intended configuration. Here, high retx from CRC errors makes the network schedule below the maximum even with CQI 15. You may improve the radio link by using an RF cable instead of antennas, or by trying a lower frequency. This needs trial and error; there is no single fix.

Test 3 throughput trace with DL brate CQI rank MCS and retransmissions

Test 4 : NR SA TDD n78 BW50 Mhz 2x2 MIMO

I use gnb-sa-50Mhz.cfg to increase NR_BANDWIDTH to 50. I repeat the traffic test and check whether retransmissions limit the throughput.

Configuration :

In this test, I used gnb-sa-50Mhz.cfg which is copied and modified from gnb-sa.cfg as shown below.

Test 4 enb.cfg symbolic link selecting gnb-sa-50Mhz.cfg

Following is the configuration in gnb-sa-50Mhz.cfg

NR_TDD is 1 for TDD, and FR2 is 0 for FR1. NR_BANDWIDTH is 50 MHz, and N_ANTENNA_DL is 2 for 2x2 MIMO.

NR_TDD_CONFIG is 2, N_ANTENNA_UL is 1, and NR_LONG_PUCCH_FORMAT is 2. Change NR_BANDWIDTH when you want to use another NR channel bandwidth.

Test 4 configuration selecting 50 MHz and two downlink antennas

Peform the Test

Check cell configuration and confirm that they (frequency, band, bandwidth, mimo etc) are configured as you intented

I use cell phy to verify NR band n78 with a 50 MHz bandwidth. The downlink and uplink ARFCN values are both 632628.

The downlink has ANT 2 and NL 2, while the uplink has ANT 1 and NL 1. Both use SCS 30 and QAM 256. The SSB ARFCN is 631584, with SCS 30.

The cell command reports PCI 500, TAC 0x000064, and PLMN 00101. Check these values along with the frequency and bandwidth before attaching the UE.

Test 4 cell phy and cell output for 50 MHz NR

Power on UE and Get UE attached to the cell and check the IP assigned to UE

I use ue at the MME prompt to check the subscriber entry. REG is Y, and IP_ADDR includes 192.168.3.2 and 192.168.4.2. I use 192.168.3.2 as the destination for the traffic command.

Test 4 MME ue listing with REG Y and address 192.168.3.2

Go to the directory /root/mme and run ./ltesim_server

After ./ltesim_server starts, I enter help at the (sim) prompt to list the available commands. cbr_send starts the sending simulation, and cbr_recv starts the receiving simulation. quit stops the Simulation server and exits.

Test 4 LTE SimServer startup and help command list

Generate IP throughput

I use cbr_send with destination 192.168.3.2, data rate 300M, and duration 600 seconds. The first argument is the UE IP address. The second sets the data rate, and the third sets the test duration in seconds.

Set the data rate a little higher than the maximum throughput the UE can achieve. If the UE receives a different IP address, use that address as the destination.

Test 4 cbr_send targeting 192.168.3.2 at 300M for 600 seconds

Verify the throughput

Verify the throughput with 't' command and tweak radio link condition to achieve the throughput as much as possible.

The DL brate is mostly 206M, with one entry at 212M. CQI is 15 and ri is 2, but mcs remains 23.0. After the first entry, retx is about 400.

For these checks, aim for mcs near 28 with 64QAM or 27 with 256QAM. Low CQI or high retx can prevent this. Compare DL brate with the expected maximum for the channel bandwidth and maximum modulation scheme.

Adjust distance, antenna direction, or cable connections to reach CQI 15 and ri 2 for the configured MIMO. Keep retx as low as possible.

Check that frequency, band, bandwidth, and MIMO match the intended configuration. Here, high retx from CRC errors makes the network schedule below the maximum even with CQI 15. You may improve the radio link by using an RF cable instead of antennas, or by trying a lower frequency. This needs trial and error; there is no single fix.

Test 4 throughput trace with DL brate CQI rank MCS and retransmissions

Test 5 : NR SA TDD n78 BW100 Mhz 2x2 MIMO, 2 x sdr50

I use gnb-sa-2sdr-0-1.cfg with /dev/sdr0 and /dev/sdr1 for this test. I raise the traffic rate to 600M before checking the gNB throughput.

Configuration :

In this test, I used the configuration gnb-sa-2sdr-0-1.cfg which was copied and modified from gnb-sa.cfg  as shown below.

Test 5 enb.cfg symbolic link selecting gnb-sa-2sdr-0-1.cfg

Following is the configuration in gnb-sa-2sdr-0-1.cfg

NR_TDD is 1 for TDD, and FR2 is 0 for FR1. NR_BANDWIDTH is 100 MHz, and N_ANTENNA_DL is 2 for 2x2 MIMO.

NR_TDD_CONFIG is 2, N_ANTENNA_UL is 1, and NR_LONG_PUCCH_FORMAT is 2. Change NR_BANDWIDTH when you want to use another NR channel bandwidth.

I set rf_driver.name to "sdr" and args to "dev0=/dev/sdr0,dev1=/dev/sdr1" in the #else branch. dev0 is always the master device. The N_ANTENNA_DL >= 4 branch is not used because N_ANTENNA_DL is 2.

Test 5 configuration selecting 100 MHz and two downlink antennas

Peform the Test

Check cell configuration and confirm that they (frequency, band, bandwidth, mimo etc) are configured as you intented

I use cell phy to verify NR band n78 with a 100 MHz bandwidth. The downlink and uplink ARFCN values are both 632628.

The downlink has ANT 2 and NL 2, while the uplink has ANT 1 and NL 1. Both use SCS 30 and QAM 256. The SSB ARFCN is 629952, with SCS 30.

The cell command reports PCI 500, TAC 0x000064, and PLMN 00101. Check these values along with the frequency and bandwidth before attaching the UE.

Test 5 cell phy and cell output for 100 MHz NR

Power on UE and Get UE attached to the cell and check the IP assigned to UE

I use ue at the MME prompt to check the subscriber entry. REG is Y, and IP_ADDR includes 192.168.3.2 and 192.168.4.2. I use 192.168.3.2 as the destination for the traffic command.

Test 5 MME ue listing with REG Y and address 192.168.3.2

Go to the directory /root/mme and run ./ltesim_server

After ./ltesim_server starts, I enter help at the (sim) prompt to list the available commands. cbr_send starts the sending simulation, and cbr_recv starts the receiving simulation. quit stops the Simulation server and exits.

Test 5 LTE SimServer startup and help command list

Generate IP throughput

I use cbr_send with destination 192.168.3.2, data rate 600M, and duration 600 seconds. The first argument is the UE IP address. The second sets the data rate, and the third sets the test duration in seconds.

Set the data rate a little higher than the maximum throughput the UE can achieve. If the UE receives a different IP address, use that address as the destination.

Test 5 cbr_send targeting 192.168.3.2 at 600M for 600 seconds

Verify the throughput

Verify the throughput with 't' command and tweak radio link condition to achieve the throughput as much as possible.

The DL brate is mostly 573M, with one entry at 559M. CQI is 15 and ri is 2, but mcs remains 23.0. After the first entry, retx is about 400.

For these checks, aim for mcs near 28 with 64QAM or 27 with 256QAM. Low CQI or high retx can prevent this. Compare DL brate with the expected maximum for the channel bandwidth and maximum modulation scheme.

Adjust distance, antenna direction, or cable connections to reach CQI 15 and ri 2 for the configured MIMO. Keep retx as low as possible.

Check that frequency, band, bandwidth, and MIMO match the intended configuration. Here, high retx from CRC errors makes the network schedule below the maximum even with CQI 15. You may improve the radio link by using an RF cable instead of antennas, or by trying a lower frequency. This needs trial and error; there is no single fix.

Test 5 throughput trace with DL brate CQI rank MCS and retransmissions