Make sure that sending the status report sent after RLC configuration in reestablishment

This commit is contained in:
Pedro Alvarez 2021-03-10 16:24:34 +00:00
parent 62b3615268
commit 7447fefd19
1 changed files with 13 additions and 5 deletions

View File

@ -957,12 +957,10 @@ srslte::proc_outcome_t rrc::connection_reconf_no_ho_proc::init(const asn1::rrc::
if (rrc_ptr->reestablishment_successful) {
// Reestablish PDCP and RLC for SRB2 and all DRB
// TODO: Which is the maximum LCID?
rrc_ptr->reestablishment_successful = false;
for (int i = 2; i < SRSLTE_N_RADIO_BEARERS; i++) {
if (rrc_ptr->rlc->has_bearer(i)) {
rrc_ptr->rlc->reestablish(i);
rrc_ptr->pdcp->reestablish(i);
rrc_ptr->pdcp->send_status_report(i);
}
}
}
@ -974,6 +972,16 @@ srslte::proc_outcome_t rrc::connection_reconf_no_ho_proc::init(const asn1::rrc::
}
}
if (rrc_ptr->reestablishment_successful) {
// Send status report if necessary.
rrc_ptr->reestablishment_successful = false;
for (int i = 2; i < SRSLTE_N_RADIO_BEARERS; i++) {
if (rrc_ptr->rlc->has_bearer(i)) {
rrc_ptr->pdcp->send_status_report(i);
}
}
}
// Apply Scell RR configurations (call is non-blocking). Make a copy since can be changed inside
// apply_scell_config() Note that apply_scell_config() calls set_scell() and set_config() which run in the
// background.
@ -1324,9 +1332,9 @@ proc_outcome_t rrc::connection_reest_proc::init(asn1::rrc::reest_cause_e cause)
reest_cellid = rrc_ptr->meas_cells.find_cell(reest_source_freq, reest_source_pci)->get_cell_id();
Info("Starting... cause: \"%s\", UE context: {C-RNTI=0x%x, PCI=%d, CELL ID=%d}",
reest_cause == asn1::rrc::reest_cause_opts::recfg_fail
? "Reconfiguration failure"
: cause == asn1::rrc::reest_cause_opts::ho_fail ? "Handover failure" : "Other failure",
reest_cause == asn1::rrc::reest_cause_opts::recfg_fail ? "Reconfiguration failure"
: cause == asn1::rrc::reest_cause_opts::ho_fail ? "Handover failure"
: "Other failure",
reest_rnti,
reest_source_pci,
reest_cellid);