Commit ec5fdfca authored by Jaroslava Fiedlerova's avatar Jaroslava Fiedlerova

Merge remote-tracking branch 'origin/NR_UE_fapi_pdu_length_fix' into integration_2024_w28

parents 2d163fc7 11855a0b
......@@ -163,7 +163,7 @@ typedef struct {
} fapi_nr_tx_config_t;
typedef struct {
uint16_t pdu_length;
uint32_t pdu_length;
uint8_t* fapiTxPdu;
} fapi_nr_tx_request_body_t;
......
......@@ -190,7 +190,7 @@ uint8_t nr_ue_get_sdu(NR_UE_MAC_INST_t *mac,
sub_frame_t subframe,
uint8_t gNB_index,
uint8_t *ulsch_buffer,
uint16_t buflen);
uint32_t buflen);
void set_harq_status(NR_UE_MAC_INST_t *mac,
uint8_t pucch_id,
......
......@@ -1402,7 +1402,7 @@ void nr_ue_ul_scheduler(NR_UE_MAC_INST_t *mac, nr_uplink_indication_t *ul_info)
while (ulcfg_pdu->pdu_type != FAPI_NR_END) {
uint8_t *ulsch_input_buffer = ulsch_input_buffer_array[number_of_pdus];
if (ulcfg_pdu->pdu_type == FAPI_NR_UL_CONFIG_TYPE_PUSCH) {
uint16_t TBS_bytes = ulcfg_pdu->pusch_config_pdu.pusch_data.tb_size;
uint32_t TBS_bytes = ulcfg_pdu->pusch_config_pdu.pusch_data.tb_size;
LOG_D(NR_MAC,
"harq_id %d, new_data_indicator %d, TBS_bytes %d (ra_state %d)\n",
ulcfg_pdu->pusch_config_pdu.pusch_data.harq_process_id,
......@@ -2761,7 +2761,7 @@ static int nr_ue_get_sdu_mac_ce_pre(NR_UE_MAC_INST_t *mac,
sub_frame_t subframe,
uint8_t gNB_index,
uint8_t *ulsch_buffer,
uint16_t buflen,
uint32_t buflen,
NR_UE_MAC_CE_INFO *mac_ce_p)
{
int num_lcg_id_with_data = 0;
......@@ -2824,11 +2824,11 @@ static void nr_ue_get_sdu_mac_ce_post(NR_UE_MAC_INST_t *mac,
frame_t frame,
slot_t slot,
uint8_t *ulsch_buffer,
uint16_t buflen,
uint32_t buflen,
NR_UE_MAC_CE_INFO *mac_ce_p)
{
// Compute BSR Values and update Nb LCGID with data after multiplexing
unsigned short padding_len = 0;
uint32_t padding_len = 0;
int num_lcg_id_with_data = 0;
int lcg_id_bsr_trunc = 0;
NR_UE_SCHEDULING_INFO *sched_info = &mac->scheduling_info;
......@@ -3012,8 +3012,8 @@ uint32_t get_count_lcids_same_priority(uint8_t start, uint8_t total_active_lcids
long get_num_bytes_to_reqlc(NR_UE_MAC_INST_t *mac,
uint8_t same_priority_count,
uint8_t lc_num,
uint16_t buflen_remain_ep,
int16_t buflen_remain,
uint32_t buflen_remain_ep,
int32_t buflen_remain,
uint8_t round_id,
uint32_t *bytes_read_fromlc,
long *target)
......@@ -3029,7 +3029,7 @@ long get_num_bytes_to_reqlc(NR_UE_MAC_INST_t *mac,
long num_remaining_bytes = 0;
long num_bytes_requested = 0;
if (round_id == 0) { // initial round
uint16_t pdu_remain = (same_priority_count > 1) ? buflen_remain_ep : buflen_remain;
uint32_t pdu_remain = (same_priority_count > 1) ? buflen_remain_ep : buflen_remain;
num_bytes_requested = (pdu_remain < pbr) ? min(pdu_remain, lcid_remain_buffer) : min(pbr, lcid_remain_buffer);
num_remaining_bytes = *target - bytes_read_fromlc[lc_num - 1];
num_bytes_requested = min(num_bytes_requested, num_remaining_bytes);
......@@ -3081,13 +3081,13 @@ static bool fill_mac_sdu(NR_UE_MAC_INST_t *mac,
frame_t frame,
slot_t slot,
uint8_t gNB_index,
uint16_t buflen,
int16_t *buflen_remain,
uint32_t buflen,
int32_t *buflen_remain,
int lcid,
uint8_t **pdu,
uint32_t *counter,
uint8_t count_same_priority_lcids,
uint16_t buflen_ep,
uint32_t buflen_ep,
uint32_t *lcids_bytes_tot,
uint16_t *num_sdus,
NR_UE_MAC_CE_INFO *mac_ce_p,
......@@ -3238,11 +3238,11 @@ uint8_t nr_ue_get_sdu(NR_UE_MAC_INST_t *mac,
slot_t slot,
uint8_t gNB_index,
uint8_t *ulsch_buffer,
uint16_t buflen)
uint32_t buflen)
{
NR_UE_MAC_CE_INFO mac_ce_info;
NR_UE_MAC_CE_INFO *mac_ce_p=&mac_ce_info;
int16_t buflen_remain = 0;
int32_t buflen_remain = 0;
mac_ce_p->bsr_len = 0;
mac_ce_p->bsr_ce_len = 0;
mac_ce_p->bsr_header_len = 0;
......@@ -3273,7 +3273,7 @@ uint8_t nr_ue_get_sdu(NR_UE_MAC_INST_t *mac,
// in the first run all the lc are allocated as per bj and prioritized bit rate but in subsequent runs, no need to consider
uint32_t lcp_allocation_counter = 0;
// bj and prioritized bit rate but just consider priority
uint16_t buflen_ep = 0; // this variable holds the length in bytes in mac pdu when multiple equal priority channels are present
uint32_t buflen_ep = 0; // this variable holds the length in bytes in mac pdu when multiple equal priority channels are present
// because as per standard(TS38.321), all equal priority channels should be served equally
// nr_ue_get_sdu_mac_ce_pre updates all mac_ce related header field related to length
......@@ -3395,12 +3395,12 @@ uint8_t nr_ue_get_sdu(NR_UE_MAC_INST_t *mac,
// Compute final offset for padding and fill remainder of ULSCH with 0
if (buflen_remain > 0) {
LOG_D(NR_MAC, "In %s filling remainder %d bytes to the UL PDU \n", __FUNCTION__, buflen_remain);
LOG_D(NR_MAC, "Filling remainder %d bytes to the UL PDU \n", buflen_remain);
((NR_MAC_SUBHEADER_FIXED *) pdu)->R = 0;
((NR_MAC_SUBHEADER_FIXED *) pdu)->LCID = UL_SCH_LCID_PADDING;
#ifdef ENABLE_MAC_PAYLOAD_DEBUG
LOG_I(NR_MAC, "In %s: padding MAC sub-header with length %ld bytes \n", __FUNCTION__, sizeof(NR_MAC_SUBHEADER_FIXED));
LOG_I(NR_MAC, "Padding MAC sub-header with length %ld bytes \n", sizeof(NR_MAC_SUBHEADER_FIXED));
log_dump(NR_MAC, pdu, sizeof(NR_MAC_SUBHEADER_FIXED), LOG_DUMP_CHAR, "\n");
#endif
......@@ -3416,13 +3416,13 @@ uint8_t nr_ue_get_sdu(NR_UE_MAC_INST_t *mac,
}
#ifdef ENABLE_MAC_PAYLOAD_DEBUG
LOG_I(NR_MAC, "In %s: MAC padding sub-PDU with length %d bytes \n", __FUNCTION__, buflen_remain);
LOG_I(NR_MAC, "MAC padding sub-PDU with length %d bytes \n", buflen_remain);
log_dump(NR_MAC, pdu, buflen_remain, LOG_DUMP_CHAR, "\n");
#endif
}
#ifdef ENABLE_MAC_PAYLOAD_DEBUG
LOG_I(NR_MAC, "In %s: dumping MAC PDU with length %d: \n", __FUNCTION__, buflen);
LOG_I(NR_MAC, "Dumping MAC PDU with length %d: \n", buflen);
log_dump(NR_MAC, ulsch_buffer, buflen, LOG_DUMP_CHAR, "\n");
#endif
......
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