add servce_request handler in EMM module
This commit is contained in:
parent
d8646e10a0
commit
3f22f4f666
|
@ -633,6 +633,12 @@ void emm_handle_delete_session_response(mme_bearer_t *bearer)
|
|||
}
|
||||
}
|
||||
|
||||
void emm_handle_service_request(
|
||||
mme_ue_t *mme_ue, nas_service_request_t *service_request)
|
||||
{
|
||||
/* TODO */
|
||||
}
|
||||
|
||||
mme_ue_t *emm_find_ue_by_message(enb_ue_t *enb_ue, nas_message_t *message)
|
||||
{
|
||||
mme_ue_t *mme_ue = NULL;
|
||||
|
|
|
@ -24,6 +24,9 @@ CORE_DECLARE(void) emm_handle_identity_response(
|
|||
CORE_DECLARE(void) emm_handle_detach_request(
|
||||
mme_ue_t *mme_ue, nas_detach_request_from_ue_t *detach_request);
|
||||
CORE_DECLARE(void) emm_handle_delete_session_response(mme_bearer_t *bearer);
|
||||
CORE_DECLARE(void) emm_handle_service_request(
|
||||
mme_ue_t *mme_ue, nas_service_request_t *service_request);
|
||||
|
||||
CORE_DECLARE(mme_ue_t*) emm_find_ue_by_message(
|
||||
enb_ue_t *enb_ue, nas_message_t *message);
|
||||
|
||||
|
|
|
@ -126,6 +126,14 @@ void emm_state_operational(fsm_t *s, event_t *e)
|
|||
message = (nas_message_t *)event_get_param3(e);
|
||||
d_assert(message, break, "Null param");
|
||||
|
||||
if (message->emm.h.security_header_type
|
||||
== NAS_SECURITY_HEADER_FOR_SERVICE_REQUEST_MESSAGE)
|
||||
{
|
||||
emm_handle_service_request(
|
||||
mme_ue, &message->emm.service_request);
|
||||
break;
|
||||
}
|
||||
|
||||
switch(message->emm.h.message_type)
|
||||
{
|
||||
case NAS_ATTACH_REQUEST:
|
||||
|
|
|
@ -109,8 +109,7 @@ status_t nas_security_encode(
|
|||
return CORE_OK;
|
||||
}
|
||||
|
||||
status_t nas_security_decode(mme_ue_t *mme_ue, pkbuf_t *pkbuf,
|
||||
int *service_request_message, int *mac_failed)
|
||||
status_t nas_security_decode(mme_ue_t *mme_ue, pkbuf_t *pkbuf, int *mac_failed)
|
||||
{
|
||||
c_int32_t hsize = 0;
|
||||
|
||||
|
@ -140,8 +139,6 @@ status_t nas_security_decode(mme_ue_t *mme_ue, pkbuf_t *pkbuf,
|
|||
c_uint8_t sequence_number_high_3bit;
|
||||
c_uint8_t mac[NAS_SECURITY_MAC_SIZE];
|
||||
|
||||
*service_request_message = 1;
|
||||
|
||||
if (mme_ue->selected_int_algorithm == 0)
|
||||
{
|
||||
d_warn("integrity algorithm is not defined");
|
||||
|
|
|
@ -22,8 +22,7 @@ extern "C" {
|
|||
CORE_DECLARE(status_t) nas_security_encode(
|
||||
pkbuf_t **pkbuf, mme_ue_t *mme_ue, nas_message_t *message);
|
||||
CORE_DECLARE(status_t) nas_security_decode(
|
||||
mme_ue_t *mme_ue, pkbuf_t *pkbuf,
|
||||
int *service_request_message, int *mac_failed);
|
||||
mme_ue_t *mme_ue, pkbuf_t *pkbuf, int *mac_failed);
|
||||
|
||||
CORE_DECLARE(void) nas_mac_calculate(c_uint8_t algorithm_identity,
|
||||
c_uint8_t *knas_int, c_uint32_t count, c_uint8_t bearer,
|
||||
|
|
|
@ -19,7 +19,6 @@ static void event_s1ap_to_nas(enb_ue_t *enb_ue, S1ap_NAS_PDU_t *nasPdu)
|
|||
nas_esm_header_t *h = NULL;
|
||||
pkbuf_t *nasbuf = NULL;
|
||||
event_t e;
|
||||
int service_request_message = 0;
|
||||
int mac_failed = 0;
|
||||
|
||||
d_assert(enb_ue, return, "Null param");
|
||||
|
@ -33,10 +32,9 @@ static void event_s1ap_to_nas(enb_ue_t *enb_ue, S1ap_NAS_PDU_t *nasPdu)
|
|||
|
||||
if (enb_ue->mme_ue)
|
||||
{
|
||||
d_assert(nas_security_decode(enb_ue->mme_ue, nasbuf,
|
||||
&service_request_message, &mac_failed) == CORE_OK,
|
||||
pkbuf_free(nasbuf);return,
|
||||
"nas_security_decode failed");
|
||||
d_assert(nas_security_decode(
|
||||
enb_ue->mme_ue, nasbuf, &mac_failed) == CORE_OK,
|
||||
pkbuf_free(nasbuf);return, "nas_security_decode failed");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue