1 将RLC SDU 组成RLC PDU 1.1 功能介绍 发送UM RLC 实体/AM RLC 实体的发送侧将RLC SDU 组成UMD PDU 时,它们将: - 根据低层通知的特定发送时机以及由低层指示的RLC PDU(s)的总大小,将RLC SDU分段和/或串接成合适的RLC PDU(UMD PDU / AMD PDU) - 在RLC PDU中包含相应的RLC PDU头。 RLC headerRLC PDU......nn+1n+2n+3RLC SDURLC header Figure 1.1-1: RLC PDU Structure 1.2 数据结构和宏 MIN_PDU_DATA_SIZE 宏值, 表示PDU 数据域元素的最小长度(>=1)。 PDU_Header_Ext表示PDU 头扩展部分的结构类型, 包含E 和LI 位域。 PDU 表示一个 RLC PDU 结构的类型,包含的数据成员有: PDU 头固定部分:UM 和AM 模式的PDU 头不同,不同模式,包含各自的所有的位域; PDU 头扩展部分:指向 PDU_HeaderEx t 的指针; 数据域:每个元素为一个字节的数组。 SDU_context: 表示SDU 上下文的结构类型,并包含的数据成员有: BYTE *tbuff:指向存放 RLC SDU 的缓存器; SDU_leftsize:RLC SDU 的长度,初始表示当前顺序从 bu ffer 里取出的RLC SDU 的长度,每次组建后更新为剩下的RLC SDU 的长度; Segment:表示RLC SDU 分段的标识,初始为0, 每次顺序取到一个RLC SDU, 如果标识为1,表示是一个RLC SDU 分段;否则,表示是一个RLC SDU; PDU_context: 表示PDU 上下文的结构类型,并包含的数据成员有: PDU_SN:下一个将要发送的UMD PDU 的 SN。 PDU_leftsize(PDU 剩余大小):表示组建当前 RLC PDU 时,该 PDU 还可以包含的字节数。初始值为此发送时机低层指示的RLC PDU 的总大小; ElemNo: 该变量计数RLC PDU 数据域元素的个数, 初始为0;每次组建一个RLC PDU结束,ElemNo更新为0。 PDU_finish:表示组建一个RLC PDU 结束的标识。 值为0,表示正在组建一个RLC PDU; 值为1, 表示组建一个RLC PDU 结束,也表示下一次将要组建一个新的RLC PDU。 初始为1,每次组建后,如果正在组建的RLC PDU 未结束,更新为0; 1.3 算法流程 开始发送Buffer里还有RLC SDU?按顺序从Buffer里取出第一个RLC SDU将用于组建一个新的RLC PDU?即PDU_finish == 1?生成一个初始的RLC PDU,更新SDU上下文RLC SDU是一个SDU分段?确定FI的第一位为1确定FI的第一位为0PDU_leftsize= PDU_leftsize-2PDU_leftsize < SDU_...