user_defs.h 3.26 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
/*******************************************************************************
    OpenAirInterface
    Copyright(c) 1999 - 2014 Eurecom

    OpenAirInterface is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.


    OpenAirInterface is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with OpenAirInterface.The full GNU General Public License is
   included in this distribution in the file called "COPYING". If not,
   see <http://www.gnu.org/licenses/>.

  Contact Information
  OpenAirInterface Admin: openair_admin@eurecom.fr
  OpenAirInterface Tech : openair_tech@eurecom.fr
  OpenAirInterface Dev  : openair4g-devel@lists.eurecom.fr

  Address      : Eurecom, Compus SophiaTech 450, route des chappes, 06451 Biot, France.

 *******************************************************************************/
/*****************************************************************************
Source      user_defs.h

Version     0.1

Date        2016/07/01

Product     NAS stack

Subsystem   NAS main process

Author      Frederic Leroy

Description NAS type definition to manage a user equipment

*****************************************************************************/
#ifndef __USER_DEFS_H__
#define __USER_DEFS_H__

48
#include "nas_proc_defs.h"
49
#include "esmData.h"
50
#include "esm_pt_defs.h"
51
#include "EMM/emm_fsm_defs.h"
52
#include "EMM/emmData.h"
53
#include "EMM/Authentication.h"
54
#include "EMM/IdleMode_defs.h"
55
#include "EMM/LowerLayer_defs.h"
56
#include "API/USIM/usim_api.h"
57
#include "API/USER/user_api_defs.h"
58
#include "SecurityModeControl.h"
59
#include "userDef.h"
60
#include "at_response.h"
61

62
typedef struct {
63
  int ueid; /* UE lower layer identifier */
64
  proc_data_t proc;
65
  // Eps Session Management
66
  esm_data_t *esm_data; // ESM internal data (used within ESM only)
67
  esm_pt_data_t *esm_pt_data;
68
  esm_ebr_data_t *esm_ebr_data;  // EPS bearer contexts
69
  default_eps_bearer_context_data_t *default_eps_bearer_context_data;
70
  // Eps Mobility Management
71 72
  emm_fsm_state_t emm_fsm_status; // Current EPS Mobility Management status
  emm_data_t *emm_data; // EPS mobility management data
73
  emm_plmn_list_t *emm_plmn_list; // list of PLMN identities
74
  authentication_data_t *authentication_data;
75
  security_data_t *security_data; //Internal data used for security mode control procedure
76
  // Hardware persistent storage
77
  usim_data_t usim_data; // USIM application data
78
  const char *usim_data_store; // USIM application data filename
79 80
  user_nvdata_t *nas_user_nvdata; //UE parameters stored in the UE's non-volatile memory device
  //
81
  nas_user_context_t *nas_user_context;
82
  at_response_t *at_response; // data structure returned to the user as the result of NAS procedure function call
83 84
  //
  user_at_commands_t *user_at_commands; //decoded data received from the user application layer
85
  user_api_id_t *user_api_id;
86
  lowerlayer_data_t *lowerlayer_data;
87 88 89
} nas_user_t;

#endif