OAI 5G CN V1.5.1 更新解析

https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed/-/blob/master/CHANGELOG.md

官方更新内容

更新内容(v1.5.1 - 2023年5月):

教程:

  • 所有基于基础的教程现在仅支持HTTP/2模式,并使用NRF。
  • 已淘汰所有非NRF基础部署的教程。

更新Helm Charts和Helm Chart教程。

测试:

  • 添加了支持5000个PDU会话的负载测试工具。

所有网络功能的共同特性/修复:

代码重构:

  • 日志记录机制(运行时日志级别选择)
  • 安装/构建脚本
  • 持续集成脚本

发布的Docker-Hub镜像现在使用Ubuntu 20作为基础镜像。

我们将很快淘汰Ubuntu 18.04的构建系统。

AMF更改:

  • 修复了服务请求处理(服务类型:信令)。
  • 修复了N2切换。
  • 支持使用SUPI类型的IMSI。
  • 修复了RAN UE NGAP ID和UE上下文之间的映射。
  • 修复了UDM中FQDN解析时的SBI端口。
  • 修复了TMSI处理。
  • 修复了PDU会话资源释放响应消息。
  • 修复了使用奇数位数解码MSIN的问题。
  • 修复了DNN值的大小写使用(不区分大小写)。
  • 修复了未从配置文件中读取NSSF端口号的问题。
  • 代码重构:
    • NAS层
    • 注册完成消息
    • UE上下文重构

NRF更改:

  • 临时修复了Boost信号的断言失败问题。
  • 修复了HTTP/2中JSON响应数据格式的问题。

PCF更改:

  • 添加了HTTP/2支持。

SMF更改:

  • 修复了N1N2内容消息。
  • 在n2infocontainer中删除了ranInfo字段。
  • 修复了编码NAS头部的问题。
  • 解决了N2切换准备中缺少QoS Flow信息的问题。
  • 修复了SUPI格式:使用IMSI作为SUPI。
  • 修复了在SMF过程启动之前,PDU会话失败时发送PDU会话拒绝的问题。
  • 修复了HTTP头部问题。
  • 修复了配置参数读取问题。
  • 修复了IE重定向信息的问题。
  • 修复了基于节点ID类型的关联节点ID。
  • 如果提供了NF配置文件中的N3 IP地址,则使用该地址。
  • 修复了多个创建的PDR的上行TEID问题。
  • 修复了创建QER IE的编码/解码问题。
  • 在会话建立中支持下行PDR。
  • 当未关联UPF配置文件时,使用配置文件中的NWI。
  • 修复了与PCF的HTTP/2问题。

UDM更改:

  • 修复了HTTP/2中的重复请求处理程序。

UDR更改:

  • 修复了SessionManagementSubscriptionData的PLMN ID(HTTP/2)。
  • 日志记录:在日志中添加了UE ID。
  • 如果注册失败,重试NF注册。

发现

  • 查看v1.5.1的yaml启动文件,发现其中都加入了如下代码:
expose:
            - 80/tcp
            - 8080/tcp

将网元使用暴露出来的端口写入了配置文件。

  • 官方将逐步放弃使用18.04版本ubuntu而是使用20.04版本

使用新版与ueransim的结合使用

  • 1.下载官方代码包,并将其放在基站电脑上
  • 2.修改amf文件。增加如下两行:
            - INT_ALGO_LIST=["NIA1" , "NIA2"]
            - CIPH_ALGO_LIST=["NEA1" , "NEA2"]
  • 3.启动核心网,在启动核心网时会自动下载所需镜像
docker-compose$ docker-compose -f docker-compose-basic-vpp-nrf.yaml up -d
Creating network "demo-oai-public-net" with driver "bridge"
Creating network "oai-public-access" with the default driver
Creating network "oai-public-core" with the default driver
WARNING: Found orphan containers (oai-nssf, oai-nrf-slice3, oai-smf-slice2, oai-smf-slice1, oai-nrf-slice12, oai-spgwu-slice2, vpp-upf-slice3, oai-spgwu-slice1, oai-smf-slice3) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Creating oai-nrf    ... done
Creating oai-ext-dn ... done
Creating mysql      ... done
Creating vpp-upf    ... done
Creating oai-udr    ... done
Creating oai-udm    ... done
Creating oai-ausf   ... done
Creating oai-amf    ... done
Creating oai-smf    ... done
    1. 启动ueransim容器
lab@lab-virtual-machine:~/oai-cn5g-fed/docker-compose/CN7$ docker-compose -f docker-compose-ueransim-vpp.yaml up 
Creating ueransim ... done
  • 5.查看健康状态
