removed AssertFatal in nr_ue_mac_procedures.c for nr_dlsim HARQ tests. For some unknown reason there are occasion 0 SDUs sent up to MAC which causes failure.
This commit is contained in:
@@ -590,6 +590,9 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
|
|||||||
// Fixme: correct type is unsigned, but nrLDPC_decoder and all called behind use signed int
|
// Fixme: correct type is unsigned, but nrLDPC_decoder and all called behind use signed int
|
||||||
if (check_crc((uint8_t*)llrProcBuf,length_dec,harq_process->F,crc_type)) {
|
if (check_crc((uint8_t*)llrProcBuf,length_dec,harq_process->F,crc_type)) {
|
||||||
LOG_D(PHY,"Segment %u CRC OK\n\033[0m",r);
|
LOG_D(PHY,"Segment %u CRC OK\n\033[0m",r);
|
||||||
|
if (r==0)
|
||||||
|
for (int i=0;i<10;i++) LOG_D(PHY,"byte %d : %x\n",i,((uint8_t*)llrProcBuf)[i]);
|
||||||
|
|
||||||
//Temporary hack
|
//Temporary hack
|
||||||
no_iteration_ldpc = dlsch->max_ldpc_iterations;
|
no_iteration_ldpc = dlsch->max_ldpc_iterations;
|
||||||
ret = no_iteration_ldpc;
|
ret = no_iteration_ldpc;
|
||||||
|
|||||||
@@ -3582,19 +3582,18 @@ void nr_ue_process_mac_pdu(module_id_t module_idP,
|
|||||||
// L: The Length field indicates the length of the corresponding MAC SDU or variable-sized MAC CE in bytes. There is one L field per MAC subheader except for subheaders corresponding to fixed-sized MAC CEs and padding. The size of the L field is indicated by the F field;
|
// L: The Length field indicates the length of the corresponding MAC SDU or variable-sized MAC CE in bytes. There is one L field per MAC subheader except for subheaders corresponding to fixed-sized MAC CEs and padding. The size of the L field is indicated by the F field;
|
||||||
// F: lenght of L is 0:8 or 1:16 bits wide
|
// F: lenght of L is 0:8 or 1:16 bits wide
|
||||||
// R: Reserved bit, set to zero.
|
// R: Reserved bit, set to zero.
|
||||||
|
|
||||||
while (!done && pdu_len > 0){
|
while (!done && pdu_len > 0){
|
||||||
mac_ce_len = 0x0000;
|
mac_ce_len = 0x0000;
|
||||||
mac_subheader_len = 0x0001; // default to fixed-length subheader = 1-oct
|
mac_subheader_len = 0x0001; // default to fixed-length subheader = 1-oct
|
||||||
mac_sdu_len = 0x0000;
|
mac_sdu_len = 0x0000;
|
||||||
rx_lcid = ((NR_MAC_SUBHEADER_FIXED *)pdu_ptr)->LCID;
|
rx_lcid = ((NR_MAC_SUBHEADER_FIXED *)pdu_ptr)->LCID;
|
||||||
|
//#ifdef DEBUG_HEADER_PARSING
|
||||||
|
LOG_D(MAC, "[UE] LCID %d, PDU length %d\n", ((NR_MAC_SUBHEADER_FIXED *)pdu_ptr)->LCID, pdu_len);
|
||||||
|
//#endif
|
||||||
|
|
||||||
switch(rx_lcid){
|
switch(rx_lcid){
|
||||||
// MAC CE
|
// MAC CE
|
||||||
|
|
||||||
/*#ifdef DEBUG_HEADER_PARSING
|
|
||||||
LOG_D(MAC, "[UE] LCID %d, PDU length %d\n", ((NR_MAC_SUBHEADER_FIXED *)pdu_ptr)->LCID, pdu_len);
|
|
||||||
#endif*/
|
|
||||||
case DL_SCH_LCID_CCCH:
|
case DL_SCH_LCID_CCCH:
|
||||||
// MSG4 RRC Connection Setup 38.331
|
// MSG4 RRC Connection Setup 38.331
|
||||||
// varialbe length
|
// varialbe length
|
||||||
@@ -3802,7 +3801,9 @@ void nr_ue_process_mac_pdu(module_id_t module_idP,
|
|||||||
}
|
}
|
||||||
pdu_ptr += ( mac_subheader_len + mac_ce_len + mac_sdu_len );
|
pdu_ptr += ( mac_subheader_len + mac_ce_len + mac_sdu_len );
|
||||||
pdu_len -= ( mac_subheader_len + mac_ce_len + mac_sdu_len );
|
pdu_len -= ( mac_subheader_len + mac_ce_len + mac_sdu_len );
|
||||||
AssertFatal(pdu_len >= 0, "[MAC] nr_ue_process_mac_pdu, residual mac pdu length < 0!\n");
|
if (pdu_len < 0) //AssertFatal(pdu_len >= 0, "[MAC] nr_ue_process_mac_pdu, residual mac pdu length %d < 0!, mac_pdu_len %d, mac_sdu_len %d, mac_ce_len %d, mac_subheader_len %d\n",
|
||||||
|
LOG_E(MAC,"nr_ue_process_mac_pdu, residual mac pdu length %d < 0!, mac_pdu_len %d, mac_sdu_len %d, mac_ce_len %d, mac_subheader_len %d\n",
|
||||||
|
pdu_len,mac_pdu_len,mac_sdu_len,mac_ce_len,mac_sdu_len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -751,14 +751,14 @@ void nr_schedule_uss_dlsch_phytest(module_id_t module_idP,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
#if defined(ENABLE_MAC_PAYLOAD_DEBUG)
|
#if defined(ENABLE_MAC_PAYLOAD_DEBUG)
|
||||||
if (frameP%100 == 0){
|
if (frameP%100 == 0){
|
||||||
LOG_I(MAC, "Printing first 10 payload bytes at the gNB side, Frame: %d, slot: %d, TBS size: %d \n", frameP, slotP, TBS_bytes);
|
LOG_I(MAC, "Printing first 10 payload bytes at the gNB side, Frame: %d, slot: %d, TBS size: %d \n", frameP, slotP, TBS_bytes);
|
||||||
for(int i = 0; i < 10; i++) {
|
for(int i = 0; i < 10; i++) {
|
||||||
LOG_I(MAC, "%x. ", ((uint8_t *)gNB_mac->UE_list.DLSCH_pdu[CC_id][0][0].payload[0])[i]); //LOG_I(MAC, "%x. ", mac_payload[i]);
|
LOG_I(MAC, "byte %d : %x\n", i,((uint8_t *)gNB_mac->UE_list.DLSCH_pdu[0][0].payload[0])[i]); //LOG_I(MAC, "%x. ", mac_payload[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else { // There is no data from RLC or MAC header, so don't schedule
|
else { // There is no data from RLC or MAC header, so don't schedule
|
||||||
|
|||||||
Reference in New Issue
Block a user