This repository supports the the real time RIC - EdgeRIC with the srsRAN cellular network stack.
Website: https://edgeric.github.io
This repository is a collection of multiple folders containing the code for srsue (4G)
, modified srsgnb
and edgeric
Documentation for EdgeRIC compatible srsRAN Located in srsRAN-5G-ER
Documentation for EdgeRIC-v2 Located in edgeric-v2
├── edgeric-v2 : Codebase for EdgeRIC
├── srs-4G-UE : Codebase for srsue (4G)
├── srsRAN-5G-ER : Codebase for srsRAN enb with EdgeRIC hooks
├── open5gs : This folder contains all the open5gs CN config files used in this repository
├── traffic-generator : This folder contains multiple traffic generator modules
/open5gs
--> All open5gs configs
Configs below are for a 10MHz BW system, 20MHz settings are also available as comments
/srs-4G-UE/.config/ue-4g-zmq.conf
--> config file to run 1 srsue in zmq mode, check section [usim]
and appropriately add those credentials in the open5gs webui database
/srs-4G-UE/.config/ue1-4g-zmq.conf
--> config file for UE1 in multi UE zmq mode, check section [usim]
and appropriately add those credentials in the open5gs webui database
/srs-4G-UE/.config/ue2-4g-zmq.conf
--> config file for UE2 in multi UE zmq mode, check section [usim]
and appropriately add those credentials in the open5gs webui database
/srs-4G-UE/.config/ue3-4g-zmq.conf
--> config file for UE3 in multi UE zmq mode, check section [usim]
and appropriately add those credentials in the open5gs webui database
/srs-4G-UE/.config/ue4-4g-zmq.conf
--> config file for UE4 in multi UE zmq mode, check section [usim]
and appropriately add those credentials in the open5gs webui database
/srsRAN-5G-ER/configs/n320-ota-amarisoft.yml
--> run srsgnb in Over the air mode with usrp N320, in section cell_cfg
you can change the band and bandwidth of operation
/srsRAN-5G-ER/configs/zmq-mode.yml
--> run srsgnb in zmq mode with 1 srsue
/srsRAN-5G-ER/configs/zmq-mode-multi-ue.yml
--> run srsgnb in zmq mode for multiple UEs
For a full set of allowed configs from srsRAN, refer here
sudo ./make-ran-er.sh
Installation of open5gs CN: Open5gs installation
Use the config files in /open5gs
- they should be fould in ~/etc/open5gs
of the machine
$ sudo systemctl restart open5gs-mmed
$ sudo systemctl restart open5gs-sgwcd
$ sudo systemctl restart open5gs-smfd
$ sudo systemctl restart open5gs-amfd
$ sudo systemctl restart open5gs-sgwud
$ sudo systemctl restart open5gs-upfd
$ sudo systemctl restart open5gs-hssd
$ sudo systemctl restart open5gs-pcrfd
$ sudo systemctl restart open5gs-nrfd
$ sudo systemctl restart open5gs-scpd
$ sudo systemctl restart open5gs-seppd
$ sudo systemctl restart open5gs-ausfd
$ sudo systemctl restart open5gs-udmd
$ sudo systemctl restart open5gs-pcfd
$ sudo systemctl restart open5gs-nssfd
$ sudo systemctl restart open5gs-bsfd
$ sudo systemctl restart open5gs-udrd
$ sudo systemctl restart open5gs-webui
Refer to srsRAN-5G-ER
for documentation of the rt-agent
Make sure you have UHD installed
sudo ./run_gnb_ota.sh
GNU flowgraph
Run the GNU radio flowgraph - for two UEs run:
python3 2ue-zmq-mode-23.04Mhz.py
Run the GNU radio flowgraph - for four UEs run:
python3 4ue-zmq-mode-23.04Mhz.py
Run the RAN
sudo ./run_gnb_multi_ue.sh
For two UEs, you can run the script:
sudo ./run2ue-zmq-mode.sh
For four UEs, you can run the script:
sudo ./run4ue-zmq-mode.sh
You can also run the UEs in separate terminals
Update the UE config files, update [rf]
section with the following, refer here:
device_name = uhd
device_args = ip_addr_of_sdr
More details: traffic-generator
cd traffic-generator
sudo ./iperf_server_2ues.sh
cd traffic-generator
sudo ./iperf_client_2ues.sh 13M 13M 1000
Refer to edgeric-v2
for documentation