5G/NR - MAC CE

 

 

 

MAC CE (MAC Control Element)

The purpose and function of NR MAC CE is almost same as LTE MAC CE.

When we say 'communication between UE and Network', we normally think about only signaling message (RRC or NAS message). When I say 'communication' in this case, it means 'control command exchange' between UE and network, not the data traffic.

In UMTS case, it is true that only RRC and NAS message functions as communication between UE and Network, but in LTE and NR a special type of communication is introduced working at MAC Layer. It implies that there are special MAC structure that carries special control information. These special MAC structure carrying the control information is called 'MAC CE', which means 'MAC Control Element'. Motivation for this kind of communication would be obvious. It would be much faster comparing to RRC layer or NAS layer communication.

This special MAC structure is implemented as a special bit string in LCID field of MAC Header (Refer to LTE MAC page for the details of MAC header).

There are several MAC CE in downlink MAC and also several MAC CE in uplink MAC. Following table from 38.213 shows the LCID types of MAC header. The parts marked in red rectangle is LCID representing various MAC CE. These are relatively small set of MAC CE defined in 38.321 Rel 15 - 6.2.1. You may see this gets longer as new release comes out as you have seen in LTE.

Evolution of MAC CE

As in LTE, the structure and functionality of MAC CE would be an area that is evolving continuously as new 3GPP release comes out. In this section, I will consollidates MAC CE LCID structure from different releases so that we can keep track of the structure and functional evolution of MAC CE.

NOTE : The definition of LCID and eLCID is stated as follows in 38.321-6.2.1.

LCID: The Logical Channel ID field identifies the logical channel instance of the corresponding MAC SDU or the type of the corresponding MAC CE or padding as described in 38.321-Tables 6.2.1-1, 6.2.1-1c and 6.2.1-2 for the DL-SCH and UL-SCH respectively. There is one LCID field per MAC subheader. The size of the LCID field is 6 bits. If the LCID field is set to 34, one additional octet is present in the MAC subheader containing the eLCID field and follow the octet containing LCID field. If the LCID field is set to 33, two additional octets are present in the MAC subheader containing the eLCID field and these two additional octets follow the octet containing LCID field.

eLCID: The extended Logical Channel ID field identifies the logical channel instance of the corresponding MAC SDU or the type of the corresponding MAC CE as described in 38.321-tables 6.2.1-1a, 6.2.1-1b, 6.2.1-2a and 6.2.1-2b for the DL-SCH and UL-SCH respectively. The size of the eLCID field is either 8 bits or 16 bits.

MAC CE List in 38.321 v15.1

MAC CE List in 38.321 v15.3

MAC CE List in 38.321 v16.4

MAC CE List in 38.321 v17.1

 

 

MAC CE List in 38.321 v19.0

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

List of MAC CE

Followings are the list of the MAC CEs specified in 38.321 as of now. Since each of these items is a pretty big top, I will create a separate page for each of these items.

MAC CE

Reference

Buffer Status Report

38.321 - 6.1.3.1

C-RNTI

38.321 - 6.1.3.2

UE Contention Resolution Identity

38.321 - 6.1.3.3

Timing Advance Command

38.321 - 6.1.3.4

DRX Command

38.321 - 6.1.3.5

Long DRX Command

38.321 - 6.1.3.6

Configured Grant Confirmation

38.321 - 6.1.3.7

Single Entry PHR

38.321 - 6.1.3.8

Multiple Entry PHR

38.321 - 6.1.3.9

SCell Activation/Deactivation

38.321 - 6.1.3.10

Duplication Activation/Deactivation

38.321 - 6.1.3.11

SP CSI-RS / CSI-IM Resource Set Activation/Deactivation MAC CE

38.321 - 6.1.3.12

Aperiodic CSI Trigger State Subselection MAC CE

38.321 - 6.1.3.13

TCI States Activation/Deactivation for UE-specific PDSCH MAC CE

38.321 - 6.1.3.14

TCI State Indication for UE-specific PDCCH MAC CE

38.321 - 6.1.3.15

SP CSI reporting on PUCCH Activation/Deactivation MAC CE

38.321 - 6.1.3.16

SP SRS Activation/Deactivation MAC CE

38.321 - 6.1.3.17

PUCCH spatial relation Activation/Deactivation MAC CE

38.321 - 6.1.3.18

SP ZP CSI-RS Resource Set Activation/Deactivation MAC CE

38.321 - 6.1.3.19

Recommended bit rate MAC CE

38.321 - 6.1.3.20

How is a MAC CE actually framed inside a MAC PDU ?

I spent a while assuming a MAC CE carried a header of its own. It does not. A MAC CE is a payload, and what identifies it is the MAC subheader in front of it.

A MAC PDU is a sequence of MAC subPDUs. Each subPDU is one MAC subheader followed by one of three things: a MAC SDU, a MAC CE, or padding. The LCID value in that subheader says which of the three it is. For a MAC CE it also says which one.

The subheader comes in two shapes, and the deciding question is whether the thing behind it has a fixed length. A fixed-size MAC CE always occupies the same number of octets, so there is nothing to signal. Its subheader is one octet, holding two reserved bits and the six-bit LCID. Padding and the UL-CCCH MAC SDU use the same one-octet form.

