|
MAC
As of Mar 2028, 38.321 (MAC Specification) is almost completed and of course it is evolving continuously evolving. In this page, I will describe on NR MAC and try to explain in the comparison to LTE MAC whenever it is possible. If you are familiar with LTE MAC, this comparison would help you a lot to understand NR MaC.
High level MAC functionality and its interaction with lower and higher layer can be summarized as in the following diagram.

At high level view, NR MAC function/operation is very similar to LTE MAC function/operation. For your reference, I put the NR MAC function and LTE MAC function side-by-side as below.
| |
5G/NR(38.321)
|
LTE(36.321)
|
|
Services
provided to upper layers
|
- data transfer
- radio resource allocation
|
- data transfer
- radio resource allocation
|
|
MAC Functions
|
- mapping between logical channels and transport channels
- multiplexing of MAC SDUs
- demultiplexing of MAC SDUs
- scheduling information reporting;
- error correction through HARQ;
- logical channel prioritisation.
|
- mapping between logical channels and transport channels;
- multiplexing of MAC SDUs
- demultiplexing of MAC SDUs
- scheduling information reporting
- error correction through HARQ
- priority handling between UEs
- priority handling between logical channels of one MAC entity
- Logical Channel prioritisation
- transport format selection
- radio resource selection for SL
|
|
Services
expected from physical layer
|
- data transfer services;
- signalling of HARQ feedback;
- signalling of Scheduling Request;
- measurements (e.g. Channel Quality Indication (CQI)).
|
- data transfer services;
- signalling of HARQ feedback;
- signalling of Scheduling Request;
- measurements (e.g. Channel Quality Indication (CQI)).
|
There is another way of describing MAC functionality. It is to describe about each separate procedures that are performed by MAC as summarized below. This is the way I like to describe MAC layer. When MAC and PHY layer specification gets finalized, I would create separate pages for each of these process.
|
Procedure Name
|
Description
|
| Random Access Procedure |
Get the initial uplink grant and perform synchronization to network |
| DL-SCH data transfer (NW) |
Do everything needed to perform DL Data Transfer (DCI-Scheduling, HARQ etc) |
| UL-SCH data scheduling (NW) |
Schedule UL data transmission by sending DCI X (UL Grant) |
| UL-SCH data transfer (UE) |
Do everything needed to perform UL Data Transfer (DCI X decoding, HARQ, multiplexing and assembly) |
| SR-Scheduling Request (UE) |
Send the request to Network to get a UL Grant |
| DRX - Discontinous Reception |
Control UE's PDCCH monitoring activity in special pattern mainly to save energy consumption |
| SPS - Semi Persisent Scheduling |
Scheduling DL/UL transmission in special pattern to reduce scheduling overhead |
| PCH Reception |
Monitoring Paging message in special period |
| BCH Reception |
Get basic information on cell (MIB and SFN) |
The illustration shown above may show you a little bit detailed picture of MAC process, but it may not be so clear about the channel mapping unless you follow through each lines very carefully. In terms of channel mapping, the tables in 38.321 would be clearer and simple to understand and my illustration to the right would be even more clear and intuitive :).

As you see, most of channels from Logical channel to Transport channel is one-to-one or many-to-one relation, but BCCH case it maps to BCH and DL-SCH.
What does this mean ? Does this mean that a BCCH message maps both to BCH and DL-SCH simultaneously ?
No. It means some BCCH data maps to BCH and some BCCH data maps to DL-SCH. If you are familiar with LTE, you would know there are largely two types of BCCH in LTE. One is MIB and the others are SIBs. MIB goes through BCCH-BCH path and SIBs go through BCCH-DL SCH path. NR would use the same pattern of channel mapping.
Refer to Channel Mapping page to see how this mapping embedded into the mapping with wider scope.
Following shows the overal MAC PDU struction of NR and LTE MAC. You would notice here, all the MAC subhaeders are located at the beginning of a MAC PDU in LTE, but in NR MAC subheaders are located right in front of corresponding SDU(Payload). In other words, in LTE MAC Subheader and correponding data are located in different region, but in NR MAC subheader and corresponding data(payload)
are in the same region sitting next to each other.

Followings shows header structure of MAC subheaders in NR and LTE. Overall structure would look similar but in NR there is no 'E' field. NR does not require 'E' field since one subheader is located right in front of the corresponding payload. There is no case where multiple headers are sitting next to each other. So 'E' filed is not needed (NOTE : 'E' field indicate whether any other
MAC
header come after the current MAC subheader).

