[MME] fix the crash issue if enb_ue is NULL(#1275)
An assert occurs when a NAS message retransmission occurs. Because there is no `enb_ue` context. Therefore, before removing enb_ue, all Timers must be stopped to prevent retransmission of NAS messages.
This commit is contained in:
parent
6ae9ecc697
commit
aab8286401
|
@ -1400,6 +1400,15 @@ void ngap_handle_ue_context_release_action(ran_ue_t *ran_ue)
|
|||
ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
|
||||
if (amf_ue) {
|
||||
ogs_info(" SUCI[%s]", amf_ue->suci ? amf_ue->suci : "Unknown");
|
||||
|
||||
/*
|
||||
* An assert occurs when a NAS message retransmission occurs.
|
||||
*
|
||||
* Because there is no `ran_ue` context.
|
||||
*
|
||||
* Therefore, before removing `ran_ue`, all Timers must be stopped
|
||||
* to prevent retransmission of NAS messages.
|
||||
*/
|
||||
CLEAR_AMF_UE_ALL_TIMERS(amf_ue);
|
||||
}
|
||||
|
||||
|
|
|
@ -422,11 +422,20 @@ struct mme_ue_s {
|
|||
|
||||
#define CLEAR_MME_UE_ALL_TIMERS(__mME) \
|
||||
do { \
|
||||
mme_sess_t *sess = NULL; \
|
||||
mme_bearer_t *bearer = NULL; \
|
||||
\
|
||||
CLEAR_MME_UE_TIMER((__mME)->t3413); \
|
||||
CLEAR_MME_UE_TIMER((__mME)->t3422); \
|
||||
CLEAR_MME_UE_TIMER((__mME)->t3450); \
|
||||
CLEAR_MME_UE_TIMER((__mME)->t3460); \
|
||||
CLEAR_MME_UE_TIMER((__mME)->t3470); \
|
||||
\
|
||||
ogs_list_for_each(&mme_ue->sess_list, sess) { \
|
||||
ogs_list_for_each(&sess->bearer_list, bearer) { \
|
||||
CLEAR_BEARER_ALL_TIMERS(bearer); \
|
||||
} \
|
||||
} \
|
||||
} while(0);
|
||||
#define CLEAR_MME_UE_TIMER(__mME_UE_TIMER) \
|
||||
do { \
|
||||
|
|
|
@ -1385,6 +1385,15 @@ void s1ap_handle_ue_context_release_action(enb_ue_t *enb_ue)
|
|||
enb_ue->enb_ue_s1ap_id, enb_ue->mme_ue_s1ap_id);
|
||||
if (mme_ue) {
|
||||
ogs_info(" IMSI[%s]", mme_ue->imsi_bcd);
|
||||
|
||||
/*
|
||||
* An assert occurs when a NAS message retransmission occurs.
|
||||
*
|
||||
* Because there is no `enb_ue` context.
|
||||
*
|
||||
* Therefore, before removing enb_ue, all Timers must be stopped
|
||||
* to prevent retransmission of NAS messages.
|
||||
*/
|
||||
CLEAR_MME_UE_ALL_TIMERS(mme_ue);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue