Skip to content

Commit 4f736ad

Browse files
FabianEckermanncodebot
authored andcommitted
cu_cp,du_processor,rrc: Get release context from rrc for ue context release
1 parent 386b5c4 commit 4f736ad

File tree

7 files changed

+30
-22
lines changed

7 files changed

+30
-22
lines changed

include/srsran/cu_cp/du_processor.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -198,9 +198,9 @@ class du_processor_rrc_ue_control_message_notifier
198198
/// \returns The result of the rrc reconfiguration.
199199
virtual async_task<bool> on_rrc_reconfiguration_request(const cu_cp_rrc_reconfiguration_procedure_request& msg) = 0;
200200

201-
/// \brief Notify the RRC UE to Release an UE.
202-
/// \returns The location info of the UE.
203-
virtual cu_cp_user_location_info_nr on_rrc_ue_release() = 0;
201+
/// \brief Get the RRC UE release context.
202+
/// \returns The release context of the UE.
203+
virtual rrc_ue_release_context get_rrc_ue_release_context() = 0;
204204
};
205205

206206
/// Handler for an NGAP entity to communicate with the DU processor

include/srsran/rrc/rrc_ue.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,11 @@ class rrc_ue_dl_nas_message_handler
258258
virtual void handle_dl_nas_transport_message(const dl_nas_transport_message& msg) = 0;
259259
};
260260

261+
struct rrc_ue_release_context {
262+
cu_cp_user_location_info_nr user_location_info;
263+
byte_buffer rrc_release_pdu;
264+
};
265+
261266
/// Handle control messages.
262267
class rrc_ue_control_message_handler
263268
{
@@ -274,9 +279,9 @@ class rrc_ue_control_message_handler
274279
virtual async_task<bool>
275280
handle_rrc_ue_capability_transfer_request(const cu_cp_ue_capability_transfer_request& msg) = 0;
276281

277-
/// \brief Handle an RRC UE Release.
278-
/// \returns The location info of the UE.
279-
virtual cu_cp_user_location_info_nr handle_rrc_ue_release() = 0;
282+
/// \brief Get the RRC UE release context.
283+
/// \returns The release context of the UE.
284+
virtual rrc_ue_release_context get_rrc_ue_release_context() = 0;
280285
};
281286

282287
/// Handler to initialize the security context from NGAP.

lib/cu_cp/adapters/du_processor_adapters.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,10 +205,10 @@ class du_processor_rrc_ue_adapter : public du_processor_rrc_ue_control_message_n
205205
return rrc_ue_handler->handle_rrc_reconfiguration_request(msg);
206206
}
207207

208-
virtual cu_cp_user_location_info_nr on_rrc_ue_release() override
208+
virtual rrc_ue_release_context get_rrc_ue_release_context() override
209209
{
210210
srsran_assert(rrc_ue_handler != nullptr, "RRC UE handler must not be nullptr");
211-
return rrc_ue_handler->handle_rrc_ue_release();
211+
return rrc_ue_handler->get_rrc_ue_release_context();
212212
}
213213

214214
private:

lib/cu_cp/du_processor_impl.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -455,8 +455,10 @@ du_processor_impl::handle_new_ue_context_release_command(const cu_cp_ue_context_
455455
release_complete.pdu_session_res_list_cxt_rel_cpl =
456456
rrc->find_ue(cmd.ue_index)->get_rrc_ue_up_resource_manager().get_pdu_sessions();
457457

458-
// Call RRC UE notifier to release the UE and add the location info to the UE context release complete message
459-
release_complete.user_location_info = ue->get_rrc_ue_notifier().on_rrc_ue_release();
458+
// Call RRC UE notifier to get the release context of the UE and add the location info to the UE context release
459+
// complete message
460+
rrc_ue_release_context release_context = ue->get_rrc_ue_notifier().get_rrc_ue_release_context();
461+
release_complete.user_location_info = release_context.user_location_info;
460462

461463
handle_ue_context_release_command(cmd);
462464

lib/rrc/ue/rrc_ue_impl.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ class rrc_ue_impl final : public rrc_ue_interface
6666
// rrc_ue_control_message_handler
6767
async_task<bool> handle_rrc_reconfiguration_request(const cu_cp_rrc_reconfiguration_procedure_request& msg) override;
6868
async_task<bool> handle_rrc_ue_capability_transfer_request(const cu_cp_ue_capability_transfer_request& msg) override;
69-
cu_cp_user_location_info_nr handle_rrc_ue_release() override;
69+
rrc_ue_release_context get_rrc_ue_release_context() override;
7070

7171
// rrc_ue_context_handler
7272
rrc_reestablishment_ue_context_t get_context() override;

lib/rrc/ue/rrc_ue_message_handlers.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -289,20 +289,21 @@ async_task<bool> rrc_ue_impl::handle_rrc_ue_capability_transfer_request(const cu
289289
return launch_async<rrc_ue_capability_transfer_procedure>(context, *this, *event_mng, logger);
290290
}
291291

292-
cu_cp_user_location_info_nr rrc_ue_impl::handle_rrc_ue_release()
292+
rrc_ue_release_context rrc_ue_impl::get_rrc_ue_release_context()
293293
{
294294
// prepare location info to return
295-
cu_cp_user_location_info_nr user_location_info;
296-
user_location_info.nr_cgi = context.cell.cgi;
297-
user_location_info.tai.plmn_id = context.cell.cgi.plmn_hex;
298-
user_location_info.tai.tac = context.cell.tac;
295+
rrc_ue_release_context release_context;
296+
release_context.user_location_info.nr_cgi = context.cell.cgi;
297+
release_context.user_location_info.tai.plmn_id = context.cell.cgi.plmn_hex;
298+
release_context.user_location_info.tai.tac = context.cell.tac;
299299

300300
dl_dcch_msg_s dl_dcch_msg;
301301
dl_dcch_msg.msg.set_c1().set_rrc_release().crit_exts.set_rrc_release();
302302

303-
send_dl_dcch(srb_id_t::srb1, dl_dcch_msg);
303+
// pack DL CCCH msg
304+
release_context.rrc_release_pdu = pack_into_pdu(dl_dcch_msg);
304305

305-
return user_location_info;
306+
return release_context;
306307
}
307308

308309
rrc_reestablishment_ue_context_t rrc_ue_impl::get_context()

tests/unittests/cu_cp/test_helpers.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -383,12 +383,12 @@ struct dummy_du_processor_rrc_ue_control_message_notifier : public du_processor_
383383
});
384384
}
385385

386-
cu_cp_user_location_info_nr on_rrc_ue_release() override
386+
rrc_ue_release_context get_rrc_ue_release_context() override
387387
{
388-
logger.info("Received a new RRC UE Release request");
389-
cu_cp_user_location_info_nr user_location_info;
388+
logger.info("Received a new request to get RRC UE release context");
389+
rrc_ue_release_context release_context;
390390
// TODO: Add values
391-
return user_location_info;
391+
return release_context;
392392
}
393393

394394
optional<cu_cp_radio_bearer_config> last_radio_bearer_cfg;

0 commit comments

Comments
 (0)