部署参考:OAI CN5G Docker 和 OAI RFSIM
获取中... 获取中...
这篇介绍在WSL2下,使用Docker部署OAI核心网,并以RFSIM模式运行OAI基站和nrUE。这种使用方式一般是我在研究信令流程时使用的,同时你也可以在高层协议上使用这种方式来获取便捷的开发环境设置;如果你关注的是底层物理层,那么同样可以通过修改部分运行参数进行实现。想要实现如下的内容,请先确保你成功实现了OAI CN5G DOCKER的部署 以及 OAI RAN的构建。WSL2请自行安装,这里不再赘述,该流程可同样在正常的Linux环境下复现,不过在我们开始前,需要你做一些设置:
1 | sudo sysctl net.ipv4.conf.all.forwarding=1 |
这样就可以保证搭建的nrUE和gNB、核心网之间的流量正常转发。
OAI CN5G 配置
在启动CN5G的Docker镜像前,我们需要对核心网网元进行一定的设置,并添加订阅用户。首先需要修改的配置文件位于conf/config.yaml
,我们需要修改的内容有:
1 | amf: |
在这里我会修改PLMN的参数,46692
对应的是台湾的中华电信运营商,这也是我的商用UE中的白卡写入的信息。
下一步我们需要修改其中一块切片信息,找到embb_slice1
的定义,添加切片ID:
1 | snssais: |
同时还需要修改database/oai_db.sql
中的注册UE信息,把我们的UE信息仿照OAI给出的案例填补上去,包含两部分:
1 | -- |
还有:
1 | -- |
随后请在当前目录下运行 docker compose up -d
以启动所有的网元容器:
你可以通过使用docker logs -f oai-amf
命令来查看 AMF
网元运行的信息。
OAI gNB 配置
需要修改的内容比较多。你可以在targets/PROJECTS/GENERIC-NR-5GC/CONF
新建一个文件,比如说band78-106.conf
来存储配置信息,里面的内容,可以先直接复制gnb.sa.band78.fr1.106PRB.usrpb210.conf
下的全部内容,然后我们再进行修改。第一步,修改PLMN为46692,同时网络切片ID也更改与sql中一致。:
1 | plmn_list = ({ mcc = 466; mnc = 92; mnc_length = 2; snssaiList = ({ sst = 1; sd=0x010203;}) }); |
接下来你可以运行了:
1 | cd ~/openairinterface5g/cmake_targets/ran_build/build |
你可以注意到gNB information那一栏中出现了我们的运行的gNB,说明已经启动成功。
OAI nrUE 配置
nrUE的配置我推荐直接修改 openair3/UICC/usim_interface.c
中的内容
1 | /*-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ |
修改的点和核心网中的对应上就好,主要修改的内容有 :
imsi
: 修改成466920000000001
,我的常用ID。opc
:000102030405060708090a0b0c0d0e0f
key
:00112233445566778899aabbccddeeff
nssai_sd
:0x010203
这些和你核心网内写入的数据对应上即可。当一切配置好后,请运行:
1 | cd ~/openairinterface5g/cmake_targets |
编译通过后,请执行下述命令启动nrUE:
1 | cd ~/openairinterface5g/cmake_targets/ran_build/build |
你应该可以在AMF的日志中找到其成功接入的信息,如图所示:
注意到UEs’ Information中出现了我们的UE,说明运行成功。新建一个终端,输入ifconfig
命令查看是否出现一个新的网口 oaitun_ue1
,并尝试通过该接口上网:
如果能成功ping通,则说明部署成功,你可以在这个环境下开展你的开发或学习任务了🥰