Followings shows the structure of MAC Subheaders in NR and meaning of each field in the sub headers.
< 38.321- Figure 6.1.2-1 R/F/LCID/L MAC subheader with 8-bit L field >

< 38.321-
Figure
6.1.2-2
R/F/LCID/L MAC subheader with 16-bit L field >

< 38.321-
Figure
6.1.2-3
R/LCID MAC subheader >

|
Field
|
Description
|
|
LCID
|
This field indicates Logical Channel ID. There is one LCID field per MAC subheader. The LCID field size is 6 bits;
|
|
L
|
This indicates Length of the corresponding MAC SDU or variable-sized MAC CE in bytes. There is one L field per MAC subheader except for subheaders corresponding to fixed-sized MAC CEs and padding. The size of the L field is indicated by the F field;
|
|
F
|
F stands for 'Format'. It indicates the size of the Length field. There is one F field per MAC subheader except for subheaders corresponding to fixed-sized MAC CEs and padding. The size of the F field is 1 bit.
-
0 indicates 8 bits of the Length field.
-
1 indicates 16 bits of the Length field
|
Followings table shows the LCID field in MAC Subheader based on 38.321 v15.1 (Mar 2018 version).

Followings table shows the LCID field in MAC Subheader based on 38.321 v15.2 (Jun 2018 version).
Comparing to v15.1, followings are added or modified.
- DL : Recommended bit rate is added
- UL : CCCH is divided into two different types, CCCH of size other than 48bits and CCCH of size of 48 bits

Followings table shows the LCID field in MAC Subheader based on 38.321 v16.4 (Apr 2021 version).

Followings table shows the LCID field in MAC Subheader based on 38.321 v19.0 (Oct 2025 version).
< 38.321 - Table 6.2.1-1: Values of LCID for DL-SCH >
|
Codepoint/Index
|
LCID values
|
|
0
|
CCCH
|
|
1–32
|
Identity of the logical channel of DCCH, DTCH and multicast MTCH
|
|
33
|
Extended logical channel ID field (two-octet eLCID field)
|
|
34
|
Extended logical channel ID field (one-octet eLCID field)
|
|
35–46
|
Reserved
|
|
47
|
Recommended bit rate
|
|
48
|
SP ZP CSI-RS Resource Set Activation/Deactivation
|
|
49
|
PUCCH spatial relation Activation/Deactivation
|
|
50
|
SP SRS Activation/Deactivation
|
|
51
|
SP CSI reporting on PUCCH Activation/Deactivation
|
|
52
|
TCI State Indication for UE-specific PDCCH
|
|
53
|
TCI States Activation/Deactivation for UE-specific PDSCH
|
|
54
|
Aperiodic CSI Trigger State Subselection
|
|
55
|
SP CSI-RS/CSI-IM Resource Set Activation/Deactivation
|
|
56
|
Duplication Activation/Deactivation
|
|
57
|
SCell Activation/Deactivation (four octets)
|
|
58
|
SCell Activation/Deactivation (one octet)
|
|
59
|
Long DRX Command
|
|
60
|
DRX Command
|
|
61
|
Timing Advance Command
|
|
62
|
UE Contention Resolution Identity
|
|
63
|
Padding
|
< 38.321 - Table 6.2.1-1a: Values of two-octet eLCID for DL-SCH >
|
Codepoint
|
Index
|
LCID values
|
|
0 to (216 − 1)
|
320 to (216 + 319)
|
Identity of the logical channel
|
< 38.321 - Table 6.2.1-1b: Values of one-octet eLCID for DL-SCH >
|
Codepoint
|
Index
|
LCID values
|
|
0 to 207
|
64 to 271
|
Reserved
|
|
208
|
272
|
On-demand SSB Activation/Deactivation (one octet eL field)
|
|
209
|
273
|
On-demand SSB Activation/Deactivation (four octet eL field)
|
|
210
|
274
|
SP CSI-RS/CSI-IM Resource Set Activation/Deactivation
|
|
211
|
275
|
UL Rate Control
|
|
212
|
276
|
Pathloss Offset Update
|
|
213
|
277
|
SP CSI-RS/CSI-IM Resource Set Activation/Deactivation for Candidate Cell
|
|
214
|
278
|
Enhanced LTM Cell Switch Command
|
|
215
|
279
|
Aggregated SP Positioning SRS Activation/Deactivation
|
|
216
|
280
|
Enhanced SP CSI reporting on PUCCH Activation/Deactivation
|
|
217
|
281
|
Cross-RRH TCI State Indication for UE-specific PDCCH
|
|
218
|
282
|
LTM Cell Switch Command
|
|
219
|
283
|
Candidate Cell TCI States Activation/Deactivation
|
|
220
|
284
|
SP SSB Based Beam Indication
|
|
221
|
285
|
Activation/Deactivation for Joint TCI States
|
|
222
|
286
|
Enhanced Unified TCI states Activation/Deactivation MAC CE for Joint TCI States
|
|
223
|
287
|
Enhanced Unified TCI states Activation/Deactivation MAC CE for Separate TCI States
|
|
224
|
288
|
NCR Access Link Beam Indication
|
|
225
|
289
|
NCR Downlink Backhaul Link Beam Indication
|
|
226
|
290
|
NCR Uplink Backhaul Link Beam Indication
|
|
227
|
291
|
Serving Cell Set based SRS TCI State Indication
|
|
228
|
292
|
SP/IAP SRS TCI State Indication
|
|
229
|
293
|
BFD-RS Indication
|
|
230
|
294
|
Differential Koffset
|
|
231
|
295
|
Enhanced SCell Activation/Deactivation (one octet eL field)
|
|
232
|
296
|
Enhanced SCell Activation/Deactivation (four octet eL field)
|
|
233
|
297
|
Unified TCI States Activation/Deactivation
|
|
234
|
298
|
PUCCH Power Control Set Update for multiple PUCCH repetition
|
|
235
|
299
|
PUCCH spatial relation Activation/Deactivation for multiple TRP PUCCH repetition
|
|
236
|
300
|
Enhanced TCI States Indication for UE-specific PDCCH
|
|
237
|
301
|
Positioning Measurement Gap Activation/Deactivation Command
|
|
238
|
302
|
PPW Activation/Deactivation Command
|
|
239
|
303
|
DL Tx Power Adjustment
|
|
240
|
304
|
Timing Case Indication
|
|
241
|
305
|
Child DL-BU Resetting Beam Indication
|
|
242
|
306
|
Case-7 Timing advance offset
|
|
243
|
307
|
Provided Guard Symbols for Case-6 timing
|
|
244
|
308
|
Provided Guard Symbols for Case-7 timing
|
|
245
|
309
|
Serving Cell Set based SRS Spatial Relation Indication
|
|
246
|
310
|
PUCCH Pathloss Reference RS Update
|
|
247
|
311
|
Pathloss Reference RS Update
|
|
248
|
312
|
Enhanced SP/IAP SRS Spatial Relation Indication
|
|
249
|
313
|
Enhanced PUCCH Spatial Relation Activation/Deactivation
|
|
250
|
314
|
Enhanced TCI States Activation/Deactivation for UE-specific PDSCH
|
|
251
|
315
|
Duplication RLC Activation/Deactivation
|
|
252
|
316
|
Absolute Timing Advance Command
|
|
253
|
317
|
SP Positioning SRS Activation/Deactivation
|
|
254
|
318
|
Provided Guard Symbols
|
|
255
|
319
|
Timing Delta
|
< 38.321 - Table 6.2.1-1c: Values of LCID for MBS multicast MCCH and MBS broadcast on DL-SCH >
|
Codepoint/Index
|
LCID values
|
|
0
|
Broadcast MCCH or multicast MCCH
|
|
1–32
|
Identity of the logical channel of broadcast MTCH
|
|
33–63
|
Reserved
|
< 38.321 - Table 6.2.1-2: Values of LCID for UL-SCH when the LX field is not present or is set to 0 >
|
Codepoint/Index
|
LCID values
|
|
0
|
CCCH of size 64 bits, except for an (e)RedCap UE
|
|
1–32
|
Identity of the logical channel of DCCH and DTCH
|
|
33
|
Extended logical channel ID field (two-octet eLCID field)
|
|
34
|
Extended logical channel ID field (one-octet eLCID field)
|
|
35
|
CCCH of size 48 bits for a RedCap UE
|
|
36
|
CCCH of size 64 bits for a RedCap UE
|
|
37–42
|
Reserved
|
|
43
|
Truncated Enhanced BFR (one octet C)
|
|
44
|
Timing Advance Report
|
|
45
|
Truncated Sidelink BSR
|
|
46
|
Sidelink BSR
|
|
47
|
Reserved
|
|
48
|
LBT failure (four octets)
|
|
49
|
LBT failure (one octet)
|
|
50
|
BFR (one octet C)
|
|
51
|
Truncated BFR (one octet C)
|
|
52
|
CCCH of size 48 bits, except for an (e)RedCap UE
|
|
53
|
Recommended bit rate query
|
|
54
|
Multiple Entry PHR (four octets C)
|
|
55
|
Configured Grant Confirmation
|
|
56
|
Multiple Entry PHR (one octet C)
|
|
57
|
Single Entry PHR
|
|
58
|
C-RNTI
|
|
59
|
Short Truncated BSR
|
|
60
|
Long Truncated BSR
|
|
61
|
Short BSR
|
|
62
|
Long BSR
|
|
63
|
Padding
|
|
NOTE: CCCH of size 48 bits and CCCH of size 64 bits are referred to as CCCH and CCCHH, respectively, in TS 38.331.
|
< 38.321 - Table 6.2.1-2a: Values of two-octet eLCID for UL-SCH >
| Codepoint |
Index |
LCID values
|
|
0 to (215 − 1)
|
320 to (215 + 319)
|
Identity of the logical channel
|
< 38.321 - Table 6.2.1-2b: Values of one-octet eLCID for UL-SCH >
|
Codepoint
|
Index
|
LCID values
|
|
0 to 214
|
64 to 278
|
Reserved
|
|
215
|
279
|
Multiple Entry Delay Status Report
|
|
216
|
280
|
UL Rate Control
|
|
217
|
281
|
Event Triggered L1 Measurement Report
|
|
218
|
282
|
Truncated Event Triggered L1 Measurement Report
|
|
219
|
283
|
Enhanced Multiple Entry PHR for multiple TRP ST×2P (four octets C)
|
|
220
|
284
|
Enhanced Multiple Entry PHR for multiple TRP ST×2P (one octets C)
|
|
221
|
285
|
Enhanced Single Entry PHR for multiple TRP ST×2P
|
|
222
|
286
|
SL LBT Failure
|
|
223
|
287
|
Enhanced Multiple Entry PHR with assumed PUSCH (four octets C)
|
|
224
|
288
|
Enhanced Multiple Entry PHR with assumed PUSCH (one octets C)
|
|
225
|
289
|
Single Entry PHR with assumed PUSCH
|
|
226
|
290
|
SL-PRS Resource Request
|
|
227
|
291
|
Refined Long BSR
|
|
228
|
292
|
Multiple Entry Delay Status Report
|
|
229
|
293
|
Enhanced Multiple Entry PHR for multiple TRP (four octets C)
|
|
230
|
294
|
Enhanced Multiple Entry PHR for multiple TRP (one octets C)
|
|
231
|
295
|
Enhanced Single Entry PHR for multiple TRP
|
|
232
|
296
|
Enhanced Multiple Entry PHR (four octets C)
|
|
233
|
297
|
Enhanced Multiple Entry PHR (one octets C)
|
|
234
|
298
|
Enhanced Single Entry PHR
|
|
235
|
299
|
Enhanced BFR (one octet C)
|
|
236
|
300
|
Truncated Enhanced BFR (one octet C)
|
|
237
|
301
|
Positioning Measurement Gap Activation/Deactivation Request
|
|
238
|
302
|
IAB-MT Recommended Beam Indication
|
|
239
|
303
|
Desired IAB-MT PSD range
|
|
240
|
304
|
Desired DL Tx Power Adjustment
|
|
241
|
305
|
Case-6 Timing Request
|
|
242
|
306
|
Desired Guard Symbols for Case 6 timing
|
|
243
|
307
|
Desired Guard Symbols for Case 7 timing
|
|
244
|
308
|
Extended Short Truncated BSR
|
|
245
|
309
|
Extended Long Truncated BSR
|
|
246
|
310
|
Extended Short BSR
|
|
247
|
311
|
Extended Long BSR
|
|
248
|
312
|
Extended Pre-emptive BSR
|
|
249
|
313
|
BFR (four octets C)
|
|
250
|
314
|
Truncated BFR (four octets C)
|
|
251
|
315
|
Multiple Entry Configured Grant Confirmation
|
|
252
|
316
|
Single Entry Configured Grant Confirmation
|
|
253
|
317
|
Desired Guard Symbols
|
|
254
|
318
|
BFR (octets C)
|
|
255
|
319
|
Pre-emptive BSR
|
< 38.321 - Table 6.2.1-2c: Values of LCID for UL-SCH when the LX field is set to 1 >
|
Codepoint
|
Index
|
LCID values
|
|
0
|
(215 + 320)
|
CCCH of size 48 bits for an/eRedCap UE
|
|
1
|
(215 + 321)
|
CCCH of size 64 bits for an/eRedCap UE
|
|
2
|
(215 + 322)
|
CCCH of size 48 bits for PUCCH repetition of Msg4 HARQ-ACK, except for an (e)RedCap UE
|
|
3
|
(215 + 323)
|
CCCH of size 64 bits for PUCCH repetition of Msg4 HARQ-ACK, except for an (e)RedCap UE
|
|
4
|
(215 + 324)
|
CCCH of size 48 bits for PUCCH repetition of Msg4 HARQ-ACK of a RedCap UE
|
|
5
|
(215 + 325)
|
CCCH of size 64 bits for PUCCH repetition of Msg4 HARQ-ACK of a RedCap UE
|
|
6
|
(215 + 326)
|
CCCH of size 48 bits for PUCCH repetition of Msg4 HARQ-ACK of an eRedCap UE
|
|
7
|
(215 + 327)
|
CCCH of size 64 bits for PUCCH repetition of Msg4 HARQ-ACK of an eRedCap UE
|
|
8
|
(215 + 328)
|
CCCH of size 48 bits for PDSCH repetition of Msg4, except for an (e)RedCap UE
|
|
9
|
(215 + 329)
|
CCCH of size 64 bits for PDSCH repetition of Msg4, except for an (e)RedCap UE
|
|
10
|
(215 + 330)
|
CCCH of size 48 bits for PDSCH repetition of Msg4 of a RedCap UE
|
|
11
|
(215 + 331)
|
CCCH of size 64 bits for PDSCH repetition of Msg4 of a RedCap UE
|
|
12
|
(215 + 332)
|
CCCH of size 48 bits for PDSCH repetition of Msg4 of an eRedCap UE
|
|
13
|
(215 + 333)
|
CCCH of size 64 bits for PDSCH repetition of Msg4 of an eRedCap UE
|
|
14
|
(215 + 334)
|
CCCH of size 48 bits for PUCCH repetition of Msg4 HARQ-ACK and PDSCH repetition of Msg4, except for an (e)RedCap UE
|
|
15
|
(215 + 335)
|
CCCH of size 64 bits for PUCCH repetition of Msg4 HARQ-ACK and PDSCH repetition of Msg4, except for an (e)RedCap UE
|
|
16
|
(215 + 336)
|
CCCH of size 48 bits for PUCCH repetition of Msg4 HARQ-ACK and PDSCH repetition of Msg4 of a RedCap UE
|
|
17
|
(215 + 337)
|
CCCH of size 64 bits for PUCCH repetition of Msg4 HARQ-ACK and PDSCH repetition of Msg4 of a RedCap UE
|
|
18
|
(215 + 338)
|
CCCH of size 48 bits for PUCCH repetition of Msg4 HARQ-ACK and PDSCH repetition of Msg4 of an eRedCap UE
|
|
19
|
(215 + 339)
|
CCCH of size 64 bits for PUCCH repetition of Msg4 HARQ-ACK and PDSCH repetition of Msg4 of an eRedCap UE
|
|
20 to 63
|
(215 + 340) to (215 + 383)
|
Reserved
|
|
NOTE 1: The MAC entity may use the code point corresponding to a given feature or feature combination only if network indicates support for the corresponding feature or feature combination.
NOTE 2: CCCH of size 48 bits and CCCH of size 64 bits are referred to as CCCH and CCCH1, respectively, in TS 38.331.
NOTE 3: For UE capable of PUCCH repetition of Msg4 HARQ-ACK, the MAC entity uses the code points corresponding to PUCCH repetition of Msg4 HARQ-ACK if numberOfMsg4HARQ-ACK-Repetitions is configured and rsrp-ThresholdMsg4HARQ-ACK is not set, or rsrp-ThresholdMsg4HARQ-ACK is configured and the RSRP of the downlink pathloss reference is less than rsrp-ThresholdMsg4HARQ-ACK.
|
Reference
[1]
|