Fix issues with Sounding-RS (#1761)
* Fix deadlock caused by update_measurements calling in_sync * Fix overlapping SRS condition * Do not use shortened PUSCH in transmissions and retx from RAR * Revert "Fix deadlock caused by update_measurements calling in_sync" This reverts commit f58c8c8c766f8f95baa3a3bf8287d8e25b2057ba.
This commit is contained in:
parent
2d321231df
commit
76bfc78147
|
@ -399,6 +399,7 @@ public:
|
|||
tb_action_t tb;
|
||||
uint32_t current_tx_nb;
|
||||
bool expect_ack;
|
||||
bool is_rar;
|
||||
} tb_action_ul_t;
|
||||
|
||||
/* Query the MAC for the current RNTI to look for
|
||||
|
|
|
@ -52,6 +52,7 @@ typedef struct SRSLTE_API {
|
|||
srslte_ra_tb_t tb;
|
||||
srslte_ra_tb_t last_tb;
|
||||
uint32_t n_dmrs;
|
||||
bool is_rar;
|
||||
|
||||
} srslte_pusch_grant_t;
|
||||
|
||||
|
|
|
@ -759,6 +759,14 @@ void srslte_refsignal_srs_pusch_shortened(srslte_refsignal_ul_t* q,
|
|||
{
|
||||
bool shortened = false;
|
||||
|
||||
// A UE shall not transmit SRS whenever SRS and a PUSCH transmission corresponding to a Random Access Response
|
||||
// Grant or a retransmission of the same transport block as part of the contention based random access procedure
|
||||
// coincide in the same subframe.
|
||||
if (pusch_cfg->grant.is_rar) {
|
||||
sf->shortened = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (srs_cfg->configured) {
|
||||
// If UE-specific SRS is configured, PUSCH is shortened every time UE transmits SRS even if overlaping in the same
|
||||
// RB or not
|
||||
|
@ -786,7 +794,7 @@ void srslte_refsignal_srs_pusch_shortened(srslte_refsignal_ul_t* q,
|
|||
uint32_t nrb_srs = srslte_refsignal_srs_rb_L_cs(srs_cfg->bw_cfg, q->cell.nof_prb);
|
||||
for (uint32_t ns = 0; ns < 2 && !shortened; ns++) {
|
||||
if ((pusch_cfg->grant.n_prb_tilde[ns] >= k0_srs && pusch_cfg->grant.n_prb_tilde[ns] < k0_srs + nrb_srs) ||
|
||||
(pusch_cfg->grant.n_prb_tilde[ns] + pusch_cfg->grant.L_prb >= k0_srs &&
|
||||
(pusch_cfg->grant.n_prb_tilde[ns] + pusch_cfg->grant.L_prb > k0_srs &&
|
||||
pusch_cfg->grant.n_prb_tilde[ns] + pusch_cfg->grant.L_prb < k0_srs + nrb_srs) ||
|
||||
(pusch_cfg->grant.n_prb_tilde[ns] <= k0_srs &&
|
||||
pusch_cfg->grant.n_prb_tilde[ns] + pusch_cfg->grant.L_prb >= k0_srs + nrb_srs)) {
|
||||
|
|
|
@ -368,6 +368,8 @@ void ul_harq_entity::ul_harq_process::generate_new_tx(mac_interface_phy_lte::mac
|
|||
current_tx_nb = 0;
|
||||
current_irv = 0;
|
||||
|
||||
action->is_rar = grant.is_rar || (grant.rnti == harq_entity->rntis->temp_rnti);
|
||||
|
||||
Info("UL %d: New TX%s, RV=%d, TBS=%d\n",
|
||||
pid,
|
||||
grant.rnti == harq_entity->rntis->temp_rnti ? " for Msg3" : "",
|
||||
|
|
Loading…
Reference in New Issue