UMRLC接收实体丢弃该UMDPDU
否则:
UMRLC接收实体应把这个UMDPDU存入接收缓存器中
三、当一个UMDPDU被存储到接收缓存器时:
当一个SN=x的UMDPDU呗存入接收缓存器中时:
(1)如果x落在重排序窗口之外
1)UMRLC接收实体应更新VR(UH)为x+1
2)UMRLC接收实体应从UMDPDU中重组所有SN落在重排序窗口之外的RLCSDU,去掉RLC头并且按照RLCSN的升序方式向上层发送重组完成的RLCSDU。
3)如果VR(UR)落在重排序窗口之外:
UMRLC接收实体应将VR(UR)置为(VR(UH)-UM_Window_Size)
(2)如果接收缓存器中有一个SN=VR(UR)的UMDPDU:
1)UMRLC接收实体应将VR(UR)更新为第一个没有被接收的UMDPDUSN>当前VR(UR)的PDU
2)UMRLC接收实体应从UMDPDU中重组所有SN<更新后的VR(UR)的RLCSDU,去掉RLC头并按照RLCSN的升序方式向上层发送重组后的RLCSDU。
(3)如果t-Reordering计时器正在运行:
1)如果VR(UX)≤VR(UR),或者
2)如果VR(UX)落在重排序窗口之外且VR(UX)≠VR(UH)
UMDPDU接收实体应停止并重启t-Reordering计时器
(4)如果t-Reordering计数器没有运行
1)如果VR(UH)>VR(UR)
UMDPDU接收实体应启动该t-Reordering计时器
UMDPDU接收实体应将VR(UX)置为VR(UH)
四、当t-Reordering计数器超时
当t-Reordering计数器超时:
(1)UMRLC接收实体应更新RLCSDU为第一个没有被接收的UMDPDU的SN(SN≥VR(UX))
(2)UMRLC接收实体应重组所有SN<更新后的VR(UR)的UMDPDU
(3)如果VR(UH)>VR(UR)
1)UMRLC接收实体应启动t-Reordering计数器
2)UMRLC接收实体应将VR(UX)置为VR(UH)
1.3AM数据传输
(1)发送:
1)AMRLC实体接收端应比RLC数据PDU优先发送RLC控制PDU;
2)AMRLC实体接收端应比新的AMDPDU优先发送重传的RLC数据PDU;
3)发送端AMRLC实体应根据状态变量VT(A)和VT(MS)维护发送窗口:
如果VT(A)≤SN<VT(MS),则SN落入发送窗口之内
否则,SN落在发送窗口之外
4)发送端SMRLC实体不应将任何SN落在传送窗口之外的RLC数据PDU传送给下层
5)当传送一个新的AMDPDU给下层时,发送端AMRLC实体应将该AMDPDU的SN置为VT(S),并将VT(S)加1;
6)AMRLC实体接收端可以通过如下方式接收一个RLC数据PDU的确认:
AMRCL实体的发送端可以通过每个AMRLC实体的STATUSPDU来确认
7)当接收到一个SN=VT(A)的AMDPDU的确认时:
a.接收端AMRLC实体应将VT(A)置为还没有被确认的最小SN的AMDPDU的SN值,且该SN满足VT(A)≤SN≤VT(S)
b.如果属于同一个RLCSDU的PDU都收到了确认,则AMRLC实体接收端应向上层发送RLCSDU成功发送的通知
(2)接收:
一、概述
(1)AMRLC实体接收端应根据状态变量VR(R)和VR(MR)维护接收窗口:
1)如果VR(R)≤SN<VR(MR),则SN落入接收窗口之内
2)否则,SN落在接收窗口之外
(2)当从下层接收到一个RLC数据PDU时:
1)AMRLC实体接收端或者丢弃该接收到的RLC数据PDU,或者将其存入接收缓存器
2)如果接收到的RLC数据PDU被存入接收缓存器:
AMRLC实体接收端应更新状态变量、重组并向上层传送RLCSDU,且在需要的时候启动或停止t-Reordering计数器
3)当t-Reordering计数器超时,AMRLC实体接收端应更新状态变量,并在需要的时候启动t-Reordering计数器
二、当从下层接收到RLC数据PDU时:
当从下层接收到一个RLC数据PDU时,当它包含SN=x的AMDPDU分段字节为y到z时
(1)如果x落在接收窗口之外,或者
(2)SN=x的AMDPDU的分段字节为y到z已经被接收时:
AMRLC实体接收端应丢弃该RLC数据PDU
(3)否则:
1)接收AMRLC实体应将接收到的RLC数据PDU存入接收缓存器中
2)如果AMDPDU的有些字节分段包含之前已经接收到的RLC数据PDU:
AMRLC实体接收端应丢弃该重复的字节段
三、当已给RLC数据PDU被存入接收缓存器中时:
当一个SN=x的RLC数据PDU被存入接收缓存器中时:
(1)如果x≥VR(H)
接收AMRLC实体应更新VR(H)为x+1
(2)如果SN=VR(MS)的AMDPDU的字节段已经接收:
接收AMRLC实体应更新VR(MS)为第一个不是所有字节段都被接收的AMDPDU的SN,且该SN大于当前VR(MS)
(3)如果x=VR(R):
1)如果AMDPDU的所有SN=VR(R)的字节段都被接收:
a.接收AMRLC实体应更新VR(R)为第一个不是所有字节段都被接收的AMDPDU的SN,且该SN大于当前VR(R)
b.接收AMRLC实体应更新VR(MR)为已更新的VR(R)+AM_Window_Size
2)从所有SN落在接收窗口之外的AMDPDU以及的字节段中重组RLCSDU,如果之前
没有提交过,则去掉RLC头并将重组的RLCSDU按顺序发送给上层。
(4)如果t-Reordering计数器正在运行:
1)如果VR(X)=VR(R);或者
2)如果VR(X)落在接收窗口之外,且VR(X)≠VR(MR)
接收AMRLC实体应停止并重置t-Reordering计数器
(5)如果t-Reordering计数器没有运行(包含因上述过程而停止的情况):
1)如果VR(H)>VR(R)
a.接收AMRLC实体应启动t-Reordering计数器
b.接收AMRLC实体应置VR(X)为VR(H)
四、当t-Reordering计数器超时:
当t-Reordering计数器超时:
(1)接收AMRLC实体应更新VR(MS)为第一个不是所有字节段都被接收的AMDPDU的SN,且该SN≥VR(X)
(2)如果VR(H)>VR(MS):
1)接收AMRLC实体应启动t-Reordering计数器
2)接收AMRLC实体应置VR(X)为VR(H)
2、ARQ过程(ARQ过程只在AMRLC实体执行)
2.1重传
(1)AMRLC实体接收端可以通过如下方式收到AMDPDU或AMDPDU部分的确认(其对等端AMRLC实体通知接收失败):
由对等端的AMRLC实体发送的STATUSPDU
(2)当接收到从对等端AMRLC实体发送的STATUSPDU所获取的AMDPDU或AMDPDU部分的否认:
1)如果对应的AMDPDU的SN落入VT(A)≤SN<VT(S)的范围内:
则认为这个AMDPDU或AMDPDU的一部分要求重传
(3)当一个AMDPDU或AMDPDU的部分被认为需要重传时:
1)如果该AMDPDU被认为是第一次重传
接收AMRLC实体应将与该AMDPDU关联的RETX_COUNT置0
2)否则,如果它或者它的一部分重传没有被挂起:
接收AMRLC实体应递增RETX_COUNT
3)如果RETX_COUNT=maxRetxThreshold:
接收AMRLC实体应通知上层已经达到最大重传次数
(4)当重传一个AMDPDU时
1)如果该AMDPDU的大小能够完全容纳在由下层指示的RLCPDU重传机会中:
接收AMRLC实体应传输这个AMDPDU(除了P域)
2)否则:
接收AMRLC将这个AMDPDU进行分段,使得分段后的AMDPDU片段大小可以完全被容纳在有下层指示的传输机会中
(5)当传输一个AMDPDU的一部分时:
1)AMRLC实体接收端应在需要的情况下对该AMDPDU部分进行分段,使得分段后
的心AMDPDU片段可以完全被容纳在下层指示的重传机会中。
(6)当形成一个新的AMDPDU片段时
1)只要把原来的AMDPDU数据字段映射到新的AMDPDU分段的数据部分
2)设置新的AMDPDU分段包头
3)设置P域
2.2轮询
一个AMRLC实体可以轮询它的对等端实体来触发对等端的发送状态报告
一、发送一个AMDPDU或AMDPDU分段
(1)当产生一个新的AMDPDU时
1)AMRLC实体接收端应对PDU_WITHOUT_POLL加1
2)对于每一个映射到RLC数据PDU数据域的新数据单元,AMRLC实体接收端应将BYTE_WITHOUT_POLL增加相应的字节数
3)如果PDU_WITHOUT_POLL≥pollPDU;或者
4)如果BYTE_WITHOUT_POLL≥pollBYTE
AMRLC实体发送端应按照如下所述在RLC数据PDU中包含一个POLL
(2)当组成一个AMDPDU或者AMDPDU分段时
1)如果在传送了RLC数据PDU之后,发送缓存器和接收缓存器同时为空(不包括还没有被确认的RLC数据PDU);或者
2)如果在传送了RLC数据PDU之后没有新的RLC数据PDU需要被传送
AMRLC发送实体应按照如下所述在RLC数据PDU中包含一个POLL
(3)要在RLC数据PDU中包含一个POLL
1)AMRLC实体发送端应设置RLC数据PDU的P域为1
2)AMRLC实体发送端应设置PDU_WITHOUT_POLL为0
3)AMRLC试题发送端应设置BYTE_WITHOUT_POLL为0
(4)在根据需要轻狂对VT(S)进行增值后,当向下层发送一个含poll的RLC数据PDU时
1)AMRLC实体发送端应设置POLL_SN为VT(S)-1
2)如果t-PollRetransmit没有运行
AMRLC实体发送端应启动t-PollRetransmit计数器
3)否则
AMRLC实体发送端应重启t-Pollretransmit计数器
二、接收一个STATUS报告
当从接收端RLCAM实体接收到一个STATUS报告时
(1)如果状态报告包含的RLC数据PDU的确认或否认序号等于POLL_SN
1)如果t-Pollretransmit计数器正在运行
AMRLC实体接收端应停止并重置t-Pollretransmit计数器
三、t-Pollretransmit计数器超时
(1)如果发送缓存器和接收缓存器同时为空(不包括还没有被确认的RLC数据PDU);或者
(2)如果没有新的RLC数据PDU能够传输(如,窗口溢出)、
1)AMRLC实体发送端认为SN=VT(S)-1的AMDPDU需要重传;或者
2)AMRLC实体发送端认为没有被确认的AMDPDU需要重传
(3)AMRLC实体发送端在RLC数据PDU中包含一个poll
2.3状态报告
(1)AMRLC实体向它的对等端AMRLC实体发送STATUS来提供RLCPDU的确认或否认
(2)RRC层可以配置RLC是否启动状态报告禁止功能
(3)初始化STATUS报告触发包括:
1)从对等端AMRLC实体发起的轮询
当从下层接收到一个SN=x且P域被置为1的RLC数据PDU时
a.如果该PDU要被丢弃;或者
b.如果x<VR(MS)或x≥VR(MR)
触发STATUS报告
c.否则
延迟触发STATUS直到x<VR(MS)
(基于此可以确保RLC状态报告是在HARQ重排序之后发送)