9 Radio Link Control (RLC) procedures in packet transfer mode

04.603GPPGeneral Packet Radio Service (GPRS)Mobile Station (MS) - Base Station System (BSS) interfaceRadio Link Control / Medium Access Control (RLC/MAC) protocolRelease 1999TS

The RLC function is responsible for:

– Interface primitives allowing the transfer of Logical Link Control layer PDUs (LLC PDU) between the LLC layer and the MAC function.

– Segmentation of LLC PDUs into RLC data blocks and re-assembly of RLC data blocks into LLC PDU.

– Segmentation of RLC/MAC control messages into RLC/MAC control blocks and re-assembly of RLC/MAC control messages from RLC/MAC control blocks.

– Backward Error Correction (BEC) procedures enabling the selective retransmission of RLC data blocks.

In this sub-clause Packet Ack/Nack refers to any of the following messages:

– PACKET DOWNLINK ACK/NACK or EGPRS PACKET DOWNLINK ACK/NACK

– PACKET UPLINK ACK/NACK

In this sub-clause PACKET DOWNLINK ACK/NACK also refers to EGPRS PACKET DOWNLINK ACK/NACK, unless anything else is stated.

Additionally the following definitions apply:

– Sequence Number Space (SNS): 2048 in EGPRS, and 128 in GPRS

– Window Size (WS): 64 to 1024 in EGPRS; 64 in GPRS

9.1 Procedures and parameters for peer-to-peer operation

A TBF is comprised of two peer entities, which are the RLC endpoints. Each RLC endpoint has a receiver that receives RLC/MAC blocks. Each RLC endpoint also has a transmitter that transmits RLC/MAC blocks.

Each endpoint’s receiver has a receive window of size WS (see sub-clause 9.1.9). In RLC acknowledged mode, the receive window is defined by the receive state variable V(Q) in the following inequality[ V(Q) ≤ BSN < V(Q)+ WS ] modulo SNS (for the method of interpreting inequalities in this format refer to sub-clause 9.1.8). All BSNs which meet that criteria are valid within the receive window. In RLC unacknowledged mode, all values of BSN are within the receive window. An RLC data block is considered received, when it is received in a layer 1 frame with consistent parity bits (in EGPRS TBF mode: header and relevant data parity bits) and correctly addresses the receiving RLC endpoint.

Each endpoint’s transmitter has a transmit window of size WS. In RLC acknowledged mode, the transmit window is defined by the send state variable V(S) in the following inequality: [ V(A) ≤ BSN < V(S) ] modulo SNS, where [ V(S) – V(A) ] modulo SNS ≤ WS. All BSNs which meet that criteria are valid within the transmit window. In RLC unacknowledged mode, all values of BSN are within the transmit window.

9.1.1 Send state variable V(S)

Each RLC endpoint transmitter shall have an associated send state variable V(S). V(S) denotes the sequence number of the next in‑sequence RLC data block to be transmitted. V(S) can take on the value 0 through SNS – 1. V(S) shall be set to the value 0 at the beginning of each TBF in which the RLC endpoint is the transmitter. The value of V(S) shall be incremented by 1 after transmission of the RLC data block with BSN = V(S). In RLC acknowledged mode, V(S) shall not exceed V(A) modulo SNS by more than the maximum allowed number of outstanding RLC data blocks WS.

9.1.1a Control send state variable V(CS)

The network RLC endpoint transmitter shall have one instance of an associated control send state variable V(CS) for each parallel control transaction identified by the RTI field of the RLC/MAC control block header. V(CS) denotes the sequence number of the next in-sequence RLC/MAC control block to be transmitted for the control transaction. V(CS) can take on the values 0 or 1. V(CS) shall be set to the value 0 prior to the transmission of each RLC/MAC control block that contains the first octet of an RLC/MAC control message of the control transaction and the value of V(CS) shall be set to 1 after the transmission of the RLC/MAC control block with RBSN = 0.

9.1.2 Acknowledge state variable V(A)

In RLC acknowledged mode, each RLC endpoint transmitter shall have an associated acknowledge state variable V(A). V(A) contains the BSN value of the oldest RLC data block that has not been positively acknowledged by its peer. V(A) can take on the values 0 through SNS – 1. V(A) shall be set to the value 0 at the beginning of each TBF in which the RLC endpoint is the transmitter. The value of V(A) shall be updated from the values received from its peer in the received block bitmap (RBB) of the Packet Ack/Nack message (see sub-clause 9.1.8)

Furthermore, [ V(S) – V(A) ] modulo SNS ≤ WS.

9.1.3 Acknowledge state array V(B)

9.1.3.1 Acknowledge state array V(B) for GPRS TBF Mode

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 values received from its peer in the received block bitmap (RBB) of the Packet Ack/Nack message (see sub-clause 9.1.8)

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 has 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.

9.1.3.2 Acknowledge State Array V(B) for EGPRS TBF Mode

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 values received from its peer in the reported bitmap (RB) of the Packet Ack/Nack message (see sub-clause 9.1.8). If a compressed reported bitmap is received, decompression shall be first applied according to sub-clause 9.1.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 the RLC data block to be transmitted is split over two radio blocks, both radio blocks shall be transmitted. On initial transmission the RLC data blocks are sent with one of the initial code rates (the rate 1/3 encoded data is punctured with Puncturing Scheme (PS) 1 of the selected Modulation and Coding Scheme MCS) and if the RLC data block is required to be retransmitted it is sent with PS 2 of the selected MCS. On subsequent retransmissions the RLC data block is transmitted with PS in a cyclic process (refer to sub-clause 9.3.2.1).

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 the transmitter is the mobile station, the pre-emptive transmission bit is set to ‘1’in the PACKET UPLINK ACK/NACK message and 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 has 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. If the transmitter is the mobile station and the pre-emptive transmission bit is set to ‘0’in the PACKET UPLINK ACK/NACK message the transmitter shall not transmit the oldest RLC data block whose corresponding element in V(B) has the value PENDING_ACK (and the next continuing indefinitely). When a PACKET UPLINK ACK/NACK message is received the MS shall retransmit the RLC blocks which are set to NACKED in V(B) and new RLC data blocks as far as the transmit window (if advanced) allows. However if the RLC data block is the last in the TBF it shall be retransmitted even if its state is PENDING_ACK. The default for the mobile side is that the transmitter shall use pre-emptive transmission. If the transmitter is on the network side this process (pre-emptive transmission) of transmitting the oldest RLC data blocks whose value in V(B) has the value PENDING_ACK is optional.

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.

9.1.4 Block sequence number BSN

9.1.4.1 Block sequence number BSN for GPRS TBF

Each RLC data block contains a block sequence number (BSN) field that is 7 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).

9.1.4.2 Block sequence number BSN for EGPRS TBF

Each RLC data block contains a block sequence number (BSN) field that is 11 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).

9.1.4a Reduced Block Sequence Number RBSN

Each downlink RLC/MAC control block contains a Reduced Block Sequence Number (RBSN) bit. At the time that an in-sequence RLC/MAC control block is designated for transmission, the value of RBSN is set equal to the value of the control send state variable V(CS).

9.1.5 Receive state variable V(R)

Each RLC endpoint receiver shall have an associated receive state variable V(R). The receive state variable denotes the BSN which has a value one higher than the highest BSN yet received (modulo SNS). V(R) shall be set to the value ‘0’ at the beginning of each TBF in which the RLC endpoint is the receiver. V(R) can take on the value 0 through SNS – 1.

In RLC acknowledged mode, V(R) shall be set to [ BSN’ + 1 ] modulo SNS, where BSN’ is the BSN of most recently received RLC data block, provided [ V(R) ≤ BSN’ < V(Q) + WS ] modulo SNS.

In RLC unacknowledged mode, V(R) shall be set to [ BSN’ + 1 ] modulo SNS, where BSN’ is the BSN of most recently received RLC data block.

9.1.6 Receive window state variable V(Q)