lab@lab-virtual-machine:~/oai-cn5g-fed/docker-compose/CN7$ docker ps
WARNING: Error loading config file: /home/lab/.docker/config.json: open /home/lab/.docker/config.json: permission denied
CONTAINER ID   IMAGE                                     COMMAND                  CREATED              STATUS                        PORTS                                    NAMES
688046f69e6f   rohankharade/ueransim:latest              "/ueransim/bin/entry…"   45 seconds ago       Up 44 seconds (healthy)                                                ueransim
39c2ea66b395   oaisoftwarealliance/oai-smf:develop       "python3 /openair-sm…"   About a minute ago   Up About a minute (healthy)   80/tcp, 8080/tcp, 8805/udp               oai-smf
e937d6c19dad   oaisoftwarealliance/oai-amf:develop       "python3 /openair-am…"   About a minute ago   Up About a minute (healthy)   80/tcp, 8080/tcp, 9090/tcp, 38412/sctp   oai-amf
b6b2d0e3dc01   oaisoftwarealliance/oai-ausf:develop      "python3 /openair-au…"   About a minute ago   Up About a minute (healthy)   80/tcp, 8080/tcp                         oai-ausf
713d6662f1ee   oaisoftwarealliance/oai-udm:develop       "python3 /openair-ud…"   About a minute ago   Up About a minute (healthy)   80/tcp, 8080/tcp                         oai-udm
bd4a5e2634a0   oaisoftwarealliance/oai-udr:develop       "python3 /openair-ud…"   About a minute ago   Up About a minute (healthy)   80/tcp, 8080/tcp                         oai-udr
7bb88fa6c32d   oaisoftwarealliance/oai-upf-vpp:develop   "/openair-upf/bin/en…"   About a minute ago   Up About a minute (healthy)   2152/udp, 8085/udp                       vpp-upf
1a9c6dd128f1   oaisoftwarealliance/oai-nrf:develop       "python3 /openair-nr…"   About a minute ago   Up About a minute (healthy)   80/tcp, 8080/tcp, 9090/tcp               oai-nrf
79fe68cb1f8d   mysql:8.0                                 "docker-entrypoint.s…"   About a minute ago   Up About a minute (healthy)   3306/tcp, 33060/tcp                      mysql
93462c675f52   oaisoftwarealliance/trf-gen-cn5g:latest   "/bin/bash -c ' ipta…"   About a minute ago   Up About a minute (healthy)                                            oai-ext-dn

测试端口修改功能

  • 1.进入ueransim容器查看配置文件
mcc: '208'          # Mobile Country Code value
mnc: '95'           # Mobile Network Code value (2 or 3 digits)

nci: '0x000000010'  # NR Cell Identity (36-bit)
idLength: 32        # NR gNB ID length in bits [22...32]
tac: 0xa000              # Tracking Area Code

linkIp: 192.168.70.141   # gNB's local IP address for Radio Link Simulation (Usually same with local IP)
ngapIp: 192.168.70.141   # gNB's local IP address for N2 Interface (Usually same with local IP)
gtpIp:  192.168.72.141    # gNB's local IP address for N3 Interface (Usually same with local IP)

# List of AMF address information
amfConfigs:
  - address: 192.168.70.132
    port: 38412

# List of supported S-NSSAIs by this gNB
slices:
  - sst: 222
    sd:  123
  - sst: 1
    sd:  0
  - sst: 129
    sd:  129

# Indicates whether or not SCTP stream number errors should be ignored.
ignoreStreamIds: true
~                    
# IMSI number of the UE. IMSI = [MCC|MNC|MSISDN] (In total 16 digits)
supi: 'imsi-208950000000041'
# Mobile Country Code value of HPLMN
mcc: '208'
# Mobile Network Code value of HPLMN (2 or 3 digits)
mnc: '95'

# Permanent subscription key
key: '0C0A34601D4F07677303652C0462535B'
# Operator code (OP or OPC) of the UE
op: '63bfa50ee6523365ff14c1f45f88737d'
# This value specifies the OP type and it can be either 'OP' or 'OPC'
opType: 'OPC'
# Authentication Management Field (AMF) value
amf: '8000'
# IMEI number of the device. It is used if no SUPI is provided
imei: '356938035643803'
# IMEISV number of the device. It is used if no SUPI and IMEI is provided
imeiSv: '0035609204079514'

# List of gNB IP addresses for Radio Link Simulation
gnbSearchList:
  - 192.168.70.141
# UAC Access Identities Configuration
uacAic:
  mps: false
  mcs: false

# UAC Access Control Class
uacAcc:
  normalClass: 0
  class11: false
  class12: false
  class13: false
  class14: false
  class15: false
# Initial PDU sessions to be established
sessions:
  - type: 'IPv4'
    apn: 'default'
    slice:
      sst: 222
      sd: 123

