LTE RLC理解(二) AM

注:本篇基本是基于协议的翻译,记录一下。

Based on 36.322 R10

5.1.3 AM数据传输

5.1.3.1 发送

发送时,RLC控制PDU的优先级高于RLC数据PDU,重传RLC数据PDU优先级高于新的AMD PDU。

AM RLC实体的发送侧应根据变量VT(A)和VT(MS)来维护一个发送窗口,如下:

    - 如果VT(A)<=SN

    - 否则,这个SN落在发送窗口之外

AM RLC实体的发送侧不会发送任何SN在发送窗口之外的RLC PDU。

当传送新的AMD PDU给低层时,AM RLC实体的发送侧应该:

    - set VT(S)=SN,然后VT(S)=VT(S)+1

AM RLC实体的发送侧通过如下方式收到RLC数据PDU的肯定应答:

    - 从对应侧的AM RLC实体发来的状态PDU

当收到SN=VT(A)的AM PDU的肯定应答时,AM RLC实体的发送侧应该:

    - 找出SN满足VT(A)<=SN

    - 如果一个发送的RLC SDU关联的所有的AMD PDU都收到了肯定应答

        - 发送给上层一个RLC SDU成功传送的指示

5.1.3.2 接收

5.1.3.2.1 一般

AM RLC实体的接收侧根据变量VR(R)和VR(MR)维护一个接收窗口,如下:

    - 如果VR(R)<=SN

    - 否则落于接收窗口外

当从低层收到一个AM数据PDU,AM RLC实体的接收侧应该:

    - 要么丢弃它,要么将它放入接收缓冲区(5.1.3.2.2)

    - 如果RLC数据PDU被放入接收缓冲区

        - 更新状态变量,重新组装并传送RLC SDU到上层,并按需开始/停止t_Reordering定时器(5.1.3.2.3)

当t_Reordering定时器超时,AM RLC实体接收侧应该:

    - 更新状态变量,并按需开始t_Reordering定时器

5.1.3.2.2 当从底层收到RLC数据PDU时的处理

当收到下层来的RLC数据PDU,,AM RLC实体的接收侧应该:

    - 如果x落于接收窗口之外,或者

    - SN=x的AMD PDU的字节段号y到z已经收到过了:

        - 丢弃收到的RLC数据PDU

    - 否则

        - 将收到的RLC数据PDU放入接收缓冲区

        - 如果AMD PDU的某些字节段包含于已经收到的RLC数据PDU,

            - 丢弃重复的字节段

7 变量、常量、定时器

7.1 状态变量

本小节描述AM/UM实体中所使用的状态变量,这样可以更好地描述RLC规范。这里定义的状态变量是标准的。

所有状态变量和计数器变量都是非负整数。

所有与AM数据传输相关的状态变量的值从0-1023。本文档中关于AM数据传输相关的状态变量的算法需做模处理,比如最终值=算法操作的值 % 1024。

UM数据传输相关的状态变量也有相同约束,最终值=算法操作值%2[sn-FieldLength],sn-FieldLength:UM包SN域的位长度。

AMD PDUs和UMD PDUs以整型序列号循环编号(SN):AMD PDU是0-1023,UMD PDU是2[sn-FieldLength]

进行算法处理时,SN需对值域进行模处理。

VT(A)和VR(R)应分别当做AM RLC实体的发送方和接收方的模基数。模基数被所有相关变量减,然后执行绝对量的对比。比如,VR(R) <= SN < VR(MR) isevaluated as [VR(R) – VR(R)] modulo 1024 <= [SN – VR(R)] modulo 1024 <[VR(MR) – VR(R)] modulo 1024。

UM RLC实体的模基数是VR(UH) –UM_Window_Size。模基数被所有相关变量减,然后执行绝对量的对比。比如, (VR(UH) – UM_Window_Size) <= SN < VR(UH)is evaluated as [(VR(UH) – UM_Window_Size) – (VR(UH) – UM_Window_Size)] modulo2[sn-FieldLength] <= [SN – (VR(UH) – UM_Window_Size)] modulo 2[sn-FieldLength]< [VR(UH) – (VR(UH) – UM_Window_Size)] modulo 2[sn-FieldLength]).


AM RLC实体发送方应维护如下状态变量:

a) VT(A) - 确认状态变量

这个变量保存了按序下一个收到确认应答的AMD PDU的SN,并作为发送窗口的下缘。

它初始化为0,当收到SN=V(A)的AMD PDU的肯定应答时,更新值。

b) VT(MS) - 最大发送SN状态变量

它的值是VT(A) + AM_Window_Size,并作为发送窗口的上沿。

c) VT(S) - 发送SN状态变量

保存下一个生成的AMD PDU的SN。

初始化为0,当发送SN=VT(S)的AMD PDU时更新。

d) POLL_SN - 发送poll的SN的变量
保存最近一次发送的poll位置1的RLC数据PDU的SN。


AM RLC实体发送方应维护如下计数器:

a) PDU_WITHOUT_POLL – Counter