A variable-size MAC CE, or any ordinary MAC SDU, needs a length. Its subheader replaces the second reserved bit with the F field and adds an L field behind the LCID. F set to 0 means L is 8 bits and the subheader is two octets. F set to 1 means L is 16 bits and the subheader is three octets.

The eLCID escapes add octets on top of that, in the way the quoted text in Evolution of MAC CE describes. An LCID of 34 is followed by one further octet carrying an 8-bit eLCID. An LCID of 33 is followed by two further octets carrying a 16-bit eLCID. In both cases the LCID itself has stopped being a name and become a pointer to one.

Figure 1 draws all five layouts against a common octet ruler.

MAC subheader formats, including the eLCID escapes A MAC CE has no header of its own. It has a MAC subheader. Octet 1 Octet 2 Octet 3 Fixed-size MAC CE also padding, and UL-CCCH R R LCID (6 bits) Variable-size, F = 0 8-bit length field R F LCID (6 bits) L (8 bits) Variable-size, F = 1 16-bit length field R F LCID (6 bits) L (16 bits) LCID = 34 one-octet eLCID R R LCID = 34 eLCID (8 bits) LCID = 33 two-octet eLCID R R LCID = 33 eLCID (16 bits) A fixed-size MAC CE needs no length field, so its subheader is a single octet. R bits are reserved and set to 0.

Figure 1. The LCID value both names the MAC CE and decides how many octets the subheader occupies.

  • A MAC CE is a payload, not a header : The MAC subheader in front of it is what names it.
  • Fixed-size means a one-octet subheader : Two reserved bits and the six-bit LCID, with no length field at all.
  • Variable-size adds F and L : F set to 0 gives an 8-bit length. F set to 1 gives a 16-bit length.
  • eLCID makes the LCID a pointer : An LCID of 34 or 33 says the real identifier follows, in one octet or two.
  • The LCID decides the subheader size : Resolve the LCID first, or you do not know where the payload starts.

Where does a MAC CE sit inside a MAC PDU ?

The order of subPDUs inside a MAC PDU is not free. TS 38.321 fixes it, and it fixes it differently for the two directions.

In a downlink MAC PDU the MAC CE subPDUs come before every MAC SDU subPDU, and before the padding. In an uplink MAC PDU they are placed after all the subPDUs carrying MAC SDUs, and still before the padding. The two directions are mirror images of each other.

The reason is about when each end can do its work. A gNB sending a MAC CE wants the UE to act on it. Putting the CEs at the front lets the UE apply a timing advance or a DRX command without parsing the data first. A UE building an uplink PDU has the opposite problem. It wants its buffer status report to describe what is left after packing. So it fills the data in first, and appends the control elements afterwards.

This is one of the places where NR differs from LTE, where MAC CEs sat at the front in both directions. Anyone reading an NR uplink trace with LTE habits will look for the MAC CEs in the wrong place.

Figure 2 draws both layouts.

Where MAC CEs sit in a downlink and an uplink MAC PDU The two directions place MAC CEs at opposite ends DL-SCH MAC PDU MAC CE MAC CE MAC SDU MAC SDU padding MAC CEs come first, so the receiver can apply them before it parses any data. UL-SCH MAC PDU MAC SDU MAC SDU MAC CE MAC CE padding MAC CEs come last, so the UE can build them after it knows what data it packed. Padding is last in both directions. Each block in the figure is one MAC subPDU, so each carries its own subheader.

Figure 2. The asymmetry is deliberate. Each direction puts the MAC CEs where the sender can fill them in latest and the receiver can act on them earliest.

  • Downlink puts MAC CEs first : They come before every MAC SDU, so the UE can act on them before parsing data.
  • Uplink puts MAC CEs last : They come after every MAC SDU. The UE can then report the state that is true after packing.
  • Padding is last in both directions : It is a subPDU like any other, with its own one-octet subheader.
  • This changed from LTE : LTE placed MAC CEs at the front in both directions. An LTE habit finds them in the wrong place in an NR uplink PDU.

Why did the LCID space have to be extended ?

The version tables in this page show the MAC CE list growing release by release. The eLCID escape appears part way through that growth, and the arithmetic behind it is short enough to work through.

The LCID field is six bits, so it has 64 codepoints in total. Most of them were spoken for before any MAC CE was defined.

LCID range

Reserved for

Codepoints

0

CCCH on DL-SCH, and 48-bit CCCH on UL-SCH

1

1 to 32

Identity of a logical channel

32

33

Escape to a two-octet eLCID

1

34

Escape to a one-octet eLCID

1

63

Padding

1

What is left

MAC CE types, and the remaining CCCH sizes

Fewer than 30

That leaves fewer than thirty codepoints in each direction for every MAC CE type the specification would ever define. Release 15 fitted comfortably. By Release 16 the space was gone. Carrier aggregation, beam management, semi-persistent CSI and SRS, PDCP duplication and sidelink all wanted control elements.

Widening the LCID field would have changed every subheader in the protocol. Release 16 spent two of the remaining codepoints on escapes instead. An LCID of 34 says the identifier continues in one more octet, and an LCID of 33 says it continues in two. That buys 256 further values through the one-octet form, and 65536 through the two-octet form. Only the subPDUs that need them pay the extra octet or two.

This is why the tables in this page come in pairs. Every release from 16 onward has an LCID table and an eLCID table for each direction. A MAC CE introduced after the exhaustion point lives in the second of the two.

  • Six bits give 64 codepoints : Logical channel identities alone take 32 of them, and CCCH and padding take more.
  • Fewer than thirty were ever available for MAC CEs : Release 16 exhausted them.
  • The escape was cheaper than a wider field : Widening LCID would have changed every subheader, including those that did not need it.
  • The cost falls only where it is used : A subPDU pays the extra octets only when its identifier is in the extended space.
  • That is why each release has two tables per direction : One for LCID and one for eLCID.

When does a control action use a MAC CE rather than RRC or DCI ?

The question I find most useful when meeting an unfamiliar MAC CE is why it is a MAC CE at all. NR has three ways to send a control instruction. The choice trades speed against reliability and size.

RRC message

MAC CE

DCI

Carried on

A signalling radio bearer, through PDCP and RLC

A subPDU inside an ordinary transport block

The control channel, PDCCH

Typical latency

Tens of milliseconds

One HARQ round trip, plus a defined application delay

The slot it is sent in

Reliability

RLC acknowledged mode, so retransmitted until confirmed

HARQ, so the transport block is retransmitted on failure

No retransmission. A missed DCI is simply lost

Size it can carry

Large and structured, including whole configurations

A few octets, and a variable-size form where needed

Tens of bits, fixed by the DCI format

Suited to

Establishing or reconfiguring something

Switching on or off something already configured, and reporting state

Scheduling, and anything that must act immediately

A pattern runs through the table, and it explains most of the MAC CE list. RRC configures, and MAC CE activates. The heavy description of a CSI report, an SRS resource set or an SCell arrives once by RRC. After that a MAC CE turns it on and off. Sending the whole description again for every change would be far too slow. A DCI is far too small to carry it.

The reporting MAC CEs work by the same logic in the other direction. A buffer status report is too large for a DCI and far too frequent for RRC. MAC is the only layer left.

One consequence is worth remembering when reading a trace. A MAC CE does not take effect the instant it is received. The specification defines an application delay for several of them, measured from the HARQ acknowledgement of the transport block that carried it. An SCell that appears inactive shortly after an activation MAC CE is usually inside that window rather than failing.

  • RRC configures and MAC CE activates : The structure arrives once by RRC. A small MAC CE switches it on and off afterwards.
  • MAC CE sits between DCI and RRC : Slower than a DCI and faster than RRC. Larger than a DCI and smaller than RRC.
  • HARQ is what makes a MAC CE reliable : The transport block carrying it is retransmitted, which a DCI never is.
  • Reports go by MAC CE for the same reason : Too big for a DCI, and too frequent for RRC.
  • Application delay is defined, not immediate : Several MAC CEs take effect a specified time after the HARQ acknowledgement.

What do the MAC CEs do, grouped by purpose ?

The list in List of MAC CE is ordered by specification section. That is the right order for looking something up, and the wrong order for learning what exists. Grouped by purpose the same list is much shorter to hold.

Group

What the group does

Examples from the list above

Random access

Completes contention resolution and identifies the UE

C-RNTI, UE Contention Resolution Identity

Timing

Keeps uplink transmissions aligned at the gNB receiver

Timing Advance Command, Absolute Timing Advance Command

Reporting

Carries UE state that the scheduler needs

Buffer Status Report, Power Headroom Report

Power saving

Moves the UE between monitoring and sleeping

DRX Command, Long DRX Command

Carrier aggregation

Brings configured cells in and out of use

SCell Activation and Deactivation, and the later dormancy indications

Beam management

Selects which configured beams and TCI states apply

TCI State Indication and TCI States Activation and Deactivation

Measurement and sounding

Switches configured CSI and SRS resources on and off

The semi-persistent CSI-RS, CSI reporting and SRS activation elements

Scheduling confirmation

Confirms that the UE applied a configured grant or SPS change

The configured grant and SPS confirmation elements

Later additions

Areas that arrived with Release 16 and 17

Sidelink, PDCP duplication, positioning and multicast elements

Two observations come out of the grouping. The first is how many of these elements only activate and deactivate. That is the RRC configures, MAC CE activates pattern from the section above. It accounts for the carrier aggregation, beam management and measurement groups almost entirely.

The second is where the growth happened. The first four groups were largely complete in Release 15, because they cover things every connection needs. Everything added since is a feature that only some deployments use, which is exactly the traffic that exhausted the LCID space.

  • Most MAC CEs only switch things on and off : The configuration itself came earlier, by RRC.
  • The Release 15 groups are the universal ones : Random access, timing, reporting and power saving are needed by every connection.
  • Later groups are feature specific : Sidelink, duplication, positioning and multicast are used only where those features are deployed.
  • The spec-ordered list stays the reference : Use the grouping to find the area. Use List of MAC CE to find the section number.

Reference

[1]