openair-cn-cups

Github: openair-cn-cups

openair-cn-cups descriptions

openair-cn-cups是在openair-cn的基础上将spgw控制面与用户面分离,实现从LTE EPC向5G Core的演进。CUPS就是控制面与用户面分离的意思。架构分离

代码目录结构解析

整体代码结构

openair-cn-cups
(1) gtpv1u: 实现的GTPU协议层内容
(2) gtpv2c: 实现的GTPC协议层内容
(3) itti: 消息中间件ITTI库
(4) oai_spgwc: 分离后spgw控制面功能(main()),将是5G SMF中的一部分功能
(5) oai_spgwu: 分离后spgw用户面功能(main()),将是5G UPF中的一部分功能
(6) pfcp: 实现pfcp协议层内容
(7) pgwc: 实现pgw控制面功能部分
(8) sgwc: 实现sgw控制面功能部分
(9) spgwu: spgw用户面功能部分
(10) udp: UDP服务器功能实现

sgwc文件解析

sgwc
(1) sgwc_app.*: 实现的sgw-c应用层功能
(2) sgwc_config.*: 实现的是sgwc应用中配置文件管理的类
(3) sgwc_eps_bearer_context.*: sgwc中eps bearer context的管理类实现
(4) sgwc_pdn_connection.cpp: sgwc中pdn connection的管理类实现
(5) sgwc_procedure.*: 实现sgwc中具备的消息流程
(6) sgwc_s11.*: 实现sgwc中s11接口协议栈
(7) sgwc_s5s8.*: 实现sgwc中s5s8接口协议栈

代码理解方式

根据实际的系统流程消息定位代码执行位置。比如spgw的功能就是创建管理会话功能,所以以MME通过s11接口发送CREATE SESSION REQUEST消息为例讲解如何理解代码。
For Example:
因为消息源来自MME,所以第一步就是SGW-C从s11(协议栈为gtpv2c/udp)接收数据,从sgw-c角度来看就是udp接收数据buffer,从gtpv2c层解析IE数据并触发sgw-c相关callback。在文件代码中位置为 openair-cn-cups/src/sgwc/sgwc_s11.cpp(这个cpp/hpp文件就是实现的s11接口协议栈),其中有个函数sgw_s11::handle_receive_create_session_request就是处理从gtpv2c接口协议栈中接收到的CREATE SESSION REQUEST消息并处理。找到消息源之后就可以根据代码流程往后理解分析。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值