Commit a177dfa3 authored by Jaroslava Fiedlerova's avatar Jaroslava Fiedlerova

Merge remote-tracking branch 'origin/transform_precoding_hotfix' into integration_2024_w41

parents 4528be42 4398a57e
...@@ -175,7 +175,6 @@ MACRLCs = ( ...@@ -175,7 +175,6 @@ MACRLCs = (
pusch_TargetSNRx10 = 200; pusch_TargetSNRx10 = 200;
pucch_TargetSNRx10 = 200; pucch_TargetSNRx10 = 200;
ul_prbblack_SNR_threshold = 10; ul_prbblack_SNR_threshold = 10;
ul_max_mcs = 9;
} }
); );
......
...@@ -150,8 +150,8 @@ ...@@ -150,8 +150,8 @@
<testCase id="270001"> <testCase id="270001">
<class>Iperf</class> <class>Iperf</class>
<desc>iperf (UL/6Mbps/UDP)(30 sec)(single-ue profile)</desc> <desc>iperf (UL/18Mbps/UDP)(30 sec)</desc>
<iperf_args>-u -b 6M -t 30</iperf_args> <iperf_args>-u -b 18M -t 30</iperf_args>
<id>idefix</id> <id>idefix</id>
<svr_id>sabox-nepes</svr_id> <svr_id>sabox-nepes</svr_id>
<iperf_packetloss_threshold>1</iperf_packetloss_threshold> <iperf_packetloss_threshold>1</iperf_packetloss_threshold>
......
...@@ -2658,16 +2658,17 @@ long get_transformPrecoding(const NR_UE_UL_BWP_t *current_UL_BWP, nr_dci_format_ ...@@ -2658,16 +2658,17 @@ long get_transformPrecoding(const NR_UE_UL_BWP_t *current_UL_BWP, nr_dci_format_
&& current_UL_BWP->configuredGrantConfig->transformPrecoder) && current_UL_BWP->configuredGrantConfig->transformPrecoder)
return *current_UL_BWP->configuredGrantConfig->transformPrecoder; return *current_UL_BWP->configuredGrantConfig->transformPrecoder;
if (dci_format == NR_UL_DCI_FORMAT_0_1 long msg3_tp = NR_PUSCH_Config__transformPrecoder_disabled;
if (current_UL_BWP && current_UL_BWP->rach_ConfigCommon && current_UL_BWP->rach_ConfigCommon->msg3_transformPrecoder)
msg3_tp = NR_PUSCH_Config__transformPrecoder_enabled;
if (dci_format != NR_UL_DCI_FORMAT_0_0
&& current_UL_BWP && current_UL_BWP
&& current_UL_BWP->pusch_Config && current_UL_BWP->pusch_Config
&& current_UL_BWP->pusch_Config->transformPrecoder) && current_UL_BWP->pusch_Config->transformPrecoder)
return *current_UL_BWP->pusch_Config->transformPrecoder; return *current_UL_BWP->pusch_Config->transformPrecoder;
if (current_UL_BWP && current_UL_BWP->rach_ConfigCommon && current_UL_BWP->rach_ConfigCommon->msg3_transformPrecoder) return msg3_tp;
return NR_PUSCH_Config__transformPrecoder_enabled;
return NR_PUSCH_Config__transformPrecoder_disabled;
} }
uint8_t get_pusch_nb_antenna_ports(NR_PUSCH_Config_t *pusch_Config, uint8_t get_pusch_nb_antenna_ports(NR_PUSCH_Config_t *pusch_Config,
......
...@@ -779,7 +779,7 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac, ...@@ -779,7 +779,7 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
uint32_t n_RS_Id = 0; uint32_t n_RS_Id = 0;
if (NR_DMRS_ulconfig->transformPrecodingEnabled && if (NR_DMRS_ulconfig->transformPrecodingEnabled &&
NR_DMRS_ulconfig->transformPrecodingEnabled->nPUSCH_Identity != NULL) NR_DMRS_ulconfig->transformPrecodingEnabled->nPUSCH_Identity)
n_RS_Id = *NR_DMRS_ulconfig->transformPrecodingEnabled->nPUSCH_Identity; n_RS_Id = *NR_DMRS_ulconfig->transformPrecodingEnabled->nPUSCH_Identity;
else else
n_RS_Id = mac->physCellId; n_RS_Id = mac->physCellId;
......
...@@ -1754,7 +1754,7 @@ static bool allocate_ul_retransmission(gNB_MAC_INST *nrmac, ...@@ -1754,7 +1754,7 @@ static bool allocate_ul_retransmission(gNB_MAC_INST *nrmac,
return true; return true;
} }
uint32_t ul_pf_tbs[3][29]; // pre-computed, approximate TBS values for PF coefficient uint32_t ul_pf_tbs[5][29]; // pre-computed, approximate TBS values for PF coefficient
typedef struct UEsched_s { typedef struct UEsched_s {
float coef; float coef;
NR_UE_info_t * UE; NR_UE_info_t * UE;
...@@ -2221,11 +2221,11 @@ nr_pp_impl_ul nr_init_fr1_ulsch_preprocessor(int CC_id) ...@@ -2221,11 +2221,11 @@ nr_pp_impl_ul nr_init_fr1_ulsch_preprocessor(int CC_id)
* which should approximately(!) give us the TBsize. In particular, the * which should approximately(!) give us the TBsize. In particular, the
* number of symbols, the number of DMRS symbols, and the exact Qm and R, are * number of symbols, the number of DMRS symbols, and the exact Qm and R, are
* not correct*/ * not correct*/
for (int mcsTableIdx = 0; mcsTableIdx < 3; ++mcsTableIdx) { for (int mcsTableIdx = 0; mcsTableIdx < 5; ++mcsTableIdx) {
for (int mcs = 0; mcs < 29; ++mcs) { for (int mcs = 0; mcs < 29; ++mcs) {
if (mcs > 27 && mcsTableIdx == 1) if (mcs > 27 && (mcsTableIdx == 1 || mcsTableIdx == 3 || mcsTableIdx == 4))
continue; continue;
const uint8_t Qm = nr_get_Qm_dl(mcs, mcsTableIdx); const uint8_t Qm = nr_get_Qm_ul(mcs, mcsTableIdx);
const uint16_t R = nr_get_code_rate_ul(mcs, mcsTableIdx); const uint16_t R = nr_get_code_rate_ul(mcs, mcsTableIdx);
/* note: we do not update R/Qm based on low MCS or pi2BPSK */ /* note: we do not update R/Qm based on low MCS or pi2BPSK */
ul_pf_tbs[mcsTableIdx][mcs] = nr_compute_tbs(Qm, ul_pf_tbs[mcsTableIdx][mcs] = nr_compute_tbs(Qm,
......
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