This article will discuss K0, K1, and K2 in detail in NR time domain resource allocation. K0, K1, and K2 play very important roles in NR and, frankly speaking little confusing.
Generally, we simply define the K-parameter as slot offset between the DCI received by the UE on the PDCCH channel and its scheduled resource, whether it’s for PDSCH reception (K0), PUSCH transmission (K2), or HARQ feedback transmission over PUCCH (K1).
K0: Time Domain PDSCH Slot & Symbols Allocation
K1: PDSCH-to-HARQ_Feedback timing indicator
K2: PUSCH – Time Domain Allocation
Where define the K0, K1 and K2 value in NR?
SIB1 we configure the common TDRA for Downlink and Uplink and SIB1 only configure the K0 and K2 values.
RRC setup and reconfiguration we configured the dedicated TDRA for Downlink and Uplink and here we configure the K0, K1 and K2 values.
PDSCH-TimeDomainResourceAllocationList :
[0]:
k0: 0
mappingType : typeA
startSymbolAndLength: 40
[1]:
k0: 0
mappingType : typeA
startSymbolAndLength: 53
PUSCH-TimeDomainResourceAllocationList
[0]:
k2: 1
mappingType: typeA
startSymbolAndLength: 27
[1]:
k2: 2
mappingType: typeA
startSymbolAndLength: 27
dl-DataToUL-ACK
[0]: 3
[1]: 4
[2]: 5
[3]: 6
[4]: 7
[5]: 8
[6]: 11
[7]: 12
K0: This is the offset between the DL slot where the PDCCH (DCI) for downlink scheduling is received and the DL slot assigned for PDSCH data.
Let’s understand with example,
PDSCH-TimeDomainResourceAllocationList :
[0]:
k0: 0
mappingType : typeA
startSymbolAndLength: 40
Here K0 value is 0 then PDSCH schedules on the 0th slot as shown below figure with graphical representation,
PDSCH-TimeDomainResourceAllocationList :
[0]:
k0: 3
mappingType : typeA
startSymbolAndLength: 40
K1: This denotes the offset between the DL slot for scheduled PDSCH data and the UL slot where the ACK/NACK feedback for that scheduled PDSCH data must be transmitted.
K1 tells that on what slot PDSCH HARQ feedback will receive this configuration will get on RRC setup and RRC reconfiguration by dl-DataToUL-ACK as shown below:
dl-DataToUL-ACK provides a list of timing for given PDSCH to the DL ACK. It is a sequence of size 1..8 of integer values 0..15:
dl-DataToUL-ACK
[0]: 3
[1]: 4
[2]: 5
[3]: 6
[4]: 7
[5]: 8
[6]: 11
[7]: 12
Let’s understand with example,
Based on the K1 value, ACK/NACK feedback for the data scheduled on PDSCH in slot 3 and K1 is 5 then HARQ feedback will be sent on slot 8 as dl-DataToUL-ACK index is [2] as shown below:
K2 The number of slots between the DCI (UL Grant) and the corresponding PUSCH transmission.
Let’s understand with example,
PUSCH-TimeDomainResourceAllocationList
[0]:
k2: 3
mappingType: typeA
startSymbolAndLength: 27
Here K2 value is 3 then PUSCH schedules on the 6th slot as shown below figure with a graphical representation, UE is scheduled to send its UL data on PUSCH in slot-6.
For more detail read the 3GPP reference TS 38.101 -4, TS 38.211, TS 38.212, TS 38-213, TS 38-214, TS 38.331.