目录
1. Message Type #0 : IQ Data
1.1帧格式
1.2消息序列图
2.Message Type #1 : Bit Sequence
2.1帧格式
2.2消息序列图
3.Message Type #2 : Real-Time Control Data
3.1帧格式
3.2消息序列图
4.Message Type #3 : Generic Data Transfer
4.1帧格式
4.2消息序列图
5.Message Type #4 :Remote Memory Access
5.1帧格式
5.2消息序列图
6.Message Type #5 :One-Way Delay Measurement
6.1帧格式
6.2消息序列图
eCPRI支持下表中列出的消息类型。 这些类型的使用是可选的。 消息类型#8 - #11用于IWF类型1<--->IWF类型2通信。
Type #0 : IQ Data(IQ采样数据)
该消息类型用于在eCPRI节点(eREC和eRE)之间分割的PHY处理元素之间传输时域或频域IQ样本。
Common header + PC_ID + SEQ_ID + IQ_DATA
PC_ID :
SEQ_ID:
IQ samples of user data:
一个PC_ID对应多个SEQ_ID,而SEQ_ID一般采用累加数。
如上图中,PC_ID = a ,SEQ_ID = 0 ,1,2 .... N-1
Type #1 : Bit Sequence (bit序列)
该消息类型用于在eCPRI节点(eREC和eRE)之间分割的PHY处理元素之间以位序列的形式传输用户数据。
PC_ID :
SEQ_ID :
Bit Sequence of User Data :
(与type0:IQ DATA类似)
Type #2 : Real-Time Control Data(实时控制数据)
此消息类型用于在eCPRI节点(eREC和eRE)之间分割的PHY处理元素之间传输特定于供应商的实时控制消息。这种消息类型解决了eCPRI节点之间需要交换与用户数据相关联的不同类型的控制信息(以IQ样本、位序列等的形式)的需要,用于实时控制/配置/测量。然而,这种类型的信息很大程度上依赖于所选功能分割和这些肝功能的实体实现。因此,只定义了实时控制数据的消息类型,而没有定义数据格式。
RTC_ID :
SEQ_ID :
Real-Time Control Data :
在这个示例中,实时控制消息在相关的用户数据消息(以IQ数据或位序列的形式)之前或之后被传输。
Type #3 : Generic Data Transfer(通用数据传输)
此消息类型用于在eCPRI节点(eREC和26eRE)之间传输用户平面数据或相关控制,为通用数据传输提供扩展的数据同步支持。
PC_ID :
SEQ_ID:
Data transferred:
下面例子中, Generic Data Transfer用于传输用户数据:
Type #4 : Remote Memory Access(远端内存访问)
消息类型“远端内存访问”允许从/到对端的eCPRI节点上的特定内存地址进行读取或写。服务是对称的,即接口的任何“边”都可以启动服务。
该服务以一种通用的方式构思,以处理不同类型的写和读取访问,这些访问依赖于在特定实现中使用的硬件。将写/读请求映射到其硬件实现的驱动程序例程。读或写请求/响应序列是一个原子过程,即请求者在向同一接收者发送新的请求之前,需要等待来自接收者的响应。还定义了一个没有响应的写请求,此过程是一个单消息过程。
Remote Memory Access ID :
当接收到响应时,请求的启动器使用Remote Memory Access ID来区分不同的访问。
Read/Write & Request/Response:
该字段包括两部分,即读取或写指示和请求或响应指示。
读/写编码格式如下:
Read/Write coding |
Request/Response coding |
||
Value |
Read/write |
Value |
Request/Response |
0000b |
Read |
0000b |
Request |
0001b |
Write |
0001b |
Response |
0010b |
Write no resp |
0010b |
Faliure |
0011b - 1111b |
Reserved |
0011b - 1111b |
Reserved |
注:当请求的接收器由于接收到的参数中的无效内容或其他错误的内容而无法执行读/写请求时,使用响应值0010b(失败)。 |
Element ID :
根据实现,可以使用Element ID 来指出通用硬件功能的特定实体。
Address:
该地址是一个48位的值。诸如对端节点上的存储器是否被组织在一个或多个存储器bank中,或者地址偏移是否通过接口发出信号等细节。是厂商自定义的。Element ID 可用于标识特定的内存硬件实体。
Length:
对于请求,2字节length字段包含要写入或从特定地址读取的字节数。对于响应,2字节长度字段包含已写入或1个读取的实际字节数。如果由于某种原因,无法读取或写出完整长度的数据,这将通过长度字段中的差异检测到。
Data:
Data紧跟在length字段之后,表示要写入的数据或读出的数据。
一个ecpri节点可以在任何时候启动对另一个节点的远程内存访问。根据是请求还是响应,以及是读还是写,将根据下表复制或设置不同的字段。
操作顺序如下图:
其实很简单,就是根据读写描述符确定做什么事情,如果是读,就给出读地址和长度,然后对端返回读响应(含数据)。
Type #5 : One-Way Delay Measurement(单向时延测量)
消息类型“单向延迟测量”用于估计一个方向上两个ecpri端口之间的单向延迟。消息的发送方将采样本地时间(t1),并包含一个补偿值(tcv1),并将其发送给接收方。当消息到达(t2)时,接收方将对消息进行时间标记,并将其与内部补偿值(tcv2)一起发送给发送方。单向延迟测量可以在没有或有Follow_Up消息的情况下执行(1-Step 、 2-Step版本)。使用哪个版本是供应商决定的。
计算公式:
tD = (t2 – tcv2) – (t1 + tcv1)
有了这两个补偿值,一个特定的实现就可以设置适合于特定实现的测量值的参考点。参考点的确切位置是供应商特定的。示例:根据IEEE802.3-2015中的第90条进行时间采样,在这种情况下,时间采样为MAC层和PHY层之间。该服务假设两个节点的时间都同步到一个公共时间,且对于eCPRI服务的精度足够。使用eCPRI消息类型“单向延迟测量”,涉及哪个节点启动传输、测量频率、响应期限等都是厂商自定义的。
Measurement ID:
测量ID是请求的发送方在收到响应时使用的1字节值,以区分不同的测量值,即请求的接收方应将请求中的ID复制到响应消息中。
Action Type:
Action type |
Descrpition |
0x00 |
Request |
0x01 |
Request with follow_up |
0x02 |
Response |
0x03 |
Reote request |
0x04 |
Remote Request with follow_up |
0x05 |
Follow_up |
0x0 ... 0xFF |
Reserved |
当eCPRI节点从自己的节点到另一个节点的方向启动单向延迟测量时,使用值0x00和0x01。当eCPRI节点需要知道从另一个节点到其自身的单向延迟时,将使用值0x03和0x04。用法见第后文。
TimeStamp:
当消息中的操作类型设置为0x00(请求)时,该字段将包含时间戳t1和当操作类型设置为0x02(响应)时,将包含时间戳t2。当操作类型设置为0x01 (使用Follow_Up进行请求)时,时间戳信息字段应全部设置为0b,并在Follow_Up消息中发送相应的时间信息值。当操作类型设置为0x03或0x04(远程请求和使用Follow_Up的远程请求)时,所有位的时间戳信息字段应设置为0b。当使用Follow_Up消息(2步版本)时,Follow_Up消息(操作类型设置为 0x05)的时间信息值t1和tcv1将被设置为时间戳字段。时间信息值遵循IEEE1588-2008第5.3.3条中规定的格式。该值由两个部分组成,一个“秒”部分和一个“纳秒”部分。前6个字节是秒,后4个字节是纳秒。
Compensation value:
补偿值。当消息中的操作类型设置为0x00(请求)、0x02(响应)或0x05(Follow_Up)时,此字段将包含“补偿值”,即以纳秒测量的补偿时间,乘以216,并遵循IEEE1588-2008条款13.3中指定的通用消息头中校正字段的格式。当“操作类型”设置为0x03 (远程请求)或0x04(带Follow_Up的远程请求)时,时间信息字段“时间戳”和“补偿值”均设置为0b。补偿值为0是一个有效值。例如:补偿值为183.5ns表示为0000000000B7800016。
Dummy bytes:
包含在eCPRI有效负载中的虚拟字节数将由eCPRI公共报头中的eCPRI有效载荷大小字段定义,由于网络特性,小消息通过网络的时间可能比大的时间短,虚拟字节可以改进单向延迟估计。只有当操作类型设置为0x00(请求)或0x01 (使用Follow_Up的请求)时,才需要插入虚拟字节。
下图1中所示的消息序列图分为两部分:第一部分显示了节点1在节点1到节点2的方向上启动延迟测量时的序列。第二部分显示了节点1在节点2到节点1的方向上启动延迟测量时的顺序。eCPRI节点可以通过将操作类型设置为0x00 (请求)、0x01(带Follow_Up的请求)0x03(远程请求)或0x04(带24Follow_Up的远程请求)来随时发起单向延迟测量。在请求中收到的测量ID应被复制到响应中。图2显示了与图1相同的序列,但使用了Follow_Up消息。