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 1000 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 https://tech-academy.amarisoft.com/userguide_ue_simbox.doc and especially this chapter : https://tech-academy.amarisoft.com/userguide_ue_simbox.doc#Run-UE-scenarios-with-WebGui.
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: "192.168.4.2",
last_ip_addr: "192.168.7.254",
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
.