forked from acouzens/open5gs
remove INVALID ASSERT in SGW
This commit is contained in:
parent
c6bfed6628
commit
9451928786
|
@ -186,6 +186,7 @@ static void common_register_state(fsm_t *s, event_t *e)
|
|||
d_trace(3, "[EMM] Tracking area update complete\n");
|
||||
d_trace(5, " IMSI[%s]\n", mme_ue->imsi_bcd);
|
||||
|
||||
#if 0 /* UE will send UE context release request */
|
||||
enb_ue = mme_ue->enb_ue;
|
||||
d_assert(enb_ue, return, "Null param");
|
||||
|
||||
|
@ -193,6 +194,7 @@ static void common_register_state(fsm_t *s, event_t *e)
|
|||
S1ap_Cause_PR_nas, S1ap_CauseNas_normal_release,
|
||||
S1AP_UE_CTX_REL_NO_ACTION, 0);
|
||||
d_assert(rv == CORE_OK, return, "s1ap send error");
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
case NAS_EMM_STATUS:
|
||||
|
|
|
@ -2710,7 +2710,7 @@ status_t mme_m_tmsi_pool_generate()
|
|||
int i, j;
|
||||
int index = 0;
|
||||
|
||||
d_trace(5, "M-TMSI Pool try to generate...\n");
|
||||
d_trace(9, "M-TMSI Pool try to generate...\n");
|
||||
for (i = 0; index < MAX_POOL_OF_UE; i++)
|
||||
{
|
||||
mme_m_tmsi_t *m_tmsi = NULL;
|
||||
|
@ -2719,21 +2719,27 @@ status_t mme_m_tmsi_pool_generate()
|
|||
m_tmsi = &self.m_tmsi.pool[index];
|
||||
rv = core_generate_random_bytes((c_uint8_t *)m_tmsi, sizeof(*m_tmsi));
|
||||
d_assert(rv == CORE_OK, return CORE_ERROR, "Cannot generate random");
|
||||
|
||||
/* for mapped-GUTI */
|
||||
*m_tmsi |= 0xc0000000;
|
||||
*m_tmsi &= 0xff00ffff;
|
||||
|
||||
for (j = 0; j < index; j++)
|
||||
{
|
||||
if (*m_tmsi == self.m_tmsi.pool[j])
|
||||
{
|
||||
conflict = 1;
|
||||
d_warn("[M-TMSI CONFLICT] %d:0x%x == %d:0x%x",
|
||||
d_trace(11, "[M-TMSI CONFLICT] %d:0x%x == %d:0x%x\n",
|
||||
index, *m_tmsi, j, self.m_tmsi.pool[j]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (conflict == 1) continue;
|
||||
|
||||
index++;
|
||||
}
|
||||
self.m_tmsi.size = index;
|
||||
d_trace(5, "M-TMSI Pool generate...done\n");
|
||||
d_trace(9, "M-TMSI Pool generate...done\n");
|
||||
|
||||
return CORE_OK;
|
||||
}
|
||||
|
|
|
@ -149,8 +149,8 @@ static int _gtpv1_u_recv_cb(sock_id sock, void *data)
|
|||
|
||||
if (!subnet)
|
||||
{
|
||||
d_print_hex(pkbuf->payload, pkbuf->len);
|
||||
d_warn("[DROP] Cannot find subnet V:%d, IPv4:%p, IPv6:%p",
|
||||
d_trace_hex(9, pkbuf->payload, pkbuf->len);
|
||||
d_trace(9, "[DROP] Cannot find subnet V:%d, IPv4:%p, IPv6:%p\n",
|
||||
ip_h->ip_v, sess->ipv4, sess->ipv6);
|
||||
goto cleanup;
|
||||
}
|
||||
|
|
|
@ -169,14 +169,15 @@ static int _gtpv1_u_recv_cb(sock_id sock, void *data)
|
|||
|
||||
s1u_tunnel = sgw_s1u_tunnel_in_bearer(bearer);
|
||||
d_assert(s1u_tunnel, pkbuf_free(pkbuf); return 0, "Null param");
|
||||
d_assert(s1u_tunnel->gnode, pkbuf_free(pkbuf); return 0,);
|
||||
d_assert(s1u_tunnel->gnode->sock, pkbuf_free(pkbuf); return 0,);
|
||||
d_trace(3, "[SGW] SEND GPU-U to ENB[%s]: TEID[0x%x]\n",
|
||||
CORE_ADDR(sock_remote_addr(s1u_tunnel->gnode->sock), buf),
|
||||
s1u_tunnel->remote_teid);
|
||||
|
||||
if (s1u_tunnel->remote_teid)
|
||||
{
|
||||
d_assert(s1u_tunnel->gnode, pkbuf_free(pkbuf); return 0,);
|
||||
d_assert(s1u_tunnel->gnode->sock, pkbuf_free(pkbuf); return 0,);
|
||||
d_trace(3, "[SGW] SEND GPU-U to ENB[%s]: TEID[0x%x]\n",
|
||||
CORE_ADDR(sock_remote_addr(s1u_tunnel->gnode->sock), buf),
|
||||
s1u_tunnel->remote_teid);
|
||||
|
||||
/* If there is buffered packet, send it first */
|
||||
for (i = 0; i < bearer->num_buffered_pkt; i++)
|
||||
{
|
||||
|
@ -206,17 +207,20 @@ static int _gtpv1_u_recv_cb(sock_id sock, void *data)
|
|||
d_assert(bearer->sess->sgw_ue, pkbuf_free(pkbuf); return 0,
|
||||
"SGW_UE is NULL");
|
||||
|
||||
d_trace(3, "[SGW] SEND GPU-U to ENB : STATE[0x%x]\n",
|
||||
SGW_GET_UE_STATE(sgw_ue));
|
||||
|
||||
sgw_ue = bearer->sess->sgw_ue;
|
||||
|
||||
if ((SGW_GET_UE_STATE(sgw_ue) & SGW_S1U_INACTIVE))
|
||||
{
|
||||
d_trace(9, " SGW-S1U Inactive\n");
|
||||
d_trace(5, " SGW-S1U Inactive\n");
|
||||
if ( !(SGW_GET_UE_STATE(sgw_ue) & SGW_DL_NOTI_SENT))
|
||||
{
|
||||
event_t e;
|
||||
status_t rv;
|
||||
|
||||
d_trace(9, " EVENT DL Data Notification\n");
|
||||
d_trace(5, " EVENT DL Data Notification\n");
|
||||
event_set(&e, SGW_EVT_LO_DLDATA_NOTI);
|
||||
event_set_param1(&e, (c_uintptr_t)bearer->index);
|
||||
rv = sgw_event_send(&e);
|
||||
|
|
Loading…
Reference in New Issue