[OpenAirInterface实战-10] :OAI nFAPI的软件组织结构和软件协议栈架构

Posted 文火冰糖的硅基工坊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[OpenAirInterface实战-10] :OAI nFAPI的软件组织结构和软件协议栈架构相关的知识,希望对你有一定的参考价值。

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:[OpenAirInterface实战-10] :nFAPI的软件组织结构和软件协议栈架构_文火冰糖(王文兵)的博客-CSDN博客


目录

第1章 简介

1.1 什么是nFAPI

1.2  OAI nFAP主页

第2章 nFAPI的代码架构

2.1 带nFAPI的空口协议栈

2.2 nFAPI VNF协议栈

2.3 nFAPI PNF协议

第3章 nFAPI的代码结构

3.1 OAI关于nFAPI的顶层代码结构

3.3 open-nFAPI代码结构


第1章 简介

1.1 什么是nFAPI

nFAPI是FAPI接口的扩展。

在无线接入网中,FAPI接口是一种开放的MAC层与物理层的接口之一, 在该接口中,物理层与MAC层通常在一个物理实体中。

然后,随着网络功能虚拟化的出现,MAC层与PHY层可以不在一个物理实体中,并且一个MAC层可以携带多个PHY层,为了对应这种场景,FAPI对自身进行了扩展,扩展后的协议称为nFAPI。

FAPI专题-1:5G nFAPI接口 - 中文规范-1- 概述、总体框架_文火冰糖(王文兵)的博客-CSDN博客前言:小基站联盟正在开发技术和商业使能技术,加速小基站的推广和应用,以支持企业和社区的数字化转型。小蜂窝的广泛推广、应用将使工业、企业和城乡社区能够获得和负担得起高质量的移动连接。反过来,这将为不断扩大的服务提供商生态系统带来新的商机。这些服务提供商是小基站联盟工作计划的核心。因而,小基站联盟积极推动了小基站关键技术要素的标准化,包括Iuh、FAPI、nFAPI、SON, Service API、TR-069的演进和X2接口的增强。这些规范能够为所有利益相关者提供了一个开放的多供应商平台,降低他们参https://blog.csdn.net/HiWangWenBing/article/details/117587421

1.2  OAI nFAP主页

nfapi · develop · oai / openairinterface5G · GitLabhttps://gitlab.eurecom.fr/oai/openairinterface5g/-/tree/develop/nfapi/OAI在源代码结构的最顶层提供了对nFAPI的支持:

oai/openairinterface5g>ls
CHANGELOG.md  
cmake_targets  
CONTRIBUTING.md  
executables  
nfapi      
openair1  
openshift   
targets
charts        
common         
doc              
LICENSE      
NOTICE.md  
openair2  
pre-commit
ci-scripts    
configuration  
docker           
maketags     
oaienv     
openair3  README.md

第2章 nFAPI的代码架构

2.1 带nFAPI的空口协议栈

2.2 nFAPI VNF协议栈

2.3 nFAPI PNF协议

第3章 nFAPI的代码结构

3.1 OAI关于nFAPI的顶层代码结构

nfapi:nFAPI的代码

---nfapi/open-nFAPI:    nFAPI开源协议栈代码 (基于Cisco的FAPI源代码的增强)

---nfapi/oai_integration:OAI对nFAPI 开源代码的OAI封装(wapper)。

openair1L1的代码

----SCHED:空口调度器,该程序调用nFAPI的Wapper接口,与L1 PHY通信。

---SIMULATION/xx_PHY/yyy_dummy_function:nFAPIwapper的dummy代码,为调度器和MAC层屏蔽真实的nFAPI接口和真实的PHY。

openair2:L2/L3的代码

--- GNB_APP:5G基站应用程序,该程序通过OAI wapper nFAPI,启动nFAP进程。

--- LTE_APP:4G基站应用程序,该程序通过OAI wapper nFAPI,启动nFAP进程。

3.2  OAI nFAPI wapper的代码:oai_integration的代码结构

(1)nfapi.c:nFAPI对外的模式设置接口。

typedef enum {
  NFAPI_MONOLITHIC=0,   // 一体化模式,就FAPI接口
  NFAPI_MODE_PNF,          //  PNF基站
  NFAPI_MODE_VNF,          //  VFN基站
  NFAPI_UE_STUB_PNF,        //  ????
  NFAPI_UE_STUB_OFFNET, //????
  NFAPI_MODE_UNKNOWN  // 不支持模式
} nfapi_mode_t;

(2)nfapi_vnf.c  nfapi_vnf.h

VNF基站提供的Wapper接口,提供给MAC调度器使用

调度器决定:

  • 什么时候发送什么数据包,
  • 维护nFAPI协议栈的状态机。

(3)nfapi_pnf.c、nfapi_pnf.h

PNF基站提供的Wapper接口,提供给PHY层调度器使用

  • 什么时候发送什么数据包,
  • 维护nFAPI协议栈的状态机。

(4)vendor_ext.h:特定vendor的扩展

3.3 open-nFAPI代码结构

(1)integration_tests

对nFAPI接口进行持续集成测试单元测试程序,它会调用pnf_sim和vnf_sim, 启动对PNF和VFN的测试。

(2)vnf_sim:VNF的控制器的仿真

该仿真器的存在,使得VNF可以不依赖于基站App,就可以直接启动, vnf_sim负责配置和启动nFAPI协议栈。

--- mac.cpp:  MAC层的simulator/stub

--- main.cpp=》主程序

(3) pnf_sim:VNF的控制器的仿真。

该仿真器的存在,使得PNF可以不依赖于基站App,就可以直接启动。pnf_sim负责配置和启动nFAPI协议栈。

----fapi_stub.c: 与PHY的FAPI接口的stbu

----main.c        : 主程序

(5)vnf

--- vnf_interface.c: VNF P5协议的接口

--- vnf.c: VNF P5接口接口数据包的接收与发送,并调用nfapi进行性进行TLV解包和封包

--- vnf_p7_interface.c:VNF P5协议的接口

--- vnf_p7.c: VNF P7接口数据包的接收与发送,并调用nfapi进行性进行TLV解包和封包

(4)pnf

--- pnf_interface.c: PNF P5接口协议的接口

--- pnf.c: PNF P5接口接口数据包的接收与发送,并调用nfapi进行性进行TLV解包和封包

--- pnf_p7_interface.c:PNF P5协议的接口

--- pnf_p7.c: PNF P7接口数据包的接收与发送,并调用nfapi进行性进行TLV解包和封包

(5)nfapi

--- nfapi.c:提供tlv的解包和封包的公共操作,被下列的几个功能模块使用。

--- nfapi_p4.c:为VNF和PNF提供同一个的P4包的TLV打包和解包功能。

--- nfapi_p5.c:为VNF和PNF提供同一个的P5包的TLV打包和解包功能。

--- nfapi_p7.c:为VNF和PNF提供同一个的P7包的TLV打包和解包功能。


作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/120758517

以上是关于[OpenAirInterface实战-10] :OAI nFAPI的软件组织结构和软件协议栈架构的主要内容,如果未能解决你的问题,请参考以下文章

[OpenAirInterface实战-8] :OAI编译遇到的问题与解决方法汇总

[OpenAirInterface实战-4] :OAI支持的4G LTE功能集

[OpenAirInterface实战-2] :OAI LTE目标系统架构与协议栈

[OpenAirInterface实战-1] :什么是OAI?OAI常见问题解答

[OpenAirInterface实战-6] :OAI在github中源代码的存放结构

[OpenAirInterface实战-13] :OAI 基站配置文件详解