Commit 9f719696 authored by Robert Schmidt's avatar Robert Schmidt

nr_process_mac_pdu(): avoid double UE_id search

nr_process_mac_pdu() gets the UE_id instead of the RNTI as parameter to
avoid to search the UE_id after nr_rx_sdu() did that already.

Since nr_process_mac_pdu() is only used/called from one file, remove
from the header file.

Reformat affected code to align more closely with OAI style guidelines.
parent fb1d7913
...@@ -61,9 +61,8 @@ const uint32_t NR_LONG_BSR_TABLE[256] ={ ...@@ -61,9 +61,8 @@ const uint32_t NR_LONG_BSR_TABLE[256] ={
35910462, 38241455, 40723756, 43367187, 46182206, 49179951, 52372284, 55771835, 59392055, 63247269, 67352729, 71724679, 76380419, 81338368, 162676736, 4294967295 35910462, 38241455, 40723756, 43367187, 46182206, 49179951, 52372284, 55771835, 59392055, 63247269, 67352729, 71724679, 76380419, 81338368, 162676736, 4294967295
}; };
void nr_process_mac_pdu( void nr_process_mac_pdu(module_id_t module_idP,
module_id_t module_idP, int UE_id,
rnti_t rnti,
uint8_t CC_id, uint8_t CC_id,
frame_t frameP, frame_t frameP,
uint8_t *pduP, uint8_t *pduP,
...@@ -79,11 +78,6 @@ void nr_process_mac_pdu( ...@@ -79,11 +78,6 @@ void nr_process_mac_pdu(
NR_UE_info_t *UE_info = &RC.nrmac[module_idP]->UE_info; NR_UE_info_t *UE_info = &RC.nrmac[module_idP]->UE_info;
int UE_id = find_nr_UE_id(module_idP, rnti);
if (UE_id == -1) {
LOG_E(MAC, "%s() UE_id == -1\n",__func__);
return;
}
NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id]; NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
// For both DL/UL-SCH // For both DL/UL-SCH
// Except: // Except:
...@@ -261,33 +255,37 @@ void nr_process_mac_pdu( ...@@ -261,33 +255,37 @@ void nr_process_mac_pdu(
case UL_SCH_LCID_DTCH: case UL_SCH_LCID_DTCH:
// check if LCID is valid at current time. // check if LCID is valid at current time.
if(((NR_MAC_SUBHEADER_SHORT *)pdu_ptr)->F){ if (((NR_MAC_SUBHEADER_SHORT *)pdu_ptr)->F) {
//mac_sdu_len |= (uint16_t)(((NR_MAC_SUBHEADER_LONG *)pdu_ptr)->L2)<<8; // mac_sdu_len |= (uint16_t)(((NR_MAC_SUBHEADER_LONG *)pdu_ptr)->L2)<<8;
mac_subheader_len = 3; mac_subheader_len = 3;
mac_sdu_len = ((uint16_t)(((NR_MAC_SUBHEADER_LONG *) pdu_ptr)->L1 & 0x7f) << 8) mac_sdu_len = ((uint16_t)(((NR_MAC_SUBHEADER_LONG *)pdu_ptr)->L1 & 0x7f) << 8)
| ((uint16_t)((NR_MAC_SUBHEADER_LONG *) pdu_ptr)->L2 & 0xff); | ((uint16_t)((NR_MAC_SUBHEADER_LONG *)pdu_ptr)->L2 & 0xff);
} else { } else {
mac_sdu_len = (uint16_t)((NR_MAC_SUBHEADER_SHORT *)pdu_ptr)->L; mac_sdu_len = (uint16_t)((NR_MAC_SUBHEADER_SHORT *)pdu_ptr)->L;
mac_subheader_len = 2; mac_subheader_len = 2;
} }
LOG_D(MAC, "[UE %d] Frame %d : ULSCH -> UL-DTCH %d (gNB %d, %d bytes)\n", module_idP, frameP, rx_lcid, module_idP, mac_sdu_len); LOG_D(MAC,
int UE_id = find_nr_UE_id(module_idP, rnti); "[UE %d] Frame %d : ULSCH -> UL-DTCH %d (gNB %d, %d bytes)\n",
RC.nrmac[module_idP]->UE_info.mac_stats[UE_id].lc_bytes_rx[rx_lcid] += mac_sdu_len; module_idP,
#if defined(ENABLE_MAC_PAYLOAD_DEBUG) frameP,
rx_lcid,
module_idP,
mac_sdu_len);
UE_info->mac_stats[UE_id].lc_bytes_rx[rx_lcid] += mac_sdu_len;
#if defined(ENABLE_MAC_PAYLOAD_DEBUG)
log_dump(MAC, pdu_ptr + mac_subheader_len, 32, LOG_DUMP_CHAR, "\n"); log_dump(MAC, pdu_ptr + mac_subheader_len, 32, LOG_DUMP_CHAR, "\n");
#endif
#endif
mac_rlc_data_ind(module_idP, mac_rlc_data_ind(module_idP,
rnti, UE_info->rnti[UE_id],
module_idP, module_idP,
frameP, frameP,
ENB_FLAG_YES, ENB_FLAG_YES,
MBMS_FLAG_NO, MBMS_FLAG_NO,
rx_lcid, rx_lcid,
(char *) (pdu_ptr + mac_subheader_len), (char *)(pdu_ptr + mac_subheader_len),
mac_sdu_len, mac_sdu_len,
1, 1,
NULL); NULL);
...@@ -297,7 +295,6 @@ void nr_process_mac_pdu( ...@@ -297,7 +295,6 @@ void nr_process_mac_pdu(
sched_ctrl->estimated_ul_buffer -= mac_sdu_len; sched_ctrl->estimated_ul_buffer -= mac_sdu_len;
else else
sched_ctrl->estimated_ul_buffer = 0; sched_ctrl->estimated_ul_buffer = 0;
break; break;
default: default:
...@@ -467,7 +464,7 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP, ...@@ -467,7 +464,7 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
if (UE_scheduling_control->sched_ul_bytes < 0) if (UE_scheduling_control->sched_ul_bytes < 0)
UE_scheduling_control->sched_ul_bytes = 0; UE_scheduling_control->sched_ul_bytes = 0;
nr_process_mac_pdu(gnb_mod_idP, current_rnti, CC_idP, frameP, sduP, sdu_lenP); nr_process_mac_pdu(gnb_mod_idP, UE_id, CC_idP, frameP, sduP, sdu_lenP);
} }
} else { } else {
if (!sduP) // check that CRC passed if (!sduP) // check that CRC passed
......
...@@ -346,14 +346,6 @@ void config_nr_mib(int Mod_idP, ...@@ -346,14 +346,6 @@ void config_nr_mib(int Mod_idP,
void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_frame_t slotP, NR_RA_t *ra); void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_frame_t slotP, NR_RA_t *ra);
void nr_process_mac_pdu(
module_id_t module_idP,
rnti_t rnti,
uint8_t CC_id,
frame_t frameP,
uint8_t *pduP,
uint16_t mac_pdu_len);
int binomial(int n, int k); int binomial(int n, int k);
bool is_xlsch_in_slot(uint64_t bitmap, sub_frame_t slot); bool is_xlsch_in_slot(uint64_t bitmap, sub_frame_t slot);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment