0% found this document useful (0 votes)
43 views1 page

Harq Process For DL

The document discusses the HARQ process for downlink transmissions. It describes how HARQ processes are maintained per UE using a HARQ process list. When a PDCCH allocation is received, the scheduler initiates transmission using a HARQ entity. The HARQ entity generates a MAC PDU and sends feedback like ACK/NACK which is processed by the HARQ process to determine if retransmission is needed. The HARQ process can have different statuses after processing ACK/NACK like success, failure requiring retransmission, or success with decoding.

Uploaded by

Bulbul malviya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views1 page

Harq Process For DL

The document discusses the HARQ process for downlink transmissions. It describes how HARQ processes are maintained per UE using a HARQ process list. When a PDCCH allocation is received, the scheduler initiates transmission using a HARQ entity. The HARQ entity generates a MAC PDU and sends feedback like ACK/NACK which is processed by the HARQ process to determine if retransmission is needed. The HARQ process can have different statuses after processing ACK/NACK like success, failure requiring retransmission, or success with decoding.

Uploaded by

Bulbul malviya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

HARQ PROCESS FOR DL

31 January 2023 14:53

class HARQ_TX_PROCESS : public HARQ_TX_PROCESS_TABLE_ENTRY class HARQ_TX_ENTITY : public HARQ_TX_ENTITY_TABLE_ENTRY

HARQ_TX_PROCESS *harq_process_list[MAX_CODE_WORDS]
[MAX_HARQ_PROCESS_PER_UE];

void FD_DL_RB_SCHEDULER::process_forder_pdcch_alloc
void FD_DL_RB_SCHEDULER::process_sorder_pdcch_alloc
void FD_DL_RB_SCHEDULER::process_lorder_pdcch_alloc

RMA_STATUS FD_DL_SCHED_UE_CONTEXT::initiate_tx(FRAME_NUM frame_num,


DL_SCHED_UE_OUTPUT *dl_sched_ue_output, RESOURCE_ALLOCATION_INFO
*alloc_info_ptr)

mac_pdu = tx_harq_entity->initiate_tx_data(&harq_info,
dl_sched_ue_output->sched_category, DRX_RETX_TIMER_ENUM_2
HARQ Process_id
_TIMER_VAL[ue_mac_info.drx.retrans_timer], dl_sched_ue_output, cw,
((is_multiplexed) ? (harq_info.process_number + 1): 0));

MY_FD_DL_SCHED->fill_dci_harq_info(dl_sched_ue_output, &harq_info,cw)

case SCHED_HARQ_NOTIFY_COMP:
case SCHED_HARQ_NOTIFY_PUCCH:
case SCHED_HARQ_NOTIFY_PUSCH:
sched_obj_ptr->process_ack_nack(mpi_uci_pdus_ind, msg->
get_source(),harq_rep_type);

ACK/NACK

harq_status = ue_ptr->tx_harq_entity->process_ack_nack(&curr_frame_num,
ul_hi_pdu_desc, harq_frame_num, rt_sched_obj_ptr->bbu_cell_id,rep_type);

retval = process_ack_nack(harq_process_id, harqValue, harq_frame_num,


&num_codeword, &ack_nack_result[0],rep_type);

pdu_status = harq_process_list[cw][process_id]->process_ack_nack (ack,


harq_frame_num, &ue_retx_info, bbu_cell_id,rep_type,ue_ctx_ptr->gbr_lc_present);

typedef enum {
MAC_PDU_STATUS_FAILURE = 0, /* Processing fails */
MAC_PDU_STATUS_DELETE_UE, /*- If Contention resolution fails for a UE */
return MAC_PDU_STATUS_REDIRECT, /* During random access pdu to be redirected to actual MAC_UE */
harq_status
MAC_PDU_STATUS_NACK_AND_DONE, /* PDU processing is success, decoding fails, no more retransmission */
MAC_PDU_STATUS_NACK, /* PDU processing is success, decoding fails, need more retransmission */
MAC_PDU_STATUS_ACK /* PDU processing is success, decoding also succeeds */
}MAC_PDU_STATUS;

Interview Page 1

You might also like