b) BYTE_WITHOUT_POLL – Counter

c) RETX_COUNT – Counter

AM RLC实体接收方应维护如下状态变量:

a) VR(R) – Receive state variable

保存按序完整接收到的AMD PDU后的SN值,并作为接收窗口的下沿。

初始化为0,当AM PLC实体收到SN=VR(R)的AMD PDU时更新。

b) VR(MR) – Maximum acceptable receive state variable

保存接收窗口外的第一个AMD PDU的SN,等于VR(R) + AM_Window_Size。作为接收窗口的上沿。

c) VR(X) – t-Reorderingstate variable

保存触发 t-Reordering的RLC数据PDU后的PDU SN。

d) VR(MS) – Maximum STATUS transmit state variable

保存在构建STATUS PDU时,最可能作为“ACK_SN"的SN值。

初始化为0。

e) VR(H) – Highest received state variable

保存收到的SN最大的RLC数据PDU后的SN。

初始化为0。


每个UM RLC发送实体应维护如下状态变量:

a) VT(US)

每个UM RLC接收实体应维护如下状态变量:

a) VR(UR) – UM receive state variable

b) VR(UX) – UM t-Reorderingstate variable

c) VR(UH) – UM highest received state variable

7.2 常量

a) AM_Window_Size

AM RLC实体的发送发和接收方都用该常量计算VT(MS) from VT(A), and VR(MR)from VR(R). AM_Window_Size = 512.

b) UM_Window_Size

RM RLC接收者实体使用该常量,用来定义接收窗口内可接收的SN。

UM_Window_Size = 16 when a 5bit SN is configured,

UM_Window_Size = 512 when a 10 bit SN is configured and

UM_Window_Size = 0 when the receiving UM RLC entity is configured for MCCH orMTCH.

7.3 定时器

RRC配置如下定时器:

a) t-PollRetransmit

This timer is used by the transmitting side of an AM RLC entity in order to retransmit a poll (see sub clause 5.2.2).

b) t-Reordering

This timer is used by the receiving side of an AM RLC entity and receiving UM RLC entity in order to detect loss of RLC PDUs at lower layer (see sub clauses 5.1.2.2 and 5.1.3.2). Ift-Reordering is running,t-Reorderingshall not be started additionally, i.e. only onet-Reordering per RLC entity is running at a given time.

c) t-StatusProhibit

This timer is used by the receiving side of an AM RLC entity in order to prohibit transmission of a STATUS PDU (see sub clause5.2.3).

7.4 可配置参数

RRC配置如下参数:

a) maxRetxThreshold

This parameter is used by the transmitting side of each AM RLC entity to limit the number of retransmissions of an AMD PDU (seesubclause 5.2.1).

b) pollPDU

This parameter is used by the transmitting side of each AM RLC entity to trigger a poll for everypollPDU PDUs (seesubclause 5.2.2).

c) pollByte

This parameter is used by the transmitting side of each AM RLC entity to trigger a poll for everypollByte bytes (see subclause 5.2.2).

d) sn-FieldLength

This parameter gives the UM SN field size in bits (see subclause 7.1).


5.2 ARQ过程

只有AM RLC实体执行ARQ过程。

5.2.1 重传

AM RLC实体的发送方可收到失败应答,一个AM PDU的或一个AM PDU的一部分,

    - 从对等AM RLC实体来的STATUS PDU

当从对等AM RLC实体收到一个AM PDU或一个AM PDU的一部分的STATUS PDU,AM RLC实体的发送方应该:

    - 如果对应AM PDU的SN满足VT(A) <= SN

        - 考虑对这个AM PDU或AM PDU的一部分进行重传

当一个AM PDU或一个AM PDU的一部分考虑重传,AM RLC实体的发送方应该:

    - 如果AM PDU准备的是第一次重传

        - 设置该AM PDU的RETX_COUNT=0

    - 否则,如果它已在重传队列

        - RETX_COUNT = RETX_COUNT + 1

    - 如果 RETX_COUNT == maxRetxThreshold

        - 指示上层已到达最大重传门限

当重传一个AM PDU,AM RLC实体的发送方应该:

    - 如果AMD PDU大小正好适合某一下层指示的RLC PDU的大小

        - 发送该AMD PDU到下层,仅需改动P域(5.2.2)

    - 否则,

        - 将AMD PDU分段,形成一个大小适合(下层指示的特定传输时机的RLC PDU的总大小)的新的AMD PDU,并将该新的AMD PDU分段传送给下层。

当重传一个AM PDU的一部分,AM RLC实体的发送方应该:

    - 根据需要分段这个AMD PDU的一部分,形成一个新的AMD PDU分段,这个新的AMD PDU分段将适合下层指示的特定传输时机的RLC PDU的总大小,并将该新的AMD PDU分段传送给下层。

当形成一个新的AMD PDU,AM RLC实体的发送方应该:

    - 仅映射原AMD PDU的数据域到新的AMD PDU分段的数据域

    - 设置新AMD PDU分段的头(依照section 6)

    - 设置P域(根据5.2.2)

