FAPI专题-3:5G nFAPI接口 - 中文规范-3- 协议栈、消息格式

2023-10-29

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

本文网址:https://mp.csdn.net/mp_blog/creation/editor/117590399


目录

第2章 nFAPI接口详解

2.3 nFAPI接口传输层协议栈

2.3.1 传输层协议栈

2.3.1.1 P5接口的协议栈

2.3.1.2 P7接口的协议栈

2.3.1.3 nFAPI接口的安全性

2.3.2 nFAPI消息的通用格式

2.3.2.1 nFAPI PDU头组成

2.3.2.2 nFAPI 消息头组成

2.3.2.3 nFAPI 消息类型

2.3.2.4 nFAPI 消息体组成

2.3.3 nFAPI消息网络字节序

2.3.4 传输层消息的丢包

第3章 P5接口的消息格式(C面)

3.1 nFAPI接口的专有P5消息

3.1.1 PNF_PARAM.request

3.1.2 PNF_PARAM.response

3.1.3 PNF_CONFIG.request

3.1.4 PNF_CONFIG.response

3.1.5 PNF_START.request

3.1.6 PNF_START.response

3.1.7 PNF_STOP.request

3.1.8 PNF_STOP.response

3.2 nFAPI接口的透传P5消息

3.2.1 PARAM.request

3.2.2 PARAM.response

3.2.3 CONFIG.request

3.2.4 CONFIG.response

3.2.5 START.request

3.2.6 ERROR.indication

3.2.7 STOP.request

3.2.8 STOP.indication

3.2.9 nFAPI Configuration TLVs

第4章 P7接口的消息格式(U面)

4.1 nFAPI接口的专有P7消息

4.1.1 DL Node Sync

4.1.2 UL Node Sync

4.1.3 Timing Info

4.2 nFAPI接口的透传P7消息

4.2.1 Handling of Pointer Option in FAPI Messages

4.2.2 Extraction of FAPI Messages From an nFAPI Message



第1章 简介

第2章 nFAPI接口详解

2.1 nFAPI接口的主要消息流程

2.2 5G nFAPI接口与4G FAPI的共存

2.3 nFAPI接口传输层协议栈

相对于FAPI接口nFAPI接口无非就是增加了三类消息:

(1)在P5接口上:用于VNF对PNF进行管理、配置的消息。

(2)在P7接口上:用于VNF与PHY之间进行UL/DL上下行时隙同步的消息。

(3)在P5和P7接口,用于透传FAPI接口的P5和P7消息的消息。

2.3.1 传输层协议栈

2.3.1.1 P5接口的协议栈

采用SCTP协议作为传输层的好处是,SCTP是可靠的传输层,应用层不需要对传输进行定时、合法性检查、包的丢失检查等。

对于5G nFAPI payload标识PPI=TBA.

SCTP连接由PNF发起,根据OAM配置的VFN的IP地址和端口号,与VFN建立的SCTP流,每个PNF PHY与VFN都有一个独立的SCTP流,用于在PHY与VNF之间传送配置、命令消息。

SCTP协议支持在两个端点之间建立冗余的连接。

2.3.1.2 P7接口的协议栈

nFAPI P7对传输延迟和传输抖动有严格的要求,则就限制了为了提高传输可靠性的支持传送的传输层协议的使用,如TCP。nFAPI P7业务数据面采用UDP作为传输层协议,这就需要应用层通过序列号确保数据包传输的完整性,确保传输过程中没有数据包的丢失。

在VNF和PNF上使用的IP地址和端口,是通过P5接口交换PHY配置获取的。

而P7消息头中的PHY ID,用于指向哪个PHY实例/VNF接口。

这些配置选项允许具有多个PHY实例的PNF使用单个UDP流,或者每个PHY实例使用一个UDP流。

2.3.1.3 nFAPI接口的安全性

nFAPI接口允许在VNF与PNF之间建立IPSec隧道,P5和P7接口协议在IPSec隧道中传输。

2.3.2 nFAPI消息的通用格式

nFAPI PDU组成:nFAPI PDU header + n个消息组成

而每个消息又由消息头Hdr + 消息体body组成。

如下图所示:

上图中:

  • 一个nFAPI的PDU可以承载多个消息。
  • nFAPI允许对一个大的数据进行分段。
  • 数据按照big Endian的方式组织。

2.3.2.1 nFAPI PDU头组成

