// if there is information on bsr of DCCH, DTCH or if there is UL_SR, or if there is a packet to retransmit, or we want to schedule a periodic feedback every 10 frames
LOG_D(MAC,"scheduled_ul_bytes, new %d\n",UE_template->scheduled_ul_bytes);
/* Cyclic shift for DMRS */
cshift=0;// values from 0 to 7 can be used for mapping the cyclic shift (36.211 , Table 5.5.2.1.1-1)
/* save it for a potential retransmission */
UE_template->cshift[harq_pid]=cshift;
AssertFatal(UE_template->physicalConfigDedicated!=NULL,"UE_template->physicalConfigDedicated is null\n");
AssertFatal(UE_template->physicalConfigDedicated->ext4!=NULL,"UE_template->physicalConfigDedicated->ext4 is null\n");
AssertFatal(UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11!=NULL,"UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11 is null\n");
LOG_D(MAC,"[eNB %d] CC_id %d Frame %d, subframeP %d: Generated ULSCH DCI for next UE_id %d, format 0\n",
module_idP,
CC_id,
frameP,
subframeP,
UE_id);
}else{// round_UL > 0 => retransmission
/* In LTE-M the UL HARQ process is asynchronous */
T(T_ENB_MAC_UE_UL_SCHEDULE_RETRANSMISSION,
T_INT(module_idP),
T_INT(CC_id),
T_INT(rnti),
T_INT(frameP),
T_INT(subframeP),
T_INT(harq_pid),
T_INT(UE_template->mcs_UL[harq_pid]),
T_INT(0),
T_INT(6),
T_INT(round_UL));
AssertFatal(UE_template->physicalConfigDedicated!=NULL,"UE_template->physicalConfigDedicated is null\n");
AssertFatal(UE_template->physicalConfigDedicated->ext4!=NULL,"UE_template->physicalConfigDedicated->ext4 is null\n");
AssertFatal(UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11!=NULL,"UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11 is null\n");