/* * 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 TrackingAreaUpdate.c Version 0.1 Date 2013/05/07 Product NAS stack Subsystem EPS Mobility Management Author Frederic Maurel Description Defines the tracking area update EMM procedure executed by the Non-Access Stratum. The tracking area updating procedure is always initiated by the UE and is used to update the registration of the actual tracking area of a UE in the network, to periodically notify the availa- bility of the UE to the network, for MME load balancing, to up- date certain UE specific parameters in the network. *****************************************************************************/ #include "emm_proc.h" #include "nas_log.h" #include "nas_timer.h" #include "emmData.h" #include "emm_sap.h" #include "emm_cause.h" #include // memcmp, memcpy /****************************************************************************/ /**************** 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 *******************/ /****************************************************************************/ /* * -------------------------------------------------------------------------- * Internal data handled by the tracking area update procedure in the UE * -------------------------------------------------------------------------- */ /* * -------------------------------------------------------------------------- * Internal data handled by the tracking area update procedure in the MME * -------------------------------------------------------------------------- */ /****************************************************************************/ /****************** E X P O R T E D F U N C T I O N S ******************/ /****************************************************************************/ /****************************************************************************/ /********************* L O C A L F U N C T I O N S *********************/ /****************************************************************************/ /* * -------------------------------------------------------------------------- * Timer handlers * -------------------------------------------------------------------------- */ /**************************************************************************** ** ** ** Name: _emm_tau_t3430_handler() ** ** ** ** Description: T3430 timeout handler ** ** ** ** 3GPP TS 24.301, section 5.5.3.2.6 case c ** ** ** ** Inputs: args: handler parameters ** ** Others: None ** ** ** ** Outputs: None ** ** Return: None ** ** Others: None ** ** ** ***************************************************************************/ void *emm_tau_t3430_handler(void *args) { LOG_FUNC_IN; nas_user_t *user = args; emm_timers_t *emm_timers = user->emm_data->emm_timers; LOG_TRACE(WARNING, "EMM-PROC - T3430 timer expired"); /* Stop timer T3430 */ emm_timers->T3430.id = nas_timer_stop(emm_timers->T3430.id); LOG_FUNC_RETURN(NULL); }