# 5G NR Hybrid ARQ

## Summary


5G NR supports Hybrid ARQ, which is a combination of retransmissions and error correction. Where possible, errors are corrected. Where correction is not possible, errors are detected and packet retransmission is requested. The receiver attempts to decode the packet based on current and previous transmissions. 

In 5G NR, HARQ operates at both MAC and PHY layers. Retransmissions occur at the MAC layer. PHY layer at the receiver combines one or more transmissions to increase the chances of correct decoding.

The use of HARQ in 5G NR benefits URLLC and eMBB use cases. HARQ typically achieves a residual error rate of 0.1-1%. Better performance can be achieved but at the cost of increased feedback signalling, higher power or lower spectral efficiency.

## Discussion

### Why do we need HARQ in 5G when RLC and PDCP do retransmissions?

Retransmissions in 5G NR are possible at three layers: MAC, RLC and PDCP. RLC and PDCP being higher layers, the feedback signalling is slower. HARQ retransmissions at MAC react faster to channel conditions and improve performance for delay-sensitive applications. Applications requiring 100Mbps may need highly reliable connections to avoid triggering TCP congestion-avoidance mechanism. A combination of HARQ's fast retransmissions and RLC's reliable packet delivery achieves this. 

RLC retransmissions are limited to logical channels in Acknowledged Mode (AM). HARQ offers retransmission capability for RLC UM and TM. Moreover, RLC transmissions can potentially happen on a different component carrier or cell but HARQ retransmissions happen on the same cell as the original transmission. 

PDCP retransmissions are useful during inter-gNB handovers. Undelivered packets are forwarded at the PDCP layer from old to new gNB. RLC retransmissions won't work since new RLC entities are established in the new gNB. HARQ retransmissions won't work since HARQ buffers are flushed during handover. 


### What are some technical details of 5G NR HARQ?

5G NR HARQ is **asynchronous**. Transmissions and retransmissions are explicitly signalled. They can be flexibly scheduled. They're not pre-determined according to some fixed pattern. Asynchronous HARQ is also more suited for unlicensed bands. 

5G NR HARQ is **adaptive**. Retransmissions can use different coding rates and redundancy bits. Receiver doesn't discard erroneous packets but stores them in its buffer. All versions are used to improve decoding. The method employed to combine different versions of the packet is called **Incremental Redundancy**.  

HARQ is a stop-and-wait protocol. Another packet is not sent while waiting for feedback on the current packet. Due to the round trip time, this results in underutilization of radio resources. 5G NR HARQ solves this by allowing **multiple concurrent HARQ processes**. Each process can have one packet pending an ACK. In both downlink and uplink, UE supports up to 16 HARQ processes per cell. 

HARQ applies to transmissions on PDSCH and PUSCH. Feedback for PDSCH comes on either PUCCH or PUSCH. Feedback for PUSCH is via uplink grants since receiver and scheduler are in gNB. 


### Could you share more details of Incremental Redundancy as specified in 5G NR?

5G NR HARQ doesn't discard erroneous packets. They're stored in a buffer and combined with retransmitted packets that will be received later. This is called **Hybrid ARQ with Soft-Combining**. With Incremental Redundancy, retransmitted packets related to the same information bits although each packet carries a different subset of information and parity bits. Exactly what goes into each transmission is determined by 5G NR's rate matching functionality. Each transmission is called a **Redundancy Version (RV)**. 

The error-correcting code used in 5G NR is Low Density Parity Check (LDPC) code. For LDPC, the order in which RVs are received matters because some RVs can't be decoded on their own. The default order is 0, 2, 3 and 1. RV0 and RV3 are self-decodable. The first transmission RV0 includes all information bits (aka systematic bits). 

HARQ's implicit link adaptation can be superior to explicit link adaptation since additional RVs are sent only when needed. Explicit link adaptation is still relevant for delay-sensitive applications. 


### What's the role of PHY and MAC layers for HARQ operation?

There's one MAC entity (and therefore one HARQ entity) for each serving cell. Each HARQ entity handles many HARQ processes. HARQ entity distributes the traffic among its processes. Each process handles one TB at a time but if downlink spatial multiplexing is configured, two TBs are possible. In downlink, HARQ processes are also used for slot aggregation, also called TTI bundling. In this case, a TB is retransmitted without waiting for ACK. 

At MAC, New Data Indicator (NDI) is used to determine if a received TB is a new transmission or a retransmission. When NDI is toggled in DCI, it implies new downlink data. Toggling NDI in uplink grant informs UE to send new data. 

When a retransmitted TB is received, MAC informs PHY to combine current and previous transmissions of the TB. Thus, PHY layer is responsible for soft combining and decoding. However, from a 5G specification perspective, CBG retransmissions are specified at PHY though they could have been specified at MAC. 


