LTE RLC AM/UM/TM
Posted on Tue 23 January 2018 in 3gpp
這是讀 3GPP LTE spec. 的筆記,不保證完全正確。有錯請指教,謝謝。
LTE 的 RLC (radio link control) 定義了三個模式:TM/UM/AM (3GPP TS 36.322)
- TM: Transparent Mode
- UM: Unacknowledged Mode
- AM: Acknowledged Mode
在 4.2 RLC architecture 中定義了這三個 RLC entity 對應傳送的 logical channels
- TM: BCCH, BR-BCCH, DL/UL CCCH, PCCH and SBCCH.
- UM: DL/UL DTCH, MCCH, MTCH, SC-MCCH, SC-MTCH or STCH.
- AM: DL/UL DCCH or DL/UL DTCH.
BCCH: Broadcast Control CHannel
BR-BCCH: Bandwidth Reduced Broadcast Control CHannel
CCCH: Common Control CHannel
PCCH: Paging Control CHannel
SBCCH: Sidelink Broadcast Control Channel
DTCH: Dedicated Traffic CHannel
MCCH: Multicast Control Channel
SC-MCCH: Single Cell Multicast Control Channel
SC-MTCH: Single Cell Multicast Transport Channel
STCH: Sidelink Traffic Channel
DCCH: Dedicated Control CHannel
DTCH: Dedicated Traffic CHannel
TM 對應的動作最單純,從上層收到 SDU(Service Data Unit) 之後,便往下層送 TMD PDU(TM Data Protocol Data Unit)。不對 RLC SDU 做分割也不串接,收到什麼資料就轉成 TMD PDU 往下層送,也不加任何 RLC 的 header。若是往下層收到 TMD PDU,則直接往上層送(因為這就直接是 RLC SDU了)。
UM 則是會依著下層給的資訊把 SDU 分割或是串接成 UMD PDU(UM Data Protocol Data Unit) 來符合可用的 RLC PDU 大小。所以傳送前要加上 RLC 的 header。當UM 收到 UMD PDU 的時候,要能夠偵測 duplication 並丟棄 duplicated RLC data PDU;還要依序號重排;重組 SDU 並依序號的順序往上層送;無法重組的 SDU 就丟棄。
AM 傳送時同樣會依著下層給的資訊把 SDU 分割或是串接成 AMD PDU(AM Data Protocol Data Unit) 來符合可用的 RLC PDU 大小。但是 AM 支援重送 RLC data PDU (ARQ Automatic Repeat reQuest)。AM 可以在下層給的 RLC PDU 大小不符的時候重新分割。另外,AM 還會傳送與接收 RLC control PDU - STATUS PDU。所以在接收的時候,AM 也要能偵測 duplication 並丟棄 duplicated RLC data PDU;也要依序重排;偵測下層是否掉封包並要求傳送端的 AM 重新傳送;重組 SDU 並依序往上層送;無法重組的 SDU 就丟棄。
從上面的描述及 4.3.1 Services provided to upper layers 中提到的,
The following services are provided by RLC to upper layer:
- TM data transfer;
- UM data transfer;
- AM data transfer, including indication of successful delivery of upper layers PDUs.
可以知道,AM 提供最高可靠度的傳送管道。
底下附上 OpenAirInterface 的實作的相關函式呼叫:
rlc_data_ind
RLC 接收端與 TM/UM/AM
rlc_data_req
RLC 傳送端與 TM/UM/AM