Each RLC endpoint receiver shall have an associated receive window state variable V(Q). The receive window state variable denotes the lowest BSN not yet received (modulo SNS), therefore representing the start of the receive window. V(Q) shall be set to the value 0 at the beginning of each TBF in which the RLC endpoint is the receiver. The receive window state variable can take on the value 0 through SNS –1.

In RLC acknowledged mode, the value of V(Q) shall be updated when the RLC receiver receives the RLC data block whose BSN is equal to V(Q). The value of V(Q) shall then be set to the BSN value of the next RLC data block in the receive window (module SNS) that has not yet been received, or it shall be set to V(R) if all RLC data blocks in the receive window have been received.

In RLC unacknowledged mode, if [V(R) – V(Q)] modulo SNS > WS after updating V(R), then V(Q) is set to [V(R) ‑ WS] modulo SNS.

9.1.7 Receive state array V(N)

9.1.7.1 Receive state array V(N) in GPRS TBF

Each RLC endpoint receiver shall have an associated receive state array V(N). V(N) is an array of SNS elements indicating the receive status of WS previous RLC data blocks. The array is indexed relative to the receive state variable V(R) modulo SNS. When an RLC data block is received with BSN within the receive window, V(R) is treated according to sub-clause 9.1.5 and the element in V(N) corresponding to the received RLC data block is set to the value RECEIVED.

An element in V(N), corresponding to a BSN such that [ V(R)  BSN < V(R) ‑ WS ] modulo SNS, shall be set to the value INVALID.

9.1.7.2 Receive state array V(N) in EGPRS TBF

Each RLC endpoint receiver shall have an associated receive state array V(N). V(N) is an array of SNS elements indicating the receive status of WS RLC data blocks that are supposed to follow the block BSN=V(Q)-1. The array is indexed relative to the receive window state variable V(Q) modulo SNS. When an RLC data block is received with BSN within the receive window, the corresponding element in V(N) is set to the value RECEIVED.

If the RLC data block is split over two radio blocks, the element shall be set to the value RECEIVED if and only if both radio blocks have been received.

The elements in V(N) are set to the value INVALID at the beginning of each TBF. During the TBF, an element in V(N) that falls outside the receive window shall be set to the value INVALID.

9.1.8 Starting sequence number (SSN) and received block bitmap (RBB)

9.1.8.1 Starting sequence number (SSN) and received block bitmap (RBB) in GPRS TBF

The Packet Ack/Nack message contains a starting sequence number (SSN) and a received block bitmap (RBB). The Packet Ack/Nack message is sent by the RLC receiver 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 RBRB 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 RLC transmitter is on the mobile station side, the bit contains the value ‘0’ and the number of block periods between the end of the block period used for the last transmission of the corresponding RLC data block and the beginning of the block period containing the Packet Uplink Ack/Nack message is less than (max(BS_CV_MAX,1) – 1) (i.e., the RLC data block was recently (re)transmitted and thus can not be validly negatively acknowledged in this particular Packet Uplink Ack/Nack message), the element in V(B) shall not be modified.

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 elementsin 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 MS is polled.

– As an implementation option, the MS may also acknowledge as many as possible of the RLC data blocks that are correctly received after the radio block where the MS is polled.

9.1.8.2 Starting sequence number (SSN) and received block bitmap (RBB) in EGPRS TBF

The EGPRS Packet Ack/Nack message contains a starting sequence number (SSN) and a reported bitmap (RB). The EGPRS Packet Ack/Nack message is sent by the RLC receiver and is received by the RLC transmitter. The SSN and RB are determined as defined in this sub-clause and transmitted in both RLC acknowledged and RLC unacknowledged mode (note the SSN is calculated differently in EGPRS (refer to table 8.1.1.1) and GPRS (refer to 9.1.8.1)). The SSN and RB shall be ignored by the RLC receiver in unacknowledged mode.

The BSN values specified in the RB are interpreted by adding the bit position in the bitmap to the starting sequence number (SSN) modulo SNS (where the first position of the bitmap has index ‘0’). A valid BSN value in the RB 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.

9.1.8.2.1 Extended Polling

For EGPRS uplink TBFs, the network may select any composition of the Packet Ack/Nack message to send to the MS. In EGPRS downlink TBFs, an additional poll bit is added to the S/P field in every downlink RLC block so that the network can request the following:

– First Partial Bitmap (FPB) segment with SSN = (V(Q) + 1) mod SNS (the beginning of the window is V(Q) but FPB starts at V(Q) + 1 as the bit in the bitmap corresponding to V(Q) would have value ‘0’) where SSN denotes the Starting Sequence Number.

– Next Partial Bitmap (NPB) segment with SSN = (PBSN + 1) mod SNS where PBSN denotes a Partial Bitmap Sequence Number variable stored at the receiver.

SSN is determined by the receiver as a function of ES/P, V(Q) and PBSN as described in the next sub-clause. The FPB and NPB are specific instances of the EGPRS Ack/Nack Description Information Element within the Packet Downlink Ack/Nack message. The MS shall respond to ES/P field according to the table below.

Table 9.1.8.2.1.1: Format of ES/P field within each EGPRS RLC block.

ES/P

Feedback Request (Poll) Description

00

Nothing (RRBP field invalid)

01

EGPRS PACKET DOWNLINK ACK/NACK message containing FPB (First Partial Bitmap), drop channel quality report

10

EGPRS PACKET DOWNLINK ACK/NACK message containing NPB (Next Partial Bitmap), drop channel quality report

11

EGPRS PACKET DOWNLINK ACK/NACK message containing NPB and Channel Quality Report

9.1.8.2.2 Determination of SSN

If the receiving side is the network, the network may select any SSN within the receive window. If the receiving side is the MS, SSN shall be determined as follows: Let PBSN represent a Partial Bitmap Sequence Number variable stored at the receiver which helps to determine the Starting Sequence Number (SSN) for the next partial bitmap to be transmitted. Based on PBSN, V(Q) and the ES/P field set by the network, SSN and PBSN shall be determined according to Table 9.1.8.2.2.1.

Table 9.1.8.2.2.1: Determination of SSN as a function of ES/P, V(Q) and PBSN.

Full bitmap
(compressed or not)

ES/P

Determination of SSN

00

fits in available space

01,
10,
11

Set SSN = (V(Q)+1) modulo SNS

set PBSN = V(Q).

does not fit in available space

01

Set SSN = (V(Q)+1) modulo SNS,
set PBSN = last sequence number for which Ack/Nack status can be indicated in available space in PACKET DOWNLINK ACK/NACK.

10, 11

If (PBSN+1)modulo SNS =V(Q) or (PBSN+1) modulo SNS lies outside the receiver windowset SSN = (V(Q)+1) modulo SNS,
else
set SSN = (PBSN+1) modulo SNS and
set PBSN = last sequence number for which Ack/Nack status can be indicated in available space in PACKET DOWNLINK ACK/NACK.

When a next partial bitmap needs to be transmitted in response to a poll, it may turn out that (V(R)-PBSN) mod SNS is much smaller than the available space. In such cases, a larger amount of feedback can be provided as an implementation option if the receiver backtracks from PBSN and represents as much of the V(Q) to PBSN range as possible, in addition to the PBSN to V(R) range, possibly using compression. If backtracking is carried out, the SSN must be properly indicated within the Ack/Nack description in order to allow the transmitter to accurately interpret the feedback.

9.1.8.2.3 Generation of the bitmap

First, a Full Received Bitmap (FRB) is built from the receive state array V(N) by extracting the part between V(Q) and V(R) similar to the GPRS case: it is assigned the elements whose indices in the receive state array V(N) at the receiver range from [V(Q)+ 1] to [V(R) -1] (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.

From the FRB, a reported bitmap (RB) shall then be generated. The FRB shall be recalculated before each RB is generated. Different lengths of RBs exist (see sub-clause 12). For uplink TBFs, the network may transmit any RB size to the MS. For downlink TBFs, the network may order the MS to transmit a certain RB size through use of the ES/P field. The bitmap size may be selected based on e.g. risk of protocol stalling. The RB is one of the following types:

a) Uncompressed reported bitmap:

If the range of indices from SSN to the end of FRB is less than or equal to N bits, where N is the reported bitmap size, the RB starts at SSN and covers the range of indices from SSN to the end of FRB. If the range of indices from SSN to the end of FRB is greater than N bits, the RB is assigned the first N bits of the FRB starting at SSN.

b) Compressed reported bitmap:

Using the compression algorithm, the receiver generates RB of length N bits starting at SSN, where N is the reported bitmap size used.

If the compressed reported bitmap covers more blocks than the uncompressed reported bitmap, the receiver shall send the compressed reported bitmap, otherwise the receiver shall send the uncompressed reported bitmap. As an exception, if the FRB length or the range of indices from SSN to the end of FRB is less than or equal to N bits, the receiver may send the uncompressed reported bitmap without attempting compression.

The BOW (begin of window) bit shall be set if SSN = [V(Q) + 1] modulo SNS, the EOW (end of window) bit shall be set if [V(R) -1] modulo SNS is explicitly included in the bitmap.

If V(Q) equals V(R), then SSN shall be set to the value SSN = [V(Q) + 1] modulo SNS, BOW bit shall be set to the value ‘1’, EOW shall be set to the value ‘1’ and the reported bitmap size shall equal 0 bits.

For uplink TBFs, the reported bitmap is sent using the PACKET UPLINK ACK/NACK message corresponding to the used RB size.

For downlink TBFs, the reported bitmap is sent using the EGPRS PACKET DOWNLINK ACK/NACK message corresponding to the used RB size. Further, if the reported bitmap is shorter than the requested bitmap size, the MS shall include a measurement report if there is room enough.

9.1.8.2.4 Interpretation of the bitmap

If a compressed reported bitmap is received, the bitmap shall first be decompressed according to sub-clause 9.1.10. The uncompressed bitmap shall then be treated as follows:

Firstly, if the BOW bit in PACKET UPLINK/DOWNLINK ACK/NACK has the value "1", then the bitmap acknowledges all blocks between V(A) and (SSN- 2) (modulo SNS), and the corresponding elements in V(B) shall be set to the value ACKED. Also a bitmap value of ‘0’ is assumed at the bit position corresponding to (SSN-1) modulo SNS which corresponds to V(Q).

Then, for each bit in the uncompressed bitmap 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 uncompressed bitmap whose corresponding BSN is not within the transmit window, shall be ignored.

If the EOW bit in the PACKET UPLINK/DOWNLINK ACK/NACK has the value "1", , then bimap value ‘0’ shall be assumed for all RLC blocks with a BSN value higher than the last entry in the bitmap but less than V(S) (ie. [ V(R) – 1 < BSN < V(S)] modulo SNS). If the RLC transmitter is on the mobile station side, the bit contains the value ‘0’ and the number of block periods between the end of the block period used for the last transmission of the corresponding RLC data block and the beginning of the block period containing the PACKET UPLINK ACK/NACK message is less than (max(BS_CV_MAX,1) – 1) (i.e., the RLC data block was recently (re)transmitted and thus can not be validly negatively acknowledged in this particular PACKET UPLINK ACK/NACK message), the element in V(B) shall not be modified. Similarly, if the RLC transmitter is on the network side and the RLC data block cannot be validly negatively acknowledged in this particular PACKET DOWNLINK ACK/NACK message the element in V(B) shall not be modified.

9.1.9 Window Size

9.1.9.1 GPRS

For GPRS, the window size (WS) shall be 64.

9.1.9.2 EGPRS

For EGPRS the window size (WS) shall be set by the network according to the number of timeslots allocated in the direction of the TBF (uplink or downlink). The allowed window sizes are given in Table 9.1.9.2.1. Preferably, the selected window size should be the maximum, or follow the definition in Annex I.

The window size may be set independently on uplink and downlink. MS shall support the maximum window size corresponding to its multislot capability.The selected WS shall be indicated within PACKET UL/DL ASSIGNMENT and PACKET TIMESLOT RECONFIGURE using the coding defined in Table 9.1.9.2.1.

Once a window size is selected for a given MS, it may be changed to a larger size but not to a smaller size, in order to prevent dropping data blocks from the window.

In case the MS multislot class is not indicated during packet data connection establishment (short access, access request for signalling message transfer), a default window size corresponding to the minimum window size for 1 timeslot (as defined in Table 9.1.9.2.1) shall be selected.

In case a PACKET TIMESLOT RECONFIGURE is sent to the MS without any window size for a specific TBF, then any previous value received for the specific TBF shall be used or, if no previous value has been received for the specific TBF, default window size shall be used.

NOTE: If a TBF is reallocated so that the number of allocated timeslots is reduced, the RLC window size may become larger than the maximum window size for the new resources.

Table 9.1.9.2.1: Allowed window sizes in EGPRS TBF mode for different multislot allocations

Window size

Coding

Timeslots allocated (Multislot capability)

1

2

3

4

5

6

7

8

64

00000

96

00001

128

00010

160

00011

192

00100

Max

224

00101

256

00110

Max

288

00111

320

01000

352

01001

384

01010

Max

416

01011

448

01100

480

01101

512

01110

Max

544

01111

576

10000

608

10001

640

10010

Max

672

10011

704

10100

736

10101

768

10110

Max

800

10111

832

11000

864

11001

896

11010

Max

928

11011

960

11100

992

11101

1024

11110

Max

Reserved

11111

x

x

x

x

x

x

x

X

NOTE: The shaded cells represent the allowed window sizes

9.1.10 Compression

The compression algorithm is as follows. If the window size is less than the number of bits available for the bitmap, then full feedback is provided using an uncompressed bitmap. If the window size is larger than the number of bits available for the bitmap, then one-dimensional run length coding (based on ITU-T T.4) is carried out starting at SSN.

The T.4 procedure for encoding run lengths is as follows. Runs of ones and zeros alternate, and the run lengths are represented by the code words listed in the tables below. The code words for run lengths of zeros and ones are as described in T.4 except for one minor modification: the terminating code words used for indicating run lengths of 1 zero and 3 zeros are interchanged. This modification helps in achieving some throughput improvement when frequency hopping is carried out. The run length code words are of two types: terminating code words and make-up code words. Each run length is represented by either one terminating code word or one make-up code word followed by a terminating code word. Run lengths in the range 0-63 bits are encoded with their appropriate terminating code word. Run lengths greater than 63 bits are encoded first by the make-up code word which is equal to or shorter than that required. This is then followed by the terminating code word representing the difference between the required run length and the run length represented by the make-up code.

No special code words are used either at the beginning of the bitmap or the end of a bitmap. A one bit indicator (i.e., Compressed Bitmap Starting Color Code) is used to indicate whether the compressed bitmap starts with a run length of zeros or a run length of ones.

The compressed bitmap is assumed to be of length Lc (see sub-clause 12) bits. The run length encoder output is used only if a compression gain is realized; otherwise an uncompressed partial bitmap is transmitted. The compressed portion of the bitmap must end on a T.4 code word boundary which may or may not coincide with the number of bits available. In such cases, one possible implementation is to recognize the boundary of the last valid T.4 code word that fits into the available space as the end of the compressed bitmap. The rest of the bitmap is assumed to be uncompressed; the uncompressed portion of the bitmap has variable length (see sub-clause 12). Any bits representing sequence numbers V(R) or beyond in either the compressed or uncompressed portion of the bitmap must be set to 0. Implementations may use other schemes to determine the boundary between the compressed and uncompressed portions of the bitmap.

Table 9.1.10.1: Terminating codes (reproduced from ITU-T T.4); T.4 code words used for representing run lengths of 1 zero and 3 zeros are interchanged.

One run length

Code word

Zero run length

Code word

0

00110101

0

0000110111

1

000111

1

10

2

0111

2

11

3

1000

3

010

4

1011

4

011

5

1100

5

0011

6

1110

6

0010

7

1111

7

00011

8

10011

8

000101

9

10100

9

000100

10

00111

10

0000100

11

01000

11

0000101

12

001000

12

0000111

13

000011

13

00000100

14

110100

14

00000111

15

110101

15

000011000

16

101010

16

0000010111

17

101011

17

0000011000

18

0100111

18

0000001000

