4G/LTE - BL/CE

 

 

 

PUSCH Subframe Assignment

 

In LTE-M1, PUSCH can be transmitted repeatedly to increase cell coverage. This process is defined in 36.213-8.0 UE procedure for transmitting the physical uplink shared channel and can be illustrated as follows :

The uplink answer has the same shape as the downlink one and one extra term in it. The position is measured from the end of the MPDCCH. How many subframes the PUSCH occupies comes from a table, and a later release added an offset on top of both.

Followings are the topics to be covered in this page.

Which subframes carry the PUSCH

The diagram below fixes the reference point before anything else, and that point is the end of the MPDCCH rather than its start. Everything the green arrows measure is counted from there.

 

Timeline with consecutive repeating MPDCCH ending at subframe n, and consecutive PUSCH repeated N times after offsets k0, k1 and kN-1

The grant and the transmission it schedules. Subframe n is the last MPDCCH subframe, and every offset is measured from there rather than from where the MPDCCH began.

  • The blue blocks are the MPDCCH and the red blocks are the PUSCH : the grant arrives repeated, and so does the transmission it schedules.
  • Subframe n is the end of the MPDCCH : 36.213 clause 8 defines it as the last subframe the MPDCCH is transmitted in. A UE cannot fix the reference point until the grant has finished arriving.
  • The green arrows are the offsets k : the PUSCH occupies subframes n plus k, with k0 marking the first repetition and the last arrow marking the final one.
  • N is the number of repetitions : the note at the lower right points at it and names the two tables that supply it.

One term in the uplink rule does not appear in the drawing, and it was added later. 36.213 writes the uplink subframes as n plus k plus Koffset rather than n plus k, and that third term is zero unless the network has sent the k-Offset parameter. A Release 13 UE therefore sees exactly the picture above, and only a non-terrestrial deployment sees the extra shift.

The two repetition level tables

The repetition number field in the uplink grant is two or three bits wide, so it carries an index rather than a count. A table turns that index into a number of subframes, and there is one table per DCI format.

The two tables defining N values are defined as follows.

 

< 36.213-Table 8.2b: PUSCH repetition levels (DCI Format 6-0A) >

36.213 Table 8-2b, four repetition levels selected by pusch-maxNumRepetitionCEmodeA

Four values per row, because the repetition number field in DCI format 6-0A is two bits wide. There is no row for 8, even though the parameter can be set to r8.

 

< 36.213-Table 8.2c: PUSCH repetition levels (DCI Format 6-0B) >

36.213 Table 8-2c, eight repetition levels per row selected by pusch-maxNumRepetitionCEmodeB

Eight values per row, because the repetition number field in DCI format 6-0B is three bits wide. The configured maximum is always the last entry of its row.

Reading the two against their downlink counterparts is worth a moment, because the numbers are the same. 36.213 Table 8-2b holds the values 36.213 Table 7.1.11-1 holds, and Table 8-2c matches Table 7.1.11-2 row for row. Only the parameter naming the row changes, from pdsch to pusch.

That makes the uplink and downlink repetition ladders identical in shape while staying independent in practice. A cell can configure r8 for the uplink and r32 for the downlink, and the two directions then use the same value set up to different maximums.

  • Row length follows the field width : four entries for the two bit field of 6-0A and eight for the three bit field of 6-0B.
  • The configured value is the top of its row : the parameter names the maximum and the table fills in the steps below it.
  • The uplink tables duplicate the downlink ones : the same numbers appear in 36.213 Tables 7.1.11-1 and 7.1.11-2 under the pdsch parameter names.
  • Table 8-2b has no row for 8 : the value is legal in the ASN.1 below, and the section after the listing says where it is used instead.

How the repetition maximum is configured

Both tables above have one row per value of a higher layer parameter, and one row for that parameter not being sent at all. The network therefore picks which set of repetition levels the grant will select from, and it does so in SIB2 rather than per grant.

The importantant thing to be noticed is that there are big difference between CEmodeA and CEmodeB in terms of max Number Repetition.  In General, CE Mode B perform much more repetition.

PUSCH-maxNumRepetitionCEmodeA/B would be configured in SIB2 as follows.

 

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

PUSCH-ConfigCommon-v1310 ::=       SEQUENCE {
    pusch-maxNumRepetitionCEmodeA-r13   ENUMERATED {
                                            r8, r16, r32 }      OPTIONAL,   -- Need OR
    pusch-maxNumRepetitionCEmodeB-r13   ENUMERATED {
                                            r192, r256, r384, r512, r768, r1024,
                                            r1536, r2048}       OPTIONAL,   -- Need OR
    pusch-HoppingOffset-v1310
                                        INTEGER (1..maxAvailNarrowBands-r13)
                                                                OPTIONAL    -- Need OR
}

All three fields are OPTIONAL, which is what the Not configured row of both tables above is for. A network that sends neither repetition field leaves the UE on the default set. Each table therefore needs a row for the parameter being absent as well as one for each value it can carry.

One asymmetry is worth noticing before moving on. The CE mode A field offers r8, r16 and r32, but 36.213 Table 8-2b has rows only for Not configured, 16 and 32. There is no row for 8, so the value has to earn its place somewhere else, and it does. The same parameter also sets the repetition level for the Msg3 PUSCH carried in a random access response. There 36.213 uses Tables 6.2-C and 6.2-D, and it falls back to 8 for CE mode A when the parameter is not signalled.

The third field has no downlink counterpart at all. It is pusch-HoppingOffset-v1310, an INTEGER over 1 to maxAvailNarrowBands. Counting it in narrowbands rather than resource blocks is the point, because it sets the distance uplink frequency hopping moves.

 

The decode below is a capture from one live network rather than specification text. The two uplink fields this section is about are marked in red, together with the downlink pair directly above them.

Example >

sib2
    radioResourceConfigCommon
        bcch-Config
        pcch-Config
        prach-Config
        pdsch-ConfigCommon
        pusch-ConfigCommon
        pucch-ConfigCommon
        soundingRS-UL-ConfigCommon: release (0)
        uplinkPowerControlCommon
        ul-CyclicPrefixLength: len1 (0)
        bcch-Config-v1310
            modificationPeriodCoeff-v1310: n64 (0)
        pcch-Config-v1310
            paging-narrowBands-r13: 1
            mpdcch-NumRepetition-Paging-r13: r1 (0)
            nB-v1310: one64thT (0)
        freqHoppingParameters-r13
        pdsch-ConfigCommon-v1310
            pdsch-maxNumRepetitionCEmodeA-r13: r16 (0)
            pdsch-maxNumRepetitionCEmodeB-r13: r192 (0)
        pusch-ConfigCommon-v1310
            pusch-maxNumRepetitionCEmodeA-r13: r8 (0)
            pusch-maxNumRepetitionCEmodeB-r13: r192 (0)
            pusch-HoppingOffset-v1310: 1
        prach-ConfigCommon-v1310
        pucch-ConfigCommon-v1310
            n1PUCCH-AN-InfoList-r13: 1 item
                Item 0
                    N1PUCCH-AN-InfoList-r13 item: 57
            pucch-NumRepetitionCE-Msg4-Level0-r13: n1 (0)
            pucch-NumRepetitionCE-Msg4-Level1-r13: n1 (0)
    ue-TimersAndConstants
    freqInfo
        additionalSpectrumEmission: 1
    timeAlignmentTimerCommon: infinity (7)

In this capture pusch-maxNumRepetitionCEmodeA is r8 and pusch-maxNumRepetitionCEmodeB is r192. The mode B value is the lowest its field offers. This cell therefore gives a CE mode B UE the set 1, 4, 8, 16, 32, 64, 128 and 192.

The mode A value is the interesting one, because r8 is exactly the value 36.213 Table 8-2b has no row for. Read the downlink pair on the line above as well, where pdsch-maxNumRepetitionCEmodeA is r16, and the asymmetry becomes visible in a single capture.

