[SGsAP] clarify P_TMSI availablity
This commit is contained in:
parent
0bbc5124e7
commit
65cb21ce05
|
@ -22,6 +22,7 @@
|
|||
#include "nas-security.h"
|
||||
#include "mme-kdf.h"
|
||||
#include "emm-build.h"
|
||||
#include "mme-sm.h"
|
||||
|
||||
#undef OGS_LOG_DOMAIN
|
||||
#define OGS_LOG_DOMAIN __emm_log_domain
|
||||
|
@ -111,16 +112,17 @@ int emm_build_attach_accept(
|
|||
eps_network_feature_support->length = 1;
|
||||
eps_network_feature_support->ims_vops = 1;
|
||||
|
||||
if (mme_ue->vlr) {
|
||||
if (MME_P_TMSI_IS_AVAILABLE(mme_ue)) {
|
||||
ogs_assert(mme_ue->vlr);
|
||||
ogs_assert(mme_ue->p_tmsi);
|
||||
|
||||
attach_accept->presencemask |=
|
||||
NAS_ATTACH_ACCEPT_LOCATION_AREA_IDENTIFICATION_PRESENT;
|
||||
lai->nas_plmn_id = mme_ue->vlr->lai.nas_plmn_id;
|
||||
lai->lac = mme_ue->vlr->lai.lac;
|
||||
ogs_debug(" LAI[PLMN_ID:%06x,LAC:%d]",
|
||||
plmn_id_hexdump(&lai->nas_plmn_id), lai->lac);
|
||||
}
|
||||
|
||||
if (mme_ue->p_tmsi) {
|
||||
attach_accept->presencemask |= NAS_ATTACH_ACCEPT_MS_IDENTITY_PRESENT;
|
||||
ms_identity->length = 5;
|
||||
tmsi->spare = 0xf;
|
||||
|
|
|
@ -227,7 +227,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e)
|
|||
return;
|
||||
}
|
||||
|
||||
if (mme_ue->p_tmsi) {
|
||||
if (MME_P_TMSI_IS_AVAILABLE(mme_ue)) {
|
||||
rv = sgsap_send_detach_indication(mme_ue);
|
||||
} else {
|
||||
rv = mme_send_delete_session_or_detach(mme_ue);
|
||||
|
@ -650,7 +650,7 @@ void emm_state_initial_context_setup(ogs_fsm_t *s, mme_event_t *e)
|
|||
OGS_FSM_TRAN(s, emm_state_exception);
|
||||
break;
|
||||
}
|
||||
if (mme_ue->p_tmsi)
|
||||
if (MME_P_TMSI_IS_AVAILABLE(mme_ue))
|
||||
sgsap_send_tmsi_reallocation_complete(mme_ue);
|
||||
|
||||
OGS_FSM_TRAN(s, &emm_state_registered);
|
||||
|
|
|
@ -189,6 +189,12 @@ typedef struct mme_pgw_s {
|
|||
const char *apn;
|
||||
} mme_pgw_t;
|
||||
|
||||
#define MME_SGSAP_IS_CONNECTED(__mME) \
|
||||
((__mME) && ((__mME)->vlr) && \
|
||||
(OGS_FSM_CHECK(&(__mME)->vlr->sm, sgsap_state_connected)))
|
||||
#define MME_P_TMSI_IS_AVAILABLE(__mME) \
|
||||
(MME_SGSAP_IS_CONNECTED(__mME) && (__mME)->p_tmsi)
|
||||
|
||||
typedef struct mme_vlr_s {
|
||||
ogs_lnode_t lnode;
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "mme-context.h"
|
||||
|
||||
#include "mme-kdf.h"
|
||||
#include "mme-sm.h"
|
||||
#include "s1ap-build.h"
|
||||
#include "s1ap-conv.h"
|
||||
|
||||
|
@ -491,7 +492,8 @@ int s1ap_build_initial_context_setup_request(
|
|||
memcpy(SecurityKey->buf, mme_ue->kenb, SecurityKey->size);
|
||||
|
||||
/* Set CS-Fallback */
|
||||
if (mme_ue->nas_eps.type == MME_EPS_TYPE_EXTENDED_SERVICE_REQUEST) {
|
||||
if (mme_ue->nas_eps.type == MME_EPS_TYPE_EXTENDED_SERVICE_REQUEST &&
|
||||
MME_P_TMSI_IS_AVAILABLE(mme_ue)) {
|
||||
S1AP_CSFallbackIndicator_t *CSFallbackIndicator = NULL;
|
||||
S1AP_LAI_t *LAI = NULL;
|
||||
|
||||
|
|
Loading…
Reference in New Issue