19

0001100

19

00001100111

20

0001000

20

00001101000

21

0010111

21

00001101100

22

0000011

22

00000110111

23

0000100

23

00000101000

24

0101000

24

00000010111

25

0101011

25

00000011000

26

0010011

26

000011001010

27

0100100

27

000011001011

28

0011000

28

000011001100

29

00000010

29

000011001101

30

00000011

30

000001101000

31

00011010

31

000001101001

32

00011011

32

000001101010

33

00010010

33

000001101011

34

00010011

34

000011010010

35

00010100

35

000011010011

36

00010101

36

000011010100

37

00010110

37

000011010101

38

00010111

38

000011010110

39

00101000

39

000011010111

40

00101001

40

000001101100

41

00101010

41

000001101101

42

00101011

42

000011011010

43

00101100

43

000011011011

44

00101101

44

000001010100

45

00000100

45

000001010101

46

00000101

46

000001010110

47

00001010

47

000001010111

48

00001011

48

000001100100

49

01010010

49

000001100101

50

01010011

50

000001010010

51

01010100

51

000001010011

52

01010101

52

000000100100

53

00100100

53

000000110111

54

00100101

54

000000111000

55

01011000

55

000000100111

56

01011001

56

000000101000

57

01011010

57

000001011000

58

01011011

58

000001011001

59

01001010

59

000000101011

60

01001011

60

000000101100

61

00110010

61

000001011010

62

00110011

62

000001100110

63

00110100

63

000001100111

Table 9.1.10.2: Make-up codes (reproduced from ITU-T T.4)

One run length

Code word

Zero run length

Code word

64

11011

64

0000001111

128

10010

128

000011001000

192

010111

192

000011001001

256

0110111

256

000001011011

320

00110110

320

000000110011

384

00110111

384

000000110100

448

01100100

448

000000110101

512

01100101

512

0000001101100

576

01101000

576

0000001101101

640

01100111

640

0000001001010

704

011001100

704

0000001001011

768

011001101

768

0000001001100

832

011010010

832

0000001001101

896

011010011

896

0000001110010

960

011010100

960

0000001110011

9.1.11 Segmentation of LLC PDUs into RLC data units

Segmentation of LLC PDUs is supported to allow transport of LLC PDUs larger than the data field of a single RLC data block. If the contents of an LLC PDU do not fill an integer number of RLC data blocks, the beginning of the next LLC PDU shall be placed within the final RLC data block of the first LLC PDU, with no padding or spacing between the end of the first LLC PDU and the beginning of the next. If the final LLC PDU in the TBF does not fill an integer number of RLC data blocks, filler octets shall be used to fill the remainder of the RLC data block.

The received (and segmented) LLC PDUs shall be put into RLC data blocks in the same order as they are received from higher layers. A Block Sequence Number (BSN) is included in the header of each RLC data block to number the RLC data block. The RLC data blocks are to be numbered consecutively, modulo SNS, to allow re-assembly of the LLC PDUs on the receiving side.

In GPRS TBF mode, 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, BSN, and CV as it had in the previous transmission.

In EGPRS TBF mode, 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 BSN and the same calculated CV as were used in the previous transmission. The modulation and coding scheme may be changed following the procedures described in sub-clause 9.3.2.1.

9.1.12 Re-assembly of LLC PDUs from RLC data units

RLC data blocks shall be collected at the receiver until all RLC data blocks comprising an LLC PDU have been received. The RLC headers shall be removed from each RLC data block at this time and the RLC data units re-assembled into an LLC PDU and passed to the next higher layer. The size of the LLC PDU delivered to the higher layer shall not exceed 1560 octets. Any octet received beyond this maximum limit and until the next identified LLC PDU boundary shall be discarded.

During RLC acknowledged mode operation, received LLC PDUs shall be delivered to the higher layer in the order in which they were originally transmitted.

During RLC unacknowledged mode operation, received LLC PDUs shall be delivered to the higher layer in the order in which they are received. Fill bits having the value ‘0’ shall be substituted for RLC data units not received. However, in EGPRS TBF mode, for erroneous RLC data blocks for which the header is correctly received, the output from decoder shall be delivered to the higher layer. The number of fill bits substituted shall be determined using Table 9.1.12. In the uplink direction the channel coding scheme shall be the commanded channel coding scheme. In the downlink direction the channel coding scheme shall be the channel coding scheme of the last correctly received RLC data block. If no RLC data blocks have been correctly received, by the mobile station the requested channel coding scheme shall be used. If no requested channel coding scheme has been sent to the network, the mobile station shall use the number of fill bits for CS-1.

Table 9.1.12.a: RLC unacknowledged mode fill bits

Channel Coding Scheme

Number of fill bits

CS-1

160

CS-2

240

CS-3

288

CS-4

400

Table 9.1.12.b: RLC unacknowledged mode fill bits

Channel Coding Scheme

Number of fill bits

MCS-1

176

MCS-2

224

MCS-3

296

MCS-4

352

MCS-5

448

MCS-6

592

MCS-7

448

MCS-8

544

MCS-9

592

9.1.12a Segmentation of RLC/MAC control messages into RLC/MAC control blocks

The network may segment RLC/MAC control messages into one or two RLC/MAC control blocks depending on the length of the RLC/MAC control message. If the contents of a control message do not fit an integer number of control blocks, filler octets shall be used to fill the remainder of the RLC/MAC control block. Only the last RLC/MAC control block containing elements of the control message shall contain filler octets. The Final Segment (FS) bit of the RLC/MAC control block header shall be set according to whether the RLC/MAC control block contains the final segment of an RLC/MAC control message.

The mobile station shall not segment RLC/MAC control messages.

NOTE: In order to provide the mobile station a Power Reduction value in a RLC/MAC control block, the network may use the segmentation mecchanism although the RLC/MAC control block requires only one RLC/MAC control blockto be transmitted. In that case the RBSN shall be set to ‘0’ and FS shall be set to ‘1’

9.1.12b Re-assembly of RLC/MAC control messages from RLC/MAC control blocks

RLC/MAC control blocks shall be collected at the receiver until all RLC/MAC control blocks comprising an RLC/MAC control message have been received.

In packet idle mode, the mobile station shall be capable of receiving eight RLC/MAC control messages in parallel. If the mobile station receives RLC/MAC control blocks containing part of a ninth RLC/MAC control message while it still has RLC/MAC control blocks for eight partially received RLC/MAC control messages, the mobile station shall discard the RLC/MAC control blocks of the oldest partially received message.

In packet transfer mode, the mobile station shall be capable of receiving two RLC/MAC control messages in parallel on the same PDCH. If the mobile station receives RLC/MAC control blocks containing part of a third RLC/MAC control message while it still has RLC/MAC control blocks for two partially received RLC/MAC control messages, the mobile station shall discard the RLC/MAC control blocks of the oldest partially received message.

The mobile station shall start an instance of timer T3200 following the receipt of an RLC/MAC control block whose RTI value does not correspond to the RTI value of a partially received RLC/MAC control message or if the RLC/MAC control blocks were received on different PDCHs. In non-DRX mode the duration of timer T3200 shall be four BS_CV_MAX block periods. In DRX mode the duration of timer T3200 shall be four times the DRX period (see 3GPP TS 03.64).

On receipt of an RLC/MAC control block containing a segment of an RLC/MAC control message such that the mobile station now has the complete RLC/MAC control message, the mobile station shall stop the corresponding instance of timer T3200.

If the mobile station discards a partially received RLC/MAC control message while the corresponding instance of timer T3200 is running, the mobile station shall stop the corresponding instance of timer T3200.

On expiry of an instance of timer T3200, the mobile station shall discard and ignore all segments of the corresponding partially received RLC/MAC control message.

Upon successful change of PDCH allocation, the mobile station shall discard all partially received RLC/MAC control messages and stop the corresponding instances of timer T3200.

The mobile station shall discard any control message segment that contains an unknown TFI.

9.1.13 Priority of LLC PDUs

The mobile station shall not transmit LLC PDUs during a TBF that have a lower Radio Priority than the priority that was used at initial access or the priority sent in the last PACKET RESOURCE REQUEST message. The mobile station may change the Radio Priority of an uplink TBF by sending a PACKET RESOURCE REQUEST message to the network (see sub-clause 8.1.1.1.2 and sub-clause 8.1.1.3.2).

9.2 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 a valid RRBP field is present in the MAC header of the RLC/MAC control block. The receiver shall not acknowledge an RLC/MAC control message except when the RLC/MAC procedures explicitly specify an acknowledgement.

Each downlink RLC/MAC control block header, if present, contains a Radio Transaction Identifier (RTI) field that is 5 bits in length and performs in effect a modulo 32 count of the downlink RLC/MAC control messages sent on a PDCH. 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 upto 32 RLC/MAC control messages in a single transmit direction therefore allowing upto 32 parallel transactions per PDCH.

The network shall not use the same RTI value at the same time on the same PDCH for two separate RLC/MAC control messages. The network may use the same RTI value at the same time on separate PDCHs. The network shall transmit both segments of a segmented control message on the same PDCH.

9.3 Operation during RLC data block transfer

The RLC ARQ functions 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. A TBF may operate in either RLC acknowledged mode or RLC unacknowledged mode.

The mobile station sets the RLC mode of the uplink TBF by setting the RLC_MODE bit to either RLC acknowledged mode or RLC unacknowledged mode in the PACKET RESOURCE REQUEST or the PACKET DOWNLINK ACK/NACK message. In a one phase access, the RLC mode defaults to RLC acknowledged mode.

The network sets the RLC mode of the downlink TBF by setting the RLC_MODE bit in the PACKET DOWNLINK ASSIGNMENT or PACKET TIMESLOT RECONFIGURE message.

9.3.1 Countdown procedure

The mobile station shall send the Countdown Value (CV) in each uplink RLC data block to indicate to the network the absolute BSN (BSN’) of the last RLC data block that will be sent in the uplink TBF. The CV shall be calculated as follows.

where:

TBC = total number of RLC data blocks that will be transmitted in the TBF,

BSN’ = absolute block sequence number of the RLC data block, with range from 0 to (TBC – 1),

NTS = number of timeslots assigned to the uplink TBF in the assignment message, with range 1 to 8,

K = 2 when commanded MCS is MCS-7, MCS-8 or MCS-9 otherwise K=1.

the function round() rounds upwards to the nearest integer,

BS_CV_MAX is a parameter broadcast in the system information,

the division operation is non-integer and results in zero only for (TBC – BSN’ – 1) = 0.

The final RLC data block transmitted in the TBF (i.e., the RLC data block with BSN’ = TBC – 1) shall have CV set to the value ‘0’. No other RLC data blocks transmitted during the TBF shall have the value ‘0’.

At the point in time the mobile station transmits the first RLC data block indicating a value of CV other than 15, the mobile station shall transmit afterwards exactly (TBC ‑ BSN’ ‑ 1) untransmitted RLC data blocks. If the mobile station receives a change in the Channel Coding Command in a PACKET UPLINK ACK/NACK message during the countdown procedure, the mobile station shall act upon the new Channel Coding Command. The mobile station shall then recalculate the CV values for any untransmitted RLC data blocks using the new RLC data block size. If the mobile station successfully completes the contention resolution procedure during one phase access and the countdown procedure is already running, the mobile station shall recalculate the CV values for any untransmitted RLC data blocks. Any data that arrive from the higher layer after the commencement of the countdown process shall be sent within a future TBF.

The mobile station may retransmit during the countdown in response to a Packet Ack/Nack or if stalled.

For fixed allocation, once the MS counts down to zero, at that point the MS forfeits its current uplink allocation and shall not transmit again using that allocation.

If the MS receives a new allocation during the countdown, the MS shall use this new allocation to the end of the countdown procedure. The network shall provide unsolicited uplink resources for any retransmissions that may be required.

When a radio block for EGPRS data transfer consists of two RLC data blocks, a CV value is calculated for each block and the CV of the RLC/MAC header refers to the second RLC data block.

9.3.2 Acknowledged mode operation

The transfer of RLC data blocks in the 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 PACKET Ack/Nack messages in order to request retransmission of RLC data blocks.

9.3.2.1 Additional functionality in acknowledged EGPRS TBF Mode

In EGPRS TBF mode, the transfer of RLC Data Blocks in the acknowledged RLC/MAC mode may be controlled by a selective type I ARQ mechanism, or by type II hybrid ARQ (Incremental Redundancy: IR) mechanism, coupled with the numbering of the RLC Data Blocks within one Temporary Block Flow.

According to the link quality, an initial Modulation and Coding Scheme (MCS) is selected for an RLC block (see note). For the retransmissions, the same or another MCS from the same family of MCSs may be selected. E.g. if MCS-7 is selected for the first transmission of an RLC block, any MCS of the family B may be used for the retransmissions. Further, RLC data blocks initially transmitted with MCS4, MCS-5, MCS-6, MCS-7, MCS-8 or MCS-9, may be retransmitted with MCS-1, MCS-2 or MCS-3 as appropriate, by sending the different parts of the RLC data block in different radio blocks. In this case, the split block field in the header shall be set to indicate that the RLC data block is split, and the order of the two parts. For blocks initially transmitted with MCS-8 which are retransmitted using MCS-6 or MCS-3, padding with all zeroes of the first six octets shall be applied as described in Annex J and the CPS field shall be set to indicate that this has been done. However, if the transmitter side is the MS and the RESEGMENT bit is not set, the mobile station shall use an MCS within the same family as the initial MCS without splitting the payload (refer to sub-clause 8.1.1 table 8.1.1.1) for retransmission.

In case an RLC data block originally transmitted using MCS-8 is retransmitted using two MCS-3 RLC/MAC blocks, the CPS field of the first MCS-3 RLC/MAC block shall indicate MCS-3 with padding while the CPS field of the second MCS-3 RLC/MAC block shall indicate either MCS-3 with padding or MCS-3 without padding.

The selection of MCS is controlled by the network.

The RLC data blocks shall first be sent with one of the initial code rates (i.e., the rate 1/3 encoded data is punctured with the Puncturing Scheme (PS) 1 of the selected MCS). If the RLC data block needs to be retransmitted, additional coded bits (i.e., the output of the rate 1/3 encoded data which is punctured with PS 2 of the prevailing MCS) shall be sent. If all the codewords (different punctured versions of the encoded data block) have been sent, the procedure shall start over and the first codeword (which is punctured with PS 1) shall be sent followed by PS 2 etc. RLC data blocks which are retransmitted using a new MCS shall at the first transmission after the MCS switch be sent with the puncturing scheme indicated in the table below.

Table 9.3.2.1.1: RLC data blocks re-transmitted in new MCS

MCS
switched from

MCS
switched to

PS of last transmission before MCS switch

PS of first transmission after MCS switch

MCS-9

MCS-6

PS 1 or PS 3

PS 1

PS 2

PS 2

MCS-6

MCS-9

PS 1

PS 3

PS 2

PS 2

MCS-7

MCS-5

any

PS 1

MCS-5

MCS-7

any

PS 2

all other combinations

any

PS 1

This procedure allows the receiver to operate either in type I or type II hybrid ARQ mode. In the type I ARQ mode, decoding of an RLC data block is solely based on the prevailing transmission (i.e. erroneous blocks are not stored). In the type II ARQ case, erroneous blocks are stored by the receiver and a joint decoding with new transmissions is done. If the memory for IR operation run out in the MS, the MS shall indicate this by setting the MS OUT OF MEMORY bit in the EGPRS PACKET DOWNLINK ACK/NACK message (see note). For uplink TBFs, the network may implicitly set the type I mode by ordering the MS to use a specific MCS and setting the RESEGMENT bit or type II mode by ordering the MS to use a specific MCS and not setting the RESEGMENT bit.

Type II hybrid ARQ is mandatory in EGPRS MS receivers and the associated performance requirements are specified in 3GPP TS 05.05/3GPP TS 05.09. Furthermore, it is mandatory for an EGPRS MS receiver to be able to perform joint decoding among blocks with different MCSs if the combination of MCSs is one of the following:

