【OpenAirInterface5g】RRC NR解析(一)
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.
作者:柒号华仔
个人信条:星光不问赶路人,岁月不负有心人。
个人方向:主要方向为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. 主函数流程
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上下文建立和释放。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK