5GNR RLC

2020-04-18  本文已影响0人  自信的马甲

1 RLC概述

1.1 架构

RLC PDU分为:

如上图所示:RLC实体通过一个RLC channel从上层接收RLC SDU,然后组成RLC data PDU,通过逻辑信道发给下层。RLC实体有三种模式:

每个模式都可以进行数据的收发,在TM和UM模式,分别用不同的实体进行发送和接收,但是在AM模式使用相同的实体进行数据的收发。

每个逻辑信道都有指定的RLC模式:

1.2 功能

2 PDU格式和参数

2.1 TMD PDU

TMD PDU只有数据部分,没有任何的RLC头域。

2.2 UMD PDU

UMD PDU由UMD数据域和UMD头域组成,UMD头域是按字节对齐。

当UMD PDU由一个完整的RLC SDU组成,则UMD头域仅包含SI和R域。UM RLC实体是有RRC配置6bit SN或者12bit SN,只有对应的RLC SDU是分段的时候,UMD PDU头域才包含SN域。传输RLC SDU第一个分段的UMD PDU头域中不包含SO字段,SO字段的长度是16bit。

2.3 AMD PDU

AMD PDU由AMD数据域和AMD头域组成,AMD头域是按字节对齐。

RRC配置AM RLC实体为12bit SN或者18bit SN,AMD PDU头域的长度分别为2字节和3字节。

AMD PDU头域包括一个D/C字段,一个P字段,一个SI字段和一个SN字段。只有当AMD PDU的数据是由分段组成,且不是第一个分段时头域中才包含SO字段,这个字段占16bit。

2.4 STATUS PDU

STATUS PDU是由STATUS PDU payload和RLC控制PDU头组成。

RLC控制PDU头由D/C和CPT字段组成。

STATUS PDU payload从RLC控制PDU头后面第一个bit开始,由一个ACK_SN和一个E1字段,0个或者多个NACK_SN,一个E1/E2/E3字段,可能包含一对SOstart和SOend字段或者为每一个NACK_SN的一个NACK字段组成。

2.5 参数

SN:对于AMD PDU为12bits或者18bits,对于UMD PDU为6bits或12bits。表示对应RLC SDU的序列号,对于RLC AM其值对每一个RLC SDU进行加1,对于RLC UM其值对于每一个RLC SDU分段进行加1。

SI:2bits,用于指示RLC SDU是否是完整的RLC SDU或者RLC SDU的第一,中间,最后一个分段。

Value Description
00 Data field contains all bytes of an RLC SDU
01 Data field contains the first segment of an RLC SDU
10 Data field contains the last segment of an RLC SDU
11 Data field contains neither the first nor last segment of an RLC SDU

SO:16bits,表示在最初的RLC SDU中RLC SDU分段的位置,以字节为单位。具体地,SO表示初始RLC SDU的位置,对应着数据字段的RLC SDU分段的第一个字节。初始RLC SDU的第一个字节被SO字段值"0000000000000000"引用,编号从0开始。

D/C:1bit,表示RLC SDU是RLC数据PDU或者控制PDU:

Value Description
0 Control PDU
1 Data PDU

P:1bit,表示发送端的AM RLC实体是否从他的对端AM RLC实体请求状态报告。

Value Description
0 Status report not requested
1 Status report is requested

R:1bit,R15版本中为保留位,发送端把这个字段设置成0,接收端忽略这个字段。

CPT:3bits,表示RLC控制PDU的类型:

Value Description
000 STATUS PDU
001- Reserved(PDUs with this coding will be discarded by the receiving entity for this release of the protocol)

ACK_SN:12bits或者18bits,ACK_SN字段指示在状态PDU中没有被报告为丢失的下一个未接收的RLC SDU的SN。当AM RLC实体的发送方接收到STATUS PDU时,它将解释其对等AM RLC实体已接收到所有但不包括SN = ACK_SN的RLC SDU,但不包括STATUS中指示的那些RLC SDU 带有NACK_SN的PDU,在状态PDU中以NACK_SN,SOstart和SOend指示的RLC SDU的一部分,在状态PDU中以NACK_SN和NACK_range指示的RLC SDU以及在状态PDU中的NACK_SN。

NACK_SN:12bits or 18bits,指示AM RLC实体接收端探测到丢失的RLC SDU的SN。

E1:1bit,指示是否有字段E1/E2/E3。

Value Description
0 A set of NACK_SN, E1, E2 and E3 does not follow.
1 A set of NACK_SN, E1, E2 and E3 follows.

E2:1bit,指示是否包括SOstart和SOend字段。

Value Description
0 A set of SOstart and SOend does not follow for this NACK_SN.
1 A set of SOstart and SOend follows for this NACK_SN.

E3:1bit,指示是否跟随关于尚未接收到的RLC PDU的连续序列的信息。

Value Description
0 NACK range field does not follow for this NACK_SN.
1 NACK range field follows for this NACK_SN.

SOstart:16bits,指示SN=NACK_SN的已在AM接收侧检测为丢失的RLC SDU部分, 具体地,SOend字段指示RLC SDU部分的最后字节的位置,以原始RLC SDU内的字节为单位。

SOend:16bits,

NACK range:8bits,从NACK_SN开始并且包括NACK_SN的连续丢失的RLC SDU的数量。

3 RLC实体

3.1 TM RLC实体

发送时,TM RLC实体从RLC SDUs生成TMD PDUs:

也就是说TM RLC实体不对数据进行任何加工, bypass。。

接收时,TM RLC实体接收TMD PDUs:

3.2 UM RLC实体

UM RLC实体发送端为每个RLC SDU生成UMD PDU,每个UMD PDU中都包括相关的RLC报头。当底层通知了传输机会,UM RLC实体发送端根据需要对RLC SDU进行分段,对应UMD PDU的RLC报头也进行更新,底层指示RLC PDU的总大小。

UM RLC实体接收UMD PDU时:

3.3 AM RLC实体

AM RLC实体发送端为每个RLC SDU生成AMD PDU,当底层通知传输机会时,如果需要AM RLC实体发送端对RLC SDU进行分段,对应AMD PDU的RLC报头也进行更新,底层指示RLC PDU的总大小。

AM RLC实体发送端支持RLC SDU或者RLC SDU段进行重传(ARQ)

当AM RLC实体发送端从RLC SDU或RLC SDU段形成AMD PDU:

AM RLC实体接收段接收AMD PDUs时:

4 RLC流程

4.1 RLC实体处理

RLC实体建立

当上层请求RLC实体建立时,UE应该:

RLC实体重建

当上层请求重建RLC实体时,UE应该:

RLC实体释放

当上层请求释放RLC实体时,UE应该:

4.2 数据传输流程

4.2.1 TM数据传输

当向下层提交新的TMD PDU时,发送端TM RLC实体应该:

当从底层接收新的TMD PDU时,接收端TM RLC实体应该:

4.2.2 UM数据传输

当向下层提及UMD PDU时,发送端UM RLC实体应该:

接收端UM RLC实体应根据状态变量RX_Next_Highest维护的重组窗口:

当从底层接收UMD PDU时,接收端UM RLC实体应该:

t-Reassembly超时,接收端UM RLC实体:

当UMD PDU已经从底层接收,接收端UM RLC实体应该:

当SN=x的UMD PDU放到了接收缓存中,接收端UM RLC实体将:

t-Reassembly超时,接收端UM RLC实体将:

4.2.3 AM数据传输

AM RLC实体的发送端应优先考虑传输通过AMD PDU的RLC控制PDU,AM RLC实体发送端应优先传输包含先前发送的RLC SDU或RLC SDU段的AMD PDU的传输包含先前发送的RLC SDU或者RLC SDU段的AMD PDU。

AM RLC实体的发送端应根据状态变量TX_Next_Ack维护发送窗口。

AM RLC实体的发送端不会把SN落在传输窗口之外的任何AMD PDU传输给底层。

对于从上层接收到的每一个RLC SDU,AM RLC实体将:

当传输一个包含RLC SDU段的AMD PDU到底层时,AM RLC实体的发送端应该:

AM RLC发送端接收一个RLC SDU的积极确认(对端的AM RLC实体确认已经成功接收)

当接收一个RLC SDU的SN=x的积极确认时,AM RLC对端实体将:

AM RLC实体接收端将通过状态变量RX_Next维护一个接收窗口。

当从底层接收AMD PDU时,AM RLC接收端的实体将:

t-Reassembly超时,AM RLC接收端实体将:

当一个AMD PDU已经从底层收到,其中AMD PDU包含SN=x的RLC SDU的字节段号y到z,AM RLC实体接收端将:

当SN=x的AMD PDU已经放到了接收缓存中时,AM RLC实体接收端将:

t-Reassembly超时,AM RLC实体接收端将:

4.3 ARQ流程

ARQ过程仅由AM RLC实体执行。

4.3.1 重传

AM RLC实体发送端能接收RLC SDU或其片段的否定确认通过:

当正在接收来自对端AM RLC实体的否定确认时,AM RLC实体的发送端将:

当RLC SDU或其片段考虑重传,AM RLC实体接收端将:

当正在重传RLC SDU或者RLC SDU段时,AM RLC实体的发送端将:

当形成新的AMD PDU时,AM RLC实体的发送端将:

4.3.2 轮询

AM RLC实体可以轮询其对等的AM RLC实体,以便在对等的AM RLC实体处触发STATUS报告。

在下层通知传输机会后,对于每个要发送的AMD PDU,使得AMD PDU包含先前未发送的RLC SDU或包含先前未发送的字节段的RLC SDU段,AM RLC实体的发送端将:

在下层通知传输机会后,对于每个要发送的AMD PDU,AM RLC实体的发送端将:

AMD PDU中包含轮询,AM RLC实体发送端将:

提交包含轮询的AMD PDU到底层后,AM RLC实体发送端将:

从接收RLC AM实体接收到状态报告后,AM RLC实体的发送端将:

t-PollRetransmit超时,AM RLC实体的发送端将:

4.3.3 状态报告

AM RLC实体发送STATUS PDU到对等的AM RLC实体来提供RLC SDU的肯定或者否定确认。

触发初始STATUS报告包括:

当STATUS报告已经触发,AM RLC实体接收端将:

当STATUS PDU已经提交到底层,AM RLC实体接收端将:

当构造STATUS PDU时,AM RLC实体将:

4.3.4 SDU丢弃流程

当从上层指示丢弃特定RLC SDU时,如果RLC SDU及其片段都未被提交,则AM RLC实体发送端或者UM RLC实体发送端丢弃指示的RLCSDU。如果RLC SDU或者RLC SDU段已经发送到底层,当丢弃RLC SDU时,AM RLC实体发送端将不引入RLC SN间隙。

4.3.5 数据量计算

出于MAC缓冲状态报告的目的,终端应考虑下列的RLC数据量

此外,如果STATUS PDU已触发并且t-StatusProhibit没有运行或已经超时,终端将估计在下一次传输机会中出传输的STATUS PDU的大小,并将其视为RLC数据量的一部分。

reference
TS38322-Radio Link Control (RLC) protocol specification

上一篇下一篇

猜你喜欢

热点阅读