Section Type 5 主要用于传输UE调度信息。当为各UE-ID提供调度信息时,使用Section Type 5。
黄色部分表示传输Header,占8字节。
粉色部分是Application Header,占6字节。
白色部分是section的特定信息,在section type 5中包括了udCompHdr。
其他颜色表示不同的section。
Section Type 5包含以下字段:(Section Type 5用于UE调度信息。)
- Common Header Fields
- dataDirection (data direction (gNB Tx/Rx)) field: 1 bit
- payloadVersion (payload version) field: 3 bits
- value = “1” shall be set (1st protocol version for payload and time reference format)
- filterIndex (filter index) field: 4 bits
- frameId (frame identifier) field: 8 bits
- subframeId (subframe identifier) field: 4 bits
- slotId (slot identifier) field: 6 bits
- startSymbolid (start symbol id) field: 6 bits
- numberOfsections (number of sections) field: 8 bits
- sectionType (Section Type) field: 8 bits
- value = “5” shall be set
- udCompHdr (user data compression header) field: 8 bits
- reserved (reserved for future use) field: 8 bits
- Section Fields
- sectionId (section identifier) field: 12 bits
- rb (resource block identifier) field: 1 bit
- symInc (symbol number increment command) field: 1 bit
- startPrbc (starting PRB of data section description) field: 10 bits
- numPrbc (number of contiguous PRBs per data section description) field: 8 bits
- reMask (resource element mask) field: 12 bits
- numSymbol (number of symbols) field: 4 bits
- ef (extension flag) field: 1 bit
- ueId (UE identifier) field: 15 bits
传输Header部分的介绍,参考传输封装章节。
1)dataDirection (data direction (gNB Tx/Rx)) field: 1 bit
指示gNB的数据传输方向。
0b:Rx,即UL。
1b:Tx,即DL。
2)payloadVersion (payload version) field: 3 bits
定义了用于应用层中以下字段的有效的payload协议版本。在本文档中,使用payload和时间参考格式的第一个协议版本。因此,应使用 payloadVersion = 001b。
3)filterIndex (filter index) field: 4 bits
定义DL和UL中,在IQ数据和空口之间使用的信道滤波器的一个索引。对于大多数物理信道,使用 filterIndex = 0000b,以索引标准信道滤波器,即用于100MHz标称载波带宽的100MHz信道滤波器。
另一种情况是UL中的PRACH,不同的PRACH格式可以使用不同的滤波器索引。假设在对PRACH数据进行FFT处理之前,有一个单独的PRACH滤波器,或在UL标准信道滤波器外,还有一个额外的PRACH滤波器。注:对于PRACH,当使用Section Type 3时,通常在PRACH滤波器之前应用一个频偏,(见Section Type 3中的freqOffset字段)。
NOTE 1: 滤波器索引是从O-DU到O-RU的指令。同样,不强制要求使用特定的滤波器,filterIndex = 0000b也允许用于PRACH。
NOTE 2: 当使用对应于PRACH的滤波器索引时,section Id内寻址的第一个PRB的第一个RE应与3GPP RAN1 TS 3x.211中规定的PRACH频率块下边缘使用的第一个保护tone相对应。在一个数据section分割为多个U平面消息的情况下,这适用于分割后的第一个section。
NOTE 3: 由于不同的PRACH格式被分配给相同的filterIndex值,例如LTE-0和NR-0都使用 filterIndex = 0001b,O-RU可以选择性地由M平面通知特定的支持格式(分组为PRACH格式组),M平面在每个端点的o-ran-uplane-conf.yang模块中配置。
filterIndex字段的值 | 用法 | PRACH前导码格式 | 最小滤波器通带 |
0000b=0x0 | 标准信道滤波器 | N/A | |
0001b=0x1 | 用于PRACH前导码格式的UL滤波器 | LTE-0,LTE-1,LTE-2,LTE-3, NR-0,NR-1,NR-2 | 839 x 1.25kHz = 1048.75 kHz |
0010b=0x2 | NR-3 | 839 x 5 kHz = 4195 kHz | |
0011b=0x3 | NR-A1,NR-A2,NR-A3, NR-B1,NR-B2,NR-B3,NR-B4, NR-C0,NR-C2 | 139 x | |
0110b=0x6 | 1151 x 15 kHz = 17265 kHz | ||
0111b=0x7 | 571 x 30 kHz = 17130 kHz | ||
0100b=0x4 | 用于NPRACH的UL滤波器 | LTE-NB0,LTE-NB1, LTE-NB0-a,LTE-NB1-a, LTE-NB2 | 48 x 3.75kHz = 180 kHz 144 x 1.25 kHz = 180 kHz |
0101b=0x5 | 用于PRACH前导码格式的UL滤波器 | LTE-4 | 139 x 7.5kHz = 1042.5 kHz |
1000b…1111b | Reserved |
4)frameId (frame identifier) field: 8 bits
ORAN协议中的系统帧号,每个系统帧时长为10ms,frameId取值范围0~255,即每2.56秒一个周期。由于网络协议中系统帧号的循环周期通常大于256,例如0~4095,或0~1023,因此 frameId = 系统帧号 % 256。
5)subframeId (subframe identifier) field: 4 bits
在一个10ms系统帧内的子帧号,每个子帧时长1ms,subframeId取值范围0~9。
6)slotId (slot identifier) field: 6 bits
在一个1ms子帧内的slot号,此参数为一个子帧内的所有slot计数,slotId取值范围0~-1。在本文档中,
的最大值是16,即子载波间隔240kHz。
在LTE协议中,虽然一个子帧有2个slot,每个slot有7个symbol,但是在实际使用中,可以认为slotId始终为0,symbol编号0~13。
7)startSymbolid (start symbol id) field: 6 bits
指示此C平面消息在一个slot内作用的最早symbol号,startSymbolid取值范围0~13。
在LTE协议中,虽然symbol编号为0~6,但是在实际使用中,可以以子帧为单位对symbol编号,范围0~13。
8)numberOfsections (number of sections) field: 8 bits
指示此C平面消息中包括的数据section描述的数量。即使相同的sectionId被多次使用(通常用于PDSCH数据和参考信号,如CSI-RS,共用PRB的情况),统计section描述的数量时也要分开计算。
9)sectionType (Section Type) field: 8 bits
此参数确定从具有一个pattern id的beam传输或接收的U平面数据的特性。对于Section Type 5,sectionType = 0x00000101b。
10)udCompHdr (user data compression header) field: 8 bits
在U平面中,同样提供udCompHdr字段,用来说明O-RU(在DL方向)和O-DU(在UL方向)如何对接收到的U平面数据进行解释和解压缩。
然而O-RU不应由自己来决定最佳的UL数据格式和数据压缩方法,因此O-DU通过C平面中的udCompHdr字段来告知O-RU,在UL传输时应使用哪种数据格式和压缩方法。
因此,C平面消息中的udCompHdr,仅当 dataDirection = 0b,即作用于UL U平面数据时有意义。当 dataDirection = 1b,即作用于DL U平面数据时,udCompHdr字段应该被设置为0x00,并且接收C平面消息的O-RU应在 dataDirection = 1b 时忽略接收到的udCompHdr字段的值。
当使用静态数据格式和压缩方法时,在任何C平面消息中都不需要udCompHdr,应设置为0x00,并且接收C平面消息的O-RU应忽略接收到的udCompHdr字段的值。
注:不允许为同一数据section指定不同的udCompHdr值,即使由单独的C平面消息发送,并通过不同reMask值区分的section,也要保证udCompHdr的值相同。即,对于不同的C平面消息,只要sectionId相同,就必须保证udCompHdr相同。每个section中udCompHdr值的唯一性,保证了每个数据section仅支持一种压缩方法。如果C平面消息中为一个数据section配置了多个udCompHdr值,则O-RU的响应是未定义的。
关于udCompHdr的详细介绍,参考U平面协议部分。
11)sectionId (section identifier) field: 12 bits
注:以下描述中提到的“C平面数据section描述”,指的是C平面消息体部分。
如果使用通过sectionId来耦合C平面和U平面的方法,则此参数标识了由C平面消息内数据section所描述的单独的数据section。即通过sectionId建立C平面和U平面的对应关系。sectionId的目的是将U平面数据section映射到与数据关联的相应C平面消息(和Section类型)。
可以使用两个或多个具有相同sectionId的C平面数据section描述,对应于单一的U平面数据section。简单来说,每个C平面数据section描述指导一部分U平面中的payload,所以,多个C平面数据section描述指导了多个U平面中的payload,而这些payload可以合并在一个U平面数据section中传输。例如,CSI-RS和PDSCH混合的情况,CSI-RS和PDSCH可以使用相同的sectionId,并作为两个C平面数据section描述传输,通过reMask区分频域资源,通过beamId区分预编码时使用的预编码矩阵。但是CSI-RS和PDSCH的IQ数据可以合并到一个U平面数据section中传输。即,当reMask的使用是互补的(或正交的),并且RE使用不同的波束方向(即beamId)时适用。
数据section特定于eAxC值,因此不同的eAxC值可能具有不同定义的数据section,例如,其中包含不同范围的PRB。
NOTES:
- sectionId是特定于slot的,所以sectionId值可能在每个slot中重用,并且一个slot的sectionId值与另一个不同slot的sectionId值没有特定关系。
- 具有相同sectionId的所有section描述中,rb,startPrbc,numPrbc,udCompHdr和numSymbol字段应具有相同的值。
- 对于DL和UL,每个symbol和每个slot,每个eAxC或每组eAxC,可寻址的最大section ID数的上限应分别通过M平面消息传递,作为O-RU能力描述的一部分。
- C平面消息中使用的sectionId的值应与给定数据section相对应的U平面消息中的sectionId的值相同,数据section由frameId,subframeId、slotId、startSymbolid字段和相关PRB的范围所定义,PRB范围由startPrbc/startPrbu和numPrbc/numPrbu字段的共同指示。即对于特定的frame,subframe,slot和symbol,C平面消息中使用的sectionId和U平面消息中使用的sectionId应该相同。
如果未使用通过sectionId来耦合C平面和U平面的方法,则sectionId值不用于识别U平面消息中的数据section,也不用于识别C平面消息中的数据section描述。
在这种情况下,上面所述的slot内sectionId值的唯一性规则,以及对rb,startPrbc,numPrbc,udCompHdr和numSymbol字段中内容的限制都不适用。就是说,在这种情况下,一个slot内允许存在相同的sectionId,且在sectionId相同的两个或多个C平面数据section描述中,rb,startPrbc,numPrbc,udCompHdr和numSymbol字段的值可能不相等。
发送方应配置sectionId = 4095。
唯一的例外是“通过带优先级的频率与时间进行耦合(优化版)”,其中仍然使用唯一的sectionId值来标识C平面消息中最高优先级的数据section描述。在这种情况下,相对应的U平面消息仍然使用sectionId = 4095。
12)rb (resource block identifier) field: 1 bit
指示使用每个RB,或者间隔使用每个RB。起始RB由startPrbc定义,使用的RB总数由numPrbc定义。
例如:rb = 1,startPrbc = 1,numPrbc = 3,则使用的PRB为1,3,5。如果numPrbc = 0,即所有PRB,则发送方应设置rb的值为0,且接收方应忽略接收到的rb值,无论接收到的rb值是什么,都假设rb = 0。
如果section描述中包括了section扩展6或12,则发送方应设置rb = 0。
0b:使用每个RB
1b:间隔使用每个RB
13)symInc (symbol number increment command) field: 1 bit
如果section描述中不包括section扩展6,12和19,则此参数用于指示哪个symbol编号与给定的section描述相关。如果section描述中包括section扩展6,12和19,则与section描述相关symbol集合在symbolMask中给出。在这种情况下,symInc和numSymbol不影响与section描述相关symbol集合,但是如果不包括section扩展6,12和19,symInc和numSymbol可能会影响以下section描述。
无论section扩展6,12和19是否存在,预计每个C平面消息都会维护一个symbol编号,并从startSymbolid的值开始。只要symInc为零,消息中的每个section都会使用相同的startSymbolid值。当symInc是1时,维护的symbol编号应被增加到下一个symbol,并且该section和后续的每个section都将使用新的symbol编号,直到再次检测到symbol bit值为1。
在多symbol数据section(numSymbol > 1)的情况下,新symbol编号应该是数据section中最后一个symbol之后的一个。以这种方式,可以由单一的C平面消息处理多个symbol。
关于在C平面中使用symInc的其他几点:
a) 当不同的数据section描述在某些条件下具有不同数量的symbol时,可以使用symInc,也就是说,在C平面消息中精心安排了数据section描述。数据section描述的安排应确保O-RU应用以下过程后可以正确工作:
symbol[s] - 按section描述寻址的symbol,s=1…N (考虑一个C平面消息中的多个section描述,s=1指示第一个section描述),symbol[s]应按以下方式计算:
令symInc[s]和numSymbols[s]是section描述s中相应字段的值
简单起见,令symbol[0] = startSymbolId,symInc[0]=0,numSymbols[0]=1
for s=1…N (遍历C平面消息中所有section描述)
// 如果symInc[s]为0,表示当前section描述中的symbol与前一个section描述中的symbol相同
If symInc[s] = 0 then symbol[s] = symbol[s-1]
// 如果symInc[s]为1,表示当前section描述中的symbol增加到前一个section描述中最后一个symbol的下一个symbol
Else symbol[s] = symbol[s-1] + numSymbols[s-1]
b)symInc特定于数据section描述,而且,如果不存在section扩展6,12和19,symInc影响section描述中所描述的symbol范围。当使用通过sectionId来耦合C平面和U平面的方法,并且一个数据section(U平面)被多个数据section描述(C平面)指示时,例如,多个数据section描述具有不同的reMask值。如果symInc的值将被设置为1,则只有sectionId的第一个调用具有symInc = 1,在相同的C平面消息中,该sectionId的所有其他调用都是symInc = 0。就是说在sectionId第一次出现时,通过symInc = 1改变symbol索引,后续再次出现sectionId时,只需要保持改变后的symbol索引,而不应该再次改变symbol索引,所以设置symInc = 0。
这确保了可以应用上述规则(仅在相同的C平面消息中),同时确保数据section描述的所有调用都将指示相同的symbol。相同sectionId的所有数据section描述中,都指示相同的symbol,无论section描述是在同一个C平面消息中,还是在单独的C平面消息中,都应该满足。
在U平面中使用symInc与在C平面中使用symInc无关。当前的观点是,U平面消息包含单个symbol的数据(以避免降低U平面的延迟性能),所以,到本文件为止,禁止在U平面中使用symInc = 1。未来版本可能允许在U平面中使用symInc = 1,以允许在单个U平面消息中包含多个symbol的数据。
0b:使用当前symbol编号
1b:增加当前symbol编号,并使用
14)startPrbc (starting PRB of data section description) field: 10 bits、
在section描述中没有section扩展6,12和13的情况下,startPrbc参数传递section描述中所描述的第一个(最低频率)PRB。startPrbc的解释受section扩展6,12和13存在的影响,详见section扩展6,12和13对应章节部分。
section描述应没有歧义的寻址RE:由一个section描述寻址的RE,不应被其他section描述寻址,但是在C平面和U平面耦合方式为“通过带优先级的频率和时间耦合” 时,存在例外,此时可以通过不同优先级来解决歧义,详见介绍C平面和U平面耦合的章节。如果使用sectionId值来耦合C平面和U平面,由一个section描述寻址的PRB不应被具有不同sectionId值的另一个section描述寻址。
NOTE: freqOffset影响特定范围PRB编号的频率跨度。因此,“应没有歧义的寻址RE”应该考虑freqOffset的值。
由startPrbc标识的PRB中,对应于RE#k(k=0…11)的子载波的中心频率(以Hz为单位)定义为:
= center_of_channel_bandwidth + frequency_offset + startPrbc * 12 * Δf + k * Δf + dc_skip
其中
center_of_channel_bandwidth在M平面中配置,以Hz为单位。
如果C平面消息中存在freqOffset,frequency_offset从freqOffset字段计算得到。否则,从M平面参数offset-to-absolute-frequency-center计算得到,在这种情况下,frequency_offset = offset-to-absolute-frequency-center * Δf * 0.5,其中Δf是对应于子载波间隔的频率,以Hz为单位(15kHz,30kHz,...),由M平面配置。
如果消息中存在frameStructure,Δf是对应于frameStructure中配置的子载波间隔的频率,以Hz为单位。否则,Δf对应于M平面中配置的子载波间隔的频率。
dc_skip取决于载波类型:
如果载波是LTE DL类型,并且frequency_offset + startPrbc * 12 * Δf + k * Δf ≥ 0,则 dc_skip = Δf
否则 dc_skip = 0.
上述公式旨在使资源格在频率上的位置与3GPP的要求兼容,在38.104(NR)和36.104(LTE)中定义。
15)numPrbc (number of contiguous PRBs per data section description) field: 8 bits
如果section描述中不包括section扩展6,12,13和21,并且没有M平面配置ci-prb-group-size,则numPrbc参数表示section描述中所述的PRB数量。如果存在section扩展6,12,13和21,或存在M平面配置ci-prb-group-size,会影响numPrbc参数的解释,详见section扩展6,12,13和21对应章节部分。存在M平面配置ci-prb-group-size,仅影响Section Type 6中numPrbc参数的解释。
section描述应没有歧义的寻址RE:由一个section描述寻址的RE,不应被其他section描述寻址,但是在C平面和U平面耦合方式为“通过带优先级的频率和时间耦合” 时,存在例外,此时可以通过不同优先级来解决歧义,详见介绍C平面和U平面耦合的章节。如果使用sectionId值来耦合C平面和U平面,由一个section描述寻址的PRB不应被具有不同sectionId值的另一个section描述寻址。
00000000b:表示特定SCS和载波带宽中的所有PRB。
00000000b是为NR保留的,在NR中可能存在PRB数大于255的情况。在这种情况下,发送方应设置startPrbc的值为0,并且无论接收到什么startPrbc值,接收方都应忽略,并假定startPrbc = 0。而对于所有其他i情况,numPrbc都应该使用非0值。
更具体地,如果需要发送的PRB数量大于255,但不是特定SCS和载波带宽中的所有PRB,则应使用多个C平面数据section描述,分别描述不同的PRB范围,以此来实现PRB数量大于255。
对于一个给定的eAxC值,一个数据section内可能仅存在一个PRB。
16)reMask (resource element mask) field: 12 bits
此参数定义一个PRB内的RE mask。reMask中每个bit指示此section的控制是否适用于U平面中发送的相应RE,0表示不适用,1表示适用。MSB指示一个PRB中最低频率的RE。这里需要注意,最高位表示RE0,最低位表示RE11。
注:一个PRB内的不同RE可以被不同的数据section描述指示。如果使用通过sectionId耦合C平面和U平面,则这仅限于具有相同sectionId但reMask不同的数据section描述。如果使用与sectionId无关的C平面和U平面耦合方式,则指示PRB中不同REs的数据section描述应具有不同的reMask值,但与sectionId无关。此外,如果使用的C平面和U平面的耦合方式为带优先级的频率和时间耦合,一个PRB内的一个RE可以被多个数据section描述指示(即多个section描述中的reMask存在重叠的bit位),但是只有最高优先级数据section描述中的配置才适用。
在一个PRB中可以应用的不同reMask的最大数量是O-RU特性,由O-RU通过M平面传递到O-DU。如果一个PRB中的某些RE没有被任何reMask包含,同时其他RE被包含在reMask中,则未被包含的RE应在U平面中设置为0,并且没有beamforming ID或其他处理应用到这些RE。在数据section中,RE不能被指示多次。
0表示bit位对应的RE无效,1表示bit位对应的RE有效。注意:MSB表示RE0。
17)numSymbol (number of symbols) field: 4 bits
如果section描述中没有section扩展6,12,19,此参数定义了section控制适用的symbol数量,或在PRACH情况下,适用的PRACH重复(preamble)的数量。section控制应被应用于至少1个symbol。然而,可能的优化允许section控制被应用于多个symbol,最多14个,例如,所有14个symbol使用相同的beamId。
如果section描述中具有section扩展6,12,19,则section描述指示的symbol集合通过symbolBitmask字段传送,numSymbol参数不反映section描述指示的symbol数。在这种情况下,numSymbol的值可以是0个或非0个symbol,因为当后续的section描述中不包含section扩展6,12,19,并且symInc标志设置为1时,numSymbol的值会影响这些section描述中所指示的symbol集合。
18)ef (extension flag) field: 1 bit
用于指示消息中的section是否包含section扩展。
0:没有section扩展
1:此section中包含一个或多个section扩展
19)ueId (UE identifier) field: 15 bits
为UE提供一个标签,表明将section内容应用到该UE。用于支持从O-DU向O-RU发送信道信息。
这只是一个标签,具体值对于系统内可能支持的UE类型没有任何意义。
在实际应用中,可以使用Section Type 6从O-DU向O-RU传输UE特定的信道信息,并构建一张多个UE的信道信息表。然后使用Section Type5中携带的ueId,从信道信息表中选取所需要的信息。
参考 《O-RAN-WG4.CUS.0-v08.00.pdf》