[MME] KeNB derive from TAU(active flag=1) (#2063)

TS33.401
7 Security procedures between UE and EPS access network elements
7.2 Handling of user-related keys in E-UTRAN
7.2.7 Key handling for the TAU procedure when registered in E-UTRAN

If the "active flag" is set in the TAU request message or
the MME chooses to establish radio bearers when there is pending downlink
UP data or pending downlink signalling, radio bearers will be established
as part of the TAU procedure and a KeNB derivation is necessary.
This commit is contained in:
Sukchan Lee 2023-02-13 06:33:22 -10:00
parent 888e58a94e
commit 74fdb14f7a
1 changed files with 17 additions and 0 deletions

View File

@ -496,6 +496,23 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e)
if (e->s1ap_code == S1AP_ProcedureCode_id_initialUEMessage) {
ogs_debug(" Iniital UE Message");
if (mme_ue->nas_eps.update.active_flag) {
/*
* TS33.401
* 7 Security procedures between UE and EPS access network elements
* 7.2 Handling of user-related keys in E-UTRAN
* 7.2.7 Key handling for the TAU procedure when registered in E-UTRAN
*
* If the "active flag" is set in the TAU request message or
* the MME chooses to establish radio bearers when there is pending downlink
* UP data or pending downlink signalling, radio bearers will be established
* as part of the TAU procedure and a KeNB derivation is necessary.
*/
ogs_kdf_kenb(mme_ue->kasme, mme_ue->ul_count.i32,
mme_ue->kenb);
ogs_kdf_nh_enb(mme_ue->kasme, mme_ue->kenb, mme_ue->nh);
mme_ue->nhcc = 1;
r = nas_eps_send_tau_accept(mme_ue,
S1AP_ProcedureCode_id_InitialContextSetup);
ogs_expect(r == OGS_OK);