– MCS-5 and MCS-7,

– MCS-6 and MCS-9.

NOTE: The MCS selection may take the IR capability of the receiver into account, for example by using a less robust MCS for a given channel quality.

9.3.2.2 Establishment of Temporary Block Flow

The establishment of a TBF occurs as described in clause 7. RLC functions related to the ARQ function shall not operate until RLC data block transfer has been initiated.

If the last uplink TBF ended with an incompletely transmitted LLC PDU or any unacknowledged LLC PDUs, the mobile station shall begin transmission on the new TBF with the oldest unacknowledged LLC PDU.

9.3.2.3 Operation of uplink Temporary Block Flow

The mobile station shall transmit an RLC/MAC block in each assigned uplink data block. RLC/MAC control blocks have preference to RLC data blocks, i.e., temporarily replacing the PDTCH with PACCH.

The network shall send PACKET UPLINK ACK/NACK messages when needed.

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 UPLINK ACK/NACK message that makes V(S) < V(A) + WS. If timer T3182 expires, the mobile station shall decrement counter N3102 by PAN_DEC, and perform an abnormal release with access retry (see sub-clause 8.7.2).

Whenever the mobile station receives a PACKET UPLINK ACK/NACK message that allows the advancement of V(S) or V(A), the mobile station shall increment N3102 by PAN_INC, however N3102 shall never exceed the value PAN_MAX. Upon cell reselection the mobile station shall set counter N3102 to the value PAN_MAX. When N3102 ≤ 0 is reached, the mobile station shall perform an abnormal release with cell re-selection (see sub-clause 9.4.2). If PAN_DEC, PAN_INC, or PAN_MAX are set to the value 0, counter N3102 shall be disabled.

A mobile station operating with a fixed or exclusive allocation shall start or restart timer T3184 upon reception of a PACKET UPLINK ACK/NACK message. If timer T3184 expires, the mobile station shall perform an abnormal release with access retry (see sub-clause 9.4.2).

9.3.2.4 Release of uplink Temporary Block Flow

The mobile station initiates release of the uplink TBF by beginning the countdown process (see sub-clause 9.3.1). When the mobile station has sent the RLC data block with CV = 0 and there are no elements in the V(B) array set to the value Nacked, it shall start timer T3182. The mobile station shall continue to send RLC data blocks on each assigned uplink data block, according to the algorithm defined in sub-clause 9.1.3.

If the network has received all RLC data blocks when it detects the end of the TBF (i.e. when CV=0 and V(Q) = V(R)), it shall send the PACKET UPLINK ACK/NACK message with the Final Ack Indicator bit set to ‘1’, include a valid RRBP field in the RLC/MAC control block header and clear counter N3103. The network may use the TBF Est field in the PACKET UPLINK ACK/NACK message to allow the mobile station to request the establishment of new TBF.

If the network has not received all of the RLC data blocks when it detects the end of the TBF, it shall send a PACKET UPLINK ACK/NACK message to the mobile station and if necessary allocate sufficient uplink resources for the mobile station to retransmit the required RLC data blocks.

Upon reception of a PACKET UPLINK ACK/NACK message the mobile station shall stop timer T3182.

If the PACKET UPLINK ACK/NACK message has the Final Ack Indicator bit set to ‘1’ and the following conditions are fulfilled: TBF Est field is set to ‘1’; the mobile station has new data to transmit; the mobile station has no ongoing downlink TBF; and the mobile station is not assigned to operate in half duplex mode or the mobile station is assigned to operate in half duplex mode and the mobile station has not received downlink assignment during the countdown or while timer T3182 was running, the mobile station shall release the TBF and may request the establishment of new TBF using one of the following procedures:

– If Control Ack Type parameter in System Information indicates acknowledgement is access burst, the mobile station shall transmit the PACKET CONTROL ACKNOWLEDGEMENT message with the Ctrl Ack bits set to ’00’. The mobile station shall start timer T3168 and continue to monitor the PDCH used for transmitting the PACKET CONTROL ACKNOWLEDGEMENT message. The mobile station shall stop timer T3168 upon reception of the PACKET UPLINK ASSIGNMENT message including Single Block Allocation structure or the PACKET ACCESS REJECT message. The mobile station shall use the same procedures as are used for TBF establishment using two phase access described in 7.1.3 starting from the point where the mobile station receives the PACKET UPLINK ASSIGNMENT message including Single Block Allocation structure or the PACKET ACCESS REJECT message.

– If Control Ack Type parameter in System Information indicates acknowledgement is RLC/MAC control block, the mobile station shall transmit the PACKET RESOURCE REQUEST message and start timer T3168. The mobile station shall use the same procedures as are used for TBF establishment using two phase access described in 7.1.3 starting from the point where the mobile station transmits the PACKET RESOURCE REQUEST message.

If the PACKET UPLINK ACK/NACK message has the Final Ack Indicator bit set to ‘1’ and the mobile station does not initiate the establishment of a new uplink TBF according to one of the procedures described above, the mobile station shall transmit the PACKET CONTROL ACKNOWLEDGEMENT message and release the TBF. If the mobile station is operating in half duplex mode and received a downlink assignment during the countdown or while timer T3182 was running, it shall then act on the downlink assignment. If there is no ongoing downlink TBF, the mobile station in packet transfer mode shall return to packet idle mode; the mobile station in dual transfer mode shall return to dedicated mode. The DRX mode procedures shall be applied as specified in sub-clause 5.5.1.5.

If the PACKET UPLINK ACK/NACK message requests retransmission of RLC data blocks, the mobile station shall if necessary wait for allocation of uplink resources and then retransmit the RLC data blocks requested. The mobile station shall then start timer T3182 and wait for a PACKET UPLINK ACK/NACK message as above.

If the mobile station is operating in half duplex mode and received a downlink assignment during the countdown or while timer T3182 was running, and then T3182 expires, the mobile station shall then immediately act on the downlink assignment and then request an uplink TBF via the PACKET DOWNLINK ACK/NACK. Otherwise, if timer T3182 expires the mobile station shall perform an abnormal release with access retry (see sub-clause 8.7.2).

When the network receives the PACKET CONTROL ACKNOWLEDGEMENT message or the PACKET RESOURCE REQUEST message in the radio block indicated by the RRBP field, it may reuse the TFI and USF resources.

If the network receives the PACKET CONTROL ACKNOWLEDGEMENT message with Ctrl Ack bits set to ’00’ or the PACKET RESOURCE REQUEST message in the radio block indicated by the RRBP field and the network has set the TBF Est field to ‘1’ in the PACKET UPLINK ACK/NACK message, the network shall follow one of the following procedures:

– In case the mobile station requested the establishment of new TBF with the PACKET CONTROL ACKNOWLEDGEMENT message, the network shall respond to the mobile station with the PACKET UPLINK ASSIGNMENT message including Single Block Allocation structure or the PACKET ACCESS REJECT message on the same PDCH as the mobile station has sent the PACKET CONTROL ACKNOWLEDGEMENT message. TLLI shall be used to identify the mobile station. The network shall use the same procedures as are used for TBF establishment using two phase access described in 7.3.1 starting from the point where the network transmits the PACKET UPLINK ASSIGNMENT message including Single Block Allocation structure or the PACKET ACCESS REJECT message.

– In case the mobile station requested the establishment of new TBF with the PACKET RESOURCE REQUEST message, the network shall use the same procedures as are used for TBF establishment using two phase access described in 7.3.1 starting from the point where the network has received the PACKET RESOURCE REQUEST message. TLLI shall be used to identify the mobile station.

If the network does not receive the PACKET CONTROL ACKNOWLEDGEMENT message or the PACKET RESOURCE REQUEST message in the radio block indicated by the RRBP field, it shall increment counter N3103 and retransmit the PACKET UPLINK ACK/NACK message. If counter N3103 exceeds its limit, the network shall start timer T3169. When timer T3169 expires the network may reuse the TFI and USF resources.

9.3.2.5 Operation of downlink Temporary Block Flow

The mobile station receives RLC/MAC blocks on the assigned downlink PDCHs. On each assigned PDCH, the mobile station shall in the RLC header identify the TFI and decode the RLC data blocks intended for the mobile station. The operation during the TBF shall be as defined in sub-clause 9.1.

9.3.2.6 Release of downlink Temporary Block Flow

The network initiates the release of a downlink TBF by sending an RLC data block with the Final Block Indicator (FBI) set to the value ‘1’ and with a valid RRBP field. The RLC data block sent must have the highest BSN’ (see sub-clause 9.3.1) of the downlink TBF. The network shall start timer T3191. While timer T3191 is running the network may retransmit the RLC data block with the FBI bit set to the value ‘1’. For each retransmission the timer T3191 is restarted.

In EGPRS TBF mode, if the final RLC data block is split for retransmission over two radio blocks (see sub-clause 9.3.2.1), the network shall set the FBI to the value ‘1’ in each part of the retransmitted RLC data block.

If the mobile station receives an RLC data block (or, in EGPRS TBF mode, a part of a retransmitted RLC data block) with the FBI bit set the value ‘1’ and with a valid RRBP field, the mobile station shall transmit a PACKET DOWNLINK ACK/NACK message in the specified uplink block. The mobile station shall continue to monitor all assigned PDCHs.

Whenever the mobile station receives an RLC data block (or, in EGPRS TBF mode, a part of a retransmitted RLC data block) with a valid RRBP and the mobile station has received all RLC data blocks of the TBF, the mobile station shall send the PACKET DOWNLINK ACK/NACK message with the Final Ack Indicator bit set to ‘1’, stop timer T3190 and start or restart timer T3192.

In GPRS TBF mode, if the mobile station receives more than one RLC data block with the FBI set to ‘1’, it shall accept the data from only the first one of these blocks.

If the network receives a PACKET DOWNLINK ACK/NACK message before timer T3191 expires, and if retransmissions are required, then the network stops timer T3191 and retransmits necessary RLC data blocks according to the ARQ protocol before re-initiating the release of the downlink TBF. The FBI is set to ‘1’ only if the RLC data block with the highest BSN’ of the TBF is retransmitted. If no retransmission is required, the network shall stop timer T3191 and start or restart timer T3193. When T3193 expires the network shall release the TBF.

If timer T3191 expires, then the network shall release the TBF.

If the network has received the PACKET DOWNLINK ACK/NACK message with the Final Ack Indicator bit set to ‘1’ and has new data to transmit for the mobile station, the network may establish a new downlink TBF for the mobile station by sending the PACKET DOWNLINK ASSIGNMENT or PACKET TIMESLOT RECONFIGURE message with the Control Ack bit set to ‘1’ on PACCH. In case the network establishes a new downlink TBF for the mobile station, the network shall stop timer T3193.

If the mobile station, after sending the PACKET DOWNLINK ACK/NACK message with the Final Ack Indicator bit set to ‘1’, receives a PACKET DOWNLINK ASSIGNMENT or PACKET TIMESLOT RECONFIGURE message with the Control Ack bit set to ‘1’ while timer T3192 is running, the mobile station shall stop timer T3192, consider the previous downlink TBF released and act upon the new assignment.

When timer T3192 expires the mobile station shall release the downlink TBF. If the mobile station is operating in half duplex mode and received an uplink assignment during the TBF release procedure, the mobile station shall then immediately act upon the uplink assignment. If there is no ongoing uplink TBF, the mobile station in packet transfer mode shall return to packet idle mode; the mobile station in dual transfer mode shall return to dedicated mode. The DRX mode procedures shall be applied, as specified in sub-clause 5.5.1.5.

9.3.3 Unacknowledged mode operation

The transfer of RLC data blocks in the RLC unacknowledged mode does not include any retransmissions, except during the release of an uplink TBF where the last transmitted uplink block may be retransmitted (see sub-clause 9.3.3.3). The block sequence number (BSN) in the RLC data block header is used to number the RLC data blocks for reassembly. The receiving side sends Packet Ack/Nack messages in order to convey the necessary other control signalling (e.g. monitoring of channel quality for downlink transfer or timing advance correction for uplink transfers).

9.3.3.1 Establishment of Temporary Block Flow

If the last uplink TBF ended with an incompletely transmitted LLC PDU, the mobile station shall begin transmission on the new TBF with the last incompletely transmitted LLC PDU.

9.3.3.2 Operation of uplink Temporary Block Flow

The network shall send PACKET UPLINK ACK/NACK messages when needed.

The mobile station shall set the Stall indicator (SI) bit to ‘0’ in all RLC data blocks.

If the mobile station transmits the number of RLC data blocks corresponding to the RLC window size (WS),without receiving a Packet Ack/Nack message the mobile station shall start timer T3182. Timer T3182 shall be stopped upon reception of a PACKET UPLINK ACK/NACK message. If timer T3182 expires, the mobile station shall decrement counter N3102 by PAN_DEC, and perform an abnormal release with access retry (see sub-clause 8.7.2).

Whenever the mobile station receives a PACKET UPLINK ACK/NACK message, the mobile station shall increment N3102 by PAN_INC, however N3102 shall never exceed the value PAN_MAX. Upon cell reselection the mobile station shall set counter N3102 to the value PAN_MAX. When N3102 ≤ 0 is reached, the mobile station shall perform an abnormal release with cell re-selection (see sub-clause 9.4.2). If PAN_DEC, PAN_INC, or PAN_MAX are set to the value 0, counter N3102 shall be disabled.

A mobile station operating with a fixed or exclusive allocation shall start or restart timer T3184 upon reception of a PACKET UPLINK ACK/NACK message. If timer T3184 expires, the mobile station shall perform an abnormal release with access retry (see sub-clause 9.4.2).

9.3.3.3 Release of uplink Temporary Block Flow

The mobile station initiates release of the uplink TBF by beginning the countdown process (see sub-clause 9.3.1). It indicates the end of the TBF by setting the CV value to 0 and starts timer T3182.

If the mobile station is operating in half duplex mode and receives a downlink assignment during the countdown, it shall continue the countdown until complete and then immediately act on the downlink assignment.

When the network detects the end of the TBF (i.e. when CV=0) it shall send a PACKET UPLINK ACK/NACK message with the Final Ack Indicator bit set to ‘1’, include a valid RRBP field in the RLC/MAC control block header and clear counter N3103. The network may use the TBF Est field in the PACKET UPLINK ACK/NACK message to allow the mobile station to request the establishment of new TBF.

In case the network receives multiple blocks with CV=0, only the first needs to be acknowledged with PACKET UPLINK ACK/NACK message.

Upon reception of a PACKET UPLINK ACK/NACK message the mobile station shall stop timer T3182.

If the PACKET UPLINK ACK/NACK message has the Final Ack Indicator bit set to ‘1’ and the mobile station does not initiate the establishment of a new uplink TBF according to one of the procedures described below, the mobile station shall transmit the PACKET CONTROL ACKNOWLEDGEMENT message and release the TBF. If the mobile station is operating in half duplex mode and received a downlink assignment during the countdown or while timer T3182 was running, it shall then act on the downlink assignment. If there is no ongoing downlink TBF, the mobile station in packet transfer mode shall enter packet idle mode; the mobile station in dual transfer mode shall return to dedicated mode. The DRX mode procedures shall be applied, as specified in sub-clause 5.5.1.5.

If the PACKET UPLINK ACK/NACK message has the Final Ack Indicator bit set to ‘1’ and the following conditions are fulfilled: TBF Est field is set to ‘1’; the mobile station has new data to transmit; the mobile station has no ongoing downlink TBF; and the mobile station is not operating in half duplex mode or the mobile station is operating in half duplex mode and the mobile station has not received downlink assignment during the countdown, the mobile station shall release the TBF and may request the establishment of new TBF using one of the following procedures:

– If Control Ack Type parameter in System Information indicates acknowledgement is access burst, the mobile station shall transmit the PACKET CONTROL ACKNOWLEDGEMENT message with the Ctrl Ack bits set to ’00’. The mobile station shall start timer T3168 and continue to monitor the PDCH used for transmitting the PACKET CONTROL ACKNOWLEDGEMENT message. The mobile station shall stop timer T3168 upon reception of the PACKET UPLINK ASSIGNMENT message including Single Block Allocation structure or the PACKET ACCESS REJECT message. The mobile station shall use the same procedures as are used for TBF establishment using two phase access described in 7.1.3 starting from the point where the mobile station receives the PACKET UPLINK ASSIGNMENT message including Single Block Allocation structure or the PACKET ACCESS REJECT message.

– If Control Ack Type parameter in System Information indicates acknowledgement is RLC/MAC control block, the mobile station shall transmit the PACKET RESOURCE REQUEST message and start timer T3168. The mobile station shall use the same procedures as are used for TBF establishment using two phase access described in 7.1.3 starting from the point where the mobile station transmits the PACKET RESOURCE REQUEST message.

If the PACKET UPLINK ACK/NACK message does not have the Final Ack Indicator bit set to ‘1’, the mobile station shall repeat sending the last block with CV=0, until a PACKET UPLINK ACK/NACK message with Final Ack Indicator bit set to ‘1’ is received. Upon each retransmission of the last block with CV=0, the mobile station shall restart timer T3182. The block with CV=0 shall not be retransmitted more than four times. If the medium access mode is dynamic allocation, the repetitions are transmitted when the mobile station is scheduled USFs. If fixed allocation is used, the mobile station shall transmit the repetitions within any remaining allocated uplink blocks. If timer T3182 expires the mobile station shall release the TBF as if a PACKET UPLINK ACK/NACK message was received.

When the network receives the PACKET CONTROL ACKNOWLEDGEMENT message or the PACKET RESOURCE REQUEST message in the radio block indicated by the RRBP field, it may reuse the TFI and USF resources.

If the network receives the PACKET CONTROL ACKNOWLEDGEMENT message with Ctrl Ack bits set to ’00’ or the PACKET RESOURCE REQUEST message in the radio block indicated by the RRBP field and the network has set the TBF Est field to ‘1’ in the PACKET UPLINK ACK/NACK message, the network shall follow one of the following procedures:

– In case the mobile station requested the establishment of new TBF with the PACKET CONTROL ACKNOWLEDGEMENT message, the network shall respond to the mobile station with the PACKET UPLINK ASSIGNMENT message including Single Block Allocation structure or the PACKET ACCESS REJECT message on the same PDCH as the mobile station has sent the PACKET CONTROL ACKNOWLEDGEMENT message. TLLI shall be used to identify the mobile station. The network shall use the same procedures as are used for TBF establishment using two phase access described in 7.3.1 starting from the point where the network transmits the PACKET UPLINK ASSIGNMENT message including Single Block Allocation structure or the PACKET ACCESS REJECT message.

– In case the mobile station requested the establishment of new TBF with the PACKET RESOURCE REQUEST message, the network shall use the same procedures as are used for TBF establishment using two phase access described in 7.3.1 starting from the point where the network has received the PACKET RESOURCE REQUEST message. TLLI shall be used to identify the mobile station.

If the network does not receive the PACKET CONTROL ACKNOWLEDGEMENT message or the PACKET RESOURCE REQUEST message in the radio block indicated by the RRBP field, it shall increment counter N3103 and retransmit the PACKET UPLINK ACK/NACK message. If counter N3103 exceeds its limit, the network shall start timer T3169. When timer T3169 expires the network may reuse the TFI and USF resources.

9.3.3.4 Operation of downlink Temporary Block Flow

The mobile station receives RLC/MAC blocks on the assigned downlink PDCHs. On each assigned PDCH, the mobile station shall in the RLC header identify the TFI and decode the RLC data blocks intended for the mobile station. The operation during the TBF shall be as defined in sub-clause 9.1.

9.3.3.5 Release of downlink Temporary Block Flow

The network initiates the release of a downlink TBF by sending an RLC data block with the Final Block Indicator (FBI) set to the value ‘1’ and with a valid RRBP field. The RLC data block sent must have the highest BSN’ (see sub-clause 9.3.1) of the downlink TBF. The network shall start timer T3191. The network may retransmit the last block with FBI set to the value ‘1’ and with a valid RRBP field. For each retransmission the timer T3191 is restarted.

For each RLC data block with the FBI bit set to ‘1’ and with a valid RRBP field, the mobile station shall transmit the PACKET CONTROL ACKNOWLEDGEMENT message in the uplink block specified by the RRBP field. The mobile station shall continue to read the assigned downlink PDCHs until the block period pointed to by the RRBP. If the mobile station receives more than one RLC data block with the FBI bit set to ‘1’ and with valid RRBP fields that point the same uplink block period, the mobile station shall transmit the PACKET CONTROL ACKNOWLEDGEMENT message only once. The mobile station shall then stop timer T3190, start timer T3192 and continue to monitor all assigned downlink PDCHs. If the mobile station then receives a subsequent RLC data block with a valid RRBP and the FBI bit set to ‘1’, the mobile station shall retransmit the PACKET CONTROL ACKNOWLEDGEMENT message and restart timer T3192.

In GPRS TBF mode, if the mobile station receives more than one RLC data block with the FBI set to ‘1’, it shall accept the data from only the first one of these blocks.

If the network receives the PACKET CONTROL ACKNOWLEDGEMENT message before timer T3191 expires, the network shall stop timer T3191 and start or restart timer T3193. When T3193 expires the network shall release the TBF.

If timer T3191 expires, the network shall release the TBF.

If the network has received the PACKET CONTROL ACKNOWLEDGEMENT message and has new data to transmit for the mobile station, the network may establish a new downlink TBF for the mobile station by sending the PACKET DOWNLINK ASSIGNMENT or PACKET TIMESLOT RECONFIGURE message with the Control Ack bit set to ‘1’ on PACCH. In case the network establishes a new downlink TBF for the mobile station, the network shall stop timer T3193.

If the mobile station, after sending the PACKET CONTROL ACKNOWLEDGEMENT message, receives a PACKET DOWNLINK ASSIGNMENT or PACKET TIMESLOT RECONFIGURE message with the Control Ack bit set to ‘1’ while timer T3192 is running, the mobile station shall stop timer T3192, consider the previous downlink TBF released and act upon the new assignment.

When timer T3192 expires the mobile station shall release the downlink TBF. If the mobile station is operating in half duplex mode and received an uplink assignment during the TBF release procedure, the mobile station shall then immediately act upon the assignment. If there is no ongoing uplink TBF the mobile station in packet transfer mode shall enter packet idle mode; the mobile station in dual transfer mode shall return to dedicated mode. The DRX mode procedures shall be applied as specified in sub-clause 5.5.1.5.

9.4 Abnormal release cases

9.4.1 Abnormal release with access retry

The procedure for abnormal release with access retry is defined in sub-clause 8.7.2.

9.4.2 Abnormal release with cell reselection

If access in another cell is allowed (i.e., RANDOM_ACCESS_RETRY = 1) and the mobile station is not in dedicated mode of a circuit switched connection, the mobile station shall abort all TBFs in progress and return to packet idle mode. The mobile station shall perform an abnormal cell reselection (see 3GPP TS 05.08) and initiate the establishment of an uplink TBF, using the procedures on CCCH or PCCCH as defined in sub-clause 7.1 on the new cell. The mobile station shall not reselect back to the original cell for T_RESEL seconds if another suitable cell is available.

If the abnormal cell reselection is abandoned (see 3GPP TS 05.08), the mobile station shall report an RLC/MAC failure to upper layers. If the mobile station remains in the cell where the abnormal release occurred, the DRX mode procedures shall be applied, as specified in sub-clause 5.5.1.5.

If access in another cell is not allowed (i.e., RANDOM_ACCESS_RETRY = 0), or the mobile station is in dedicated mode of a circuit switched connection (applies in GPRS class A mode of operation), the mobile station shall perform an abnormal release without retry, defined in sub-clause 8.7.1.

The parameters RANDOM_ACCESS_RETRY and T_RESEL (default value 5 seconds) are broadcast in PSI 3.