# Configured NSSAI for this UE by HPLMN
configured-nssai:
  - sst: 222
    sd: 123

# Default Configured NSSAI for this UE
default-nssai:
  - sst: 222
    sd: 123
# Supported integrity algorithms by this UE
integrity:
  IA1: true
  IA2: true
  IA3: true

# Supported encryption algorithms by this UE
ciphering:
  EA1: true
  EA2: true
  EA3: true

# Integrity protection maximum data rate for user plane
integrityMaxRate:
  uplink: 'full'
  downlink: 'full'

在gnb配置文件中有port配置,在ue配置文件中无,所以只需修改gnb配置文件端口与amf端口一致即可

  • 2.修改amf端口为其他值:
 expose:
            - 80/tcp
            - 8080/tcp
            - 38413/sctp
  • 3.启动核心网
lab@lab-virtual-machine:~/oai-cn5g-fed-master151/docker-compose$ docker-compose -f docker-compose-basic-vpp-nrf.yaml up -d
WARNING: Found orphan containers (oai-smf-slice1, oai-spgwu-slice2, oai-smf-slice2, oai-nrf-slice12, oai-nrf-slice3, oai-smf-slice3, vpp-upf-slice3, oai-nssf, oai-spgwu-slice1) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Creating mysql      ... done
Creating oai-ext-dn ... done
Creating oai-nrf    ... done
Creating vpp-upf    ... done
Creating oai-udr    ... done
Creating oai-udm    ... done
Creating oai-ausf   ... done
Creating oai-amf    ... done
Creating oai-smf    ... done

端口修改为如下值:

6257cb3c2020   oaisoftwarealliance/oai-amf:develop       "python3 /openair-am…"   3 minutes ago        Up 3 minutes (healthy)        80/tcp, 8080/tcp, 9090/tcp, 38412-38413/sctp   oai-amf

不是只有38413,之前的38412也依旧存在

  • 4.在启动的ueransim容器内修改port为38413后接入ueransim,无法接入
 docker exec -it ueransim /bin/bash
 apt-get update
 apt-get install vim
 vim /home/etc/custom_gnb.yaml
 #将38413改为38412
root@ae714e661c94:/ueransim/etc# /ueransim/bin/nr-gnb -c /ueransim/etc/custom-gnb.yaml
UERANSIM v3.2.5
[2023-05-18 08:48:26.084] [rls-udp] [error] RLS failure [Socket bind failed: Address already in use]
[2023-05-18 08:48:26.085] [gtp] [error] GTP/UDP task could not be created. Socket bind failed: Address already in use
[2023-05-18 08:48:26.086] [sctp] [info] Trying to establish SCTP connection... (192.168.70.132:38413)
[2023-05-18 08:48:26.088] [sctp] [error] Connecting to 192.168.70.132:38413 failed. SCTP could not connect: Connection refused

下载非容器nr-binder查询

git clone https://github.com/aligungr/UERANSIM
sudo apt-get update
sudo apt-get install make
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install libsctp-dev lksctp-tools
sudo apt-get install iproute2
sudo snap install cmake --classic

当前版本,非容器化ueransim如何接入OAI核心网

经过尝试发现不行

mcc: '208'          # Mobile Country Code value
mnc: '95'           # Mobile Network Code value (2 or 3 digits)

nci: '0x000000010'  # NR Cell Identity (36-bit)
idLength: 32        # NR gNB ID length in bits [22...32]
tac: 0xa000              # Tracking Area Code

linkIp: 127.0.0.1   # gNB's local IP address for Radio Link Simulation (Usually same with local IP)
ngapIp: 192.168.70.141   # gNB's local IP address for N2 Interface (Usually same with local IP)
gtpIp:  192.168.72.141    # gNB's local IP address for N3 Interface (Usually same with local IP)

# List of AMF address information
amfConfigs:
  - address: 192.168.70.132
    port: 38412

# List of supported S-NSSAIs by this gNB
slices:
  - sst: 222
    sd:  123


# Indicates whether or not SCTP stream number errors should be ignored.
ignoreStreamIds: true

以上诉配置接入基站会报错:

lab@lab-virtual-machine:~/oai-cn5g-fed-master151/UERANSIM-master/UERANSIM-master/build$ ./nr-gnb -c open5gs-gnb.yaml 
UERANSIM v3.2.6
[2023-05-21 17:14:28.632] [sctp] [info] Trying to establish SCTP connection... (192.168.70.132:38412)
[2023-05-21 17:14:28.632] [gtp] [error] GTP/UDP task could not be created. Socket bind failed: Cannot assign requested address
[2023-05-21 17:14:28.634] [sctp] [error] Binding to 192.168.70.141:0 failed. SCTP bind failed: Cannot assign requested address

你可能感兴趣的:(5G,OAI)