Tutorial: Medium Access Control (MAC) in 3G/UMTS Protocol Stack

By Zahid Ghadialy

Last Updated: 03/03/2005


MAC is a Layer 2 protocol and it resides between Physical Layer (L1) and RLC. The internal configuration of MAC is done by the RRC layer (L3). The interface between PHY and MAC are the transport channels where as the interface between RLC and MAC are the logical channels. MAC provides services to both User plane as well as Control plane. MAC takes care of circuit switched as well as packet switch traffic and signalling traffic as well.

Fig 1: Radio Interface Protocol Architecture
(Taken from 25.301, figure 2)

One important thing to remember is that the MAC is not symmetrical protocol. It is different in UL and DL.

MAC Services

MAC sublayer provides following services to the upper layers:

  • Data Transfer: This service provides unacknowledged transfer of MAC SDU's between peer MAC entities.
  • Reallocation of radio resources and MAC parameters: On request by RRC, MAC can change the identity of the UE, change the transport format set, change the transport channel type, etc.
  • Reporting of Measurements: Traffic volume measurements are performed in MAC and reported to RRC

MAC Functions

MAC Functions include:

  • Mapping between logical channels and transport channels
  • Selection of appropriate Transport Format for each Transport channel depending on instantaneous source rate. Given the Transport Format Combination Set assigned by RRC, MAC selects the appropriate transport format within an assigned transport format set for each active transport channel depending on source rate. The control of transport formats ensures efficient use of transport channels.
  • Priority handling between data flows of one UE. When selecting between the Transport Format Combinations in the given Transport Format Combination Set, priorities of the data flows to be mapped onto the corresponding Transport Channels can be taken into account.
  • Priority handling between UEs by means of dynamic scheduling. In order to utilise the spectrum resources efficiently for bursty transfer, a dynamic scheduling function may be applied. MAC realises priority handling on common and shared transport channels.
  • Identification of UEs on common transport channels. When a particular UE is addressed on a common downlink channel, or when a UE is using the RACH, there is a need for inband identification of the UE. Since the MAC layer handles the access to, and multiplexing onto, the transport channels, the identification functionality is naturally also placed in MAC.
  • Multiplexing/demultiplexing of upper layer PDUs into/from transport blocks delivered to/from the physical layer on common transport channels. MAC should support service multiplexing for common transport channels, since the physical layer does not support multiplexing of these channels.
  • Multiplexing/demultiplexing of upper layer PDUs into/from transport block sets delivered to/from the physical layer on dedicated transport channels. The MAC allows service multiplexing for dedicated transport channels. This function can be utilised when several upper layer services (e.g. RLC instances) can be mapped efficiently on the same transport channel. In this case the identification of multiplexing is contained in the MAC protocol control information.
  • Traffic volume measurement. Measurement of traffic volume on logical channels and reporting to RRC. Based on the reported traffic volume information, RRC performs transport channel switching decisions.
  • Transport Channel type switching. Execution of the switching between common and dedicated transport channels based on a switching decision derived by RRC.
  • Ciphering. This function prevents unauthorised acquisition of data. Ciphering is performed in the MAC layer for transparent RLC mode.
  • Access Service Class selection for RACH and CPCH transmission. The RACH resources (i.e. access slots and preamble signatures for FDD, timeslot and channelisation code for TDD) and CPCH resources (i.e. access slots and preamble signatures for FDD only) may be divided between different Access Service Classes in order to provide different priorities of RACH and CPCH usage. In addition it is possible for more than one ASC or for all ASCs to be assigned to the same access slot/signature space. Each access service class will also have a set of back-off parameters associated with it, some or all of which may be broadcast by the network. The MAC function applies the appropriate back-off and indicates to the PHY layer the RACH and CPCH partition associated to a given MAC PDU transfer.

Channel Structure

Before discussing anything further, we should look at the channel structures for Layer 1, MAC and RLC. The Transport Channels are interface between MAC and Layer 1, while Logical Channels are interface between MAC and RLC.

Transport channels can be further subdivided into Common Transport Channels (where there is need for inband identification of the UEs when particular UEs are addressed); and dedicated transport channels (where the UEs are identified by the physical channel, i.e. code and frequency for FDD and code, time slot and frequency for TDD).

Common transport channel types are:

  • Random Access Channel (RACH): A contention based uplink channel used for transmission of relatively small amounts of data, e.g. for initial access or non-real-time dedicated control or traffic data.
  • Common Packet Channel (CPCH): A contention based channel used for transmission of bursty data traffic. This channel only exists in FDD mode and only in the uplink direction. The common packet channel is shared by the UEs in a cell and therefore, it is a common resource. The CPCH is fast power controlled.
  • Forward Access Channel (FACH): Common downlink channel without closed-loop power control used for transmission of relatively small amount of data.
  • Downlink Shared Channel (DSCH): A downlink channel shared by several UEs carrying dedicated control or traffic data.
  • Uplink Shared Channel (USCH): An uplink channel shared by several UEs carrying dedicated control or traffic data, used in TDD mode only.
  • Broadcast Channel (BCH): A downlink channel used for broadcast of system information into an entire cell.
  • Paging Channel (PCH): A downlink channel used for broadcast of control information into an entire cell allowing efficient UE sleep mode procedures. Currently identified information types are paging and notification. Another use could be UTRAN notification of change of BCCH information.
  • High Speed Downlink Shared Channel (HS-DSCH): A downlink channel shared between UEs by allocation of individual codes, from a common pool of codes assigned for the channel.

Dedicated transport channel types are:

  • Dedicated Channel (DCH): A channel dedicated to one UE used in uplink or downlink.

A general classification of logical channels is into two groups; Control Channels (for the transfer of control plane information) and Traffic Channels (for the transfer of user plane information).

Control Channels:

  • Broadcast Control Channel (BCCH): A downlink channel for broadcasting system control information.
  • Paging Control Channel (PCCH): A downlink channel that transfers paging information. This channel is used when the network does not know the location cell of the UE, or, the UE is in the cell connected state (utilising UE sleep mode procedures).
  • Common Control Channel (CCCH): Bi-directional channel for transmitting control information between network and UEs. This channel is commonly used by the UEs having no RRC connection with the network and by the UEs using common transport channels when accessing a new cell after cell reselection.
  • Dedicated Control Channel (DCCH): A point-to-point bi-directional channel that transmits dedicated control information between a UE and the network. This channel is established through RRC connection setup procedure.
  • Shared Channel Control Channel (SHCCH): Bi-directional channel that transmits control information for uplink and downlink shared channels between network and UEs. This channel is for TDD only.

Traffic Channels:

  • Dedicated Traffic Channel (DTCH): A Dedicated Traffic Channel (DTCH) is a point-to-point channel, dedicated to one UE, for the transfer of user information. A DTCH can exist in both uplink and downlink.
  • Common Traffic Channel (CTCH): A point-to-multipoint unidirectional channel for transfer of dedicated user information for all or a group of specified UEs.

The mappings of Logical channels to transport channels is shown in the diagram below.

Fig. 2: Logical channels mapped onto transport channels, seen from the UE side
(Taken from 25.301, figure 4)

Fig. 3: Logical channels mapped onto transport channels, seen from the UTRAN side
(Taken from 25.301, figure 5)

MAC Entities

As mentioned earlier, the MAC protocol is not symmetrical in UL and DL. The MAC entities might be present in the UL and/or DL. The functional entities are as follows:

  • MAC-b: Mac-b represents the control entity for the broadcast channel (BCH). There is one (current cell) or multiple (current cell plus neighbouring cells) MAC-b entities in each UE and one MAC_b in the UTRAN for each cell. The MAC Control SAP is used to transfer Control information to MAC-b.
  • MAC-c/sh: MAC-c/sh handles the paging channel (PCH), the forward access channel (FACH), the random access channel (RACH), common packet channel (UL CPCH) that exists in FDD mode, the downlink shared channel (DSCH) and the uplink shared channel that exists in TDD mode. There is one MAC-c/sh entity in each UE and one in UTRAN for each cell.
  • MAC-d: MAC-d handles the dedicated transport channel (DCH). There is one MAC-d entity in the UE and one MAC-d entity in the UTRAN for each UE that has one or more dedicated logical channels to or from the UTRAN.
  • MAC-hs: MAC-hs handles the high speed downlink shared channel (HS-DSCH). There is one MAC-hs entity in the UTRAN for each cell that supports HS-DSCH transmission.

Discussion of Functions of MAC

1. Ciphering of Transparent Mode Radio Bearers

In case of TM RBs, RLC acts like a pipe that transfers the data to the MAC layer without adding any headers. Thus in this case Ciphering has to be performed in the MAC layer. In all other cases (AM and UM RBs), Ciphering is performed in the RLC layer. The part of MAC PDU that is ciphered is the MAC SDU as shown in the fig below.

Fig. 4: Ciphered part of MAC PDU
(Taken from 25.321, figure 11.5.1)

2. Traffic Volume Measurement for Dynamic RB Control

Dynamic radio bearer control is performed by RRC, based on the traffic volume measurements reported by MAC. Traffic volume information is measured in MAC layer and the results are reported from MAC layer to RRC layer. This concept can be explained with the help of the diagram below.

UE-RRC                  UE-RLC                     UE-MAC                   UTRAN
-------                 --------                 ----------                 -------
   |                       |                          |                        |
   |                    Measurement Control Message (Traffic Volume Meas)      |
   |                       |                          |                        |
   |    CMAC-Measure-REQ   |                          |                        |
   |------------------------------------------------->|                        |
   |                       |  MAC-Data-REQ            |                        |
   |                       |------------------------->|                        |   
   |                       |  MAC-Data-REQ            |                        |
   |                       |------------------------->|                        |
   |            CMAC-Measure-IND                      |                        |
   |<-------------------------------------------------|                        |
   |                       |                          |                        |
   |   Measurement Report (Traffic VOlume Meas)       |                        |
   |                       |                          |                        |
   |                       |                          |                        |   

At least every TTI, the MAC layer shall receive from each RLC entity the value of its Buffer Occupancy (BO), expressed in bytes. RRC can configure MAC to keep track of statistics (i.e. raw BO, average of BO and variance of BO) on the BO values of all Radio Bearers mapped onto a given transport channel. When the average or variance are requested, an averaging interval duration will also be provided.

Every time the BO values are reported to MAC, the UE shall verify whether an event was triggered or if a periodic report is required. If reporting is required (multiple reports may be triggered in a single TTI), the MAC shall deliver to RRC the reporting quantities required for the corresponding RBs. In the case of average and variance of BO, the averaging should be performed for the interval with the configured duration ending at the time when the event was triggered.

3. Access Service Class Selection for RACH Transmission

The physical RACH resources (i.e. access slots and preamble signatures for FDD) may be divided between different Access Service Classes in order to provide different priorities of RACH usage. It is possible for more than one ASC or for all ASCs to be assigned to the same access slot/signature space.

Access Service Classes are numbered in the range 0 i NumASC 7 (i.e. the maximum number of ASCs is 8). An ASC is defined by an identifier i that defines a certain partition of the PRACH resources and an associated persistence value Pi. A set of ASC parameters consists of NumASC+1 such parameters (i, Pi), i = 0, , NumASC. The PRACH partitions and the persistence values Pi are derived by the RRC protocol from system information. The set of ASC parameters is provided to MAC with the CMAC-Config-REQ primitive. The ASC enumeration is such that it corresponds to the order of priority (ASC 0 = highest priority, ASC 7 = lowest priority). ASC 0 shall be used in case of Emergency Call or for reasons with equivalent priority.

At radio bearer setup/reconfiguration each involved logical channel is assigned a MAC Logical channel Priority (MLP) in the range 1,,8. When the MAC sublayer is configured for RACH transmission in the UE, these MLP levels shall be employed for ASC selection on MAC.

The following ASC selection scheme shall be applied, where NumASC is the highest available ASC number and MinMLP the highest logical channel priority assigned to one logical channel:

  • in case all TBs in the TB set have the same MLP, select ASC = min(NumASC, MLP);
  • in case TBs in a TB set have different priority, determine the highest priority level MinMLP and select ASC = min(NumASC, MinMLP).

When an RRC CONNECTION REQUEST message is sent RRC determines ASC by means of the access class. The ASC to be used in these circumstances is signalled to MAC by means of the CMAC-CONFIG-REQ message.

If MAC has knowledge of a U-RNTI then the ASC is determined in the MAC entity. If no U-RNTI has been indicated to MAC then MAC will use the ASC indicated in the CMAC-CONFIG-REQ primitive.

4. Transport format combination selection in UE

RRC can control the scheduling of uplink data by giving each logical channel a priority between 1 and 8, where 1 is the highest priority and 8 the lowest. TFC selection in the UE shall be done in accordance with the priorities indicated by RRC. Logical channels have absolute priority, i.e. the UE shall maximise the transmission of higher priority data. Hence higher priority data flows will be given higher bit rate combinations while lower priority data flows will have to use low bit rate combinations. Note that zero bit rate is a special case of low bit rate combination.

MAC has to derive the priority parameters from two sources:

  • The buffer occupancy parameter received from RLC
  • MAC logical channel priority received from RRC

A given TFC can be in any of the following states:

  • Supported state;
  • Excess-power state;
  • Blocked state.

Fig. 5. State transitions for the state of a given TFC
(Taken from [1], fig. 11.4.1)

UEs in CELL_FACH state may estimate the channel path loss and set to excess power state all the TFCs requiring more power than the Maximum UE transmitter power. All other TFCs shall be set to Supported state.

Every time the set of supported TFCs changes, the available bitrate shall be indicated to upper layers for each logical channel in order to facilitate the adaptation of codec data rates when codecs supporting variable-rate operation are used. The details of the computation of the available bitrate and the interaction with the application layer are not further specified.

At Radio Bearer Setup (or Reconfiguration), each logical channel is assigned MAC logical channel prioroty (MLP) in rage 1-8 by RRC. MAC has to then select a TFC that can transmit as much as and as high priority data as possible. In a noisy cell, a high priority TFC can be blocked if its use would cause the UE to transmit more power than the UEs current maximum transmitter power.


[1] 3GPP TS 25.321: Medium Access Control (MAC) protocol specification

[2] 3GPP TS 25.301: Radio Interface Protocol Architecture

[3] 3GPP TS 23.110: UMTS Access Stratum; Services and Functions

[4] 3GPP TS 25.401: RAN Overall Description

[5] Introduction to 3G Mobile Communications - Juha Korhonen

Back to Tutorials


About Us Careers Contribute Advertise

Copyright 2004-2021 3G4G.CO.UK. All rights reserved.
Contact zahidtg(at)yahoo(dot)com for further information