Fix issue in sending PDCP status PDU from the eNB due to non-existing LCID at the RLC.

This commit is contained in:
Pedro Alvarez 2021-02-12 18:10:51 +00:00
parent b0fe302f8e
commit e0542a4651
3 changed files with 6 additions and 8 deletions

View File

@ -65,7 +65,7 @@ public:
std::map<uint32_t, srslte::unique_byte_buffer_t> get_buffered_pdus() override;
// Status report helper(s)
void send_status_report();
void send_status_report() override;
void handle_status_report_pdu(srslte::unique_byte_buffer_t pdu);
// Internal state getters/setters

View File

@ -470,9 +470,9 @@ void pdcp_entity_lte::handle_status_report_pdu(unique_byte_buffer_t pdu)
{
logger.info("Handling Status Report PDU. Size=%ld", pdu->N_bytes);
uint32_t fms;
std::vector<uint32_t> acked_sns;
uint32_t bitmap_offset;
uint32_t fms = 0;
std::vector<uint32_t> acked_sns = {};
uint32_t bitmap_offset = 0;
// Get FMS
switch (cfg.sn_len) {

View File

@ -542,9 +542,9 @@ void rrc::ue::send_connection_reconf(srslte::unique_byte_buffer_t pdu,
apply_reconf_phy_config(recfg_r8, true);
// setup SRB2/DRBs in PDCP and RLC
apply_rlc_rb_updates(recfg_r8.rr_cfg_ded);
apply_pdcp_srb_updates(recfg_r8.rr_cfg_ded);
apply_pdcp_drb_updates(recfg_r8.rr_cfg_ded);
apply_rlc_rb_updates(recfg_r8.rr_cfg_ded);
// UE MAC scheduler updates
mac_ctrl.handle_con_reconf(recfg_r8, ue_capabilities);
@ -1213,8 +1213,6 @@ void rrc::ue::apply_pdcp_drb_updates(const rr_cfg_ded_s& pending_rr_cfg)
bool is_am = parent->cfg.qci_cfg[erab_pair.second.qos_params.qci].rlc_cfg.type().value ==
asn1::rrc::rlc_cfg_c::types_opts::am;
if (is_am) {
bool is_status_report_required =
parent->cfg.qci_cfg[erab_pair.second.qos_params.qci].pdcp_cfg.rlc_am.status_report_required;
parent->logger.debug("Set PDCP state: TX HFN %d, NEXT_PDCP_TX_SN %d, RX_HFN %d, NEXT_PDCP_RX_SN %d, "
"LAST_SUBMITTED_PDCP_RX_SN %d",
old_reest_pdcp_state[lcid].tx_hfn,
@ -1224,7 +1222,7 @@ void rrc::ue::apply_pdcp_drb_updates(const rr_cfg_ded_s& pending_rr_cfg)
old_reest_pdcp_state[lcid].last_submitted_pdcp_rx_sn);
parent->pdcp->set_bearer_state(rnti, lcid, old_reest_pdcp_state[lcid]);
parent->pdcp->set_bearer_state(rnti, lcid, old_reest_pdcp_state[lcid]);
if (is_status_report_required) {
if (parent->cfg.qci_cfg[erab_pair.second.qos_params.qci].pdcp_cfg.rlc_am.status_report_required) {
parent->pdcp->send_status_report(rnti, lcid);
}
}