Closed pirog-spb closed 10 months ago
L2 nfapi simulator https://gitlab.eurecom.fr/oai/openairinterface5g/-/blob/develop/doc/L2NFAPI.md
OAI Full Stack 5G-NR L2 simulation with containers and a proxy. https://gitlab.eurecom.fr/oai/openairinterface5g/-/blob/develop/ci-scripts/yaml_files/5g_l2sim_tdd/README.md
This nFAPI feature and the proxy are still under development. At time of writing, we were able to run in host-mode, 1 NR-UE and just ping traffic.
```ruby
sergo@edgecom:~/gitlab$ git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git
sergo@edgecom:~/gitlab$ cd openairinterface5g/ci-scripts/yaml_files/5g_l2sim_tdd/
nano docker-compose.yaml
- DEFAULT_DNS_IPV4_ADDRESS=169.254.25.10 #172.21.3.100
nano ../../conf_files/gnb.sa.band78.106prb.l2sim.conf
NETWORK_INTERFACES :
{
GNB_INTERFACE_NAME_FOR_NG_AMF = "ens3";
GNB_IPV4_ADDRESS_FOR_NG_AMF = "188.120.232.247";
GNB_INTERFACE_NAME_FOR_NGU = "ens3";
GNB_IPV4_ADDRESS_FOR_NGU = "188.120.232.247";
GNB_PORT_FOR_NGU = 2152; # Spec 2152
};
nano ../../conf_files/nrue.band78.106prb.l2sim.conf
MACRLCs = (
{
num_cc = 1;
tr_n_preference = "nfapi";
local_n_if_name = "ens3";
remote_n_address = "127.0.0.1"; //Proxy IP
local_n_address = "127.0.0.1";
sudo docker pull oaisoftwarealliance/proxy:develop
sudo docker image tag oaisoftwarealliance/proxy:develop oai-lte-multi-ue-proxy:latest
sudo ifconfig lo: 127.0.0.2 netmask 255.0.0.0 up
sudo docker-compose up -d mysql oai-nrf oai-amf oai-smf oai-spgwu oai-ext-dn
sergo@edgecom:~$ ip a | grep "l2sim"
6882: l2sim-public:
📝 CPU speed matters from https://gitlab.eurecom.fr/oai/openairinterface5g/-/blob/develop/ci-scripts/yaml_files/5g_l2sim_tdd/README.md
But the CPU speed matters; I am running on a fast server:
... Model name: Intel(R) Xeon(R) Silver 4215R CPU @ 3.20GHz
I tried on a slower server with more CPUs and it did not work:
... Model name: Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz
Our CPU is
sergo@edgecom:~$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 46 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Vendor ID: GenuineIntel
Model name: Intel(R) Xeon(R) Silver 4214 CPU @ 2.20GHz
✔ oai-nr-ue0 successfully connected
```ruby
root@edgecom:/opt/oai-nr-ue# ip a |grep oai
6934: oaitun_ue1:
sergo@edgecom:~/gitlab/openairinterface5g/ci-scripts/yaml_files/5g_l2sim_tdd$ sudo docker stats --no-stream --format "table {{.Container}}\t{{.CPUPerc}}
{{.MemUsage}}\t{{.MemPerc}}" l2sim-mysql l2sim-oai-amf l2sim-oai-ext-dn l2sim-oai-gnb l2sim-oai-nr-ue0 l2sim-oai-nrf l2sim-oai-smf l2sim-oai-spgwu l2sim-proxy
CONTAINER CPU % MEM USAGE / LIMIT MEM %
l2sim-mysql 0.63% 377.8MiB / 11.69GiB 3.16%
l2sim-oai-amf 6.22% 11.56MiB / 11.69GiB 0.10%
l2sim-oai-ext-dn 0.00% 6.02MiB / 11.69GiB 0.05%
l2sim-oai-gnb 5.75% 691.3MiB / 11.69GiB 5.78%
l2sim-oai-nr-ue0 0.00% 0B / 0B 0.00%
l2sim-oai-nrf 1.15% 7.672MiB / 11.69GiB 0.06%
l2sim-oai-smf 0.01% 33.62MiB / 11.69GiB 0.28%
l2sim-oai-spgwu 0.00% 12.25MiB / 11.69GiB 0.10%
l2sim-proxy 26.29% 1.045GiB / 11.69GiB 8.94%
There is picture of mostly the same demo architecture at https://gitlab.eurecom.fr/oai/openairinterface5g/-/tree/develop/ci-scripts/yaml_files/5g_rfsimulator#2-deploy-containers
Now OpenAirInterface supports radio emulation. Let's verify compatibility with eUPF.
https://gitlab.eurecom.fr/oai/openairinterface5g/-/blob/develop/doc/RUNMODEM.md#l2-nfapi-simulator
Acceptance criteria: