部署参考:Free5gc+OAI gNB & nrUE
获取中... 获取中...
本篇介绍使用一台Ubuntu运行free5gc充当核心网,另一台Ubuntu主机运行OAI 的gNB和模拟UE。本次使用的Free5GC版本为最新的v3.4.2,OAI版本为2024w26。在Ubuntu 20.04.6LTS版本下,该流程可复现。另一套可复现的版本为【Free5GC:V3.3.0 + OAI RAN 2023.w50】。更推荐使用后者。
Free5gc配置
在开始前,一如既往进行转发设置:
1 | sudo sysctl -w net.ipv4.ip_forward=1 |
配置free5gc目录下的/config
下面的amfcfg.yaml
,smfcfg.yaml
以及upfcfg.yaml
。修改amfcfg.yaml
中plmnd
字段下所有的mnc
和mcc
,同时修改ngapIpList
中的IP地址为运行核心网的主机上网用的IP地址。比如我的运行核心网的主机IP地址为10.25.18.205
,那么:
amfcfg.yaml
1 | ngapIpList: # the IP list of N2 interfaces on this AMF |
smfcfg.yaml
修改N3接口的IP地址:
1 | interfaces: # Interface list for this UPF |
同时也修改plmnlist中的mcc和mnc:
1 | plmnList: |
upfcfg.yaml
修改gtpude的N3接口的IP地址:
1 | gtpu: |
另外还需要修改ausfcfg.yaml
,nssfcfg.yaml
还有nrfcfg.yaml
中的PLMN信息,否则会运行报错。所有需要修改的文件在右侧以”M“标准出来了:
当一切准备就绪后,在free5gc目录下终端运行free5gc:
1 | sudo ./run.sh |
注意这个终端不要关闭!同时另开一个终端,我们运行Webconsole:
1 | cd ~/free5gc/webconsole |
这个终端同样也不要关闭!他们两个正常运行起来应该是这样子的,左边是free5gc右边是webconsole,可以有黄色的Warning,但不能有红色的Error:
Webconsole添加订阅信息
打开Webconsole:http://127.0.0.1:5000 ,输入账号admin
和密码free5gc
登录查看核心网状态。在左侧的SUBSCRIBERs选项中,单击Create
按钮创建新的订阅用户,修改订阅用户信息。
以我使用的测试为例,在Webconsole中新增订阅用户,把对应的信息复制到控制台并点击保存。
OAI RFSIM 配置与使用
进行此步需要你已经安装OAI RAN部分的代码,如不了解请参考OAI RAN 构建指南。
创建Nets名称空间命令
1 | sudo ip netns delete ueNameSpace2 |
注意需要修改{你上网的网卡名称}
的内容(包括花括号)。使用ifconfig
命令查看网络连接情况并找到自己上网的网卡。
配置gNB和nrUE
gNB的一般配置文件格式参照targets/PROJECTS/GENERIC-NR-5GC/CONF/*.conf
中的格式修改。先来到targets/PROJECTS/GENERIC-NR-5GC/CONF
文件夹下,把gnb.sa.band78.fr1.106PRB.usrpb210.conf
复制一份,重命名为band78-108-rfsim.conf
。修改内容有如下几个关键点:plmn
中的mmc
和mnc
;以及amf
对应的ip地址和gNB和amf之间的接口地址
和网卡名称
。
1 | plmn_list = ({ mcc = 466; mnc = 92; mnc_length = 2; snssaiList = ({ sst = 1; sd=0x010203; }) }); |
UE的配置比较简单,只要和刚刚在WebConsole中建立的对应起来即可。在openairinterface5g/openair3/UICC/usim_interface.c
修改宏定义的UICC_PARAMS_DESC
中的对应.defstrval
内容:
1 | #define UICC_PARAMS_DESC { \ |
需要注意的是nssai_sd
使用的是十六进制数。写入的信息,需要和核心网中的匹配。另一处和nrUE相关的修改是openair3/NAS/NR_UE/nr_nas_msg_sim.c
中搜索if 0
,并把0改成1以适配非OAI官方的核心网:
1 | #if 1 // 原本这是0 |
运行基站
在运行基站和nrUE前,最好再重新编译一下:
1 | cd ~/openairinterface5g/cmake_targets |
然后我们运行基站:
1 | cd ~/openairinterface5g/cmake_targets/ran_build/build |
运行基站时,应该能看到核心网中有NG-Setup的信令:
运行RFSIM仿真
1 | cd ~/openairinterface5g/cmake_targets/ran_build/build |
成功启动UE后,你应该可以在Webconsole中看到你编写的UE处于Connected
的状态: