2G/GSM

 

 

 

 

RLC/MAC

 

In this page, I will show you various RLC block structure and examples of real data and decoded result. The best practice would be for you to decode the give HEX string yourself and compare it with the decoded result shown in this page.

 

 

RLC Block Structure - Downlink RLC data block

 

 

< 44.060 - Figure 10.2.1.1: Downlink RLC data block with MAC header >

 

< 44.060 - Table 10.4.7.1: Payload Type field >

 

< 44.060 - Table 10.4.5.1: Relative Reserved Block Period (RRBP) field (FANR not activated) >

 

< 44.060 - Table 10.4.4.1: Supplementary/Polling (S/P) bit - GPRS case and RLC/MAC control >

 

< 44.060 - 10.4.1 Uplink state flag (USF) field >

The USF field is sent in all downlink RLC/MAC blocks and indicates the owner or use of the next uplink radio block on the same timeslot (see 3GPP TS 45.002). The USF field is three bits in length and eight different USF values can be assigned, except on PCCCH, where the value '111' (USF=FREE) indicates that the corresponding uplink radio block contains PRACH.

 

< 44.060 - Table 10.4.10a.1: Power Reduction (PR) field >

 

< 44.060 - 10.4.10 Temporary Flow Identity (TFI) field >

In the header of an RLC/MAC block for data transfer, the TFI identifies the Temporary Block Flow (TBF) to which the RLC data block belongs. For the downlink and the uplink TFI the TFI field is 5 bits in length and are encoded as a binary number with range 0 to 31. If present, this field indicates the mobile station to which the control message is addressed; all other mobile stations shall analyse the distribution contents, depending on their protocol state

 

< 44.060 - Table 10.4.8.1: Final block indicator bit >

 

< 44.060 - 10.4.12 Block Sequence Number (BSN) field >

The Block Sequence Number (BSN) field carries the sequence absolute Block Sequence Number (BSN') modulo Sequence Number Space (SNS)

  • In EC-EGPRS, the BSN is 5 bits in length and is encoded as a binary number with range 0 to 31.
  • In GPRS, the BSN is 7 bits in length and is encoded as a binary number with range 0 to 127.
  • In EGPRS, or in a DLMC configuration where a SNS of 2048 is used (see sub-clause 5.13), the BSN is 11 bits in length and is encoded as a binary number with range 0 to 2 047.
  • In a DLMC configuration where a SNS of 8192 is used (see sub-clause 5.13), the BSN is 13 bits in length and is encoded as a binary number with range 0 to 8191.

 

< 44.060 - Table 10.4.13.1: M bit and E bit >

 

 

Example 01 > A Downlink DPTCH

 

L3 -> LLC (LL_UNIDATA_REQ) : 08 12 00 10 21 36 36 33 35 36 32 38 37 33 36 36 33 35 36 32 38 80 28 10 36 32 37 3E 30 3B 00 00 36 37 31 36 32 37 3E 30

 

LLC -> R/M (GRR_DATA_REQ): 41 C0 01 08 12 00 10 21 36 36 33 35 36 32 38 37 33 36 36 33 35 36 32 38 80 28 10 36 32 37 3E 30 3B 00 00 36 37 31 36 32 37 3E 30 2C 18 61

 

RM -> PHY (PH_DATA_REQ - Seg 1) : 00 00 01 41 C0 01 08 12 00 10 21 36 36 33 35 36 32 38 37 33 36 36 33 35 36 32 38 80 28 10 36 32 37 3E 30 3B 00 00 36 00

 

RM -> PHY (PH_DATA_REQ - Seg 2) : 08 01 02 29 37 31 36 32 37 3E 30 2C 18 61 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 00

 

Now let's decode RLC/MAC block of Segmemnt 1.

 

PH_DATA_REQ - Seg 1 : 00 00 01 41 C0 01 08 12 00 10 21 36 36 33 35 36 32 38 37 33 36 36 33 35 36 32 38 80 28 10 36 32 37 3E 30 3B 00 00 36 00

 

DLT: 147, Payload: gsm_rlcmac_dl (Radio Link Control, Medium Access Control, 3GPP TS44.060)

GPRS DL DATA (CS1)

    DL_Data_Mac_Header

        00.. .... = Payload Type (DL): RLC/MAC block contains an RLC data block (0)

        ..00 .... = RRBP: Reserved Block: (N+13) mod 2715648 (0)

        .... 0... = S/P: RRBP field is not valid

        .... .000 = USF: 0

    00.. .... = PR: 0 dB (included) to 3 dB (excluded) less than BCCH level - P0 (0)

    ..00 000. = DL TFI: 0

    .... ...0 = FBI: Current Block is not last RLC data block in TBF

    0000 000. = BSN: 0

    .... ...1 = Extension: No extension octet follows

    data segment: LI not present:

 The Upper Layer PDU in the current RLC data block either fills the current RLC data block precisely or continues in the following in-sequence RLC data block

        Data (37 bytes)

 

0000  41 c0 01 08 12 00 10 21 36 36 33 35 36 32 38 37   A......!66356287

0010  33 36 36 33 35 36 32 38 80 28 10 36 32 37 3e 30   36635628.(.627>0

0020  3b 00 00 36 00                                    ;..6.

            Data: 41c001081200102136363335363238373336363335363238...

            [Length: 37]

 

 

Now let's decode RLC/MAC block of Segmemnt 2.

 

PH_DATA_REQ - Seg 2 : 08 01 02 29 37 31 36 32 37 3E 30 2C 18 61 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 00

 

DLT: 147, Payload: gsm_rlcmac_dl (Radio Link Control, Medium Access Control, 3GPP TS44.060)

GPRS DL DATA (CS1)

    DL_Data_Mac_Header

        00.. .... = Payload Type (DL): RLC/MAC block contains an RLC data block (0)

        ..00 .... = RRBP: Reserved Block: (N+13) mod 2715648 (0)

        .... 1... = S/P: RRBP field is valid

        .... .000 = USF: 0

    00.. .... = PR: 0 dB (included) to 3 dB (excluded) less than BCCH level - P0 (0)

    ..00 000. = DL TFI: 0

    .... ...1 = FBI: Current Block is last RLC data block in TBF

    0000 001. = BSN: 1

    .... ...0 = Extension: Extension octet follows immediately

    0010 10.. = Length Indicator: 10

    .... ..01 = ME: no more LLC segments in this RLC block after the current segment, no more extension octets (1)

    .... ...1 = Extension: No extension octet follows

    data segment: LI[0]=10 indicates: (Last segment of) LLC frame (10 octets)

        Data (10 bytes)

 

0000  37 31 36 32 37 3e 30 2c 18 61                     71627>0,.a

            Data: 37313632373e302c1861

            [Length: 10]

    Padding Octets

        Data (26 bytes)

 

0000  2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b   ++++++++++++++++

0010  2b 2b 2b 2b 2b 2b 2b 2b 2b 00                     +++++++++.

            Data: 2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b...

            [Length: 26]

 

 

RLC Block Structure - Uplink RLC data block

 

< 44.060 - Figure 10.2.2.1: Uplink RLC data block with MAC header >

 

< 44.060 - Table 10.4.7.1: Payload Type field >

    NOTE 1: The field mapping convention for GPRS (sub-clause 10.0b.3.1) applies. According to that, in particular regarding the TLLI field, the most significant byte of the TLLI value shall be mapped on octet M+1 and the least significant byte of the TLLI value shall be mapped on octet M+4 of the uplink RLC data block.

    NOTE 2: This octet is only included if the value of the first instance of the Length indicator in the RLC data block is 62.

 

< 44.060 - 10.4.6 Countdown Value (CV) field >

The Countdown Value (CV) field is sent by the mobile station to allow the network to calculate the number of RLC data blocks remaining for the current uplink RLC entity. The CV field is 4 bits in length and is encoded as a binary number with range 0 to 15.

 

< 44.060 - Table 10.4.3.1: Stall indicator bit >

 

< 44.060 - Table 10.4.19.1: PFI Indicator (PI) bit >

 

< 44.060 - 10.4.10 Temporary Flow Identity (TFI) field >

In the header of an RLC/MAC block for data transfer, the TFI identifies the Temporary Block Flow (TBF) to which the RLC data block belongs. For the downlink and the uplink TFI the TFI field is 5 bits in length and are encoded as a binary number with range 0 to 31. If present, this field indicates the mobile station to which the control message is addressed; all other mobile stations shall analyse the distribution contents, depending on their protocol state

 

< 44.060 - Table 10.4.9.1: TLLI Indicator (TI) bit>

 

< 44.060 - 10.4.20 Packet Flow Identifier (PFI) field >

The PFI field contains a PFI value encoded as the contents of the PFI information element as defined in 3GPP TS 44.018. The use of PFI is not supported in EC-EGPRS operation.

 

 

RLC Block Structure - Uplink RLC/MAC control block  

 

< 44.060 - Figure 10.3.2.1: Uplink RLC/MAC control block together with its MAC header >

 

< 44.060 - 10.4.17 Control message contents field >

The Control message contents field shall contain exactly one segment from one RLC/MAC control message field (i.e. RLC/MAC control block).

 

Example 01 > U_PACCH (GRR_CONTROL_IND)  

 

GRR_CONTROL_IND : 40 07 00 00 02 03 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B

 

DLT: 147, Payload: gsm_rlcmac_ul (Radio Link Control, Medium Access Control, 3GPP TS44.060)

GSM RLC/MAC: PACKET_CONTROL_ACKNOWLEDGEMENT (1) (Uplink)

    01.. .... = Payload Type (UL): RLC/MAC block contains an RLC/MAC control block that does not include the optional octets of the RLC/MAC control header (1)

    ..00 000. = spare: 0

    .... ...0 = R: MS sent channel request message once

    0000 01.. = MESSAGE_TYPE (UL): PACKET_CONTROL_ACKNOWLEDGEMENT (1)

    .... ..11  0000 0000  0000 0000  0000 0010  0000 00.. = TLLI: 3221225600

    .... ..11 = CTRL_ACK: 3

    0... .... Exist_AdditionsR5

    Padding Bits

        .010 1011  0010 1011  0010 1011  0010 1011 Padding

        0010 1011  0010 1011  0010 1011  0010 1011 Padding

        0010 1011  0010 1011  0010 1011  0010 1011 Padding

        0010 1011  0010 1011  0010 1011  0010 1011 Padding

        0010 1011 Padding

 

 

Example 02 > U_PACCH (GRR_CONTROL_IND)  

 

GRR_CONTROL_IND : 40 07 00 00 02 03 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 2B

 

DLT: 147, Payload: gsm_rlcmac_ul (Radio Link Control, Medium Access Control, 3GPP TS44.060)

GSM RLC/MAC: PACKET_DOWNLINK_ACK_NACK (2) (Uplink)

    01.. .... = Payload Type (UL): RLC/MAC block contains an RLC/MAC control block that does not include the optional octets of the RLC/MAC control header (1)

    ..00 000. = spare: 0

    .... ...0 = R: MS sent channel request message once

    0000 10.. = MESSAGE_TYPE (UL): PACKET_DOWNLINK_ACK_NACK (2)

    .... ..00  000. .... = DL TFI: 0

    Ack_Nack_Description

        ...0 .... = FINAL_ACK_INDICATION: False

        .... 0010  000. .... = STARTING_SEQUENCE_NUMBER: 16

        ...0 0000  0000 0000  0000 0000  0000 0000  0000 0000  0000 0000  0001 1111  1111 1111  111. .... RECEIVED_BLOCK_BITMAP

    ...1 .... Exist_Channel_Request_Description

    Channel_Request_Description

        .... 1001 = PEAK_THROUGHPUT_CLASS: 9

        00.. .... = RADIO_PRIORITY: 0

        ..0. .... = RLC_MODE: RLC acknowledged mode

        ...1 .... = LLC_PDU_TYPE: True

        .... 0000  0000 0101  0010 .... = RLC_OCTET_COUNT: 82

    Channel_Quality_Report

        .... 1011  01.. .... = C_VALUE: 45

        ..00 0... = RXQUAL: 0

        .... .000  000. .... = SIGN_VAR: 0

        ...0 .... Slot[0].Exist

        .... 0... Slot[1].Exist

        .... .0.. Slot[2].Exist

        .... ..0. Slot[3].Exist

        .... ...0 Slot[4].Exist

        0... .... Slot[5].Exist

        .0.. .... Slot[6].Exist

        ..0. .... Slot[7].Exist

    ...0 .... Exist_AdditionsR99

    Padding Bits

        .... 1011  0010 1011  0010 1011  0010 1011 Padding

        0010 1011  0010 1011 Padding

 

 

Example 03 > U_PACCH (GRR_CONTROL_IND)  

 

GRR_CONTROL_IND : 40 08 12 A0 00 00 00 00 03 FF FF EB 40 00 00 00 00 2B 2B 2B 2B 2B 2B  

 

DLT: 147, Payload: gsm_rlcmac_ul (Radio Link Control, Medium Access Control, 3GPP TS44.060)

GSM RLC/MAC: PACKET_DOWNLINK_ACK_NACK (2) (Uplink)

    01.. .... = Payload Type (UL): RLC/MAC block contains an RLC/MAC control block that does not include the optional octets of the RLC/MAC control header (1)

    ..00 000. = spare: 0

    .... ...0 = R: MS sent channel request message once

    0000 10.. = MESSAGE_TYPE (UL): PACKET_DOWNLINK_ACK_NACK (2)

    .... ..00  000. .... = DL TFI: 0

    Ack_Nack_Description

        ...1 .... = FINAL_ACK_INDICATION: True

        .... 0010  101. .... = STARTING_SEQUENCE_NUMBER: 21

        ...0 0000  0000 0000  0000 0000  0000 0000  0000 0000  0000 0011  1111 1111  1111 1111  111. .... RECEIVED_BLOCK_BITMAP

    ...0 .... Exist_Channel_Request_Description

    Channel_Quality_Report

        .... 1011  01.. .... = C_VALUE: 45

        ..00 0... = RXQUAL: 0

        .... .000  000. .... = SIGN_VAR: 0

        ...0 .... Slot[0].Exist

        .... 0... Slot[1].Exist

        .... .0.. Slot[2].Exist

        .... ..0. Slot[3].Exist

        .... ...0 Slot[4].Exist

        0... .... Slot[5].Exist

        .0.. .... Slot[6].Exist

        ..0. .... Slot[7].Exist

    ...0 .... Exist_AdditionsR99

    Padding Bits

        .... 0000  0000 0000  0000 0000  0010 1011 Padding

        0010 1011  0010 1011  0010 1011  0010 1011 Padding

        0010 1011 Padding

 

 

 

3GPP Decoder Tip