### What's the difference between TB vs CBG retransmissions?

Exactly one MAC PDU goes into one Transport Block (TB). MAC does TB retransmissions but the problem in 5G NR is that a TB can be as big as 1,277,992 bits. Retransmitting the entire TB when only a few bits are in error wastes spectral resources. It's for this reason that 5G NR has the concept of Code Block (CB) and Code Block Group (CBG). 

A TB along with its CRC is broken up into smaller units called Code Blocks. A CB has a maximum size of 8448 bits. Each CB is protected with its own CRC. However, sending ACK/NACK for each code block can result in excessive signalling. For this reason, 2/4/6/8 code blocks are grouped into a Code Block Group. Only CBGs are retransmitted, not the entire TB. Even the feedback signalling is based on CBGs and not on CBs. 

A TB can have only one CBG, which in turn may have one or more CBs. It's also possible for a TB to have multiple CBGs with only one CB per CBG. 


### Could you share details of HARQ codebooks?

A UE can acknowledge multiple CBGs or TBs together, including the case of Carrier Aggregation (CA) where multiple TBs are received per TTI. How many ACK/NACK bits to send and how to package these bits is defined as a **codebook**.

5G NR defines four codebooks:  

    + **CBG-Based HARQ-ACK Codebook**: RRC configures the UE with maximum CBGs per TB and CBGFI. If a TB has fewer CBGs, UE shall send NACKs for the remaining bits.
    + **Type-1 HARQ-ACK Codebook**: A *semi-static* codebook. The number of bits to send in an ACK/NACK report is fixed and could be potentially large. If many component carriers are configured but only a few are scheduled, this is inefficient.
    + **Type-2 HARQ-ACK Codebook**: A *dynamic* codebook or *enhanced dynamic* codebook (Release 16 onwards). This is more optimized since UE sends feedback only for the scheduled carriers. However, in poor channel conditions, UE may wrongly infer the number of carriers that were scheduled. To solve this problem, 5G NR specifies Downlink Assignment Index (DAI) as part of DCI.
    + **Type-3 HARQ-ACK Codebook**: Applicable for *OneShotFeedback*. UE sends ACK/NACK report for all HARQ processes and all CCs configured in the PUCCH group.

### Between data reception and its ACK/NACK, how is the timing offset determined?

The offset between DCI slot and start of PDSCH reception is determined by \(K\_0\) and the different numerologies of PDCCH and PDSCH. Likewise, parameter \(K\_2\) specifies the offset between DCI slot and PUSCH transmission. Both these are configured by RRC. 

Specific to HARQ is the parameter \(K\_1\). This specifies the timing between PDSCH and the ACK/NACK on PUCCH. In DCI formats 1\_0, 1\_1 and 1\_2, this is called **PDSCH-to-HARQ Feedback Timing Indicator**. This indicator references an RRC-configured table for PDSCH. Timing is indicated dynamically via DCI or semi-statically via RRC configuration. 

In the above figure, three PDSCH transmissions happen but in each transmission a different timing offset is specified. The gNB has scheduled this in such a way that the feedback for all three transmissions arrive together. We may say a single HARQ codebook acknowledges all three transmissions. 

If ACK/NACK is sent on PUCCH, UE uses the PUCCH resources allocated to it. 


### What are the main Release 16 changes pertaining to HARQ?

To support URLLC use case, some changes are introduced in Release 16. Out-of-order feedback is possible so that feedback for URLLC can be prioritized over eMBB. In Release 15, a slot has only one PUCCH carrying HARQ feedback. Release 16 allows multiple PUCCHs within a slot. Moreover, a UE can have two HARQ-ACK codebooks to support both URLLC and eMBB services. 

Before sending HARQ feedback in NR-U, the UE has to gain access to the channel via Listen Before Talk (LBT) with exponential backoff. This can be avoided if feedback comes in the same Channel Occupancy (CO) as the downlink data. If CO changes, a Release 16 gNB asks the UE to send HARQ feedback for specific HARQ processes and these could come via an enhanced dynamic codebook. 

In Non-Terrestrial Networks (NTNs), HARQ operation is a challenge due to RTTs in the order of hundreds of milliseconds. Release 16 has chosen to semi-statically disable HARQ and rely only on ARQ. 


### What control information are specified for 5G NR HARQ operation?

Downlink Control Information (DCI) carries PDSCH and PUSCH scheduling information. DCI comes in many formats. Formats 0\_0, 0\_1 and 0\_2 schedule PUSCH in a cell. Formats 1\_0, 1\_1 and 1\_2 schedule PDSCH in a cell. Other formats are not relevant to HARQ. 

