refine GTP/Diameter Log
This commit is contained in:
parent
67870af84f
commit
225e1ba07f
|
@ -62,6 +62,8 @@ static int hss_s6a_air_cb( struct msg **msg, struct avp *avp,
|
|||
c_uint32_t result_code = 0;
|
||||
|
||||
d_assert(msg, return EINVAL,);
|
||||
|
||||
d_trace(3, "[HSS] Authentication-Information-Request\n");
|
||||
|
||||
/* Create answer header */
|
||||
qry = *msg;
|
||||
|
@ -225,6 +227,8 @@ static int hss_s6a_air_cb( struct msg **msg, struct avp *avp,
|
|||
/* Send the answer */
|
||||
ret = fd_msg_send(msg, NULL, NULL);
|
||||
d_assert(ret == 0,,);
|
||||
|
||||
d_trace(3, "[HSS] Authentication-Information-Answer\n");
|
||||
|
||||
/* Add this value to the stats */
|
||||
d_assert(pthread_mutex_lock(&fd_logger_self()->stats_lock) == 0,,);
|
||||
|
@ -275,6 +279,8 @@ static int hss_s6a_ulr_cb( struct msg **msg, struct avp *avp,
|
|||
struct sockaddr_in6 sin6;
|
||||
|
||||
d_assert(msg, return EINVAL,);
|
||||
|
||||
d_trace(3, "[HSS] Update-Location-Request\n");
|
||||
|
||||
/* Create answer header */
|
||||
qry = *msg;
|
||||
|
@ -634,6 +640,8 @@ static int hss_s6a_ulr_cb( struct msg **msg, struct avp *avp,
|
|||
/* Send the answer */
|
||||
ret = fd_msg_send(msg, NULL, NULL);
|
||||
d_assert(ret == 0,,);
|
||||
|
||||
d_trace(3, "[HSS] Update-Location-Answer\n");
|
||||
|
||||
/* Add this value to the stats */
|
||||
d_assert( pthread_mutex_lock(&fd_logger_self()->stats_lock) == 0,,);
|
||||
|
|
|
@ -45,6 +45,8 @@ void mme_s6a_send_air(mme_ue_t *mme_ue,
|
|||
|
||||
d_assert(mme_ue, return, "Null param");
|
||||
|
||||
d_trace(3, "[MME] Authentication-Information-Request\n");
|
||||
|
||||
/* Clear Security Context */
|
||||
CLEAR_SECURITY_CONTEXT(mme_ue);
|
||||
|
||||
|
@ -170,9 +172,6 @@ void mme_s6a_send_air(mme_ue_t *mme_ue,
|
|||
d_assert(pthread_mutex_lock(&fd_logger_self()->stats_lock) == 0,, );
|
||||
fd_logger_self()->stats.nb_sent++;
|
||||
d_assert(pthread_mutex_unlock(&fd_logger_self()->stats_lock) == 0,, );
|
||||
|
||||
d_trace(3, "[S6A] Authentication-Information-Request : UE[%s] --> HSS\n",
|
||||
mme_ue->imsi_bcd);
|
||||
}
|
||||
|
||||
/* MME received Authentication Information Answer from HSS */
|
||||
|
@ -197,6 +196,8 @@ static void mme_s6a_aia_cb(void *data, struct msg **msg)
|
|||
s6a_aia_message_t *aia_message = NULL;
|
||||
c_uint16_t s6abuf_len = 0;
|
||||
e_utran_vector_t *e_utran_vector = NULL;
|
||||
|
||||
d_trace(3, "[MME] Authentication-Information-Answer\n");
|
||||
|
||||
ret = clock_gettime(CLOCK_REALTIME, &ts);
|
||||
d_assert(ret == 0, return,);
|
||||
|
@ -220,8 +221,6 @@ static void mme_s6a_aia_cb(void *data, struct msg **msg)
|
|||
s6a_message = s6abuf->payload;
|
||||
d_assert(s6a_message, return, "Null param");
|
||||
|
||||
d_trace(3, "[S6A] Authentication-Information-Answer : UE <-- HSS\n");
|
||||
|
||||
/* Set Authentication-Information Command */
|
||||
memset(s6a_message, 0, s6abuf_len);
|
||||
s6a_message->cmd_code = S6A_CMD_CODE_AUTHENTICATION_INFORMATION;
|
||||
|
@ -456,6 +455,8 @@ void mme_s6a_send_ulr(mme_ue_t *mme_ue)
|
|||
struct session *session = NULL;
|
||||
|
||||
d_assert(mme_ue, return, "Null Param");
|
||||
|
||||
d_trace(3, "[MME] Update-Location-Request\n");
|
||||
|
||||
/* Create the random value to store with the session */
|
||||
pool_alloc_node(&mme_s6a_sess_pool, &sess_data);
|
||||
|
@ -569,9 +570,6 @@ void mme_s6a_send_ulr(mme_ue_t *mme_ue)
|
|||
d_assert(pthread_mutex_lock(&fd_logger_self()->stats_lock) == 0,, );
|
||||
fd_logger_self()->stats.nb_sent++;
|
||||
d_assert(pthread_mutex_unlock(&fd_logger_self()->stats_lock) == 0,, );
|
||||
|
||||
d_trace(3, "[S6A] Update-Location-Request : UE[%s] --> HSS\n",
|
||||
mme_ue->imsi_bcd);
|
||||
}
|
||||
|
||||
/* MME received Update Location Answer from HSS */
|
||||
|
@ -597,6 +595,8 @@ static void mme_s6a_ula_cb(void *data, struct msg **msg)
|
|||
s6a_subscription_data_t *subscription_data = NULL;
|
||||
c_uint16_t s6abuf_len = 0;
|
||||
|
||||
d_trace(3, "[MME] Update-Location-Answer\n");
|
||||
|
||||
ret = clock_gettime(CLOCK_REALTIME, &ts);
|
||||
d_assert(ret == 0, return,);
|
||||
|
||||
|
@ -619,8 +619,6 @@ static void mme_s6a_ula_cb(void *data, struct msg **msg)
|
|||
s6a_message = s6abuf->payload;
|
||||
d_assert(s6a_message, return, "Null param");
|
||||
|
||||
d_trace(3, "[S6A] Update-Location-Answer : UE <-- HSS\n");
|
||||
|
||||
/* Set Authentication-Information Command */
|
||||
memset(s6a_message, 0, s6abuf_len);
|
||||
s6a_message->cmd_code = S6A_CMD_CODE_UPDATE_LOCATION;
|
||||
|
|
|
@ -41,6 +41,9 @@ status_t mme_s11_build_create_session_request(
|
|||
mme_ue = sess->mme_ue;
|
||||
d_assert(mme_ue, return CORE_ERROR, "Null param");
|
||||
|
||||
d_trace(3, "[MME] Create Session Request\n");
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
memset(>p_message, 0, sizeof(gtp_message_t));
|
||||
|
||||
d_assert(mme_ue->imsi_len, return CORE_ERROR, "Null param");
|
||||
|
@ -243,6 +246,10 @@ status_t mme_s11_build_modify_bearer_request(pkbuf_t **pkbuf,
|
|||
mme_ue = bearer->mme_ue;
|
||||
d_assert(mme_ue, return CORE_ERROR, "Null param");
|
||||
|
||||
d_trace(3, "[MME] Modifty Bearer Request\n");
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
|
||||
memset(>p_message, 0, sizeof(gtp_message_t));
|
||||
|
||||
/* Bearer Context : EBI */
|
||||
|
@ -303,6 +310,10 @@ status_t mme_s11_build_delete_session_request(
|
|||
bearer = mme_default_bearer_in_sess(sess);
|
||||
d_assert(bearer, return CORE_ERROR, "Null param");
|
||||
|
||||
d_trace(3, "[MME] Delete Session Request\n");
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
|
||||
memset(>p_message, 0, sizeof(gtp_message_t));
|
||||
|
||||
req->linked_eps_bearer_id.presence = 1;
|
||||
|
@ -353,6 +364,10 @@ status_t mme_s11_build_create_bearer_response(
|
|||
d_assert(bearer, return CORE_ERROR, "Null param");
|
||||
mme_ue = bearer->mme_ue;
|
||||
d_assert(mme_ue, return CORE_ERROR, "Null param");
|
||||
|
||||
d_trace(3, "[MME] Create Bearer Response\n");
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
|
||||
memset(>p_message, 0, sizeof(gtp_message_t));
|
||||
|
||||
|
@ -447,6 +462,10 @@ status_t mme_s11_build_update_bearer_response(
|
|||
mme_ue = bearer->mme_ue;
|
||||
d_assert(mme_ue, return CORE_ERROR, "Null param");
|
||||
|
||||
d_trace(3, "[MME] Update Bearer Response\n");
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
|
||||
memset(>p_message, 0, sizeof(gtp_message_t));
|
||||
|
||||
/* Set Cause */
|
||||
|
@ -520,6 +539,10 @@ status_t mme_s11_build_delete_bearer_response(
|
|||
mme_ue = bearer->mme_ue;
|
||||
d_assert(mme_ue, return CORE_ERROR, "Null param");
|
||||
|
||||
d_trace(3, "[MME] Delete Bearer Response\n");
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
|
||||
memset(>p_message, 0, sizeof(gtp_message_t));
|
||||
|
||||
/* Set Cause */
|
||||
|
@ -582,6 +605,7 @@ status_t mme_s11_build_release_access_bearers_request(
|
|||
gtp_release_access_bearers_request_t *req =
|
||||
>p_message.release_access_bearers_request;
|
||||
|
||||
d_trace(3, "[MME] Release Access Bearers Request\n");
|
||||
memset(>p_message, 0, sizeof(gtp_message_t));
|
||||
|
||||
req->originating_node.presence = 1;
|
||||
|
@ -604,6 +628,8 @@ status_t mme_s11_build_downlink_data_notification_ack(
|
|||
|
||||
gtp_cause_t cause;
|
||||
|
||||
d_trace(3, "[MME] Downlink Data Notification Ackknowledge\n");
|
||||
|
||||
memset(>p_message, 0, sizeof(gtp_message_t));
|
||||
|
||||
memset(&cause, 0, sizeof(cause));
|
||||
|
@ -640,6 +666,10 @@ status_t mme_s11_build_create_indirect_data_forwarding_tunnel_request(
|
|||
|
||||
d_assert(mme_ue, return CORE_ERROR, "Null param");
|
||||
|
||||
d_trace(3, "[MME] Create Indirect Data Forwarding Tunnel Request\n");
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
|
||||
gtp_bearers_in_create_indirect_tunnel_request(&bearers, req);
|
||||
memset(>p_message, 0, sizeof(gtp_message_t));
|
||||
|
||||
|
|
|
@ -33,6 +33,8 @@ void mme_s11_handle_create_session_response(
|
|||
d_assert(mme_ue, return, "Null param");
|
||||
d_assert(rsp, return, "Null param");
|
||||
|
||||
d_trace(3, "[MME] Create Session Response\n");
|
||||
|
||||
if (rsp->sender_f_teid_for_control_plane.presence == 0)
|
||||
{
|
||||
d_error("No S11 TEID");
|
||||
|
@ -73,6 +75,9 @@ void mme_s11_handle_create_session_response(
|
|||
sgw_s11_teid = rsp->sender_f_teid_for_control_plane.data;
|
||||
mme_ue->sgw_s11_teid = ntohl(sgw_s11_teid->teid);
|
||||
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
|
||||
memcpy(&pdn->paa, rsp->pdn_address_allocation.data,
|
||||
rsp->pdn_address_allocation.len);
|
||||
|
||||
|
@ -88,9 +93,6 @@ void mme_s11_handle_create_session_response(
|
|||
rv = gtp_f_teid_to_ip(sgw_s1u_teid, &bearer->sgw_s1u_ip);
|
||||
d_assert(rv == CORE_OK, return,);
|
||||
|
||||
d_trace(3, "[MME] Create Session Response : MME[%d] <-- SGW[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
|
||||
rv = gtp_xact_commit(xact);
|
||||
d_assert(rv == CORE_OK, return, "xact_commit error");
|
||||
|
||||
|
@ -118,7 +120,8 @@ void mme_s11_handle_modify_bearer_response(
|
|||
d_assert(mme_ue, return, "Null param");
|
||||
d_assert(rsp, return, "Null param");
|
||||
|
||||
d_trace(3, "[MME] Modify Bearer Response : MME[%d] <-- SGW[%d]\n",
|
||||
d_trace(3, "[MME] Modify Bearer Response\n");
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
|
||||
rv = gtp_xact_commit(xact);
|
||||
|
@ -152,13 +155,13 @@ void mme_s11_handle_delete_session_response(
|
|||
sess = GTP_XACT_RETRIEVE_SESSION(xact);
|
||||
d_assert(sess, return, "Null param");
|
||||
|
||||
d_trace(3, "[MME] Delete Session Response\n");
|
||||
if (rsp->cause.presence == 0)
|
||||
{
|
||||
d_error("No Cause");
|
||||
return;
|
||||
}
|
||||
|
||||
d_trace(3, "[MME] Delete Session Response : MME[%d] <-- SGW[%d]\n",
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
|
||||
rv = gtp_xact_commit(xact);
|
||||
|
@ -249,8 +252,7 @@ void mme_s11_handle_create_bearer_request(
|
|||
d_assert(mme_ue, return, "Null param");
|
||||
d_assert(req, return, "Null param");
|
||||
|
||||
d_trace(3, "[MME] Create Bearer Request : MME[%d] <-- SGW[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
d_trace(3, "[MME] Create Bearer Response\n");
|
||||
|
||||
if (req->linked_eps_bearer_id.presence == 0)
|
||||
{
|
||||
|
@ -283,6 +285,9 @@ void mme_s11_handle_create_bearer_request(
|
|||
return;
|
||||
}
|
||||
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
|
||||
sess = mme_sess_find_by_ebi(mme_ue, req->linked_eps_bearer_id.u8);
|
||||
d_assert(sess, return,
|
||||
"No Session Context(EBI:%d)", req->linked_eps_bearer_id);
|
||||
|
@ -344,9 +349,7 @@ void mme_s11_handle_update_bearer_request(
|
|||
d_assert(mme_ue, return, "Null param");
|
||||
d_assert(req, return, "Null param");
|
||||
|
||||
d_trace(3, "[MME] Update Bearer Request : MME[%d] <-- SGW[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
|
||||
d_trace(3, "[MME] Update Bearer Request\n");
|
||||
if (req->bearer_contexts.presence == 0)
|
||||
{
|
||||
d_error("No Bearer");
|
||||
|
@ -357,6 +360,8 @@ void mme_s11_handle_update_bearer_request(
|
|||
d_error("No EPS Bearer ID");
|
||||
return;
|
||||
}
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
|
||||
bearer = mme_bearer_find_by_ue_ebi(mme_ue,
|
||||
req->bearer_contexts.eps_bearer_id.u8);
|
||||
|
@ -441,9 +446,7 @@ void mme_s11_handle_delete_bearer_request(
|
|||
d_assert(mme_ue, return, "Null param");
|
||||
d_assert(req, return, "Null param");
|
||||
|
||||
d_trace(3, "[MME] Delete Bearer Request : MME[%d] <-- SGW[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
|
||||
d_trace(3, "[MME] Delete Bearer Request\n");
|
||||
if (req->linked_eps_bearer_id.presence == 1)
|
||||
{
|
||||
bearer = mme_bearer_find_by_ue_ebi(mme_ue, req->linked_eps_bearer_id.u8);
|
||||
|
@ -462,6 +465,8 @@ void mme_s11_handle_delete_bearer_request(
|
|||
d_error("No Linked EBI or EPS Bearer ID");
|
||||
return;
|
||||
}
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
|
||||
/* Save Transaction. will be handled after EMM-attached */
|
||||
bearer->xact = xact;
|
||||
|
@ -503,6 +508,7 @@ void mme_s11_handle_release_access_bearers_response(
|
|||
d_assert(mme_ue, return, "Null param");
|
||||
d_assert(rsp, return, "Null param");
|
||||
|
||||
d_trace(3, "[MME] Release Access Bearers Response\n");
|
||||
enb_ue = mme_ue->enb_ue;
|
||||
d_assert(enb_ue, return, "Null param");
|
||||
|
||||
|
@ -511,8 +517,7 @@ void mme_s11_handle_release_access_bearers_response(
|
|||
d_error("No Cause");
|
||||
return;
|
||||
}
|
||||
|
||||
d_trace(3, "[MME] Release Access Bearers Response : MME[%d] <-- SGW[%d]\n",
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
|
||||
rv = gtp_xact_commit(xact);
|
||||
|
@ -536,7 +541,8 @@ void mme_s11_handle_downlink_data_notification(
|
|||
d_assert(mme_ue, return, "Null param");
|
||||
d_assert(noti, return, "Null param");
|
||||
|
||||
d_trace(3, "[MME] Downlink Data Notification : MME[%d] <-- SGW[%d]\n",
|
||||
d_trace(3, "[MME] Downlink Data Notification\n");
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
|
||||
/* Build Downlink data notification ack */
|
||||
|
@ -573,14 +579,13 @@ void mme_s11_handle_create_indirect_data_forwarding_tunnel_response(
|
|||
source_ue = mme_ue->enb_ue;
|
||||
d_assert(source_ue, return, "Null param");
|
||||
|
||||
d_trace(3, "[MME] Create Indirect Data Forwarding Tunnel Response\n");
|
||||
if (rsp->cause.presence == 0)
|
||||
{
|
||||
d_error("No Cause");
|
||||
return;
|
||||
}
|
||||
|
||||
d_trace(3, "[MME] Create Indirect Data Forwarding Tunnel Response : "
|
||||
"MME[%d] <-- SGW[%d]\n",
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
|
||||
rv = gtp_xact_commit(xact);
|
||||
|
@ -637,14 +642,13 @@ void mme_s11_handle_delete_indirect_data_forwarding_tunnel_response(
|
|||
d_assert(mme_ue, return, "Null param");
|
||||
d_assert(rsp, return, "Null param");
|
||||
|
||||
d_trace(3, "[MME] Delete Indirect Data Forwarding Tunnel Response\n");
|
||||
if (rsp->cause.presence == 0)
|
||||
{
|
||||
d_error("No Cause");
|
||||
return;
|
||||
}
|
||||
|
||||
d_trace(3, "[MME] Delete Indirect Data Forwarding Tunnel Response : "
|
||||
"MME[%d] <-- SGW[%d]\n",
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid);
|
||||
|
||||
rv = gtp_xact_commit(xact);
|
||||
|
|
|
@ -214,7 +214,7 @@ static int pcrf_gx_ccr_cb( struct msg **msg, struct avp *avp,
|
|||
c_uint32_t cc_request_number = 0;
|
||||
c_uint32_t result_code = FD_DIAMETER_MISSING_AVP;
|
||||
|
||||
d_trace(3, "[PCRF] Credit-Control-Request : PGW --> PCRF\n");
|
||||
d_trace(3, "[PCRF] Credit-Control-Request\n");
|
||||
|
||||
d_assert(msg, return EINVAL,);
|
||||
|
||||
|
@ -600,6 +600,8 @@ static int pcrf_gx_ccr_cb( struct msg **msg, struct avp *avp,
|
|||
ret = fd_msg_send(msg, NULL, NULL);
|
||||
d_assert(ret == 0,,);
|
||||
|
||||
d_trace(3, "[PCRF] Credit-Control-Answer\n");
|
||||
|
||||
/* Add this value to the stats */
|
||||
d_assert(pthread_mutex_lock(&fd_logger_self()->stats_lock) == 0,,);
|
||||
fd_logger_self()->stats.nb_echoed++;
|
||||
|
@ -677,7 +679,7 @@ status_t pcrf_gx_send_rar(
|
|||
d_assert(rx_sid, return CORE_ERROR,);
|
||||
d_assert(rx_message, return CORE_ERROR,);
|
||||
|
||||
d_trace(3, "[PCRF] Re-Auth-Request : PCRF -> PGW\n");
|
||||
d_trace(3, "[PCRF] Re-Auth-Request\n");
|
||||
|
||||
/* Initialize Message */
|
||||
memset(&gx_message, 0, sizeof(gx_message_t));
|
||||
|
@ -1041,7 +1043,7 @@ static void pcrf_gx_raa_cb(void *data, struct msg **msg)
|
|||
|
||||
c_uint32_t result_code;
|
||||
|
||||
d_trace(3, "[PCRF] Re-Auth-Answer : PGW --> PCRF\n");
|
||||
d_trace(3, "[PCRF] Re-Auth-Answer\n");
|
||||
|
||||
ret = clock_gettime(CLOCK_REALTIME, &ts);
|
||||
d_assert(ret == 0, return,);
|
||||
|
|
|
@ -93,7 +93,7 @@ static int pcrf_rx_aar_cb( struct msg **msg, struct avp *avp,
|
|||
os0_t gx_sid = NULL;
|
||||
c_uint32_t result_code = RX_DIAMETER_IP_CAN_SESSION_NOT_AVAILABLE;
|
||||
|
||||
d_trace(3, "[PCRF] AA-Request : PCRF <-- P-CSCF\n");
|
||||
d_trace(3, "[PCRF] AA-Request\n");
|
||||
|
||||
d_assert(msg, return EINVAL,);
|
||||
d_assert(sess, return EINVAL,);
|
||||
|
@ -394,6 +394,8 @@ static int pcrf_rx_aar_cb( struct msg **msg, struct avp *avp,
|
|||
ret = fd_msg_send(msg, NULL, NULL);
|
||||
d_assert(ret == 0,,);
|
||||
|
||||
d_trace(3, "[PCRF] AA-Answer\n");
|
||||
|
||||
/* Add this value to the stats */
|
||||
d_assert(pthread_mutex_lock(&fd_logger_self()->stats_lock) == 0,,);
|
||||
fd_logger_self()->stats.nb_echoed++;
|
||||
|
@ -451,7 +453,7 @@ status_t pcrf_rx_send_asr(c_uint8_t *rx_sid, c_uint32_t abort_cause)
|
|||
|
||||
d_assert(rx_sid, return CORE_ERROR,);
|
||||
|
||||
d_trace(3, "[PCRF] Abort-Session-Request : PCRF --> P-CSCF\n");
|
||||
d_trace(3, "[PCRF] Abort-Session-Request\n");
|
||||
|
||||
/* Create the request */
|
||||
ret = fd_msg_new(rx_cmd_asr, MSGFL_ALLOC_ETEID, &req);
|
||||
|
@ -557,7 +559,7 @@ static void pcrf_rx_asa_cb(void *data, struct msg **msg)
|
|||
int new;
|
||||
c_int32_t result_code = 0;
|
||||
|
||||
d_trace(3, "[PCRF] Abort-Session-Answer : PCRF <-- P-CSCF\n");
|
||||
d_trace(3, "[PCRF] Abort-Session-Answer\n");
|
||||
|
||||
/* Search the session, retrieve its data */
|
||||
ret = fd_msg_sess_get(fd_g_config->cnf_dict, *msg, &session, &new);
|
||||
|
@ -654,7 +656,7 @@ static int pcrf_rx_str_cb( struct msg **msg, struct avp *avp,
|
|||
|
||||
c_uint32_t result_code = RX_DIAMETER_IP_CAN_SESSION_NOT_AVAILABLE;
|
||||
|
||||
d_trace(3, "[PCRF] Session-Termination-Request : PCRF <-- P-CSCF\n");
|
||||
d_trace(3, "[PCRF] Session-Termination-Request\n");
|
||||
|
||||
d_assert(msg, return EINVAL,);
|
||||
d_assert(sess, return EINVAL,);
|
||||
|
@ -736,6 +738,8 @@ static int pcrf_rx_str_cb( struct msg **msg, struct avp *avp,
|
|||
ret = fd_msg_send(msg, NULL, NULL);
|
||||
d_assert(ret == 0,,);
|
||||
|
||||
d_trace(3, "[PCRF] Session-Termination-Answer\n");
|
||||
|
||||
/* Add this value to the stats */
|
||||
d_assert(pthread_mutex_lock(&fd_logger_self()->stats_lock) == 0,,);
|
||||
fd_logger_self()->stats.nb_echoed++;
|
||||
|
@ -774,6 +778,7 @@ out:
|
|||
|
||||
ret = fd_msg_send(msg, NULL, NULL);
|
||||
d_assert(ret == 0,,);
|
||||
d_trace(3, "[PCRF] Session-Termination-Answer\n");
|
||||
|
||||
state_cleanup(sess_data, NULL, NULL);
|
||||
rx_message_free(&rx_message);
|
||||
|
|
|
@ -79,6 +79,8 @@ void pgw_gx_send_ccr(pgw_sess_t *sess, gtp_xact_t *xact,
|
|||
message = gtpbuf->payload;
|
||||
d_assert(message, return, );
|
||||
|
||||
d_trace(3, "[PGW] Credit-Control-Request\n");
|
||||
|
||||
/* Create the request */
|
||||
ret = fd_msg_new(gx_cmd_ccr, MSGFL_ALLOC_ETEID, &req);
|
||||
d_assert(ret == 0, return,);
|
||||
|
@ -433,9 +435,6 @@ void pgw_gx_send_ccr(pgw_sess_t *sess, gtp_xact_t *xact,
|
|||
d_assert(pthread_mutex_lock(&fd_logger_self()->stats_lock) == 0,,);
|
||||
fd_logger_self()->stats.nb_sent++;
|
||||
d_assert(pthread_mutex_unlock(&fd_logger_self()->stats_lock) == 0,,);
|
||||
|
||||
d_trace(3, "[Gx] Credit-Control-Request : PGW[%d] --> PCRF\n",
|
||||
sess->pgw_s5c_teid);
|
||||
}
|
||||
|
||||
static void pgw_gx_cca_cb(void *data, struct msg **msg)
|
||||
|
@ -458,6 +457,8 @@ static void pgw_gx_cca_cb(void *data, struct msg **msg)
|
|||
pkbuf_t *gxbuf = NULL, *gtpbuf = NULL;
|
||||
gx_message_t *gx_message = NULL;
|
||||
c_uint16_t gxbuf_len = 0;
|
||||
|
||||
d_trace(3, "[PGW] Credit-Control-Answer\n");
|
||||
|
||||
ret = clock_gettime(CLOCK_REALTIME, &ts);
|
||||
d_assert(ret == 0, return,);
|
||||
|
@ -485,8 +486,6 @@ static void pgw_gx_cca_cb(void *data, struct msg **msg)
|
|||
gx_message = gxbuf->payload;
|
||||
d_assert(gx_message, return, "Null param");
|
||||
|
||||
d_trace(3, "[Gx] Credit-Control-Answer : PGW <-- PCRF\n");
|
||||
|
||||
/* Set Credit Control Command */
|
||||
memset(gx_message, 0, gxbuf_len);
|
||||
gx_message->cmd_code = GX_CMD_CODE_CREDIT_CONTROL;
|
||||
|
@ -820,6 +819,8 @@ static int pgw_gx_rar_cb( struct msg **msg, struct avp *avp,
|
|||
|
||||
d_assert(msg, return EINVAL,);
|
||||
|
||||
d_trace(3, "[PGW] Re-Auth-Request\n");
|
||||
|
||||
gxbuf_len = sizeof(gx_message_t);
|
||||
d_assert(gxbuf_len < 8192, return EINVAL,
|
||||
"Not supported size:%d", gxbuf_len);
|
||||
|
@ -828,8 +829,6 @@ static int pgw_gx_rar_cb( struct msg **msg, struct avp *avp,
|
|||
gx_message = gxbuf->payload;
|
||||
d_assert(gx_message, return EINVAL, "Null param");
|
||||
|
||||
d_trace(3, "[Gx] Re-Auth-Request : PGW <-- PCRF\n");
|
||||
|
||||
/* Set Credit Control Command */
|
||||
memset(gx_message, 0, gxbuf_len);
|
||||
gx_message->cmd_code = GX_CMD_RE_AUTH;
|
||||
|
@ -974,6 +973,8 @@ static int pgw_gx_rar_cb( struct msg **msg, struct avp *avp,
|
|||
ret = fd_msg_send(msg, NULL, NULL);
|
||||
d_assert(ret == 0,,);
|
||||
|
||||
d_trace(3, "[PGW] Re-Auth-Answer\n");
|
||||
|
||||
/* Add this value to the stats */
|
||||
d_assert(pthread_mutex_lock(&fd_logger_self()->stats_lock) == 0,,);
|
||||
fd_logger_self()->stats.nb_echoed++;
|
||||
|
|
|
@ -33,6 +33,10 @@ status_t pgw_s5c_build_create_session_response(
|
|||
d_assert(sess, return CORE_ERROR, "Null param");
|
||||
d_assert(req, return CORE_ERROR, "Null param");
|
||||
|
||||
d_trace(3, "[PGW] Create Session Response\n");
|
||||
d_trace(3, " SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
|
||||
bearer = pgw_default_bearer_in_sess(sess);
|
||||
d_assert(bearer, return CORE_ERROR, "Null param");
|
||||
|
||||
|
@ -132,6 +136,10 @@ status_t pgw_s5c_build_delete_session_response(
|
|||
d_assert(gx_message, return CORE_ERROR, "Null param");
|
||||
d_assert(req, return CORE_ERROR, "Null param");
|
||||
|
||||
d_trace(3, "[PGW] Delete Session Response\n");
|
||||
d_trace(3, " SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
|
||||
/* prepare cause */
|
||||
memset(&cause, 0, sizeof(cause));
|
||||
cause.value = GTP_CAUSE_REQUEST_ACCEPTED;
|
||||
|
@ -304,6 +312,10 @@ status_t pgw_s5c_build_create_bearer_request(
|
|||
linked_bearer = pgw_default_bearer_in_sess(sess);
|
||||
d_assert(linked_bearer, return CORE_ERROR, "Null param");
|
||||
|
||||
d_trace(3, "[PGW] Create Bearer Request\n");
|
||||
d_trace(3, " SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
|
||||
req = >p_message.create_bearer_request;
|
||||
memset(>p_message, 0, sizeof(gtp_message_t));
|
||||
|
||||
|
@ -379,6 +391,9 @@ status_t pgw_s5c_build_update_bearer_request(
|
|||
linked_bearer = pgw_default_bearer_in_sess(sess);
|
||||
d_assert(linked_bearer, return CORE_ERROR, "Null param");
|
||||
|
||||
d_trace(3, "[PGW] Update Bearer Request\n");
|
||||
d_trace(3, " SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
req = >p_message.update_bearer_request;
|
||||
memset(>p_message, 0, sizeof(gtp_message_t));
|
||||
|
||||
|
@ -439,6 +454,9 @@ status_t pgw_s5c_build_delete_bearer_request(
|
|||
linked_bearer = pgw_default_bearer_in_sess(sess);
|
||||
d_assert(linked_bearer, return CORE_ERROR, "Null param");
|
||||
|
||||
d_trace(3, "[PGW] Delete Bearer Request\n");
|
||||
d_trace(3, " SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
req = >p_message.delete_bearer_request;
|
||||
memset(>p_message, 0, sizeof(gtp_message_t));
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@ void pgw_s5c_handle_create_session_request(
|
|||
bearer = pgw_default_bearer_in_sess(sess);
|
||||
d_assert(bearer, return, "Null param");
|
||||
|
||||
d_trace(3, "[PGW] Create Session Reqeust\n");
|
||||
if (req->imsi.presence == 0)
|
||||
{
|
||||
d_error("No IMSI");
|
||||
|
@ -72,6 +73,9 @@ void pgw_s5c_handle_create_session_request(
|
|||
d_assert(sgw_s5c_teid, return, "Null param");
|
||||
sess->sgw_s5c_teid = ntohl(sgw_s5c_teid->teid);
|
||||
|
||||
d_trace(3, " SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
|
||||
/* Control Plane(DL) : SGW-S5U */
|
||||
sgw_s5u_teid = req->bearer_contexts_to_be_created.s5_s8_u_sgw_f_teid.data;
|
||||
d_assert(sgw_s5u_teid, return, "Null param");
|
||||
|
@ -118,14 +122,16 @@ void pgw_s5c_handle_create_session_request(
|
|||
sess->tai.tac = uli.tai.tac;
|
||||
memcpy(&sess->e_cgi.plmn_id, &uli.e_cgi.plmn_id, sizeof(uli.e_cgi.plmn_id));
|
||||
sess->e_cgi.cell_id = uli.e_cgi.cell_id;
|
||||
|
||||
d_trace(3, "[PGW] Create Session Reqeust : SGW[0x%x] --> PGW[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
}
|
||||
|
||||
void pgw_s5c_handle_delete_session_request(
|
||||
pgw_sess_t *sess, gtp_xact_t *xact, gtp_delete_session_request_t *req)
|
||||
{
|
||||
d_assert(sess, return, "Null param");
|
||||
|
||||
d_trace(3, "[PGW] Delete Session Request\n");
|
||||
d_trace(3, " SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
}
|
||||
|
||||
void pgw_s5c_handle_create_bearer_response(
|
||||
|
@ -140,6 +146,9 @@ void pgw_s5c_handle_create_bearer_response(
|
|||
d_assert(sess, return, "Null param");
|
||||
d_assert(req, return, "Null param");
|
||||
|
||||
d_trace(3, "[PGW] Create Bearer Response\n");
|
||||
d_trace(3, " SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
if (req->bearer_contexts.presence == 0)
|
||||
{
|
||||
d_error("No Bearer");
|
||||
|
@ -207,6 +216,9 @@ void pgw_s5c_handle_update_bearer_response(
|
|||
d_assert(sess, return, "Null param");
|
||||
d_assert(req, return, "Null param");
|
||||
|
||||
d_trace(3, "[PGW] Update Bearer Request\n");
|
||||
d_trace(3, " SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
if (req->bearer_contexts.presence == 0)
|
||||
{
|
||||
d_error("No Bearer");
|
||||
|
@ -235,6 +247,9 @@ void pgw_s5c_handle_delete_bearer_response(
|
|||
d_assert(sess, return, "Null param");
|
||||
d_assert(req, return, "Null param");
|
||||
|
||||
d_trace(3, "[PGW] Delete Bearer Request\n");
|
||||
d_trace(3, " SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
if (req->bearer_contexts.presence == 0)
|
||||
{
|
||||
d_error("No Bearer");
|
||||
|
|
|
@ -38,6 +38,7 @@ void sgw_s11_handle_create_session_request(
|
|||
|
||||
req = >p_message->create_session_request;
|
||||
|
||||
d_trace(3, "[SGW] Create Session Reqeust\n");
|
||||
if (req->bearer_contexts_to_be_created.presence == 0)
|
||||
{
|
||||
d_error("No Bearer");
|
||||
|
@ -106,6 +107,11 @@ void sgw_s11_handle_create_session_request(
|
|||
req->sender_f_teid_for_control_plane.data = &sgw_s5c_teid;
|
||||
req->sender_f_teid_for_control_plane.len = len;
|
||||
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
d_trace(3, " SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
|
||||
pgw_s5c_teid = req->pgw_s5_s8_address_for_control_plane_or_pmip.data;
|
||||
d_assert(pgw_s5c_teid, return, "Null param");
|
||||
|
||||
|
@ -160,9 +166,6 @@ void sgw_s11_handle_create_session_request(
|
|||
|
||||
rv = gtp_xact_commit(s5c_xact);
|
||||
d_assert(rv == CORE_OK, return, "xact_commit error");
|
||||
|
||||
d_trace(3, "[SGW] Create Session Reqeust : SGW[0x%x] --> PGW[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
}
|
||||
|
||||
CORE_DECLARE(void) sgw_s11_handle_modify_bearer_request(gtp_xact_t *s11_xact,
|
||||
|
@ -185,6 +188,9 @@ CORE_DECLARE(void) sgw_s11_handle_modify_bearer_request(gtp_xact_t *s11_xact,
|
|||
d_assert(sgw_ue, return, "Null param");
|
||||
d_assert(req, return, "Null param");
|
||||
|
||||
d_trace(3, "[SGW] Modify Bearer Reqeust\n");
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
if (req->bearer_contexts_to_be_modified.presence == 0)
|
||||
{
|
||||
d_error("No Bearer");
|
||||
|
@ -272,9 +278,6 @@ CORE_DECLARE(void) sgw_s11_handle_modify_bearer_request(gtp_xact_t *s11_xact,
|
|||
|
||||
rv = gtp_xact_commit(s11_xact);
|
||||
d_assert(rv == CORE_OK, return, "xact_commit error");
|
||||
|
||||
d_trace(3, "[SGW] Modify Bearer Reqeust : MME[%d] --> SGW[%d]\n",
|
||||
sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
}
|
||||
|
||||
void sgw_s11_handle_delete_session_request(gtp_xact_t *s11_xact,
|
||||
|
@ -293,6 +296,7 @@ void sgw_s11_handle_delete_session_request(gtp_xact_t *s11_xact,
|
|||
req = >p_message->delete_session_request;
|
||||
d_assert(req, return, "Null param");
|
||||
|
||||
d_trace(3, "[SGW] Delete Session Reqeust\n");
|
||||
if (req->linked_eps_bearer_id.presence == 0)
|
||||
{
|
||||
d_error("No EPS Bearer ID");
|
||||
|
@ -301,6 +305,10 @@ void sgw_s11_handle_delete_session_request(gtp_xact_t *s11_xact,
|
|||
|
||||
sess = sgw_sess_find_by_ebi(sgw_ue, req->linked_eps_bearer_id.u8);
|
||||
d_assert(sess, return, "Null param");
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
d_trace(3, " SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
|
||||
gtp_message->h.type = GTP_DELETE_SESSION_REQUEST_TYPE;
|
||||
gtp_message->h.teid = sess->pgw_s5c_teid;
|
||||
|
@ -315,9 +323,6 @@ void sgw_s11_handle_delete_session_request(gtp_xact_t *s11_xact,
|
|||
|
||||
rv = gtp_xact_commit(s5c_xact);
|
||||
d_assert(rv == CORE_OK, return, "xact_commit error");
|
||||
|
||||
d_trace(3, "[SGW] Delete Session Reqeust : SGW[0x%x] --> PGW[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
}
|
||||
|
||||
void sgw_s11_handle_create_bearer_response(gtp_xact_t *s11_xact,
|
||||
|
@ -344,6 +349,7 @@ void sgw_s11_handle_create_bearer_response(gtp_xact_t *s11_xact,
|
|||
s5c_xact = s11_xact->assoc_xact;
|
||||
d_assert(s5c_xact, return, "Null param");
|
||||
|
||||
d_trace(3, "[SGW] Cerate Bearer Reqeust\n");
|
||||
req = >p_message->create_bearer_response;
|
||||
d_assert(req, return, "Null param");
|
||||
|
||||
|
@ -388,6 +394,11 @@ void sgw_s11_handle_create_bearer_response(gtp_xact_t *s11_xact,
|
|||
sess = bearer->sess;
|
||||
d_assert(sess, return, "Null param");
|
||||
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
d_trace(3, " SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
|
||||
/* Set EBI */
|
||||
bearer->ebi = req->bearer_contexts.eps_bearer_id.u8;
|
||||
|
||||
|
@ -454,9 +465,6 @@ void sgw_s11_handle_create_bearer_response(gtp_xact_t *s11_xact,
|
|||
|
||||
rv = gtp_xact_commit(s5c_xact);
|
||||
d_assert(rv == CORE_OK, return, "xact_commit error");
|
||||
|
||||
d_trace(3, "[SGW] Create Bearer Response : SGW[0x%x] --> PGW[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
}
|
||||
|
||||
void sgw_s11_handle_update_bearer_response(gtp_xact_t *s11_xact,
|
||||
|
@ -478,6 +486,7 @@ void sgw_s11_handle_update_bearer_response(gtp_xact_t *s11_xact,
|
|||
req = >p_message->update_bearer_response;
|
||||
d_assert(req, return, "Null param");
|
||||
|
||||
d_trace(3, "[SGW] Update Bearer Reqeust\n");
|
||||
if (req->bearer_contexts.presence == 0)
|
||||
{
|
||||
d_error("No Bearer");
|
||||
|
@ -496,6 +505,11 @@ void sgw_s11_handle_update_bearer_response(gtp_xact_t *s11_xact,
|
|||
sess = bearer->sess;
|
||||
d_assert(sess, return, "Null param");
|
||||
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
d_trace(3, " SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
|
||||
gtp_message->h.type = GTP_UPDATE_BEARER_RESPONSE_TYPE;
|
||||
gtp_message->h.teid = sess->pgw_s5c_teid;
|
||||
|
||||
|
@ -507,9 +521,6 @@ void sgw_s11_handle_update_bearer_response(gtp_xact_t *s11_xact,
|
|||
|
||||
rv = gtp_xact_commit(s5c_xact);
|
||||
d_assert(rv == CORE_OK, return, "xact_commit error");
|
||||
|
||||
d_trace(3, "[SGW] Update Bearer Response : SGW[0x%x] --> PGW[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
}
|
||||
|
||||
void sgw_s11_handle_delete_bearer_response(gtp_xact_t *s11_xact,
|
||||
|
@ -531,6 +542,7 @@ void sgw_s11_handle_delete_bearer_response(gtp_xact_t *s11_xact,
|
|||
req = >p_message->delete_bearer_response;
|
||||
d_assert(req, return, "Null param");
|
||||
|
||||
d_trace(3, "[SGW] Delete Bearer Response\n");
|
||||
if (req->bearer_contexts.presence == 0)
|
||||
{
|
||||
d_error("No Bearer");
|
||||
|
@ -549,6 +561,11 @@ void sgw_s11_handle_delete_bearer_response(gtp_xact_t *s11_xact,
|
|||
sess = bearer->sess;
|
||||
d_assert(sess, return, "Null param");
|
||||
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
d_trace(3, " SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
|
||||
gtp_message->h.type = GTP_DELETE_BEARER_RESPONSE_TYPE;
|
||||
gtp_message->h.teid = sess->pgw_s5c_teid;
|
||||
|
||||
|
@ -561,9 +578,6 @@ void sgw_s11_handle_delete_bearer_response(gtp_xact_t *s11_xact,
|
|||
rv = gtp_xact_commit(s5c_xact);
|
||||
d_assert(rv == CORE_OK, return, "xact_commit error");
|
||||
|
||||
d_trace(3, "[SGW] Delete Bearer Response : SGW[0x%x] --> PGW[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
|
||||
sgw_bearer_remove(bearer);
|
||||
}
|
||||
|
||||
|
@ -584,6 +598,9 @@ void sgw_s11_handle_release_access_bearers_request(gtp_xact_t *s11_xact,
|
|||
d_assert(s11_xact, return, "Null param");
|
||||
d_assert(req, return, "Null param");
|
||||
|
||||
d_trace(3, "[SGW] Release Access Bearers Request\n");
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
/* Set UE state to S1UE_INACTIVE */
|
||||
SGW_SET_UE_STATE(sgw_ue, SGW_S1U_INACTIVE);
|
||||
/* ReSet UE state to S1UE_INACTIVE */
|
||||
|
@ -630,9 +647,6 @@ void sgw_s11_handle_release_access_bearers_request(gtp_xact_t *s11_xact,
|
|||
|
||||
rv = gtp_xact_commit(s11_xact);
|
||||
d_assert(rv == CORE_OK, return, "xact_commit error");
|
||||
|
||||
d_trace(3, "[SGW] Release Access Bearers Reqeust : MME[%d] --> SGW[%d]\n",
|
||||
sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
}
|
||||
|
||||
void sgw_s11_handle_lo_dldata_notification(sgw_bearer_t *bearer)
|
||||
|
@ -651,6 +665,10 @@ void sgw_s11_handle_lo_dldata_notification(sgw_bearer_t *bearer)
|
|||
sgw_ue = bearer->sgw_ue;
|
||||
d_assert(sgw_ue, return, "Null param");
|
||||
|
||||
d_trace(3, "[SGW] Downlink Data Notification\n");
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
|
||||
/* Build downlink notification message */
|
||||
noti = >p_message.downlink_data_notification;
|
||||
memset(>p_message, 0, sizeof(gtp_message_t));
|
||||
|
@ -674,16 +692,15 @@ void sgw_s11_handle_lo_dldata_notification(sgw_bearer_t *bearer)
|
|||
|
||||
rv = gtp_xact_commit(xact);
|
||||
d_assert(rv == CORE_OK, return, "xact_commit error");
|
||||
|
||||
d_trace(3, "[SGW] Downlink Data Notification : SGW[%d] --> MME[%d]\n",
|
||||
sgw_ue->sgw_s11_teid, sgw_ue->mme_s11_teid);
|
||||
}
|
||||
|
||||
void sgw_s11_handle_downlink_data_notification_ack(sgw_ue_t *sgw_ue,
|
||||
gtp_downlink_data_notification_acknowledge_t *ack)
|
||||
{
|
||||
d_trace(3, "[SGW] Downlink Data Notification Ack: MME[%d] --> SGW[%d]\n",
|
||||
sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
d_assert(sgw_ue, return, "Null param");
|
||||
d_trace(3, "[SGW] Downlink Data Notification Acknowledge\n");
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
}
|
||||
|
||||
void sgw_s11_handle_create_indirect_data_forwarding_tunnel_request(
|
||||
|
@ -712,6 +729,10 @@ void sgw_s11_handle_create_indirect_data_forwarding_tunnel_request(
|
|||
d_assert(s11_xact, return, "Null param");
|
||||
d_assert(req, return, "Null param");
|
||||
|
||||
d_trace(3, "[SGW] Create Indirect Data Forwarding Tunnel Request\n");
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
|
||||
rsp = >p_message.create_indirect_data_forwarding_tunnel_response;
|
||||
memset(>p_message, 0, sizeof(gtp_message_t));
|
||||
|
||||
|
@ -833,9 +854,6 @@ void sgw_s11_handle_create_indirect_data_forwarding_tunnel_request(
|
|||
|
||||
rv = gtp_xact_commit(s11_xact);
|
||||
d_assert(rv == CORE_OK, return, "xact_commit error");
|
||||
|
||||
d_trace(3, "[SGW] Create Indirect Data Forwarding Tunnel Response : "
|
||||
"MME[%d] --> SGW[%d]\n", sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
}
|
||||
|
||||
void sgw_s11_handle_delete_indirect_data_forwarding_tunnel_request(
|
||||
|
@ -855,6 +873,10 @@ void sgw_s11_handle_delete_indirect_data_forwarding_tunnel_request(
|
|||
d_assert(sgw_ue, return, "Null param");
|
||||
d_assert(s11_xact, return, "Null param");
|
||||
|
||||
d_trace(3, "[SGW] Delete Indirect Data Forwarding Tunnel Request\n");
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
|
||||
/* Delete Indirect Tunnel */
|
||||
sess = sgw_sess_first(sgw_ue);
|
||||
while (sess)
|
||||
|
@ -905,7 +927,4 @@ void sgw_s11_handle_delete_indirect_data_forwarding_tunnel_request(
|
|||
|
||||
rv = gtp_xact_commit(s11_xact);
|
||||
d_assert(rv == CORE_OK, return, "xact_commit error");
|
||||
|
||||
d_trace(3, "[SGW] Delete Indirect Data Forwarding Tunnel Response : "
|
||||
"MME[%d] --> SGW[%d]\n", sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
}
|
||||
|
|
|
@ -40,6 +40,7 @@ void sgw_s5c_handle_create_session_response(gtp_xact_t *s5c_xact,
|
|||
d_assert(s11_xact, return, "Null param");
|
||||
d_assert(gtp_message, return, "Null param");
|
||||
|
||||
d_trace(3, "[SGW] Create Session Response\n");
|
||||
rsp = >p_message->create_session_response;
|
||||
|
||||
if (rsp->pgw_s5_s8__s2a_s2b_f_teid_for_pmip_based_interface_or_for_gtp_based_control_plane_interface.
|
||||
|
@ -79,6 +80,11 @@ void sgw_s5c_handle_create_session_response(gtp_xact_t *s5c_xact,
|
|||
sess->pgw_s5c_teid = ntohl(pgw_s5c_teid->teid);
|
||||
rsp->pgw_s5_s8__s2a_s2b_f_teid_for_pmip_based_interface_or_for_gtp_based_control_plane_interface.
|
||||
presence = 0;
|
||||
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
d_trace(3, " SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
|
||||
/* Receive Data Plane(UL) : PGW-S5U */
|
||||
pgw_s5u_teid = rsp->bearer_contexts_created.s5_s8_u_sgw_f_teid.data;
|
||||
|
@ -139,9 +145,6 @@ void sgw_s5c_handle_create_session_response(gtp_xact_t *s5c_xact,
|
|||
|
||||
rv = gtp_xact_commit(s11_xact);
|
||||
d_assert(rv == CORE_OK, return, "xact_commit error");
|
||||
|
||||
d_trace(3, "[SGW] Create Session Response : SGW[0x%x] <-- PGW[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
}
|
||||
|
||||
void sgw_s5c_handle_delete_session_response(gtp_xact_t *s5c_xact,
|
||||
|
@ -176,8 +179,12 @@ void sgw_s5c_handle_delete_session_response(gtp_xact_t *s5c_xact,
|
|||
/* Remove a pgw session */
|
||||
if (sess)
|
||||
{
|
||||
d_trace(3, "[SGW] Delete Session Response : SGW[0x%x] --> PGW[0x%x]\n",
|
||||
d_trace(3, "[SGW] Delete Session Response\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
d_trace(3, " SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
|
||||
/* backup sgw_s5c_teid in session context */
|
||||
mme_s11_teid = sgw_ue->mme_s11_teid;
|
||||
|
@ -233,6 +240,12 @@ void sgw_s5c_handle_create_bearer_request(gtp_xact_t *s5c_xact,
|
|||
|
||||
req = >p_message->create_bearer_request;
|
||||
|
||||
d_trace(3, "[SGW] Create Bearer Request\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
d_trace(3, " SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
if (req->linked_eps_bearer_id.presence == 0)
|
||||
{
|
||||
d_error("No Linked EBI");
|
||||
|
@ -308,9 +321,6 @@ void sgw_s5c_handle_create_bearer_request(gtp_xact_t *s5c_xact,
|
|||
|
||||
rv = gtp_xact_commit(s11_xact);
|
||||
d_assert(rv == CORE_OK, return, "xact_commit error");
|
||||
|
||||
d_trace(3, "[SGW] Create Bearer Request : SGW[%d] <-- PGW[%d]\n",
|
||||
s5u_tunnel->local_teid, s5u_tunnel->remote_teid);
|
||||
}
|
||||
|
||||
void sgw_s5c_handle_update_bearer_request(gtp_xact_t *s5c_xact,
|
||||
|
@ -328,6 +338,13 @@ void sgw_s5c_handle_update_bearer_request(gtp_xact_t *s5c_xact,
|
|||
d_assert(s5c_xact, return, "Null param");
|
||||
d_assert(gtp_message, return, "Null param");
|
||||
|
||||
d_trace(3, "[SGW] Update Bearer Request\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
d_trace(3, " SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
|
||||
req = >p_message->update_bearer_request;
|
||||
|
||||
if (req->bearer_contexts.presence == 0)
|
||||
|
@ -375,6 +392,12 @@ void sgw_s5c_handle_delete_bearer_request(gtp_xact_t *s5c_xact,
|
|||
|
||||
req = >p_message->delete_bearer_request;
|
||||
|
||||
d_trace(3, "[SGW] Delete Bearer Request\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
d_trace(3, " MME_S11_TEID[%d] SGW_S11_TEID[%d]\n",
|
||||
sgw_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
|
||||
d_trace(3, " SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
if (req->linked_eps_bearer_id.presence == 0 &&
|
||||
req->eps_bearer_ids.presence == 0)
|
||||
{
|
||||
|
|
|
@ -4,7 +4,7 @@ logger:
|
|||
trace:
|
||||
s1ap: 1
|
||||
nas: 1
|
||||
diameter: 1
|
||||
diameter: 3
|
||||
gtp: 1
|
||||
others: 1
|
||||
|
||||
|
|
Loading…
Reference in New Issue