Hyper Open Edge Cloud

How To Process UE Performance Tests

The process to test UE performance
  • Last Update:2024-02-20
  • Version:001
  • Language:en


This page examines the different parameters that can influence the performance of a wireless communication.

Here, the throughput is evaluated for the Rapid Space Open Radio Station (ORS), implementing the Amarisoft eNB/gNB/EPC software.

Throughput Factors

The factors described below are some examples of components that effectively affect the data throughput. The number of users in the cell, the position of the UE with respect to the eNB, the signal level and fading conditions can also influence the communication.

UE Category

The UE category gives an indication on the UE's uplink and downlink performance capability.

The information can be found in the RRC message in LTEENB log on UE Capability Information, specifically the field ue-Category. The maximum theoretical UL and DL data rates that each UE category can achieve are defined in 3GPP specifications, such as  3GPP : The Mobile Broadband Standard.


Network Configuration

The throughput depends on how some of the following parameters are configured : 


The bigger the bandwidth, the finer the time resolution of the signal and the higher the data rate. 

In Amarisoft configuration, the bandwidth is configured with the n_rb_dl parameter, which can also be defined with the N_RB_DL parameter at the top of /root/enb/config/enb.cfg. For maximum results, set the cell bandwidth to 20 MHz (the value 100 for N_RB_DL).

Transmission Mode

MIMO (Multiple Input Multiple Output) is a technology in wireless communication that exploits multipath propagation. It uses multiple antennas at the transmitter and at the receiver side to establish multiple signal paths. 

This MIMO transmission mode can be enabled by matching the number of antennas used to the parameters N_ANTENNA_DL and N_ANTENNA_UL in /root/enb/config/enb.cfg.  The Rapid Space ORS works with 2 Tx antennas. 

Transmission gain

In LTEENB screen, the cell gain can be controlled with the cell_gain command. 

You could also increase the transmission and the reception gain with tx_gain / rx_gain commands. Beware of over saturating the transmission channel.

How to Test Network : Speedtest

The PC can be reached on or (type on a web browser) on a UE connected to the network. You can then run a speedtest to see Ping and Jitter time, as well as Download and Upload bitrate. Remember that the signal reception depends on the network configuration, the bandwidth, the signal quality, the UE capability, etc ...

Above is the result of a speedtest on a Oneplus 8T connected to an ORS working in 4G (band 42). 

How to Test Network : Iperf

Iperf is a tool for network performance measurement that can be used to test your network's throughput. It can create TCP and UDP data streams to measure the maximum achievable bandwidth between server and client, either unidirectionally or bidirectionally. Iperf output consists of a report on the amount of test data transferred and the speed rate at which the data is transferred. 

Install Iperf 

Iperf needs to be installed both on the network (the PC on which MME is running) and on the device which is being tested. 

  • Network 
    • Ubuntu : sudo apt-get install iperf
    • Fedora : sudo dnf install iperf
  • UE side : iPerf tool is available for Androids in Google Play or for Apple devices in App Store. 


Throughput Tests

To access all options available in iPef command, enter iperf --help

For TCP testing, omit all -u and -b options in the commands described below.

DL Throughput Test

To perform a downlink on UDP test : 

  • Run iperf in server mode on UE : iperf -s -u -i 1
  • Run iperf in client mode on network : iperf -c <UE IP address> -u -b 150M -i 1 -t 100

The UE IP address can be obtained with the ue command in LTEMME screen.

UL Throughput Test

To perform a uplink on UDP test : 

  • Run iperf in server mode on network: iperf -s -u -i 1
  • Run iperf in client mode on UE : iperf -c <PDN Gateway IP address> -u -b 150M -i 1 -t 100

The PDN Gateway IP address is equivalent to the gateway parameter of the pdn object in /root/mme/config/mme.cfg file.

DL/UL Throughput Test

To perform a simultaneous downlink/uplink test on  bidirectional TCP :

  • Run iperf in server mode on UE : iperf -s -i 1
  • Run on network : iperf -c <UE IP address> -d -i 1 -t 100


Iperf Test Results

First enter the iperf command on the UE side, then on the network side. To stop the measurement, enter CTRL+C on the PC keyboard. To check the iperf measurement results, look at : 

  • "Bandwidth" on UE iPerf output
  • "Bandwidth" on PC iPerf output
  • Run t command in LTEENB screen : DL/UL brate field

Below is the result of a simultaneous DL/UL TCP transfer on an ORS working in band 42, with Tx gain 70 and Rx gain 50. 

Multiple UE Simulation in 4G

