From bb7f0252d94a52d15444bbdbf8a246224e79dc5c Mon Sep 17 00:00:00 2001 From: Cedric Roux <cedric.roux@eurecom.fr> Date: Mon, 25 Nov 2013 10:35:48 +0000 Subject: [PATCH] - Add encode procedure for nas non delivery ind git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4509 818b1a75-f10b-46b9-bf7c-635c3b92a50f --- openair-cn/S1AP/s1ap_eNB_encoder.c | 38 ++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/openair-cn/S1AP/s1ap_eNB_encoder.c b/openair-cn/S1AP/s1ap_eNB_encoder.c index 4474d8a73b..2b08bc9a74 100644 --- a/openair-cn/S1AP/s1ap_eNB_encoder.c +++ b/openair-cn/S1AP/s1ap_eNB_encoder.c @@ -84,6 +84,12 @@ static inline int s1ap_eNB_encode_initial_context_setup_response( uint8_t **buffer, uint32_t *length); +static inline +int s1ap_eNB_encode_nas_non_delivery( + S1ap_NASNonDeliveryIndication_IEs_t *nasNonDeliveryIndicationIEs, + uint8_t **buffer, + uint32_t *length); + int s1ap_eNB_encode_pdu(s1ap_message *message, uint8_t **buffer, uint32_t *len) { DevAssert(message != NULL); @@ -145,6 +151,13 @@ int s1ap_eNB_encode_initiating(s1ap_message *s1ap_message_p, s1ap_xer_print_s1ap_initialuemessage(s1ap_xer__print2sp, message_string, s1ap_message_p); break; + case S1ap_ProcedureCode_id_NASNonDeliveryIndication: + ret = s1ap_eNB_encode_nas_non_delivery( + &s1ap_message_p->msg.s1ap_NASNonDeliveryIndication_IEs, buffer, len); + s1ap_xer_print_s1ap_nasnondeliveryindication_(s1ap_xer__print2sp, + message_string, s1ap_message_p); + break; + default: S1AP_DEBUG("Unknown procedure ID (%d) for initiating message\n", (int)s1ap_message_p->procedureCode); @@ -291,6 +304,31 @@ int s1ap_eNB_encode_uplink_nas_transport( uplinkNASTransport_p); } +static inline +int s1ap_eNB_encode_nas_non_delivery( + S1ap_NASNonDeliveryIndication_IEs_t *nasNonDeliveryIndicationIEs, + uint8_t **buffer, + uint32_t *length) +{ + S1ap_NASNonDeliveryIndication_t nasNonDeliveryIndication; + S1ap_NASNonDeliveryIndication_t *nasNonDeliveryIndication_p = &nasNonDeliveryIndication; + + memset((void *)nasNonDeliveryIndication_p, 0, sizeof(nasNonDeliveryIndication)); + + if (s1ap_encode_s1ap_nasnondeliveryindication_ies( + nasNonDeliveryIndication_p, nasNonDeliveryIndicationIEs) < 0) + { + return -1; + } + + return s1ap_generate_initiating_message(buffer, + length, + S1ap_ProcedureCode_id_NASNonDeliveryIndication, + S1ap_Criticality_ignore, + &asn_DEF_S1ap_NASNonDeliveryIndication, + nasNonDeliveryIndication_p); +} + static inline int s1ap_eNB_encode_s1_setup_request( S1ap_S1SetupRequestIEs_t *s1SetupRequestIEs, -- GitLab