/* * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The OpenAirInterface Software Alliance licenses this file to You under * the OAI Public License, Version 1.1 (the "License"); you may not use this file * except in compliance with the License. * You may obtain a copy of the License at * * http://www.openairinterface.org/?page_id=698 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *------------------------------------------------------------------------------- * For more information about the OpenAirInterface (OAI) Software Alliance: * contact@openairinterface.org */ /***************************************************************************** Source emm_reg.c Version 0.1 Date 2012/10/16 Product NAS stack Subsystem EPS Mobility Management Author Frederic Maurel Description Defines the EMMREG Service Access Point that provides registration services for location updating and attach/detach procedures. *****************************************************************************/ #include "emm_reg.h" #include "commonDef.h" #include "nas_log.h" #include "emm_fsm.h" #include /****************************************************************************/ /**************** E X T E R N A L D E F I N I T I O N S ****************/ /****************************************************************************/ /****************************************************************************/ /******************* L O C A L D E F I N I T I O N S *******************/ /****************************************************************************/ /****************************************************************************/ /****************** E X P O R T E D F U N C T I O N S ******************/ /****************************************************************************/ /**************************************************************************** ** ** ** Name: emm_reg_initialize() ** ** ** ** Description: Initializes the EMMREG Service Access Point ** ** ** ** Inputs: None ** ** Others: None ** ** ** ** Outputs: None ** ** Return: None ** ** Others: NONE ** ** ** ***************************************************************************/ void emm_reg_initialize(nas_user_t *user) { LOG_FUNC_IN; /* Initialize the EMM state machine */ user->emm_fsm_status = emm_fsm_initialize(); LOG_FUNC_OUT; } /**************************************************************************** ** ** ** Name: emm_reg_send() ** ** ** ** Description: Processes the EMMREG Service Access Point primitive ** ** ** ** Inputs: msg: The EMMREG-SAP primitive to process ** ** Others: None ** ** ** ** Outputs: None ** ** Return: RETURNok, RETURNerror ** ** Others: None ** ** ** ***************************************************************************/ int emm_reg_send(nas_user_t *user, const emm_reg_t *msg) { LOG_FUNC_IN; int rc; /* Check the EMM-SAP primitive */ emm_reg_primitive_t primitive = msg->primitive; assert( (primitive > _EMMREG_START) && (primitive < _EMMREG_END)); /* avoid gcc warnings */ (void)primitive; /* Execute the EMM procedure */ rc = emm_fsm_process(user, msg); LOG_FUNC_RETURN (rc); } /****************************************************************************/ /********************* L O C A L F U N C T I O N S *********************/ /****************************************************************************/