如果传输机制需要,nFAPI头允许对消息进行分段。

  • Segment Length:本段的payload的长度
  • More:More标志定义是否后续有更多的段,用于把多个段连接成一个更大长度的段,用于承载更大的数据。
  • Segment number:段编号定义消息中的段顺序
  • Sequence number:序列号在整个消息中递增。

2.3.2.2 nFAPI 消息头组成

  • PHY ID: 在一个PNF设备内部,可以创建出多个PHY实体,该ID用于标识PHY实体。
  • Message ID: nFAPI或FAPI消息类型

2.3.2.3 nFAPI 消息类型

nFAPI定义了三种大类型的消息

  • Transparent messages:透传消息,这些消息是FAPI协议定义的,nFAPI只用透传这些消息,不对消息进行修改。
  • Dedicated nFAPI messages:nFAPI专有的消息,相对于FAPI,这里消息是nFAPI协议新引入的,是nFAPI独有的,如PNF_XXX消息.
  • Combined messages: 组合/混合消息,这些消息类型本身是由FAPI定义的,nFAPI对这些消息的TLV进行了扩展。

为了避免冲突,所有消息ID必须规划。

2.3.2.3.1 Dedicated nFAPI messages:nFAPI专有的消息

nFAPI新增加了VNF和PNF设备,上述消息是VNF与PNF设备之间的交互消息。一个PNF可以创建多个物理层PHY的实体。

2.3.2.3.2 Combined messages: 组合/混合消息

2.3.2.3.3 Transparent messages:透传消息

相对于nFAPI,FAPI是嵌入式的,因此没有定义VNF和PNF, 只定义L2和L1的接口操作。因此上述消息MAC与物理层之间交互的消息。

2.3.2.3.3 厂家可扩展的消息

2.3.2.4 nFAPI 消息体组成

nFAPI消息体由零个或多个TLV结构组成,TLV参数定义为在后续部分中描述。

2.3.3 nFAPI消息网络字节序

nFAPI消息包装器中嵌入的nFAPI消息(报头和TLV)以及FAPI消息(报头和TLV)中的字段将以大端顺序(网络字节和位顺序)格式排列。

2.3.4 传输层消息的丢包

2.3.4.1 P5信令消息

PNF根据OAM接口对SCTP End point的配置,发起与VNF的SCTP连接,这个连接是双向的数据流通信,一旦SCTP连接建立成功,VNF与PNF PHY之间就可以进行双向通信。

关于SCTP消息的通信,请参考SCTP协议。

2.3.4.2 P7信令消息

P7用户面接口采用UDP通信。UDP是一种无连接协议,它依赖于应用层来处理丢失和无序的消息。为此,P7协议头定义了每个PHY实例上的段号和序列号,以允许nFAPI P7应用程序根据此信息处理丢包和失序问题。当P7接口上的接收端识别到丢失或无序的消息时,接收实体负责处理此类情况。这意味着对于基于slot调度中的PNF,PNF需要缓冲和重排接收到的消息,处理任何的无序或分段的消息,这些消息需要一些额外的时间来处理。有关这些情况的处理,请参阅第2.1.3.4节和第2.1.3.5节。

第3章 P5接口的消息格式(C面)

3.1 nFAPI接口的专有P5消息

3.1.1 PNF_PARAM.request

该消息是由VNF发起,通过该消息,VNF获取PNF的能力参数。该消息没有消息体。

3.1.2 PNF_PARAM.response

该消息是VNF对PNF_PARAM.request的应答消息,消息格式如下

消息的内容是通过TLV格式进行反馈的,TLV的好处是消息体的结构可以非常灵活和可伸缩性强。

3.1.2.1 TLV的内容

(1)nFAPI Sync Mode:该参数指明了PHY实例的同步方式

  • 0:表明PHY还没有同步
  • 1:表明PHY内部10ms帧同步
  • 2:表明PHY已经绝对时间同步

(2)Location Mode:该参数指明了同步源

  • 0:没有同步源
  • 1:GPS同步源(俄罗斯全球导航卫星系统
  • 2:GLONASS同步源(俄罗斯区域导航卫星系统
  • 3:北斗同步源 (中国区域导航卫星系统
  • 4:NavIC同步源 (印度区域导航卫星系统

  • Location Coordinates:定位的位置信息
  • Maximum Number PHYs:支持的最大PHY实例数
  • OUI: 全球组织唯一标识符。

3.1.2.2 PNF PARAM.response Errors

3.1.3 PNF_CONFIG.request

当VNF处于IDLE状态时,该消息用于VNF对PNF进行配置管理。

当VNF处于CONFIGURED状态时,该消息用于VNF对PNF进行重新配置。

消息体的内容是TLV格式,但本标准并没有定义具体的TLV。各个厂家可以采用vendor自定义的TLV对PHY进行配置。

3.1.4 PNF_CONFIG.response

3.1.5 PNF_START.request

该消息用于VNF启动PNF, 该消息没有消息体。

3.1.6 PNF_START.response

3.1.7 PNF_STOP.request

该消息用于VNF停止PNF的运行,使得PNF从RUNNING状态切换到CONFIGED状态。

PNF在收到该消息后,需要reset所有的PHY实体。

该消息没有消息体。

3.1.8 PNF_STOP.response

3.2 nFAPI接口的透传P5消息

3.2.1 PARAM.request

PNF处于RUNNING状态,PHY处于IDLE状态时,该消息用于VNF获取PHY的能力和配置。消息体的格式由FAPI规范定义。

3.2.2 PARAM.response

该消息用于PHY向VNF反馈自身的整体的能力和选项。

消息体的格式如下:

  • PHY的IP地址和端口号,以便于后续VNF直接与PHY建立连接。
  • 而更多的配置信息,需要通过后续的CONFIG.request和CONFIG.response获取。

PHY与VFN之间的同步参数,这些参数非常重要

  • DL_TTI Timing offset:下行调度TTI的定时偏移
  • UL_TTI Timing offset:上行调度TTI的定时偏移
  • UL_DCI Timing offset:DCI指示的定时偏移值
  • Tx_Data:Timing offset:下行数据发送的定时偏移值
  • Timing window:定时窗口大小
  • Timing info mode: 周期上报还是事件上报
  • Timing info period:定期上报的周期

3.2.3 CONFIG.request

该消息用于VFNPHY进行配置,消息格式如下:

可配置的参数如下所示:

OAM配置的VNF IP地址和端口号,用于PHY与VNF建立连接。

3.2.4 CONFIG.response

PHY对VNF的CONFIG.request的响应。

3.2.5 START.request

该消息用于VNF启动PHY, TLV消息体与FAPI一致,nFAPI没有新定义新的TLV.

3.2.6 ERROR.indication

该消息用于PHY向VNF指示内部错误信息, TLV消息体与FAPI一致,nFAPI没有新定义新的TLV.

3.2.7 STOP.request

该消息用于VNF停止PHY, TLV消息体与FAPI一致,nFAPI没有新定义新的TLV。

3.2.8 STOP.indication

有PHY主动向VNF上报STOP实践,TLV消息体与FAPI一致,nFAPI没有新定义新的TLV。

3.2.9 nFAPI Configuration TLVs

这些TLV参数,可以用于PARAM.xxx and CONFIG.xxx消息交互。

第4章 P7接口的消息格式(U面)

4.1 nFAPI接口的专有P7消息

4.1.1 DL Node Sync

  • t1:不是绝对时间,而是一个时间偏移量,相对于VNF 10ms帧的起始点(SFN=0, Slot=0)时的时间偏移量。
  • Delta SFN/SL: 这是VNF期望PHY在下一个TTI时隙时,TTI的偏移跳转。该参数可以对PHYTTI时隙进行修正。

4.1.2 UL Node Sync

  • T1:不是绝对时间,而是一个时间偏移量,相对于VNF 10ms帧的起始点(SFN=0, Slot=0)时的时间偏移量。
  • T2: 不是绝对时间,而是一个时间偏移量,相对于PNF 10ms帧的起始点(SFN=0, Slot=0)时的时间偏移量。该时间是PHY接收到DL Node Sync消息的时间。
  • T3: 不是绝对时间,而是一个时间偏移量,相对于PNF 10ms帧的起始点(SFN=0, Slot=0)时的时间偏移量。该时间是PHY发送到UL Node Sync消息的时间。
  • T4: 并没有在消息中传输,因此在消息中没有提现出来,该时间是VNF接收到PHY发送的 UL Node Sync消息的时间。该不是绝对时间,而是一个时间偏移量,相对于VNF 10ms帧的起始点(SFN=0, Slot=0)时的时间偏移量。

一个DL Node SyncUL Node Sync消息交互完成后,VNF获取了t1, t2, t3, t44个时间戳。通过这个时间戳,可以计算出如下的信息:

  1. PNFVNF之间消息传输的Delay延时(假定上下行delay延时相同)。
  2. PNFVFN10ms帧的起始时隙的时间差。

演算过程如下:

(1)前提:

  • 假设VNF 10ms帧起始TTI的时间为0, (SFN=0, SL=0)
  • 假设PNF 10ms帧起始TTI相对于VNF 10ms帧的TTI的偏移为offset.
  • 假设网络的传输延时为delay,且上下行延时相同。
  • t1,t4的时间不是绝对时间,而是相对于VNF 10ms帧起始TTI的偏移。
  • t2,t3的时间不是绝对时间,而是相对于PNF 10ms帧起始TTI的偏移。

(2)计算过程:

t2 + offset = t1 + delay  =>delay – offset = t2 – t1

t4 = t3 _+ offset + delay => delay + offset = t4 – t3

delay = [ (t4-t3) + (t2-t1)]/2

offset = [ (t4-t3) - (t2-t1)]/2

通过公式,VNF很容易计算出VNF与PNF之间的传输延时delay以及PNF的10ms帧的起始TTI相对于VNF的10ms帧的起始TTI时间的偏移offset。

然后通过就可以通过CONFIG.request对VNF的TTI进行修正。或者VNF修正自己的TTI, 确保VNF和PNF之间的TTI是对齐的(包含网络传输延时)。

4.1.3 Timing Info

该信息是由PNF向VNF提供TLV信息。

  • Last SFN:发送Time info的PHY TTI对应的SFN值
  • Last slot:发送Time info的PHY TTI对应的slot number值

这些信息是PNF自身统计的各种数据的延时抖动。

在PNF PHY与VNF的10m帧的起始TTI对齐后,由于网络传输延时的变化,导致

PNF PHY收到的上下行调度消息、UL_DCI指示、VNF下行发送数据消息的时间,并不是稳定不变的,存在一个延时抖动,PNF PHY参照自己当前的10m帧的起始TTI, 对收到这些消息的时间的抖动性进行统计。

影响PNF PHY接收到数据的时间的抖动性的因素有:

  • 网络传输延时的抖动
  • VNF和PNF晶体震荡器的稳定性

4.2 nFAPI接口的透传P7消息

nFAPI并没有定义新的透传 P7 TLV.

4.2.1 Handling of Pointer Option in FAPI Messages

FAPI接口是基于板内通信的系统,因此PHY和MAC层可以共享内存访问相同的内存空间,nFAPI针对的是跨网元的板间通信系统,因此通过FAPI 消息偿传递数据时,这两种接口是有差别的。如果透明FAPI消息包含用于指定消息的有效负载部分的指针选项,则通过nFAPI携带的FAPI消息不应使用指针选项。

4.2.2 Extraction of FAPI Messages From an nFAPI Message

在nFAPI协议中,需要对透明FAPI消息进行格式化,以便只需复制消息位即可从nFAPI消息中提取FAPI消息,如下图展示了一个nFAPI PDU中承载2个FAPI消息的情形。


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

本文网址:​​​​​​​https://mp.csdn.net/mp_blog/creation/editor/117590399

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

FAPI专题-3:5G nFAPI接口 - 中文规范-3- 协议栈、消息格式 的相关文章

随机推荐

  • 虚拟化原理以及应用(10)课堂笔记-第四章-开启第一台虚拟机

    第四章 开启第一台虚拟机 qemu kvm yum y install qemu kvm qemu kvm tools 一 使用基础管理工具qemu kvm创建第一台客户机 1 安装qemu kvm的工具包 yum y install qe
  • Android性能优化之卡顿优化

    一 什么是卡顿 APP使用起来卡顿 主要是用户在使用APP时的感知 主要表现在APP页面的刷新 滑动时的流畅度 例如用户在某个页面滑动时有明显卡住的现象就是卡顿了 开发中有一个16ms原则 即你的APP在16ms内没有更新完界面 用户就会有
  • eclipse 工具 在线插件安装,卸载,更新

    eclipse 在线安装 卸载更新插件 前言 一 安装插件 1 1 手动安装 eclipse sts3 spring tools suite 1 2 eclipse marketplace 安装 sts 4 二 卸载插件 以卸载 手动安装的
  • 用VS Code创建ASP.NET Core Razor Pages Web 应用:RpMoviesDemo。(DB First,连接MySql数据库)

    目录 一 使用Mac OS终端创建一个 Net Core Razor Pages Web 应用 二 使用VS Code的NuGet Package Manager GUI插件添加相关的NuGet程序集 三 在MySql数据库中创建Movie
  • vscode-verilog-testbench插件Linux-Ubuntu使用

    问题描述 在使用vscode编辑verilog时 有一些拓展需要我们去配置 其中比较复杂的是在linux环境下去配置verilog testbench 解决方案 首先先确认安装了python 其次需要把python指向为python3 具体
  • 宽带共享上网常见经典的问题

    1 共享宽带可以做什么 有什么好处 现在很多地方都开通了宽带网络 和过去的普通MODEM拨号上网相比 网络速度大大提高 而浏览网页 上网聊天这些一般的应用需要的网络带宽并不高 如果只是让一台计算机使用一条宽带连接 绝大部分网络带宽都被白白浪
  • HUAWEI CLOUD Stack 私有云解决方案(HCS)

    HUAWEI CLOUD Stack 私有云解决 HCS 注明 本文介绍的版本为HUAWEI CLOUD Stack 6 5 也叫华为云Stack或HCS 在华为6 5版本以前的名字是FusionCloud 6 3 最近更新的8 0版本不会
  • c语言软件放c盘还是d盘,一般软件应当安装到C盘还是D盘?

    软件安装始终会试占用空间越来越大 1 大多数软件运行时都会产生临时文件 日志文件等 长期使用后会使磁盘空间变小 2 另外机器上将会安装多少软件 其实你自己也不清楚 在使用一段时间后 你会时不时的安装些新软件 这样动态的增加软件数量 也会逐渐
  • 将dataframe里的两列元素一个作为key一个作为value转换成字典

    前面转发别人的内容 df 为dataframe对象 包含 word count 两列数据 方法一 result dic df groupby word count apply list to dict 对于同一个key对应多个value 则
  • Python的多进程实现

    原文链接 https www liaoxuefeng com wiki 1016959663602400 1017628290184064 要让Python程序实现多进程 multiprocessing 我们先了解操作系统的相关知识 Uni
  • medium_socnet靶机打靶过程和思考

    0x0内容简介 这是一个中等难度的靶机 比较的综合 因为其内部还有几个docker虚拟机 从而可以对内网部分有初步的涉及 比如内网信息收集 内网穿透 简单的横向移动等等 建议使用VirtualBox打开靶机 如果使用vm打开 会有无法预料的
  • 从C#中的ArrayList和List的区别说起

    引擎 Unity5 5 1 IDE VS2015 最近公司招人 自己整理了一套试题 题里设了几个坑 因为是招初级程序 关于ArrayList和List的区别的这道题 基本都翻了 原因很简单 这道题在所有网上能找到的Unity程序面试题中都有
  • ValueError: ('No requirements found', '# Horizon Core Requirements')的调试解决方法

    我在一台不能访问外网的CentOS6上从源码安装Openstack horizon grizzly版本的时候 碰到了如下的错误 root xxx horizon python setup py install running install
  • JS局部坐标和全局坐标的转换

    properties player cc Node background cc Node 将点击的点touchPoint 转化为player的父对象的相对节点 可以用来比较player坐标和点击坐标的相对位置 世界坐标 转化为 相对坐标 t
  • 小程序的数据接口

    微信小程序的数据请求 常用的数据请求方式 JS原生实现 第一种 let xhr new XMLHttpRequest xhr open xhr send 第二种 fetch 支持promise fetch 接口地址 then functio
  • 进制转化(c 语言实现)

    部分进制转化 c 语言实现 文章目录 二进制转化为其他进制数 十进制数转化为二进制数 一 二进制转化为其他进制数 因为我们要将二进制数转化为其他进制数 所以第一步就是要确保输入的值为二进制数 主要 是判断每一位数 要不是 1 要不是 0就可
  • Python数据分析与挖掘——交叉验证法

    交叉验证 Cross Validation 简写为CV 主要用于建模应用中 例如PCR 主成分回归 PLS 偏最小二乘 回归建模中 交叉验证是在机器学习建立模型和验证模型参数时常用的办法 交叉验证 顾名思义 就是重复的使用数据 把得到的样本
  • Java BeanUtils对象复制工具类及方法

    1 BeanUtils copyProperties Object source Object target 用法 讲source的属性值复制到target 属性为null时也会进行复制 需求 排除null值进行复制 public clas
  • Linux基本命令(三) 权限管理命令

    权限管理命令 chown 命令名称 chown 命令英文原意 change file ownership 命令所在路径 bin chown 执行权限 所有用户 语法 chown 用户 文件或目录 功能描述 改变文件或目录的所有者 范例 ch
  • FAPI专题-3:5G nFAPI接口 - 中文规范-3- 协议栈、消息格式

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https mp csdn net mp blog creation editor 117590399 目录 第2章 nFAPI接口详解 2