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

2023-11-10

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • Spring事务管理: 构建稳健的数据库事务处理

    博主猫头虎 带您 Go to New World 博客首页 猫头虎的博客 面试题大全专栏 文章图文并茂 生动形象 简单易学 欢迎大家来踩踩 IDEA开发秘籍专栏 学会IDEA常用操作 工作效率翻倍 100天精通Golang 基础入门篇 学会

随机推荐

  • SpringBoot入门到精通(四):整合JDBC和JPA

    整合JDBC JdbcTemplate JPA 当前环境说明 Windows10 64 Maven3 x JDK1 8 MySQL5 6 SpringToolSuite4 Spring官方提供的开发工具 实际就是一个Eclipse 一 整合
  • 必看!!!客户端requests与服务端request收发请求

    当使用代码进行接口访问的时候 请求的发送与请求的接受使用的参数应该怎么如何传输能够请求到正确的响应呢 一 使用GET请求发送 客户端与服务端的参数传输与接受 1 服务端 首先使用web框架写一个简单的接口 接收两个参数 page和size
  • 网络原理TCP/UDP

    文章目录 TCP TCP协议段格式 可靠机制 确认应答机制 超时重传机制 连接管理机制 建立连接 三次握手 断开连接 四次挥手 常见问题 效率机制 滑动窗口 流量控制机制 拥塞控制 延迟应答 捎带应答 粘包问题 应用层的数据包 TCP与UD
  • 源码(二进制)安装kuberbetes(k8s) (完整版-持续完善)

    环境配置 1 分别设置hostname hostnamectl set hostname master hostnamectl set hostname node01 hostnamectl set hostname node02 2 主机
  • 从42亿个不重复的4字节整数中判断一个数是否存在

    include
  • RuoYi项目中VUE表单修改表单中数据回显下拉选项或者单选出现异常

    若依项目中有一个功能就是字典 字典可以让我们不需要修改前端代码的情况下实现表单中下拉选项文字 单选 多选按钮的文字变更 但也会遇到各种各样的问题 后端传递的某个字段的值是数字类型的值 但是字典里面的确实字符串的值 不可能让后端传递字符串的值
  • OpenCV实现SfM(一):双目三维重建(包含SIFT特征点提取)

    三维重建介绍 三维重建是指根据基于一个视图或者多个视图所获得的物体或者场景的图像重建三维模型的过程 由于单视图的信息很单一 因此三维重建需要更复杂的算法和过程 相比之下 多视图的三维重建 模仿人类观察世界的方式 就比较容易实现 其方法是先对
  • Uni-App开发框架介绍

    Uni App开发框架介绍 1 Uni App简介 Uni App是一家公司 DCloud 产品 公司承诺将一直开源且免费 公司旗下有4个产品 HBuilder X 开发工具 uni app 跨平台统一框架 uniCloud 云服务提供商
  • 浏览器的事件轮询(消息轮询)

    目录 浏览器的进程模型 何为进程 何为线程 浏览器有哪些进程和线程 渲染主线程是如何 作的 相关问题 何谓异步 JS为什么会阻塞渲染 JS 中的计时器为什么无法精确计时 任务队列与优先级 浏览器的进程模型 何为进程 程序运 需要有它 专属的
  • 【AI with ML】第 11 章 :对序列模型使用卷积和递归方法

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 操作系统复习【南邮】

    声明 操作系统系列只针对南邮操作系统课程重点进行梳理 尽量不要作为考研复习资料 可能会有缺失之类 也恳请读者进行批评指正 共同进步 参考教材 操作系统教程 人民邮电出版社 黄刚 徐小龙 段卫华编著 2009 9
  • ChatGPT开源系列

    目录 进化树 从GPT 4 可以看出未来 LLM 的哪些趋势 未来的研发方向和优化策略是什么 模型 Stanford Alpaca 可以借鉴的点 llama cpp 验证阶段已完成 nebullvm chatllama 待定 可以借鉴的点
  • sql注入的分类总结

    前言 之前对联合查询 报错注入 布尔盲注 延迟注入 对这几种类型模糊不定 我也查阅了一些资料 做了一点总结 希望对大家有帮助 对于SELECT语句 我们通常分其为两种情况 有回显和无回显 有回显 什么是有回显 我们举个例子当我们看到一个ur
  • typedef struct语法解释

    C语言源代码 typedef char datatype typedef struct node datatype data struct node lchild rchild bintnode typedef bintnode bintr
  • Pytest系列-快速入门和基础讲解(1)

    前言 目前有两种纯测试的测试框架 pytest和unittest unittest应该是广为人知 而且也是老框架了 很多人都用来做自动化 无论是UI还是接口 pytest是基于unittest开发的另一款更高级更好用的单元测试框架 单元测试
  • 上最简单的SpringCloud教程

    上一篇文章 讲述了如何通过RestTemplate Ribbon去消费服务 这篇文章主要讲述如何通过Feign去消费服务 一 Feign简介 Feign是一个声明式的伪Http客户端 它使得写Http客户端变得更简单 使用Feign 只需要
  • elementui中的表格实现无限滚动

    背景 找了很多资料 发现elementui中的表格需要实现无限滚动 需要下载一个插件 然后再结合elementui中的无限滚动的属性一起搭配使用 才能有实现完整的功能 在目前网上 我没有看到实现完整功能的博客文章 于是 我在结合他们的方法
  • 宏观经济学笔记

    最近在网上买了一套关于宏观经济学的简短课程 后面将课程笔记会一起放在这儿上面 今天暂时占坑
  • 射频与微波测量之S参数

    S参数 S散射也叫散射参数 是微波传输中的一组重要参数 由于我们很难在高频率时测量电流或电压 因此我们要测量散射参数或 S 参数 这些参数用来表征RF 元件或网络的电气属性或性能 与我们熟悉的测量 如增益 损耗和反射系数 有关 如上图为二端
  • [OpenAirInterface实战-10] :OAI nFAPI的软件组织结构和软件协议栈架构

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 OpenAirInterface实战 10 nFAPI的软件组织结构和软件协议栈架构 文火冰糖 王文兵 的博客 CSDN博客 目录 第1章