5.2.2 轮询

AM RLC实体可通过轮询获来触发STATUS报告

5.2.2.1 AMD PDU或AMD PDU分段的传送

组装新的AMD PDU时,AM RLC实体的发送方应该:

    -  PDU_WITHOUT_POLL加1

    - BYTE_WITHOUT_POLL += bytes of AMD PDU

    - ifPDU_WITHOUT_POLL >= pollPDU; or

    - ifBYTE_WITHOUT_POLL >= pollByte;

        - 在RLC data PDU中包含poll标志

在组装AMD PDU或AMD PDU分段时,AM RLC实体的发送方应该:

    - 如果RLC data PDU发送后,发送缓冲区和重传缓冲区都空了(等待回应的RLC data PDU除外)

    - 如果RLC data PDU发送后,没有新的RLC data PDU可发送(eg. 发送窗口停转)

        - 在RLC data PDU中包含poll标志

要在RLC data PDU中包含poll标志,AM RLC实体的发送方应该:

    - 设置RLC data PDU的P域为1

    - set PDU_WITHOUT_POLL to 0;

    - set BYTE_WITHOUT_POLL to 0;、

发送带有poll标志的RLC data PDU到底层后,以及更新VT(S)后,AM RLC实体的发送方应该:

    - 设置POLL_SN=VT(S)-1

    - 如果t-PollRetransmit未运行

        - 启动t-PollRetransmit

    - 否则

        - restart t-PollRetransmit

5.2.2.2 STATUS报告的接收

从AM RLC实体的接收方收到STATUS报告时,AM RLC实体的发送方应该:

    - 如果STATUS报告包含关于SN=POLL_SN的RLC data PDU的肯定或否定的应答:

        - 如果t-PollRetransmit正在运行

            - restart t-PollRetransmit

5.2.2.3 t-PollRetransmit超时

t-PollRetransmit超时时,AM RLC实体的发送方应该:

    - 如果RLC data PDU发送后,发送缓冲区和重传缓冲区都空了(等待回应的RLC data PDU除外)

    - 如果RLC data PDU发送后,没有新的RLC data PDU可发送(eg. 发送窗口停转)

        - 考虑重传AMD PDU with SN=VT(S)-1

        - 考虑重传任何未收到肯定应答的AMD PDU

    - 在RLC data PDU中包含poll标志(5.2.2.1)

5.2.3 状态报告

AM RLC实体发送状态报告来提供RLC PDUs(或者是他们的一部分)的肯定或否定的应答

RRC配置是否在某个AM RLC实体上使用状态阻止功能(the status prohibit function)。

触发状态报告包括:

    - 对等AM RLC实体的轮询请求

        - 当从低层收到P域设为1的RLC data PDU(SN=x),AM RLC实体接收方应该:

            - 如果PDU如5.1.3.2.2所述被丢弃,或者

            - 如果 x < VR(MS) or x >= VR(MR):

               - 触发状态报告

           - 否则

               - 延迟触发状态报告,直到 x < VR(MS) or x >= VR(MR)

NOTE1: this ensures that the RLC Status report is transmitted after HARQ reordering.

    - 发现RLC data PDU接收失败

        - AM RLC实体的接收方应在t-Reordering超时后,触发状态报告

NOTE2: t-Reordering超时既触发VR(MS)更新也触发状态报告,状态报告应在VR(MS)更新后触发。

当状态报告被触发,AM RLC实体的接收方应该:

    - 如果 t-StatusProhibit 未运行

        - 在下层随后指示的第一次发送机会,即构造状态报告并传送给低层

    - 否则,

        - 在 t-StatusProhibit超时后下层指示的第一次发送机会(即使多次触发,也要等到超时),构造一个状态报告并传送给低层

当状态报告传送给低层,AM RLC实体接收方应该:

    - 启动t-StatusProhibit

构造状态报告时,AM RLC实体应该:

    - 对满足VR(R)

 in increasingSN order of PDUs and increasing byte segment order within PDUs, starting withSN = VR(R) up to the point where the resulting STATUS PDU still fits to thetotal size of RLC PDU(s) indicated by lower layer:

-     for anAMD PDU for which no byte segments have been received yet::

-     includein the STATUS PDU a NACK_SN which is set to the SN of the AMD PDU;

-     for acontinuous sequence of byte segments of a partly received AMD PDU that have notbeen received yet:

-     includein the STATUS PDU a set of NACK_SN, SOstart and SOend

-     set theACK_SN to the SN of the next not received RLC Data PDU which is not indicated asmissing in the resulting STATUS PDU.

5.3 SDU丢弃过程

上层(eg. PDCP)传来丢弃某个RLC PDU时,如果没有RLC SDU分段映射到RLC data PDU,那么AM RLC实体的发送方或者UM RLC发送者实体应丢弃指定的RLC PDU。

5.4 重建过程

RLC重建应RRC请求执行,这个功能适用于AM/UM/TM RLC实体。





你可能感兴趣的:(LTE)