If multiple PUSCH are scheduled, 2-8 bits are possible for NDI and RV in 0\_1. For PUSCH scheduling, DAI can indicate semi-static codebook (1 bit), dynamic codebook (2 bits) or enhanced dynamic codebook (4 bits). Second DAI can be 0/2/4 bits. 

If second TB is scheduled for PDSCH, NDI and RV are included per TB. DAI length for PDSCH scheduling in 1\_1 depends on number of DL serving cells and other configurations. Length of PDSCH-to-HARQ feedback timing field is derived from higher layer configuration. 

Fields Code Block Group Transmission Information (CBGTI) and Code Block Group Flush Indicator (CBGFI) are relevant only if retransmissions are based on CBG. What NDI does for TB-level soft-combining, CBGFI does for CBG-level soft-combining. 


### How is 5G NR HARQ different from 4G/LTE HARQ?

In LTE and 5G NR, retransmissions can be adaptive in uplink and downlink. 

The use of code blocks is common to LTE and 5G NR but 5G NR has introduced CBG-based retransmissions.   

In 5G NR, HARQ is asynchronous in downlink and uplink. In 4G/LTE, HARQ is asynchronous in downlink and synchronous in the uplink. However, Release 13 introduced asynchronous UL HARQ that's used by License-Assisted Access (LAA). Synchronous HARQ is not suitable in 5G NR due to dynamic TDD and operation in unlicensed spectra.  

In LTE synchronous UL HARQ, the same process ID is used every eighth subframe. An LTE UE responds with HARQ ACK 3ms after receiving the downlink data. 5G NR has more flexibility to respond faster for URLLC use cases. In fact, first transmission and its retransmission can happen within 1ms. 

In LTE, Physical HARQ Indicator Channel (PHICH) is a dedicated downlink channel to carry HARQ ACK/NACK for uplink traffic carried on PUSCH. Such a channel is not required in 5G NR since HARQ is asynchronous. 

In LTE, the number of HARQ processes was limited to 8 but this is increased to 16 in 5G NR. 

## Milestones

1960

At the Fourth London Symposium on Information Theory, Wozencraft and Horstein propose HARQ, although they don't use the term "HARQ". In a subsequent MIT Technical Report, they state, "The system is somewhat similar to human communication, in that typical errors are corrected, while grievous ones initiate a request for retransmission." 

Sep  
2002

3GPP publishes Release 5 of 3G/UMTS specification. High Speed Downlink Packet Access (HSDPA) is one of the important additions in this release. At the air interface, this includes HARQ with soft combining (chase combining or incremental redundancy) in the downlink with up to 8 HARQ processes. It complements ARQ at the RLC layer. HARQ operation happens in a new sublayer called MAC-hs in the UE and NodeB.  

Sep  
2005

3GPP publishes Release 6 of 3G/UMTS specification. High Speed Uplink Packet Access (HSUPA) is one of the important additions in this release. At the air interface, this includes HARQ with soft combining (chase combining or incremental redundancy) in the uplink with up to 8 HARQ processes. HARQ operation happens in a new sublayer called MAC-e in the UE and NodeB. During a soft handover and due to parallel HARQ processes, RNC might receive duplicate packets and out-of-order packets. MAC-es sublayer in the RNC handles these.  

Mar  
2009

3GPP publishes the first 4G/LTE specification, named Release 8. This includes asynchronous HARQ in downlink and synchronous HARQ in uplink. Each direction can have up to 8 HARQ processes. Retransmissions can be adaptive or non-adaptive. Although a TB is segmented into code blocks, retransmissions happen at the level of TB.  

Mar  
2016

3GPP publishes Release 13 of 4G/LTE specification. Uplink HARQ operation can now be asynchronous, a change introduced to support License-Assisted Access (LAA). This is because in unlicensed spectrum it's not possible to guarantee resources for synchronous transmission. 

Dec  
2017

3GPP approves the first specifications for 5G, called "early drop" of Release 15. The basics of 5G NR HARQ are defined in this early release: HARQ processes, RV, PDSCH-to-HARQ feedback timing indicator, DAI, NDI, CBGTI, CBGFI, and semi-static and dynamic codebooks. 

Jul  
2020

3GPP publishes Release 16 specifications. Enhanced dynamic HARQ-ACK codebook is introduced. DCI formats 0\_2 and 1\_2 are added for PUSCH or PDSCH scheduling in one cell respectively. One-shot HARQ-ACK request is added to DCI format 1\_1. Other fields added to DCI format 1\_1 and relevant for enhanced dynamic codebook are number of requested PDSCH groups, PDSCH group index, and New Feedback Indicator (NFI).  For operation with shared spectrum channel access, enhanced dynamic codebook and one-shot triggering are useful.