diff --git a/lib/src/rlc/rlc_am_nr_packing.cc b/lib/src/rlc/rlc_am_nr_packing.cc index dc7456b09..9f0594b59 100644 --- a/lib/src/rlc/rlc_am_nr_packing.cc +++ b/lib/src/rlc/rlc_am_nr_packing.cc @@ -149,9 +149,9 @@ bool rlc_am_nr_status_pdu_t::trim(uint32_t max_packed_size) void rlc_am_nr_status_pdu_t::refresh_packed_size() { - uint32_t packed_size = rlc_am_nr_status_pdu_sizeof_header_ack_sn; + packed_size_ = rlc_am_nr_status_pdu_sizeof_header_ack_sn; for (auto nack : nacks_) { - packed_size += nack_size(nack); + packed_size_ += nack_size(nack); } } diff --git a/srsgnb/src/stack/mac/mac_nr.cc b/srsgnb/src/stack/mac/mac_nr.cc index 6ab10ca00..3e30222e7 100644 --- a/srsgnb/src/stack/mac/mac_nr.cc +++ b/srsgnb/src/stack/mac/mac_nr.cc @@ -149,6 +149,9 @@ private: sched->ul_bsr(rnti, lb.lcg_id, buff_size_field_to_bytes(lb.buffer_size, srsran::LONG_BSR)); } } break; + case srsran::mac_sch_subpdu_nr::nr_lcid_sch_t::SE_PHR: + // SE_PHR not implemented + break; case srsran::mac_sch_subpdu_nr::nr_lcid_sch_t::PADDING: break; default: diff --git a/srsue/src/stack/rrc_nr/rrc_nr.cc b/srsue/src/stack/rrc_nr/rrc_nr.cc index 1333790a1..7c5f393c0 100644 --- a/srsue/src/stack/rrc_nr/rrc_nr.cc +++ b/srsue/src/stack/rrc_nr/rrc_nr.cc @@ -958,6 +958,11 @@ void rrc_nr::rrc_release() pdcp->reset(); mac->reset(); lcid_drb.clear(); + + // Apply actions only applicable in SA mode + if (rrc_eutra == nullptr) { + stack->reset_eps_bearers(); + } } int rrc_nr::get_nr_capabilities(srsran::byte_buffer_t* nr_caps_pdu) @@ -2270,9 +2275,12 @@ void rrc_nr::handle_security_mode_command(const asn1::rrc_nr::security_mode_cmd_ pdcp->enable_encryption(lcid, DIRECTION_TXRX); } -void rrc_nr::handle_rrc_release(const asn1::rrc_nr::rrc_release_s& rrc_release) +void rrc_nr::handle_rrc_release(const asn1::rrc_nr::rrc_release_s& msg) { - logger.info("RRC Release not handled yet"); + logger.info("Received RRC Release"); + srsran::console("Received RRC Release\n"); + + rrc_release(); } // Security helper used by Security Mode Command and Mobility handling routines