Merge remote-tracking branch 'origin/Improve_UL_SNR_stability' into integration_2024_w42 (!3049)
Reset TPC to 0 dB, after sending it to the UE, to not request new gain multiple times before computing new value for SNR.
This commit is contained in:
@@ -924,6 +924,9 @@ static void nr_generate_Msg3_retransmission(module_id_t module_idP,
|
||||
1, // Not toggling NDI in msg3 retransmissions
|
||||
ul_bwp);
|
||||
|
||||
// Reset TPC to 0 dB to not request new gain multiple times before computing new value for SNR
|
||||
ra->msg3_TPC = 1;
|
||||
|
||||
fill_dci_pdu_rel15(sc_info,
|
||||
&ra->DL_BWP,
|
||||
ul_bwp,
|
||||
@@ -2199,6 +2202,9 @@ static void nr_generate_Msg4_MsgB(module_id_t module_idP,
|
||||
rbStart,
|
||||
rbSize);
|
||||
|
||||
// Reset TPC to 0 dB to not request new gain multiple times before computing new value for SNR
|
||||
sched_ctrl->tpc1 = 1;
|
||||
|
||||
// Add padding header and zero rest out if there is space left
|
||||
if (ra->mac_pdu_length < harq->tb_size) {
|
||||
NR_MAC_SUBHEADER_FIXED *padding = (NR_MAC_SUBHEADER_FIXED *) &buf[ra->mac_pdu_length];
|
||||
@@ -2351,7 +2357,7 @@ static void nr_fill_rar(uint8_t Mod_idP, NR_RA_t *ra, uint8_t *dlsch_buffer, nfa
|
||||
NR_MAC_RAR *rar = (NR_MAC_RAR *) (dlsch_buffer + 2);
|
||||
unsigned char csi_req = 0, tpc_command;
|
||||
|
||||
tpc_command = 3; // this is 0 dB
|
||||
tpc_command = 3; // This is 0 dB in RAR UL grant
|
||||
|
||||
/// E/T/R/R/BI subheader ///
|
||||
// E = 1, MAC PDU includes another MAC sub-PDU (RAPID)
|
||||
@@ -2383,7 +2389,7 @@ static void nr_fill_rar(uint8_t Mod_idP, NR_RA_t *ra, uint8_t *dlsch_buffer, nfa
|
||||
|
||||
// UL grant
|
||||
|
||||
ra->msg3_TPC = tpc_command;
|
||||
ra->msg3_TPC = 1; // This is 0 dB in UL DCI
|
||||
|
||||
if (pusch_pdu->frequency_hopping)
|
||||
AssertFatal(1==0,"PUSCH with frequency hopping currently not supported");
|
||||
|
||||
@@ -1227,6 +1227,8 @@ void nr_schedule_ue_spec(module_id_t module_id,
|
||||
dci_payload.ndi = harq->ndi;
|
||||
dci_payload.dai[0].val = pucch ? (pucch->dai_c-1)&3 : 0;
|
||||
dci_payload.tpc = sched_ctrl->tpc1; // TPC for PUCCH: table 7.2.1-1 in 38.213
|
||||
// Reset TPC to 0 dB to not request new gain multiple times before computing new value for SNR
|
||||
sched_ctrl->tpc1 = 1;
|
||||
dci_payload.pucch_resource_indicator = pucch ? pucch->resource_indicator : 0;
|
||||
dci_payload.pdsch_to_harq_feedback_timing_indicator.val = pucch ? pucch->timing_indicator : 0; // PDSCH to HARQ TI
|
||||
dci_payload.antenna_ports.val = dmrs_parms->dmrs_ports_id;
|
||||
|
||||
@@ -2620,6 +2620,9 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot, n
|
||||
cur_harq->ndi,
|
||||
current_BWP);
|
||||
|
||||
// Reset TPC to 0 dB to not request new gain multiple times before computing new value for SNR
|
||||
UE->UE_sched_ctrl.tpc0 = 1;
|
||||
|
||||
fill_dci_pdu_rel15(&UE->sc_info,
|
||||
&UE->current_DL_BWP,
|
||||
current_BWP,
|
||||
|
||||
Reference in New Issue
Block a user