open5gs/src/mme/esm_build.c

56 lines
1.6 KiB
C
Raw Normal View History

2017-04-11 03:57:54 +00:00
#define TRACE_MODULE _esm_build
#include "core_debug.h"
#include "nas_message.h"
#include "nas_security.h"
#include "esm_build.h"
status_t esm_build_information_request(pkbuf_t **pkbuf, mme_esm_t *esm)
{
nas_message_t message;
mme_ue_t *ue = NULL;
d_assert(esm, return CORE_ERROR, "Null param");
ue = esm->ue;
d_assert(ue, return CORE_ERROR, "Null param");
memset(&message, 0, sizeof(message));
message.h.security_header_type =
NAS_SECURITY_HEADER_INTEGRITY_PROTECTED_AND_CIPHERED;
message.h.protocol_discriminator = NAS_PROTOCOL_DISCRIMINATOR_EMM;
message.esm.h.protocol_discriminator = NAS_PROTOCOL_DISCRIMINATOR_ESM;
message.esm.h.procedure_transaction_identity = esm->pti;
message.esm.h.message_type = NAS_ESM_INFORMATION_REQUEST;
d_assert(nas_security_encode(pkbuf, ue, &message) == CORE_OK && *pkbuf,,);
return CORE_OK;
}
2017-04-13 02:08:42 +00:00
status_t esm_build_activate_default_bearer_context(
pkbuf_t **pkbuf, mme_esm_t *esm)
{
nas_message_t message;
mme_ue_t *ue = NULL;
d_assert(esm, return CORE_ERROR, "Null param");
ue = esm->ue;
d_assert(ue, return CORE_ERROR, "Null param");
memset(&message, 0, sizeof(message));
message.h.security_header_type =
NAS_SECURITY_HEADER_INTEGRITY_PROTECTED_AND_CIPHERED;
message.h.protocol_discriminator = NAS_PROTOCOL_DISCRIMINATOR_EMM;
message.esm.h.protocol_discriminator = NAS_PROTOCOL_DISCRIMINATOR_ESM;
message.esm.h.procedure_transaction_identity = esm->pti;
message.esm.h.message_type = NAS_ESM_INFORMATION_REQUEST;
d_assert(nas_plain_encode(pkbuf, &message) == CORE_OK && *pkbuf,,);
return CORE_OK;
}