ZMQ radio
This is a zmq radio implementation that attempts to integrate NR UE with the ocudu project.
OAI integration status
This can currently be used to connect OAI gnb and OAI UE.
Compilation
cmake --build . --target nr-softmodem nr-uesoftmodem ldpc params_libconfig zmq_radio
Running
gNB command:
sudo ./nr-softmodem -O ../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf --gNBs.[0].min_rxtxtime 6 --device.name zmq_radio --zmq.tx_channels tcp://127.0.0.1:4556 --zmq.rx_channels tcp://127.0.0.1:4557
UE command:
sudo ./nr-uesoftmodem -r 106 --numerology 1 --band 78 -C 3619200000 --ssb 516 --device.name zmq_radio --zmq.tx_channels tcp://127.0.0.1:4557 --zmq.rx_channels tcp://127.0.0.1:4556
A new CI testcase for 2x2 configuration was added.
OCUDU integration status
The OAI NR UE enters RRC Connected state when tested against this configuration:
Prerequisites
- compile gnb_split_8 app from the ocudu project
- Run OAI core network from
doc/tutorial_resources/oai-cn5gwithdocker compose up. The ocudu gnb doesn't start without AMF. This is a required step
Running
sudo ./apps/gnb_split_8/gnb -c config.yml
config:
cu_cp:
amf:
addrs: 192.168.70.132
port: 38412
bind_addrs: 0.0.0.0
supported_tracking_areas:
- tac: 1
plmn_list:
- plmn: "00101"
tai_slice_support_list:
- sst: 1
ru_sdr:
device_driver: zmq
device_args: tx_port=tcp://127.0.0.1:4556,rx_port=tcp://127.0.0.1:4557
srate: 61.44
tx_gain: 80
rx_gain: 40
cell_cfg:
dl_arfcn: 632628
band: 78
channel_bandwidth_MHz: 40
common_scs: 30
plmn: "00101"
tac: 1
pci: 1
log:
filename: gnb.log
all_level: debug
pcap:
mac_enable: false
mac_filename: /tmp/gnb_mac.pcap
ngap_enable: false
ngap_filename: /tmp/gnb_ngap.pcap
UE cli:
sudo ./nr-uesoftmodem -r 106 --numerology 1 --band 78 -C 3489420000 --zmq.tx_channels tcp://127.0.0.1:4557 --zmq.rx_channels tcp://127.0.0.1:4556 --device.name zmq_radio --ssb 42 --uecap_file ../targets/PROJECTS/GENERIC-NR-5GC/CONF/uecap_ports1.xml
Two CI testcases were added, one for 1x1 config and nother for 2x2 config.
Known issues
1. UE crashes in this config, unsure why at this point. Fixed by adding uecap file for 1 port
UE log:
[MAC] [UE 0] Applying CellGroupConfig from gNodeB
[NR_MAC] Only type1 codebook configuration is supported
[NR_MAC] Only type1 single panel codebook configuration is supported
[NR_MAC] NR_SRI_PUSCH_PowerControl not implemented, power control will not work as intended
[NR_PHY] Handling of CSI-RS for tracking not handled yet at PHY
[NR_PHY] Handling of CSI-RS for tracking not handled yet at PHY
[NR_PHY] RI = 1 i1 = 0.0.0, i2 = 0, SINR = 0 dB, CQI = 0
[NR_PHY] Handling of CSI-RS for tracking not handled yet at PHY
[NR_PHY] Handling of CSI-RS for tracking not handled yet at PHY
Further down:
[MAC] [UE 0] Applying CellGroupConfig from gNodeB
[NR_MAC] Only type1 codebook configuration is supported
[NR_MAC] Only type1 single panel codebook configuration is supported
[NR_MAC] NR_SRI_PUSCH_PowerControl not implemented, power control will not work as intended
Assertion (max_mimo_layers > 0) failed!
In nr_ue_process_dci_dl_11() /home/bpodrygajlo/openairinterface5g/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c:1442
-
UE is RRC connected and AMF registered but cannot perform pingThis is fixed by correctly setting up OCUDUs amfbind_addressto match CN config.
In the new CI testcases, the UE cannot perform ping.
Edited by Bartosz Podrygajlo