When using the default configuration for a transmission with bandwidth 20 MHz, the maximum number of UEs that can be connected to eNodeB in 4G saturate around 40 UEs. To go beyond this number and enable more users to connect, you need to adjust some of the eNB and MME parameters. 

Note : In 5G, on the current ORS running on a i5 CPU, the maximum number of UEs is around 500. As NR does not support as much performance tweaking as in LTE, the current setup cannot be easily improved to accept more connections. However, the current configuration should work for more than a 1000 connections on e.g. a i9 CPU. 

Simulate UE connection

There are two ways to simulate multiple UE connections. 

1. Test mode : Load UE

The eNodeB test mode can launch tests creating UE contexts automatically. There are three types of test modes to select from, including the load mode. The load test mode instantiates several UEs that transmit and receive signals at the same time, corresponding to a situation in which multiple UEs are connected with simultaneous UL and DL traffic. Specific radio conditions can be simulated with different properties such as pusch_mcs, forced_ri, forced_cqi, or pusch_fer/pdsch_fer.

The following lines in enb.cfg represent a case with 500 UEs connecting at the same time. 

pusch_mcs: 20,
forced_cqi: 15,
test_mode: {
  type: "load",
  ue_count: 1000,
  pusch_fer: 0.01,
  pdsch_fer: 0.01,

2. Simbox script

Similarly, UEs can be created through the Amarisoft Sim Box. To create UE simulation scenarios on the Sim Box, please refer to TO DO : INSERT LINK ON SIMBOX.


Check available resources

The simulation of multiple UEs can have an impact on the SRS, SR (Scheduling Request) and on the CQI (Channel Quality Indicator). 

To check the availability of these resources, you can take a look at the eNodeB log. In the header part, the following information should be listed : 

The  SR resource count, CQI resource count and SRS resources: total values give an insight on how many UEs can be handled by each resource. GBR corresponds to Guaranteed Bit Rate. 


Network configuration

ENB configuration

To allow more than 1000 UE on eNB, more resources should be allocated for SR, CQI and SRS. 

These resources can be increased by increasing their periodicity, corresponding to the following parameters :

  • sr_period : Enumeration : 5, 10, 20, 40, 80, 2, 1, 0.
  • cqi_period : Enumeration : 2, 5, 10, 20, 40, 80, 160, 1, 32, 64, 128, 0 (default = 0) 
  • srs_period : Enumeration : 2, 5, 10, 20, 40, 80, 160, 320

Below is an example of values you can enter to allow more than 1000 UEs 

srs_dedicated: {
  srs_period: 320,
  srs_bandwidth: 3,
  srs_hopping_bandwidth: 0,
  cyclic_shift: 0,
sr_period: 80, 
cqi_period: 160,

However, not all the resource blocks within a cell can be allocated to user data. Some are also allocated to control. 

For instance, in DL, some resource blocks are dedicated to SIBs, PDCCH, etc ... The number of OFDM symbols for PDCCH can be controlled through n_symb_cch.  The more UEs there are on the cell, the more OFDM symbols are required for PDCCH. So for capacity testing, a value of 1 should be suitable to increase the number of resource blocks used for user data, but in real life this value should be > 1.

n_symb_cch: 1, /* number of symbols for CCH (0 = auto), range 0 to 4 */

Similarly, in UL, some resource blocks are allocated to CQI reporting and PUCCH. This is controlled by nRB-CQI and n1PUCCH-AN parameters in SIB2, and cqi_ pucch_n_rb and n1_pucch_sr_count parameters in enb.cfg.  The more UEs you have in your cell, the more resources are required for PUCCH and CQI, so the more these values should be increased.

For instance : 

pucch_dedicated: {
  n1_pucch_sr_count: 65, 
  cqi_pucch_n_rb: 20,
  tdd_ack_nack_feedback_mode: "multiplexing", /* TDD only */

You may also need to increase the preamble_trans_max property, to control the number of retries after PRACH collision.


MME Configuration

If the MME log file states the following message, it means you are not allocating enough IP address range to assign to all of the UEs.

[NAS] - 0041 Can’t allocate new IPv4 address

In this case you need to modify first_ip_addr, last_ip_addr and ip_addr_shift parameters in mme.cfg.

For example : 

first_ip_addr: "",
last_ip_addr: "",
ip_addr_shift: 0,

Make sure to change the net_mask  in mme-ifup script as well so that it corresponds to the IP allocation range. 


1000 UEs connection

With the above configuration, you should get something similar to the following.

From /tmp/enb0.log :

You can check that the UEs have been created through the eNB screen, by typing the command ue.