Paging rollback
This commit is contained in:
parent
979fd96a84
commit
40ae23aca4
|
@ -298,15 +298,15 @@ void s1ap_send_paging(mme_ue_t *mme_ue, S1AP_CNDomain_t cn_domain)
|
|||
if (memcmp(&enb->supported_ta_list[i], &mme_ue->tai,
|
||||
sizeof(tai_t)) == 0) {
|
||||
|
||||
/* Build S1AP Paging message */
|
||||
rv = s1ap_build_paging(&s1apbuf, mme_ue, cn_domain);
|
||||
ogs_assert(rv == OGS_OK && s1apbuf);
|
||||
if (mme_ue->last_paging_msg) {
|
||||
s1apbuf = mme_ue->last_paging_msg;
|
||||
} else {
|
||||
rv = s1ap_build_paging(&s1apbuf, mme_ue, cn_domain);
|
||||
ogs_assert(rv == OGS_OK && s1apbuf);
|
||||
}
|
||||
|
||||
/* Save it for later use */
|
||||
ogs_assert(mme_ue->last_paging_msg == NULL);
|
||||
mme_ue->last_paging_msg = ogs_pkbuf_copy(s1apbuf);
|
||||
|
||||
/* Send to enb */
|
||||
rv = s1ap_send_to_enb(enb, s1apbuf, S1AP_NON_UE_SIGNALLING);
|
||||
ogs_assert(rv == OGS_OK);
|
||||
}
|
||||
|
@ -322,40 +322,19 @@ void s1ap_t3413_timeout(void *data)
|
|||
mme_ue_t *mme_ue = data;
|
||||
ogs_assert(mme_ue);
|
||||
|
||||
if (mme_ue->max_paging_retry < MAX_NUM_OF_PAGING) {
|
||||
ogs_pkbuf_t *s1apbuf = NULL;
|
||||
mme_enb_t *enb = NULL;
|
||||
int i;
|
||||
int rv;
|
||||
|
||||
/* Find enB with matched TAI */
|
||||
ogs_list_for_each(&mme_self()->enb_list, enb) {
|
||||
for (i = 0; i < enb->num_of_supported_ta_list; i++) {
|
||||
|
||||
if (memcmp(&enb->supported_ta_list[i], &mme_ue->tai,
|
||||
sizeof(tai_t)) == 0) {
|
||||
|
||||
/* Save it for later use */
|
||||
ogs_assert(mme_ue->last_paging_msg);
|
||||
s1apbuf = mme_ue->last_paging_msg;
|
||||
mme_ue->last_paging_msg = ogs_pkbuf_copy(s1apbuf);
|
||||
|
||||
/* Send to enb */
|
||||
rv = s1ap_send_to_enb(enb, s1apbuf, S1AP_NON_UE_SIGNALLING);
|
||||
ogs_assert(rv == OGS_OK);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Start T3413 */
|
||||
ogs_timer_start(mme_ue->t3413, mme_self()->t3413_value);
|
||||
|
||||
mme_ue->max_paging_retry++;
|
||||
} else {
|
||||
if (mme_ue->max_paging_retry >= MAX_NUM_OF_PAGING) {
|
||||
/* Paging failed */
|
||||
ogs_warn("[EMM] Paging to IMSI[%s] failed. Stop paging",
|
||||
mme_ue->imsi_bcd);
|
||||
CLEAR_PAGING_INFO(mme_ue);
|
||||
if (mme_ue->last_paging_msg) {
|
||||
ogs_pkbuf_free(mme_ue->last_paging_msg);
|
||||
mme_ue->last_paging_msg = NULL;
|
||||
}
|
||||
} else {
|
||||
mme_ue->max_paging_retry++;
|
||||
/* If t3413 is timeout, last_paging_msg is used.
|
||||
* We don't have to set CNDomain. So, we just set CNDomain to 0 */
|
||||
s1ap_send_paging(mme_ue, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue