5G System Configuration
=======================
This section explains how to configure the bandwidth, carrier frequency, and other key parameters of your 5G network.
The 5G network parameters are configured through the ``gnb.XXX.conf`` files. We provide several pre-configured files for common setups, but you can customize them for your needs.
.. note::
For performance reasons, we recommend using either the configuration file with 24 or 51 PRBs.
The configuration files are located in the ``sionna-rk/config`` directory.
Most configurations are shared between different setups, these can be found in the ``sionna-rk/config/common`` directory:
* ``gnb.***.conf``: GNB configuration file
* ``sys_config.yaml``: OAI CN configuration file
* ``nrue_uicc.conf``: NRUE UICC configuration file (relevant for software-defined UEs)
* ``docker-compose.override.yml.template``: Custom overrides for the docker-compose file (e.g. to enable debugging tools)
* ``oai_db.sql``: database with all registered UEs
See `OpenAirInterface5G documentation `_ for further details about the configuration files.
A detailed explanation of the MAC parameters can be found in the `OAI MAC documentation `_.
Generating Configuration Files
------------------------------
Create configuration files from OAI templates:
.. code-block:: bash
./scripts/generate-configs.sh
Configuration files are written to ``config/`` with subdirectories for each setup (e.g., ``rfsim``, ``b200``).
Environment Variables
---------------------
Environment variables can be used to customize the 5G network configuration, e.g., to load plugins or to set the thread pool size.
These variables are stored in the ``.env`` file and includes the following variables:
* ``USRP_SERIAL``: Serial number of the USRP device
* ``USRP_SERIAL_UE``: Serial number of the USRP device for the UE (only for software-defined UE)
* ``GNB_CONFIG``: Path to the GNB configuration file
* ``GNB_EXTRA_OPTIONS``: Extra options for the GNB, e.g., library loader
* ``GNB_THREAD_POOL``: Thread pool assignment for the GNB
* ``UE_EXTRA_OPTIONS``: Extra options for the UE (only for software-defined UE), e.g., library loader
* ``USE_B2XX``: If True, USRP is used (otherwise RF simulator is used)
* ``GNB_RF_OPTIONS``: GNB RF options for USRP or rfsim
* ``UE_RF_OPTIONS``: UE RF options for USRP or rfsim
* ``_TAG``: Which docker images to use
Note that the variables must be set before starting the Docker containers.
Additional Resources
--------------------
The carrier frequency is defined using the Absolute Radio Frequency Channel Number (ARFCN). You can use the `online ARFCN calculator `_ to convert between frequency and ARFCN values.
The following could be useful for setting up the 5G network:
* `Practical Guide to 5G RAN Configuration `_
* `gNB Frequency Setup Guide `_
* `OAI Core Network Configuration `_