Section: 5.4.2.1 HARQ entity
Content: There is one HARQ entity at the MAC entity for each Serving Cell with configured uplink, which maintains a number of parallel HARQ processes allowing transmissions to take place continuously while waiting for the HARQ feedback on the successful or unsuccessful reception of previous transmissions. The number of parallel HARQ processes per HARQ entity is specified in TS 36.213[ Evolved Universal Terrestrial Radio Access (E-UTRA); Physical layer procedures ]  [2], clause 8. NB-IoT has one or two UL HARQ processes. When the physical layer is configured for uplink spatial multiplexing, as specified in TS 36.213[ Evolved Universal Terrestrial Radio Access (E-UTRA); Physical layer procedures ]  [2], there are two HARQ processes associated with a given TTI. Otherwise there is one HARQ process associated with a given TTI. At a given TTI, if an uplink grant is indicated for the TTI, the HARQ entity identifies the HARQ process(es) for which a transmission should take place. It also routes the received HARQ feedback (ACK/NACK information), MCS and resource, relayed by the physical layer, to the appropriate HARQ process(es). In asynchronous HARQ operation, a HARQ process is associated with a TTI based on the received UL grant except for UL grant in RAR. Except for NB-IoT UE configured with a single HARQ process, each asynchronous HARQ process is associated with a HARQ process identifier. For UL transmission with UL grant in RAR and for transmission using PUR, HARQ process identifier 0 is used. HARQ feedback is not applicable for asynchronous UL HARQ except if mpdcch-UL-HARQ-ACK-FeedbackConfig is configured. In autonomous HARQ operation, HARQ feedback is applicable. When TTI bundling is configured, the parameter TTI_BUNDLE_SIZE provides the number of TTIs of a TTI bundle. TTI bundling operation relies on the HARQ entity for invoking the same HARQ process for each transmission that is part of the same bundle. Within a bundle HARQ retransmissions are non-adaptive and triggered without waiting for feedback from previous transmissions according to TTI_BUNDLE_SIZE. The HARQ feedback of a bundle is only received for the last TTI of the bundle (i.e the TTI corresponding to TTI_BUNDLE_SIZE), regardless of whether a transmission in that TTI takes place or not (e.g. when a measurement gap occurs). A retransmission of a TTI bundle is also a TTI bundle. TTI bundling is not supported when the MAC entity is configured with one or more SCells with configured uplink. Uplink HARQ operation is asynchronous for NB-IoT UEs, BL UEs or UEs in enhanced coverage except for the repetitions within a bundle, in serving cells configured with pusch-EnhancementsConfig, serving cells operating according to Frame Structure Type 3, for HARQ processes scheduled using short TTI, for HARQ processes scheduled using Short Processing Time, and for HARQ processes associated with an SPS configuration with totalNumberPUSCH-SPS-STTI-UL-Repetitions or totalNumberPUSCH-SPS-UL-Repetitions except for the repetitions within a bundle. For serving cells configured with pusch-EnhancementsConfig, NB-IoT UEs, BL UEs or UEs in enhanced coverage, the parameter UL_REPETITION_NUMBER provides the number of transmission repetitions within a bundle. For each bundle, UL_REPETITION_NUMBER is set to a value provided by lower layers. Bundling operation relies on the HARQ entity for invoking the same HARQ process for each transmission that is part of the same bundle. Within a bundle HARQ retransmissions are non-adaptive and are triggered without waiting for feedback from previous transmissions according to UL_REPETITION_NUMBER. An uplink grant corresponding to a new transmission of the bundle is only received after the last repetiton of the bundle if mpdcch-UL-HARQ-ACK-FeedbackConfig is not configured. An uplink grant corresponding to a retransmission of the bundle is only received after the last repetition of the bundle. For UEs configured with mpdcch-UL-HARQ-ACK-FeedbackConfig, repetitions within a bundle are stopped if an UL HARQ-ACK feedback or an uplink grant corresponding to a new transmission of the bundle is received on PDCCH during the bundle transmission. A retransmission of a bundle is also a bundle. For a SPS configuration with totalNumberPUSCH-SPS-STTI-UL-Repetitions or totalNumberPUSCH-SPS-UL-Repetitions (TS 36.331[ Evolved Universal Terrestrial Radio Access (E-UTRA); Radio Resource Control (RRC); Protocol specification ]  [8]), the parameter totalNumberPUSCH-SPS-STTI-UL-Repetitions or totalNumberPUSCH-SPS-UL-Repetitions provides the number of transmission repetitions within a configured grant bundle. Bundling operation relies on the HARQ entity invoking the same HARQ process for each transmission that is part of the same bundle. Within a bundle HARQ retransmissions are non-adaptive and are triggered without waiting for feedback from previous transmissions. TTI bundling is not supported for RN communication with the E-UTRAN in combination with an RN subframe configuration. For transmission of Msg3 during Random Access (see clause 5.1.5) TTI bundling does not apply. For UEs configured with pusch-EnhancementsConfig performing contention free Random Access, NB-IoT UEs, BL UEs or UEs in enhanced coverage, uplink repetition bundling is used for transmission of Msg3. For each TTI, the HARQ entity shall: - identify the HARQ process(es) associated with this TTI, and for each identified HARQ process: - if an uplink grant has been indicated for this process and this TTI: - if the received grant was addressed neither to a Temporary C-RNTI nor to a PUR-RNTI on PDCCH and if the NDI provided in the associated HARQ information has been toggled compared to the value in the previous transmission of this HARQ process; or - if the uplink grant was received on PDCCH for the C-RNTI and the HARQ buffer of the identified process is empty; or - if the uplink grant was provided by RRC for transmission using PUR; or - if the uplink grant was received in a Random Access Response: - if there is a MAC PDU in the Msg3 buffer and the uplink grant was received in a Random Access Response: - if the MAC PDU in the Msg3 buffer contains the Data Volume and Power Headroom Report MAC control element: - the MAC entity shall update the Data Volume and Power Headroom Report MAC control element in the MAC PDU in the Msg3 buffer. - if the UE is an NB-IoT UE and cqi-Reporting is configured by upper layers: - the MAC entity shall update the MAC PDU in the Msg3 buffer in accordance with the DL channel quality measurement result. - obtain the MAC PDU to transmit from the Msg3 buffer. - else if the uplink grant is a configured grant with totalNumberPUSCH-SPS-STTI-UL-Repetitions or totalNumberPUSCH-SPS-UL-Repetitions and if a retransmission within a bundle is triggered for another configured grant with totalNumberPUSCH-SPS-STTI-UL-Repetitions or totalNumberPUSCH-SPS-UL-Repetitions in this TTI: - ignore the uplink grant. - else if the MAC entity is configured with semiPersistSchedIntervalUL shorter than 10 subframes and if the uplink grant is a configured grant, and if the HARQ buffer of the identified HARQ process is not empty, and if HARQ_FEEDBACK of the identified HARQ process is NACK; or if the MAC entity is configured with ul-SchedInterval shorter than 10 subframes and if the uplink grant is a preallocated uplink grant, and if the HARQ buffer of the identified HARQ process is not empty, and if HARQ_FEEDBACK of the identified HARQ process is NACK: - instruct the identified HARQ process to generate a non-adaptive retransmission. - else: - if the UL HARQ operation is synchronous, and the uplink grant is a preallocated uplink grant, and a MAC PDU has previously been obtained from the "Multiplexing and assembly" entity during this handover attempt: - ignore the uplink grant; - else: - obtain the MAC PDU to transmit from the "Multiplexing and assembly" entity, if any; - if a MAC PDU to transmit has been obtained: - deliver the MAC PDU and the uplink grant and the HARQ information to the identified HARQ process; - instruct the identified HARQ process to trigger a new transmission. - else: - flush the HARQ buffer of the identified HARQ process. - else: - if the MAC entity is configured with skipUplinkTxSPS and if the uplink grant received on PDCCH was addressed to the Semi-Persistent Scheduling C-RNTI or to the UL Semi-Persistent Scheduling V-RNTI and if the HARQ buffer of the identified process is empty; or - if UL HARQ operation is autonomous for the identified HARQ process and if the uplink grant is a configured UL grant and if the HARQ buffer of the identified process is empty; or - if the previous uplink grant delivered to the HARQ entity for the same HARQ process was a configured uplink grant for which the UL HARQ operation was autonomous, and if the corresponding UL grant size was different from the UL grant size indicated by the uplink grant for this TTI: - ignore the uplink grant; - else: - deliver the uplink grant and the HARQ information (redundancy version) to the identified HARQ process; - if UL HARQ operation is autonomous for the identified HARQ process and if the uplink grant is a configured UL grant: - instruct the identified HARQ process to generate a non adaptive retransmission. - else: - instruct the identified HARQ process to generate an adaptive retransmission. - else, if the HARQ buffer of this HARQ process is not empty: - instruct the identified HARQ process to generate a non-adaptive retransmission; - if the non-adaptive retransmission collides with a transmission of another HARQ process scheduled using Short Processing Time: - instruct the identified HARQ process to generate a positive acknowledgement (ACK) of the data in the corresponding TB. When determining if NDI has been toggled compared to the value in the previous transmission the MAC entity shall ignore NDI received in all uplink grants on PDCCH for its Temporary C-RNTI and PUR-RNTI.