11 Radio Link Control (RLC) procedures on TCH, FACCH, SACCH, SDCCH and CDCH
3GPP44.160General Packet Radio Service (GPRS)Mobile Station (MS) - Base Station System (BSS) interfaceRadio Link Control / Medium Access Control (RLC/MAC) protocol Iu modeRelease 16TS
11.1 General
This sub-clause describes the RLC procedures in TCH TBF mode, DCCH TBF mode and CDCH TBF mode applicable in MAC-Dedicated state and MAC-DTM state. Unless explicitly stated otherwise, the procedures and parameters in this sub-clause are not applicable in T-RLC mode.
In TCH TBF mode, the following definitions apply in NT-RLC mode only:
– Sequence Number Space (SNS): 256.
– Window Size (WS): 128.
In DCCH TBF mode and CDCH TBF mode, the following definitions apply:
– Sequence Number Space (SNS): 16.
– Window Size (WS): 8.
11.2 Procedures and parameters for peer-to-peer operation
11.2.1 Send state variable V(S)
See 3GPP TS 44.060 sub-clause 9.1.1.
11.2.2 Control send state variable V(CS)
See 3GPP TS 44.060 sub-clause 9.1.1a.
11.2.3 Acknowledge state variable V(A)
See 3GPP TS 44.060 sub-clause 9.1.2.
11.2.4 Acknowledge state array V(B)
In RLC acknowledged mode, each RLC endpoint transmitter shall have an associated acknowledge state array (V(B)). V(B) is an array of SNS elements indicating the acknowledgement status of WS previous RLC data blocks. The array is indexed relative to the acknowledge state variable V(A) modulo SNS. The values of V(B) shall be updated from the latest values received from its peer in the received block bitmap (RBB) of either the piggy-backed acknowledgement (DCCH TBF mode and CDCH TBF mode only) or the Packet Ack/Nack message (DCCH TBF mode, CDCH TBF mode or TCH TBF mode) (see sub-clause 11.2.10).
The transmitter shall transmit the oldest RLC data block whose corresponding element in V(B) indexed relative to V(A) has the value NACKED. As each RLC data block is transmitted the corresponding element in V(B) is set to the value PENDING_ACK.
If [ V(S) < V(A) + WS ] modulo SNS and no RLC data blocks have a corresponding element in V(B) with the value NACKED, the RLC data block with BSN = V(S) shall be transmitted and the corresponding element in V(B) shall be set to the value PENDING_ACK. If there are no further RLC data blocks available for transmission (i.e. the RLC data block with BSN = V(S) does not exist), the sending side shall transmit the oldest RLC data block whose corresponding element in V(B) has the value PENDING_ACK, then the next oldest block whose corresponding element in V(B) has the value PENDING_ACK, etc. If all RLC data blocks whose corresponding element in V(B) has the value PENDING_ACK have been transmitted once, the process shall be repeated beginning with the oldest RLC data block.
If V(S) = V(A) + WS modulo SNS (i.e. the transmit window is stalled), the sending side shall transmit the oldest RLC data block whose corresponding element in V(B) has the value PENDING_ACK, then the next oldest RLC data block whose corresponding element in V(B) has the value PENDING_ACK, etc. If all RLC data blocks whose corresponding element in V(B) has the value PENDING_ACK have been transmitted once, the process shall be repeated beginning with the oldest RLC data block. This process of transmitting the oldest RLC data blocks whose value in V(B) has the value PENDING_ACK shall continue, as long as equation [V(S)=V(A)+WS] modulo SNS holds.
When an element in V(B) falls outside of the active transmit window, i.e. [ V(A) £ BSN < V(S) ] modulo SNS, the element shall be set to the value INVALID.
If V(S) = V(A) and there is no RLC data block with BSN = V(S) available, the mobile station shall stop sending RLC data blocks. The mobile station shall continue sending RLC data blocks when a RLC data block with BSN = V(S) is available.
11.2.5 Block sequence number BSN
11.2.5.1 Block sequence number for TCH TBF mode
Each RLC data block contains a block sequence number (BSN) field that is 8 bits in length. At the time that an in‑sequence RLC data block is designated for transmission, the value of BSN is set equal to the value of the send state variable V(S).
11.2.5.2 Block sequence numer for DCCH TBF mode and CDCH TBF mode
Each RLC data block contains a block sequence number (BSN) field that is 4 bits in length. At the time that an in‑sequence RLC data block is designated for transmission, the value of BSN is set equal to the value of the send state variable V(S).
11.2.6 Reduced block sequence number RBSN
See 3GPP TS 44.060 sub-clause 9.1.4a.
11.2.7 Receive state variable V(R)
See 3GPP TS 44.060 sub-clause 9.1.5.
11.2.8 Receive window state variable V(Q)
See 3GPP TS 44.060 sub-clause 9.1.6.
11.2.9 Receive state array V(N)
See 3GPP TS 44.060 sub-clause 9.1.7.1.
11.2.10 Starting sequence number (SSN) and received block bitmap (RBB)
The Ack/Nack description IE contains a starting sequence number (SSN) and a received block bitmap (RBB). The Ack/Nack description IE is sent by the RLC receiver in a Packet Ack/Nack message (TCH TBF mode, DCCH TBF mode and CDCH TBF mode) or by piggy-backing within RLC data blocks (DCCH TBF mode and CDCH TBF mode) and is received by the RLC transmitter. The SSN and RBB are determined as defined in this sub-clause and transmitted in both RLC acknowledged and RLC unacknowledged mode. The SSN and RBB may be ignored by the RLC transmitter in unacknowledged mode.
The RBB is defined as a binary valued array of WS elements, where the index of each element takes value 0, 1, 2, …, WS-1 in the given order, respectively. The BSN values specified in the RBB are interpreted by subtracting the bit position in the bitmap from the starting sequence number (SSN) modulo SNS.
A valid BSN value in the RBB is one that is in the range [ V(A) £ BSN < V(S) ] modulo SNS.
These inequalities shall be interpreted in the following way:
BSN is valid if, and only if, [ BSN – V(A) ] modulo SNS < [ V(S) – V(A) ] modulo SNS.
At the RLC transmitter:
– For each bit in the RBB whose corresponding BSN value is within the transmit window, if the bit contains the value ‘1’, the corresponding element in V(B) indexed relative to SSN shall be set to the value ACKED. If the bit contains the value ‘0’, the element in V(B) shall be set to the value NACKED. A bit within the RBB whose corresponding BSN is not within the transmit window, shall be ignored. If the bit contains the value ‘0’, the last burst of the corresponding RLC data block has been physically transmitted in the TDMA frame number FNcomm, and the first burst carrying a segment of the PACKET DBPSCH UPLINK ACK/NACK or PACKET DBPSCH DOWNLINK ACK/NACK messages or of the piggy-backed acknowledgement has been physically transmitted in the TDMA frame number FNresp where FNresp < FNcomm + Trmin +1 (i.e. the RLC data block was recently (re)transmitted and thus can not be validly negatively acknowledged in this particular acknowledgement), the element in V(B) shall not be modified. See sub-clauses 9.2.1.2 and 9.2.1.3 for the definition of Trmin.
At the RLC receiver:
– The starting sequence number (SSN) is assigned the value of the receive state variable V(R). The received block bitmap (RBB) is assigned the WS elements whose indices, with incrementing order, correspond to elements in the receive state array V(N) at the receiver whose indices, with decrementing order, range backwards from [ V(R) ‑ 1 ] to [ V(R) ‑ WS ] (modulo SNS). For each bit in the bitmap, the bit is assigned the value ‘1’ if the corresponding element in V(N) indexed relative to SSN has the value RECEIVED. The bit is assigned the value ‘0’ if the element in V(N) has the value INVALID.
– When polled within a downlink RLC data block, the mobile station shall acknowledge all the RLC data blocks that have been correctly received up to and including the radio block where the mobile station is polled.
– As an implementation option, the mobile station may also acknowledge as many as possible of the RLC data blocks that are correctly received after the radio block where the mobile station is polled.
11.2.11 Window Size
11.2.11.1 TCH
For TCH TBF mode, the window size (WS) shall be128.
11.2.11.2 FACCH, SACCH, SDCCH and CDCH
For DCCH TBF mode and CDCH TBF mode, the window size (WS) shall be 8.
11.2.11a RLC buffer
See 3GPP TS 44.060 sub-clause 9.1.9.3.
11.2.12 Segmentation of upper layer PDUs into RLC data units
See 3GPP TS 44.060 sub-clause 9.1.11.
Once an RLC data block has been transmitted over the physical link, should it be necessary to re-transmit the RLC data block, it shall be re-transmitted using the same channel coding scheme and BSN as it had in the previous transmission.
NOTE: The only coding scheme available in DCCH TBF mode is CS-1 coding.
If so ordered by RRC for a given signalling radio bearer using RLC acknowledged mode, in order to assure duplication avoidance at higher layer, RLC shall guarantee that no more than three upper layer PDUs shall be outstanding in the transmit window at any given time: there may be at most three upper layer PDUs that are being transmitted i.e. that have been segmented and for which the RLC PDUs are being transferred to the receiving end.
If so ordered by RRC (CRLC-CONFIG-Req primitive), the RLC transmitter may discard:
– in RLC acknowledged mode, RLC SDU(s) not yet segmented into RLC PDUs. The RLC transmitter shall notify the higher layer of all discarded RLC SDUs, if indicated (RLC-AM-DATA-DiscardReq primitive).
– in RLC unacknowledged mode, RLC SDU(s).
11.2.13 Re-assembly of upper layer PDUs from RLC data units
See 3GPP TS 44.060 sub-clause 9.1.12.
11.2.14 Segmentation of RLC/MAC control messages into RLC/MAC control blocks
See 3GPP TS 44.060 sub-clause 9.1.12a.
11.2.15 Re-assembly of RLC/MAC control messages from RLC/MAC control blocks
See 3GPP TS 44.160 sub-clause 10.2.15:
The duration of timer T3200 shall be so that, if the last burst of the RLC/MAC control block that triggered the start of timer T3200 has been physically transmitted in the TDMA frame number FNcomm, then the first burst carrying a segment of the RLC/MAC control block that triggered the stop of timer T3200 shall at the latest be physically transmitted in the TDMA frame number FNresp where:
FNresp = FNcomm + Trmax +1, with Trmax defined as shown in the table below
Table 11.2.15.1: Maximum difference between two segments of the same RLC/MAC control message
Logical channel |
Trmax |
SDCCH |
Four TRMIN_SDCCH |
SACCH |
332 |
SACCH (with a TCH or PDTCH) |
Four TRMIN_SACCH |
FACCH/Full rate |
Four TRMIN |
FACCH/Half rate |
Four TRMIN |
ADCH/Full rate |
Four TRMIN_DCH |
ADCH/Half rate |
Four TRMIN_DCH |
11.3 Operation during RLC/MAC control message transfer
RLC/MAC control blocks shall be used to transport RLC/MAC control messages. Segments of only one RLC/MAC control message shall be transported per RLC/MAC control block.
RLC/MAC control blocks shall be sent at a higher priority than RLC data blocks.
The receiving side shall determine the length of the RLC/MAC control message contents by interpreting the RLC/MAC control block contents.
No general acknowledgement shall be made as part of the transfer of RLC/MAC control blocks or RLC/MAC control messages. The receiver shall not acknowledge an RLC/MAC control block except when it is polled by the transmitter as indicated by the polling (P) bit in the MAC header of this RLC/MAC control block. The receiver shall not acknowledge an RLC/MAC control message except when the RLC/MAC procedures explicitly specify an acknowledgement. Upon reception of a polling request, the receiver shall respond following the rules defined in sub-clause 9.2.3 and the requirements defined in sub-clauses 9.2.1.2 and 9.2.1.3.
A RLC/MAC control block header, may contain a Radio Transaction Identifier (RTI) field that is 2 bits in length and performs in effect a modulo 4 count of the downlink RLC/MAC control messages sent on FACCH or ADCH. The RTI field shall be used to group the RLC/MAC control blocks that make up an RLC/MAC control message. The RTI field allows the transmitting and receiving entities to distinguish between up to 4 RLC/MAC control messages in a single transmit direction therefore allowing up to 4 parallel transactions per FACCH or ADCH.
The network shall not use the same RTI value at the same time on the same FACCH for two separate RLC/MAC control messages. The network shall transmit both segments of a segmented control message on the same FACCH. When FLO is used on a given DBPSCH, the network shall not use the same RTI value at the same time on this same DBPSCH for two separate RLC/MAC control messages. The network shall transmit both segments of a segmented control message on the same DBPSCH.
11.4 Operation during RLC data block transfer
11.4.1 General
The RLC ARQ functions are applicable in NT-RLC mode only and support two modes of operation: RLC acknowledged mode and RLC unacknowledged mode. RLC acknowledged mode operation uses retransmission of RLC data blocks to achieve high reliability. RLC unacknowledged mode operation does not utilize retransmission of RLC data blocks. No ARQ function shall apply in T-RLC mode.
A TBF may operate in either RLC acknowledged mode, RLC unacknowledged mode or RLC transparent mode.
For a URB, the RLC mode of the corresponding TBF is set to either RLC acknowledged mode, RLC unacknowledged mode or RLC transparent mode at set-up of this particular URB by means of primitive exchange between RRC and RLC (CRLC-CONFIG) (see 3GPP TS 44.118).
For a SRB, the RLC mode of the corresponding TBF is set implicitly to the proper RLC mode, according to the identity of this particular SRB as follows:
– SRB1: RLC unacknowledged mode.
– SRB2, SRB3, SRB4: RLC acknowledged mode.
11.4.2 Acknowledged mode operation
11.4.2.1 General
The transfer of RLC data blocks in RLC acknowledged mode uses retransmissions of RLC data blocks. The transmitting side numbers the RLC data blocks via the block sequence number (BSN). The BSN is used for retransmission and for reassembly. The receiving side sends acknowledgement in order to request retransmission of RLC data blocks. The operation in RLC acknowledged mode shall be as described in sub-clause 11.2.
11.4.2.2 On TCH
11.4.2.2.1 General
In TCH TBF mode, the transfer of RLC data blocks in RLC acknowledged mode is controlled by a selective type I ARQ mechanism coupled with the numbering of the RLC data blocks.
11.4.2.2.2 Uplink
The selection of the proper channel coding scheme (E-TCH/F28.8, E-TCH/F32.0 and E-TCH/F43.2) is controlled by the network and ordered by RRC during radio bearer set-up and reconfiguration procedures (see 3GPP TS 44.118). The RLC/MAC block format used shall be the one corresponding to this channel coding scheme (see sub-clause 12.8).
The network shall send PACKET DBPSCH UPLINK ACK/NACK messages on FACCH when needed. The mobile station may poll the network for sending a PACKET DBPSCH UPLINK ACK/NACK message by setting the polling (P) bit in an uplink RLC data block. Upon reception by the network of a polling request, the network shall send a PACKET DBPSCH UPLINK ACK/NACK message for the corresponding RLC entity to the mobile station in the next possible downlink radio block on FACCH following the rules described in sub-clause 9.2.3 and the requirements defined in sub-clause 9.2.1.2. Upon reception by the mobile station of a PACKET DBPSCH UPLINK ACK/NACK message for this RLC entity, the mobile station shall reset counter N3106. If the mobile station does not receive any PACKET DBPSCH UPLINK ACK/NACK message for this RLC entity before the response time specified in sub-clause 9.2.1.2, the mobile station shall increment counter N3106. If counter N3106=N3106max, the mobile station shall indicate a link failure to the RRC layer which in turn shall stop the corresponding RLC entity (see sub-clause 14.3 and 3GPP TS 44.118).
The mobile station shall indicate a transmit window stall condition when V(S)=V(A) + WS. Upon detecting a transmit window stall condition the mobile station shall set the Stall Indicator (SI) bit in all subsequent uplink RLC data block until the stall condition ceases to exist.
Upon detecting the stall condition the mobile station shall also start timer T3182. Timer T3182 shall be stopped upon reception of a PACKET DBPSCH UPLINK ACK/NACK message that makes V(S)<V(A)+WS. If timer T3182 expires, the mobile station shall notify a link failure to the RRC layer which in turn shall stop the corresponding RLC entity (see sub-clause 14.3 and 3GPP TS 44.118).
11.4.2.2.3 Downlink
The mobile station receives RLC/MAC blocks for data transfer on TCH.
The selection of the proper channel coding scheme (E-TCH/F28.8, E-TCH/F32.0 and E-TCH/F43.2) is controlled by the network and ordered by RRC during radio bearer set-up and reconfiguration procedures (see 3GPP TS 44.118). The RLC/MAC block format used shall be the one corresponding to this channel coding scheme (see sub-clause 12.8). The network may poll the mobile station for sending a PACKET DBPSCH DOWNLINK ACK/NACK message by setting the polling (P) bit in a downlink RLC data block. Upon reception by the mobile station of a polling request, the mobile station shall send a PACKET DBPSCH DOWNLINK ACK/NACK message to the network for the corresponding RLC entity in the next possible uplink radio block on FACCH following the rules described in sub-clause 9.2.3 and the requirements defined in sub-clause 9.2.1.2. Upon reception by the network of a PACKET DBPSCH DOWNLINK ACK/NACK message for this RLC entity, the network shall reset counter N3107. If the network does not receive any PACKET DBPSCH DOWNLINK ACK/NACK message for this RLC entity before the response time specified in sub-clause 9.2.1.2, the network shall increment counter N3107. If counter N3107=N3107max, the network shall indicate a link failure to the RRC layer which shall in turn stop the corresponding RLC entity (see sub-clause 14.3 and 3GPP TS 44.118).
11.4.2.3 On FACCH, SACCH, SDCCH or CDCH
11.4.2.3.1 General
In DCCH TBF mode and CDCH TBF mode, the transfer of RLC Data Blocks in RLC acknowledged mode is controlled by a selective type I ARQ mechanism coupled with the numbering of the RLC data blocks.
11.4.2.3.2 Uplink
The mobile station shall transmit an RLC/MAC block in each assigned uplink radio block following the rules described in sub-clause 9.2.3. The network shall send acknowledgement when needed. The mobile station may poll the network for sending an acknowledgement by setting the polling (P) bit in an uplink RLC data block. Upon reception by the network of a polling request, the network shall send an acknowledgement (PACKET DBPSCH UPLINK ACK/NACK message, PACKET DBPSCH UPLINK ACK/NACK TYPE 2 message or piggy-backed acknowledgement) to the mobile station for the corresponding RLC entity in the next possible downlink radio block following the rules defined in sub-clause 9.2.3 and the requirements defined in sub-clause 9.2.1.2. Piggy-backing of acknowledgement is possible following the rules below:
– If on the corresponding logical channel or transport channel an RLC data block is scheduled for transmission in the next radio block:
– if this RLC data block is an initial transmission, the acknowledgement shall be piggy-backed within this RLC data block;
– if this RLC data block is a retransmission of an RLC data block wherein an acknowledgement was initially piggy-backed, the acknowledgement shall be piggy-backed within this retransmitted RLC data block.
– Otherwise a PACKET DBPSCH UPLINK ACK/NACK message or PACKET DBPSCH UPLINK ACK/NACK TYPE 2 message shall be sent.
Upon reception by the mobile station of a acknowledgement for this RLC entity, the mobile station shall reset counter N3106. If the mobile station does not receive any acknowledgement for this RLC entity before the response time specified in sub-clause 9.2.1.2, the mobile station shall increment counter N3106. If N3106=N3106max, the mobile station shall indicate a link failure to the RRC layer which in turn shall stop the corresponding RLC entity (see sub-clause 14.3 and 3GPP TS 44.118).
The mobile station shall indicate a transmit window stall condition when V(S) = V(A) + WS. Upon detecting a transmit window stall condition, the mobile station shall set the Stall indicator (SI) bit in all subsequent uplink RLC data block until the stall condition ceases to exist.
Upon detecting the stall condition the mobile station shall also start timer T3182. Timer T3182 shall be stopped upon reception of a PACKET DBPSCH UPLINK ACK/NACK message or PACKET DBPSCH UPLINK ACK/NACK TYPE 2 message that makes V(S) < V(A) + WS. If timer T3182 expires, the mobile station shall notify a link failure to the RRC layer which in turn shall stop the corresponding RLC entity (see sub-clause 14.3 and 3GPP TS 44.118).
11.4.2.3.3 Downlink
The mobile station shall be able to receive RLC/MAC blocks in RLC acknowledged mode on FACCH, SACCH and SDCCH. The mobile station shall, in the RLC/MAC header, identify the RRBid and decode the RLC data blocks belonging to the corresponding radio bearer.
The network may poll the mobile station for sending an acknowledgement by setting the polling (P) bit in a downlink RLC data block. Upon reception by the mobile station of a polling request, the mobile station shall send an acknowledgement (PACKET DBPSCH DOWNLINK ACK/NACK message or PACKET DBPSCH DOWNLINK ACK/NACK TYPE 2 message or piggy-backed acknowledgement) for the corresponding RLC entity to the network in the next possible uplink radio block following the rules defined in sub-clause 9.2.3 and the requirements defined in sub-clause 9.2.1.2. Piggy-backing of acknowledgement is possible following the rules below:
– If on the corresponding logical channel or transport channel an RLC data block is scheduled for transmission in the next radio block:
– if this RLC data block is an initial transmission, the acknowledgement shall be piggy-backed within this RLC data block.
– if this RLC data block is a retransmission of an RLC data block wherein an acknowledgement was initially piggy-backed, the acknowledgement shall be piggy-backed within this retransmitted RLC data block.
– Otherwise a PACKET DBPSCH DOWNLINK ACK/NACK message or PACKET DBPSCH DOWNLINK ACK/NACK TYPE 2 message shall be sent.
Upon reception by the network of an acknowledgement for this RLC entity, the network shall reset counter N3107. If the network does not receive any acknowledgement for this RLC entity before the response time specified in sub-clauses 9.2.1.2 and 9.2.1.3, the network shall increment counter N3107. If counter N3107=N3107max, the network shall indicate a link failure to the RRC layer which shall in turn stop the corresponding RLC entity (see sub-clause 14.3 and 3GPP TS 44.118).
11.4.3 Unacknowledged mode operation
11.4.3.1 General
The transfer of RLC data blocks in RLC unacknowledged mode does not include any retransmissions. The block sequence number (BSN) in the RLC data block header is used to number the RLC data blocks for reassembly. The operation in RLC unacknowledged mode shall be as described in sub-clause 11.2.
11.4.3.2 On TCH
11.4.3.2.1 Uplink
The network shall send acknowledgements when needed.
The mobile station shall set the Stall Indicator (SI) bit to "0" in all RLC data blocks.
11.4.3.2.2 (void)
11.4.3.3 On FACCH, SACCH, SDCCH or CDCH
11.4.3.3.1 Uplink
The network shall send acknowledgements when needed.
The mobile station shall set the Stall indicator (SI) bit to ‘0’ in all RLC data blocks.
11.4.3.3.2 Downlink
The mobile station shall be able to receive RLC/MAC blocks in RLC unacknowledged mode on FACCH, SACCH and SDCCH. The mobile station shall, in the RLC/MAC header, identify the RRBid and decode the RLC data blocks belonging to the corresponding radio bearer.
11.4.4 Transparent mode operation (TCH TBF mode only)
When operating in transparent mode, the RLC protocol has no functionality. The incoming RLC SDUs are transferred to the MAC layer without being altered. No upper layer protocol information is removed. No RLC protocol information is added.