pusch-HoppingOffset-v1310 sits two lines below at 1, so uplink hopping in this cell moves by a single narrowband.

  • The Not configured row exists because the fields are optional : a network that sends neither leaves the UE on the default set of repetition levels.
  • The configured value is a ceiling rather than a setting : it selects the set, and the repetition number field in the grant still picks one entry from that set.
  • Uplink and downlink are configured separately : this capture carries r8 for the uplink and r16 for the downlink in CE mode A, and nothing requires them to match.
  • A capture is one network, not the specification : every enumerated value is equally legal, and these are one operator's choices.

What changed after Release 13

The reference at the foot of this page is 36.213 V13.2.0, and the uplink clause has gained more since than the downlink one did. Both tables are untouched and the definition of subframe n is untouched, so the picture above still describes a Release 13 network. What grew is the formula around it.

Release 14 added a way to bypass Table 8-2b altogether. When ce-pdsch-pusch-EnhancementConfig is set to On, 36.213 takes the repetition levels from a fixed set of 1, 2, 4, 8, 12, 16, 24 and 32 instead of from the table. Eight entries need three bits, which is why the same configuration widens the repetition number field of DCI format 6-0A from two bits to three.

Release 16 added two more routes. Multiple transport blocks can be scheduled by one grant, so the subframe count runs to N times the transport block count rather than to N. A preconfigured uplink resource skips the grant entirely, and a PUSCH sent on one takes its repetition number from higher layer configuration rather than from any DCI.

Release 17 added the term the drawing does not show. Koffset comes from the k-Offset parameter, with a per UE differential on top of it, and it shifts every uplink subframe further out. The reason is propagation delay on a non-terrestrial link, where the round trip is far longer than a terrestrial one.

Release

What the uplink clause gained

Field

Rel-13

The picture on this page. One transport block, N consecutive BL/CE uplink subframes, with N taken from Table 8-2b or Table 8-2c

pusch-maxNumRepetitionCEmodeA-r13, pusch-maxNumRepetitionCEmodeB-r13

Rel-14

A fixed repetition set of 1, 2, 4, 8, 12, 16, 24 and 32 that replaces Table 8-2b, together with the wider repetition number field it needs

ce-pdsch-pusch-EnhancementConfig-r14

Rel-15

Sub-PRB uplink allocation, where 36.213 accepts a grant even when the number of transmitted subframes exceeds pusch-maxNumRepetitionCEmodeA

ce-PUSCH-SubPRB-Config-r15

Rel-16

Several transport blocks from one grant, and a preconfigured uplink resource whose repetition number comes from higher layers rather than from a DCI

ce-PUSCH-MultiTB-Config-r16, pur-Config-r16

Rel-17

The K offset term, which shifts every scheduled uplink subframe to cover the propagation delay of a non-terrestrial link

k-Offset-r17

Compared against 36.213 v19.4.0, with each release dated by the suffix of the field that configures it in 36.331. Both repetition level tables are the same in that version as in the screenshots above.

  • Neither table changed : both screenshots match 36.213 v19.4.0 row for row, so nothing on this page needs correcting.
  • Release 14 can replace the table rather than extend it : with the enhancement configured, the repetition levels come from a fixed set of eight and Table 8-2b is not consulted.
  • The uplink formula gained a term the downlink one did not : Koffset has no counterpart in the PDSCH clause, because only the uplink has to absorb the propagation delay.
  • A grant is no longer the only way to send : a preconfigured uplink resource carries its own repetition number, so no DCI is involved at all.

Reference

The clauses and tables this page is built on, and the versions they were checked against.

[1] 3GPP TS 36.213 V13.2.0 (2016-06) Physical layer procedures

[2]

[3] 3GPP TS 36.213 v19.4.0 - clause 8.0 UE procedure for transmitting the physical uplink shared channel, with Table 8-2b and Table 8-2c

[4] 3GPP TS 36.331 v19.3.0 - the PUSCH-ConfigCommon-v1310 information element, and the ce-pdsch-pusch-EnhancementConfig and k-Offset fields