7

【OpenAirInterface5g】RRC NR解析(一)

 2 years ago
source link: https://blog.51cto.com/u_15691915/5608062
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

作者:柒号华仔 ​

个人信条:星光不问赶路人,岁月不负有心人。

个人方向:主要方向为5G,同时兼顾其他网络协议,编解码协议,C/C++,linux,云原生等,感兴趣的小伙伴可以关注我,一起交流。

1. RRC源码位置

RRC(Radio Resource Control)称为无线资源控制,是5G系统的核心模块,其主要作用是给下层(PHY,MAC,RLC,PDCP)控制或配置所有无线资源,从而保证UE与基站之间进行通信。 OAI RRC模块位于openair2\RRC下,其下有NR,LTE,NR UE等几个源码目录,我们只分析NR。

2. 文件功能

RRC模块主要文件如下:

rrc_gNB.c

RRC核心程序,包括RRC消息接收和处理

rrc_gNB_NGAP.c

NGAP消息生成和发送

rrc_gNB_UE_context.c

UE上下文生成,获取和删除等

rrc_gNB_reconfig.c

Coreset0,搜索空间,BWP,rb等参数配置

rrc_gNB_GTPV1U.c

GTPV1U相关

nr_rrc_config.c

Rlc,mac cellgroup等一些参数初始化为0

nr_rrc_common.c

一些全局参数初始化

3. 函数功能

rrc_gNB.c是RRC模块的核心源码文件,所有RRC消息由这里接收,所有处理流程也从这里发起,rrc_gnb_task()相当于RRC模块的Main主函数。

rrc_gnb_task

接收其他模块传给RRC模块的msg,根据消息ID进入不同的处理分支

rrc_gNB_decode_dcch

dcch解码

nr_rrc_gNB_decode_ccch

ccch解码

rrc_gNB_generate_RRCSetup

生成RRC Setup

rrc_gNB_generate_RRCSetup_for_RRCReestablishmentRequest

生成对于RRC重建的RRC SETUP

rrc_gNB_generate_RRCReject

生成RRC Reject

rrc_gNB_process_RRCSetupComplete

处理RRC setupComplete

rrc_gNB_generate_defaultRRCReconfiguration

生成RRC重配命令

rrc_gNB_process_RRCReconfigurationComplete

处理RRC重配完成命令

rrc_gNB_generate_RRCReestablishment

生成RRC重建命令

rrc_gNB_process_RRCConnectionReestablishmentComplete

处理RRC重建完成命令

rrc_gNB_generate_SecurityModeCommand

生成加密模式命令

rrc_gNB_generate_UECapabilityEnquiry

生成UE能力查询

rrc_gNB_generate_RRCRelease

生成RRCRelease

init_NR_SI

MIB,SIB1编码

4. 主函数流程

【OpenAirInterface5g】RRC NR解析(一)_初始化

itti_receive_msg()为主接收函数,上一篇已讲过。通过ITTI_MSG_ID(msg_p)获取消息ID,由switch转入各个处理分支流程,对数据进行解码。 nr_rrc_gNB_decode_ccch():负责CCCH解码,传入的数据调用uper_decode()进行per解码,得到消息ID,主要消息包括rrcSetupRequest和rrcReestablishmentRequest两条。 rrc_gNB_decode_dcch():负责DCCH解码,传入的数据调用uper_decode()进行per解码,得到消息ID,包括rrcSetupComplete,rrcReconfigurationComplete,ulInformationTransfer,securityModeComplete,securityModeFailure,ueCapabilityInformation,rrcReestablishmentComplete。 其他几条分支主要是NGAP相关的消息,包括下行NAS,PDU会话建立和释放,UE上下文建立和释放。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK