Add tutorial about how to run multiple UEs

* multiple UEs with namespaces (provided new script)
* multiple UEs with Docker UEs
* updated rfsimulator and channel simulation tutorials
* updated README.md

Co-authored-by: Arash Sahbafard <arash.sahbafard@silicon-austria.com>
This commit is contained in:
Guido Casati
2024-12-05 13:50:36 +01:00
co-authored by Arash Sahbafard
parent 03946cd47b
commit 3438d45d6c
5 changed files with 255 additions and 11 deletions
@@ -1,5 +1,13 @@
[[_TOC_]]
This document is complementary to the [RFSIMULATOR Tutorial](../../../../radio/rfsimulator/README.md).
# Channel Modeling
Channel models in the context of wireless communication refer to mathematical models that simulate the effects of transmission mediums on signal propagation. These models account for factors such as attenuation, interference, and fading, which can affect the quality of communication between transmitter and receiver.
Different channel models represent different real-world scenarios, such as urban environments, indoor spaces, or rural areas. By using these models, researchers and engineers can predict and evaluate the performance of wireless systems under various conditions.
# OAI channel simulation feature
OpenAirInterface RFSimulator incorporates a channel simulation feature. This feature allows any component to modify the time domain samples of a RF channel. It achieves this by applying predefined models, such as those defined in 3GPP TR 36.873 or TR 38.901.
@@ -8,7 +16,6 @@ The definition, configuration, and real-time modification of a channel model are
The RFSimulator is the exclusive option that provides access to all the configuration and real-time modification features of OAI's channel simulation. This makes it a comprehensive tool for managing and manipulating channel simulations in OAI.
# Implementation
OAI channel simulation is using the [config module](../../../../common/config/DOC/config.md) to get its parameters at init time. The [telnet server](../../../../common/utils/telnetsrv/DOC/telnetsrv.md) includes a set of commands which can be used to dynamically modify some channel model parameters.
@@ -39,13 +46,22 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx,
# Channel Model configuration file
To define and use a channel model for uplink, the gNB configuration file needs to include a channel configuration file. To do this, add `@include "channelmod_rfsimu.conf"` at the end of the gNB configuration file, and place the channel configuration file in the same directory. The same shall be done for downlink by including the channel model configuration file at the end of UE configuration file (e.g. [`ci-scripts/conf_files/nrue.uicc.conf`](../../../../ci-scripts/conf_files/nrue.uicc.conf)).
To define and use a channel model for uplink, the gNB configuration file needs to include a channel configuration file. To do this, add:
```bash
@include "channelmod_rfsimu.conf"
```
at the end of the gNB configuration file, and place the channel configuration file in the same directory. The same shall be done for downlink by including the channel model configuration file at the end of UE configuration file. E.g.
* nrUE [`ci-scripts/conf_files/nrue.uicc.conf`](../../../../ci-scripts/conf_files/nrue.uicc.conf)
* gNB [gnb.sa.band78.106prb.rfsim.conf](../../../../ci-scripts/conf_files/gnb.sa.band78.106prb.rfsim.conf)
All channel simulation parameters are defined in the `channelmod` section. Most parameters are specific to a channel model and are only used by the rfsimulator. An example of the configuration file can be found here:
* [`ci-scripts/conf_files/channelmod_rfsimu.conf`](../../../../ci-scripts/conf_files/channelmod_rfsimu.conf)
e.g.:
e.g. a simple scenario to with an AWGN channel:
```bash
channelmod = {
@@ -76,6 +92,29 @@ channelmod = {
where `rfsimu_channel_ue0` will be activated on server side (i.e. eNB/gNB) for uplink and `rfsimu_channel_enB0` will be activated on client side (i.e. UE) for downlink.
## Edit the configuration file
How simulate noise of a AWGN channel? Starting from the configuration file in the previous section, in the `rfsimu_channel_enB0` model part, set the noise power to:
```bash
noise_power_dB = -10
```
In the `rfsimu_channel_ue0` model part, set the noise power to:
```bash
noise_power_dB = -20;
```
and the rest of the `channelmod_rfsimu.conf` remains unchanged.
## Monitoring by nr-scope
In order to verify the effects of the changes introduced by the channel simulation, the `nr-scope` constellation tool can be used to track and analyze the modulation constellation points. This tool allows users to visualize the modulation scheme being used and assess the quality of the received signals. By observing the constellation points, users can verify whether the changes made to the system configuration have resulted in.
# Build the telnet server library
Please refer to this documentation [telnetusage.md](../../../../common/utils/telnetsrv/DOC/telnetusage.md).
# Run OAI with a channel model
When the `chanmod` option is enabled, the RF channel simulator with a channel modeling function is called. Add the following options to the command line to enable the channel model: