5G/NR - Slot Format Indicator

 

 

 

Slot Format Combination

Slot format is defined in a big table in 38.213-Table 11.1.1-1: Slot formats for normal cyclic prefix. An important question is how to determine which slot format is used in a specific slot and how those information is notified to UE. This process is done by the combination of several RRC paramters shown below and DCI 2_0.

The RRC configuration behind DCI format 2_0

Nothing in the listing below carries a slot format. What it carries is a lookup table, and a set of instructions for finding the right row of that table inside a DCI. The DCI then sends an index, which keeps the message short enough to serve a group of UEs at once.

Following is based on 38.331 v19.3.0 (Release 19)

SlotFormatIndicator ::=     SEQUENCE {
    sfi-RNTI                    RNTI-Value,
    dci-PayloadSize             INTEGER (1..maxSFI-DCI-PayloadSize),
    slotFormatCombToAddModList  SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF SlotFormatCombinationsPerCell
                                                                                                                              OPTIONAL, -- Need N
    slotFormatCombToReleaseList SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF ServCellIndex                       OPTIONAL, -- Need N
    ...,
    [[
    availableRB-SetsToAddModList-r16  SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF AvailableRB-SetsPerCell-r16   OPTIONAL, -- Need N
    availableRB-SetsToReleaseList-r16 SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF ServCellIndex                 OPTIONAL, -- Need N
    switchTriggerToAddModList-r16     SEQUENCE (SIZE(1..4)) OF SearchSpaceSwitchTrigger-r16                                   OPTIONAL, -- Need N
    switchTriggerToReleaseList-r16    SEQUENCE (SIZE(1..4)) OF ServCellIndex                                                  OPTIONAL, -- Need N
    co-DurationsPerCellToAddModList-r16 SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF CO-DurationsPerCell-r16     OPTIONAL, -- Need N
    co-DurationsPerCellToReleaseList-r16 SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF ServCellIndex              OPTIONAL  -- Need N
    ]],
    [[
    switchTriggerToAddModListSizeExt-r16   SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroupMinus4-r16)) OF
        SearchSpaceSwitchTrigger-r16  OPTIONAL, -- Need N
    switchTriggerToReleaseListSizeExt-r16  SEQUENCE (SIZE(1.. maxNrofAggregatedCellsPerCellGroupMinus4-r16)) OF
        ServCellIndex                 OPTIONAL  -- Need N
    ]],
    [[
    co-DurationsPerCellToAddModList-r17 SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF CO-DurationsPerCell-r17 OPTIONAL  -- Need N
    ]]
}

SlotFormatCombinationsPerCell ::=   SEQUENCE {
    servingCellId                       ServCellIndex,
    subcarrierSpacing                   SubcarrierSpacing,
    subcarrierSpacing2                  SubcarrierSpacing                                                         OPTIONAL, -- Need R
    slotFormatCombinations              SEQUENCE (SIZE (1..maxNrofSlotFormatCombinationsPerSet)) OF SlotFormatCombination
                                                                                                                  OPTIONAL, -- Need M
    positionInDCI                       INTEGER(0..maxSFI-DCI-PayloadSize-1)                                      OPTIONAL, -- Need M
    ...,
    [[
    enableConfiguredUL-r16              ENUMERATED {enabled}                                                      OPTIONAL  -- Need R
    ]]

}

SlotFormatCombination ::=           SEQUENCE {
    slotFormatCombinationId             SlotFormatCombinationId,
    slotFormats                         SEQUENCE (SIZE (1..maxNrofSlotFormatsPerCombination)) OF INTEGER (0..255)
}

SlotFormatCombinationId ::=         INTEGER (0..maxNrofSlotFormatCombinationsPerSet-1)

NOTE : Three things in this listing are newer than the form this page carried for a long time. Every list field is OPTIONAL with a Need code, which the older text left out entirely. The Release 16 fields sit inside an extension group rather than in the main body. And two further groups have been added since.

The first of those groups extends the search space switch trigger lists. The fields switchTriggerToAddModListSizeExt-r16 and switchTriggerToReleaseListSizeExt-r16 add room for up to twelve more cells, on top of the four the original lists allow. The second group adds co-DurationsPerCellToAddModList-r17, which points at a Release 17 duration IE with a wider range.

The companion IEs and the four size limits follow. The limits are worth reading before the sections below, because two of them decide how large a slot format table a network may configure.

Following is based on 38.331 v19.3.0 (Release 19)

CO-DurationsPerCell-r16 ::=   SEQUENCE {
    servingCellId-r16             ServCellIndex,
    positionInDCI-r16             INTEGER(0..maxSFI-DCI-PayloadSize-1),
    subcarrierSpacing-r16         SubcarrierSpacing,
    co-DurationList-r16           SEQUENCE (SIZE(1..64)) OF CO-Duration-r16
}

CO-DurationsPerCell-r17 ::=   SEQUENCE {
    servingCellId-r17             ServCellIndex,
    positionInDCI-r17             INTEGER(0..maxSFI-DCI-PayloadSize-1),
    subcarrierSpacing-r17         SubcarrierSpacing,
    co-DurationList-r17           SEQUENCE (SIZE(1..64)) OF CO-Duration-r17
}

CO-Duration-r16 ::=    INTEGER (0..1120)
CO-Duration-r17 ::=    INTEGER (0..4480)

AvailableRB-SetsPerCell-r16 ::=   SEQUENCE {
    servingCellId-r16                 ServCellIndex,
    positionInDCI-r16                 INTEGER(0..maxSFI-DCI-PayloadSize-1)
}

SearchSpaceSwitchTrigger-r16 ::=   SEQUENCE {
    servingCellId-r16                  ServCellIndex,
    positionInDCI-r16                  INTEGER(0..maxSFI-DCI-PayloadSize-1)
}

maxSFI-DCI-PayloadSize                  INTEGER ::= 128     -- Max number payload of a DCI scrambled with SFI-RNTI
maxNrofAggregatedCellsPerCellGroup      INTEGER ::= 16
maxNrofAggregatedCellsPerCellGroupMinus4-r16 INTEGER ::= 12
maxNrofSlotFormatCombinationsPerSet     INTEGER ::= 512     -- Maximum number of Slot Format Combinations in a SF-Set.
maxNrofSlotFormatsPerCombination        INTEGER ::= 256

 

Two of those limits decide how large a configuration can be. A set may hold up to 512 combinations, so slotFormatCombinationId runs from 0 to 511. A single combination may hold up to 256 formats, which is how one indication covers a long run of slots.

The payload limit works differently. The field dci-PayloadSize reaches 128 bits, and every cell in the group takes part of that budget through positionInDCI. Adding cells therefore divides the same 128 bits rather than lengthening the DCI.

  • The configuration is a lookup table : RRC supplies the rows, and the DCI supplies only the row number.
  • Each cell has its own offset : positionInDCI tells the UE which bits of the shared DCI belong to that serving cell.
  • 512 combinations, and 256 formats inside one : those two limits bound how much a single indication can describe.
  • Everything after the extension marker is Release 16 or later : shared spectrum operation and search space switching both arrived that way.

How a DCI field becomes 14 letters

A slot format is 14 letters, and the DCI carries only a handful of bits for each cell. Four steps separate the two, and each step is configured somewhere different. Following them in order is the quickest way to read a live SFI configuration.

The first step is finding the field. The value of positionInDCI gives the bit offset of the SFI-index field for this serving cell, inside a DCI whose whole length is dci-PayloadSize.

The second step is sizing it. The SFI-index field holds max(ceil(log2(maxSFIindex + 1)), 1) bits, where maxSFIindex is the largest slotFormatCombinationId configured for that cell. A cell with eight combinations therefore spends three bits.

The third step is the lookup. The field value is a slotFormatCombinationId, and the matching SlotFormatCombination carries a list in slotFormats. That list holds one or more integers from 0 to 255.

The fourth step is the table. Each integer names a row of 38.213 Table 11.1.1-1, and each row is 14 letters drawn from D, U and F. The list therefore gives one slot format per slot, starting at the slot where the DCI was detected.

How far forward the indication reaches is not arbitrary. The number of slots covered is at least the PDCCH monitoring periodicity for DCI format 2_0. If the periodicity is shorter than the combination, a UE can receive two DCIs covering one slot, and it expects both to name the same format for it.

One more field decides which slots receive the letters. The field subcarrierSpacing gives a reference numerology μSFI, and the UE expects the active BWP numerology μ to be no smaller. Each format then applies to 2μ-μSFI consecutive slots.

The field subcarrierSpacing2 means two different things, and which one depends on the spectrum. On unpaired spectrum with a supplementary uplink it gives the reference numerology for the SUL carrier. On paired spectrum it gives the uplink reference numerology, while subcarrierSpacing gives the downlink one.

Paired spectrum also splits the list in two. The combination holds formats for the reference DL BWP followed by formats for the reference UL BWP. The position of the split depends on which of the two reference numerologies is larger.

  • Four steps, and four configuration sources : the offset, the field width, the combination list and the format table.
  • The field width follows the largest id : a set of eight combinations costs three bits, and a set of 512 costs nine.
  • One combination covers several slots : the length of slotFormats decides the reach, and it is at least the monitoring periodicity.
  • Two DCIs covering one slot have to agree : a UE does not expect to be told two different formats for the same slot.

What else DCI format 2_0 carries

The name of this DCI describes only part of it. Slot format is what it was introduced for, and three later fields use the same message for reasons unrelated to symbol direction. All three arrived with the shared spectrum work in Release 16.

The field availableRB-SetsPerCell-r16 gives the position of an available RB set indicator. With no intra-cell guard bands configured the indicator is one bit, and a value of 1 means the cell is available for receptions. Otherwise it is a bitmap with one bit per RB set of the cell.

Either form has the same lifetime. An RB set stays available or unavailable until the end of the remaining channel occupancy duration, so the indication is not per slot.

The field CO-DurationsPerCell-r16 gives the position of a channel occupancy duration field. The value indexes co-DurationList, and it states how much of the channel occupancy remains, counting from the first symbol of the slot where the DCI was detected. That field holds max(ceil(log2(COdurationListSize)), 1) bits.

The duration itself has grown. CO-Duration-r16 is an INTEGER from 0 to 1120. Release 17 added CO-DurationsPerCell-r17 with CO-Duration-r17, whose range reaches 4480.

The field SearchSpaceSwitchTrigger-r16 gives the position of a search space set group switching flag. The flag picks one of two groups of search space sets for PDCCH monitoring, for the cell or cells named by CellGroupsForSwitching. The two SizeExt lists extend the trigger lists from four cells to sixteen.

One constraint covers all of them. A UE does not expect to be configured to monitor PDCCH for DCI format 2_0 on a second serving cell that uses a larger subcarrier spacing than the serving cell.

  • DCI format 2_0 is a multi-purpose group message : slot format, RB set availability, channel occupancy and search space switching all share it.
  • Every field is located by its own positionInDCI : the four kinds of information lie side by side in one payload.
  • The three later fields serve shared spectrum : they report the outcome of the channel access procedure to the UE.
  • Four cells, plus twelve more : the original switch trigger lists hold four, and the SizeExt lists add twelve.

The slot format table

Everything above ends at an integer from 0 to 255. The table below is what that integer means. One scan for its shape is more useful than a reading row by row, and three observations account for most of it.

<38.213 v15.7 -Table 11.1.1-1: Slot formats for normal cyclic prefix>

D : Downlink, U : Uplink, F : Flexible

 

Symbol Number in a slot

Format

0

1

2

3

4

5

6

7

8

9

10

11

12

13

0

D

D

D

D

D

D

D

D

D

D

D

D

D

D

1

U

U

U

U

U

U

U

U

U

U

U

U

U

U

2

F

F

F

F

F

F

F

F

F

F

F

F

F

F

3

D

D

D

D

D

D

D

D

D

D

D

D

D

F

4

D

D

D

D

D

D

D

D

D

D

D

D

F

F

5

D

D

D

D

D

D

D

D

D

D

D

F

F

F

6

D

D

D

D

D

D

D

D

D

D

F

F

F

F

7

D

D

D

D

D

D

D

D

D

F

F

F

F

F

8

F

F

F

F

F

F

F

F

F

F

F

F

F

U

9

F

F

F

F

F

F

F

F

F

F

F

F

U

U

10

F

U

U

U

U

U

U

U

U

U

U

U

U

U

11

F

F

U

U

U

U

U

U

U

U

U

U

U

U

12

F

F

F

U

U

U

U

U

U

U

U

U

U

U

13

F

F

F

F

U

U

U

U

U

U

U

U

U

U

14

F

F

F

F

F

U

U

U

U

U

U

U

U

U

15

F

F

F

F

F

F

U

U

U

U

U

U

U

U

16

D

F

F

F

F

F

F

F

F

F

F

F

F

F

17

D

D

F

F

F

F

F

F

F

F

F

F

F

F

18

D

D

D

F

F

F

F

F

F

F

F

F

F

F

19

D

F

F

F

F

F

F

F

F

F

F

F

F

U

20

D

D

F

F

F

F

F

F

F

F

F

F

F

U

21

D

D

D

F

F

F

F

F

F

F

F

F

F

U

22

D

F

F

F

F

F

F

F

F

F

F

F

U

U

23

D

D

F

F

F

F

F

F

F

F

F

F

U

U

24

D

D

D

F

F

F

F

F

F

F

F

F

U

U

25

D

F

F

F

F

F

F

F

F

F

F

U

U

U

26

D

D

F

F

F

F

F

F

F

F

F

U

U

U

27

D

D

D

F

F

F

F

F

F

F

F

U

U

U

28

D

D

D

D

D

D

D

D

D

D

D

D

F

U

29

D

D

D

D

D

D

D

D

D

D

D

F

F

U

30

D

D

D

D

D

D

D

D

D

D

F

F

F

U

31

D

D

D

D

D

D

D

D

D

D

D

F

U

U

32

D

D

D

D

D

D

D

D

D

D

F

F

U

U

33

D

D

D

D

D

D

D

D

D

F

F

F

U

U

34

D

F

U

U

U

U

U

U

U

U

U

U

U

U

35

D

D

F

U

U

U

U

U

U

U

U

U

U

U

36

D

D

D

F

U

U

U

U

U

U

U

U

U

U

37

D

F

F

U

U

U

U

U

U

U

U

U

U

U

38

D

D

F

F

U

U

U

U

U

U

U

U

U

U

39

D

D

D

F

F

U

U

U

U

U

U

U

U

U

40

D

F

F

F

U

U

U

U

U

U

U

U

U

U

41

D

D

F

F

F

U

U

U

U

U

U

U

U

U

42

D

D

D

F

F

F

U

U

U

U

U

U

U

U

43

D

D

D

D

D

D

D

D

D

F

F

F

F

U

44

D

D

D

D

D

D

F

F

F

F

F

F

U

U

45

D

D

D

D

D

D

F

F

U

U

U

U

U

U

46

D

D

D

D

D

F

U

D

D

D

D

D

F

U

47

D

D

F

U

U

U

U

D

D

F

U

U

U

U

48

D

F

U

U

U

U

U

D

F

U

U

U

U

U

49

D

D

D

D

F

F

U

D

D

D

D

F

F

U

50

D

D

F

F

U

U

U

D

D

F

F

U

U

U

51

D

F

F

U

U

U

U

D

F

F

U

U

U

U

52

D

F

F

F

F

F

U

D

F

F

F

F

F

U

53

D

D

F

F

F

F

U

D

D

F

F

F

F

U

54

F

F

F

F

F

F

F

D

D

D

D

D

D

D

55

D

D

F

F

F

U

U

U

D

D

D

D

D

D

56-254

Reserved

255

UE determines the slot format for the slot based on tdd-UL-DL-ConfigurationCommon, or tdd-ULDL-

ConfigurationDedicated and, if any, on detected DCI formats

NOTE : The table above was checked against 38.213 v19.4.0. Formats 0 to 55 are unchanged since the Release 15 copy this page took, so nothing needed updating. Two cells needed correcting instead. Format 54 symbol 6 read a lower case f, and the reserved row was labelled 62-254 where the specification reads 56-254. Both now match.

  • Formats 0, 1 and 2 are the pure ones : all downlink, all uplink and all flexible. Every other row is a mixture of the three letters.
  • Only 56 of the 256 values carry a format : 0 to 55 are defined, 56 to 254 are reserved, and 255 has a meaning of its own.
  • Format 255 hands the slot back : the UE then determines the format from tdd-UL-DL-ConfigurationCommon or tdd-UL-DL-ConfigurationDedicated, and from any DCI it detected.
  • Formats 46 to 53 repeat themselves : each one has two identical halves of seven symbols, which is what a shorter switching period needs.

Reference

[1] 38.331 v19.3.0 : NR - Radio Resource Control (RRC) protocol specification. The SlotFormatIndicator IE, its companions and the four size limits were read.

[2] 38.213 v19.4.0 : NR - Physical layer procedures for control. Clause 11.1.1 was read for the SFI-index field, the reference numerologies and Table 11.1.1-1.