Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
spbro
OpenXG-RAN
Commits
7ff4939d
Commit
7ff4939d
authored
Jul 12, 2016
by
Frédéric Leroy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
UE/EMM/SAP: move _emm_fsm_status to nas_user_t
parent
73937668
Changes
28
Hide whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
170 additions
and
200 deletions
+170
-200
openair3/NAS/UE/EMM/SAP/EmmDeregistered.c
openair3/NAS/UE/EMM/SAP/EmmDeregistered.c
+8
-6
openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttachNeeded.c
openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttachNeeded.c
+3
-2
openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c
openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c
+3
-3
openair3/NAS/UE/EMM/SAP/EmmDeregisteredInitiated.c
openair3/NAS/UE/EMM/SAP/EmmDeregisteredInitiated.c
+6
-5
openair3/NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c
openair3/NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c
+4
-4
openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoCellAvailable.c
openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoCellAvailable.c
+3
-2
openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoImsi.c
openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoImsi.c
+2
-2
openair3/NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c
openair3/NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c
+5
-5
openair3/NAS/UE/EMM/SAP/EmmDeregisteredPlmnSearch.c
openair3/NAS/UE/EMM/SAP/EmmDeregisteredPlmnSearch.c
+4
-4
openair3/NAS/UE/EMM/SAP/EmmNull.c
openair3/NAS/UE/EMM/SAP/EmmNull.c
+3
-2
openair3/NAS/UE/EMM/SAP/EmmRegistered.c
openair3/NAS/UE/EMM/SAP/EmmRegistered.c
+3
-3
openair3/NAS/UE/EMM/SAP/EmmRegisteredAttemptingToUpdate.c
openair3/NAS/UE/EMM/SAP/EmmRegisteredAttemptingToUpdate.c
+2
-2
openair3/NAS/UE/EMM/SAP/EmmRegisteredImsiDetachInitiated.c
openair3/NAS/UE/EMM/SAP/EmmRegisteredImsiDetachInitiated.c
+2
-2
openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c
openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c
+12
-12
openair3/NAS/UE/EMM/SAP/EmmRegisteredLimitedService.c
openair3/NAS/UE/EMM/SAP/EmmRegisteredLimitedService.c
+2
-2
openair3/NAS/UE/EMM/SAP/EmmRegisteredNoCellAvailable.c
openair3/NAS/UE/EMM/SAP/EmmRegisteredNoCellAvailable.c
+2
-2
openair3/NAS/UE/EMM/SAP/EmmRegisteredNormalService.c
openair3/NAS/UE/EMM/SAP/EmmRegisteredNormalService.c
+2
-2
openair3/NAS/UE/EMM/SAP/EmmRegisteredPlmnSearch.c
openair3/NAS/UE/EMM/SAP/EmmRegisteredPlmnSearch.c
+2
-35
openair3/NAS/UE/EMM/SAP/EmmRegisteredUpdateNeeded.c
openair3/NAS/UE/EMM/SAP/EmmRegisteredUpdateNeeded.c
+2
-2
openair3/NAS/UE/EMM/SAP/EmmServiceRequestInitiated.c
openair3/NAS/UE/EMM/SAP/EmmServiceRequestInitiated.c
+2
-2
openair3/NAS/UE/EMM/SAP/EmmTrackingAreaUpdatingInitiated.c
openair3/NAS/UE/EMM/SAP/EmmTrackingAreaUpdatingInitiated.c
+2
-2
openair3/NAS/UE/EMM/SAP/emm_fsm.c
openair3/NAS/UE/EMM/SAP/emm_fsm.c
+37
-50
openair3/NAS/UE/EMM/SAP/emm_fsm.h
openair3/NAS/UE/EMM/SAP/emm_fsm.h
+6
-41
openair3/NAS/UE/EMM/SAP/emm_reg.c
openair3/NAS/UE/EMM/SAP/emm_reg.c
+4
-4
openair3/NAS/UE/EMM/SAP/emm_reg.h
openair3/NAS/UE/EMM/SAP/emm_reg.h
+3
-2
openair3/NAS/UE/EMM/SAP/emm_sap.c
openair3/NAS/UE/EMM/SAP/emm_sap.c
+2
-2
openair3/NAS/UE/EMM/emm_fsm_defs.h
openair3/NAS/UE/EMM/emm_fsm_defs.h
+42
-0
openair3/NAS/UE/user_defs.h
openair3/NAS/UE/user_defs.h
+2
-0
No files found.
openair3/NAS/UE/EMM/SAP/EmmDeregistered.c
View file @
7ff4939d
...
...
@@ -54,6 +54,7 @@ Description Implements the EPS Mobility Management procedures executed
#include "nas_log.h"
#include "emm_proc.h"
#include "user_defs.h"
#include <assert.h>
...
...
@@ -92,10 +93,11 @@ int EmmDeregistered(nas_user_t *user, const emm_reg_t *evt)
int
rc
=
RETURNerror
;
assert
(
emm_fsm_get_status
()
==
EMM_DEREGISTERED
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_DEREGISTERED
);
/* Delete the authentication data RAND and RES */
// FIXME REVIEW
rc
=
emm_proc_authentication_delete
();
if
(
rc
!=
RETURNok
)
{
...
...
@@ -116,7 +118,7 @@ int EmmDeregistered(nas_user_t *user, const emm_reg_t *evt)
/*
* The UE was powered on without a valid USIM application present
*/
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_NO_IMSI
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_NO_IMSI
);
break
;
case
_EMMREG_REGISTER_REQ
:
...
...
@@ -124,11 +126,11 @@ int EmmDeregistered(nas_user_t *user, const emm_reg_t *evt)
* The default EMM primary substate when the UE is switched on
* with valid USIM application shall be PLMN-SEARCH
*/
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_PLMN_SEARCH
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_PLMN_SEARCH
);
if
(
rc
!=
RETURNerror
)
{
/* Process the network registration request */
rc
=
emm_fsm_process
(
evt
);
rc
=
emm_fsm_process
(
user
,
evt
);
}
break
;
...
...
@@ -142,9 +144,9 @@ int EmmDeregistered(nas_user_t *user, const emm_reg_t *evt)
/* Move to the corresponding initial EMM state */
if
(
evt
->
u
.
attach
.
is_emergency
)
{
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_LIMITED_SERVICE
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_LIMITED_SERVICE
);
}
else
{
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_NORMAL_SERVICE
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_NORMAL_SERVICE
);
}
if
(
rc
!=
RETURNerror
)
{
...
...
openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttachNeeded.c
View file @
7ff4939d
...
...
@@ -47,6 +47,7 @@ Description Implements the EPS Mobility Management procedures executed
#include "emm_fsm.h"
#include "commonDef.h"
#include "nas_log.h"
#include "user_defs.h"
#include <assert.h>
...
...
@@ -77,11 +78,11 @@ Description Implements the EPS Mobility Management procedures executed
** Others: emm_fsm_status **
** **
***************************************************************************/
int
EmmDeregisteredAttachNeeded
(
const
emm_reg_t
*
evt
)
int
EmmDeregisteredAttachNeeded
(
nas_user_t
*
user
,
const
emm_reg_t
*
evt
)
{
LOG_FUNC_IN
;
assert
(
emm_fsm_get_status
()
==
EMM_DEREGISTERED_ATTACH_NEEDED
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_DEREGISTERED_ATTACH_NEEDED
);
/* TODO */
...
...
openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c
View file @
7ff4939d
...
...
@@ -85,7 +85,7 @@ int EmmDeregisteredAttemptingToAttach(nas_user_t *user, const emm_reg_t *evt)
int
rc
=
RETURNerror
;
assert
(
emm_fsm_get_status
()
==
EMM_DEREGISTERED_ATTEMPTING_TO_ATTACH
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_DEREGISTERED_ATTEMPTING_TO_ATTACH
);
switch
(
evt
->
primitive
)
{
case
_EMMREG_ATTACH_INIT
:
...
...
@@ -97,9 +97,9 @@ int EmmDeregisteredAttemptingToAttach(nas_user_t *user, const emm_reg_t *evt)
/* Move to the corresponding initial EMM state */
if
(
evt
->
u
.
attach
.
is_emergency
)
{
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_LIMITED_SERVICE
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_LIMITED_SERVICE
);
}
else
{
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_NORMAL_SERVICE
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_NORMAL_SERVICE
);
}
if
(
rc
!=
RETURNerror
)
{
...
...
openair3/NAS/UE/EMM/SAP/EmmDeregisteredInitiated.c
View file @
7ff4939d
...
...
@@ -78,13 +78,13 @@ Description Implements the EPS Mobility Management procedures executed
** Others: emm_fsm_status **
** **
***************************************************************************/
int
EmmDeregisteredInitiated
(
const
emm_reg_t
*
evt
)
int
EmmDeregisteredInitiated
(
nas_user_t
*
user
,
const
emm_reg_t
*
evt
)
{
LOG_FUNC_IN
;
int
rc
=
RETURNerror
;
assert
(
emm_fsm_get_status
()
==
EMM_DEREGISTERED_INITIATED
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_DEREGISTERED_INITIATED
);
switch
(
evt
->
primitive
)
{
...
...
@@ -94,7 +94,7 @@ int EmmDeregisteredInitiated(const emm_reg_t *evt)
* bearer contexts have been deactivated as UE initiated
* detach procedure successfully completed)
*/
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED
);
break
;
case
_EMMREG_DETACH_FAILED
:
...
...
@@ -103,9 +103,9 @@ int EmmDeregisteredInitiated(const emm_reg_t *evt)
* The detach procedure failed
*/
if
(
evt
->
u
.
detach
.
type
==
EMM_DETACH_TYPE_IMSI
)
{
rc
=
emm_fsm_set_status
(
EMM_REGISTERED_NORMAL_SERVICE
);
rc
=
emm_fsm_set_status
(
user
,
EMM_REGISTERED_NORMAL_SERVICE
);
}
else
{
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED
);
}
break
;
...
...
@@ -123,6 +123,7 @@ int EmmDeregisteredInitiated(const emm_reg_t *evt)
* Lower layer failure or release of the NAS signalling connection
* before the Detach Accept is received
*/
// FIXME review
rc
=
emm_proc_lowerlayer_release
();
break
;
...
...
openair3/NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c
View file @
7ff4939d
...
...
@@ -89,18 +89,18 @@ int EmmDeregisteredLimitedService(nas_user_t *user, const emm_reg_t *evt)
int
rc
=
RETURNerror
;
assert
(
emm_fsm_get_status
()
==
EMM_DEREGISTERED_LIMITED_SERVICE
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_DEREGISTERED_LIMITED_SERVICE
);
switch
(
evt
->
primitive
)
{
case
_EMMREG_REGISTER_REQ
:
/*
* The user manually re-selected a PLMN to register to
*/
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_PLMN_SEARCH
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_PLMN_SEARCH
);
if
(
rc
!=
RETURNerror
)
{
/* Process the network registration request */
rc
=
emm_fsm_process
(
evt
);
rc
=
emm_fsm_process
(
user
,
evt
);
}
break
;
...
...
@@ -118,7 +118,7 @@ int EmmDeregisteredLimitedService(nas_user_t *user, const emm_reg_t *evt)
* (Attach Request message successfully delivered to the network);
* enter state EMM-REGISTERED-INITIATED
*/
rc
=
emm_fsm_set_status
(
EMM_REGISTERED_INITIATED
);
rc
=
emm_fsm_set_status
(
user
,
EMM_REGISTERED_INITIATED
);
break
;
case
_EMMREG_LOWERLAYER_SUCCESS
:
...
...
openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoCellAvailable.c
View file @
7ff4939d
...
...
@@ -90,7 +90,7 @@ int EmmDeregisteredNoCellAvailable(nas_user_t *user, const emm_reg_t *evt)
int
rc
=
RETURNerror
;
assert
(
emm_fsm_get_status
()
==
EMM_DEREGISTERED_NO_CELL_AVAILABLE
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_DEREGISTERED_NO_CELL_AVAILABLE
);
switch
(
evt
->
primitive
)
{
/* TODO: network re-selection is not allowed when in No Cell
...
...
@@ -101,13 +101,14 @@ int EmmDeregisteredNoCellAvailable(nas_user_t *user, const emm_reg_t *evt)
/*
* The user manually re-selected a PLMN to register to
*/
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_PLMN_SEARCH
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_PLMN_SEARCH
);
if
(
rc
!=
RETURNerror
)
{
/*
* Notify EMM that the MT is currently searching an operator
* to register to
*/
// FIXME REVIEW
rc
=
emm_proc_registration_notify
(
NET_REG_STATE_ON
);
if
(
rc
!=
RETURNok
)
{
...
...
openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoImsi.c
View file @
7ff4939d
...
...
@@ -78,11 +78,11 @@ Description Implements the EPS Mobility Management procedures executed
** Others: emm_fsm_status **
** **
***************************************************************************/
int
EmmDeregisteredNoImsi
(
const
emm_reg_t
*
evt
)
int
EmmDeregisteredNoImsi
(
nas_user_t
*
user
,
const
emm_reg_t
*
evt
)
{
LOG_FUNC_IN
;
assert
(
emm_fsm_get_status
()
==
EMM_DEREGISTERED_NO_IMSI
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_DEREGISTERED_NO_IMSI
);
LOG_TRACE
(
ERROR
,
"EMM-FSM - USIM is not present or not valid"
);
...
...
openair3/NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c
View file @
7ff4939d
...
...
@@ -90,18 +90,18 @@ int EmmDeregisteredNormalService(nas_user_t *user, const emm_reg_t *evt)
int
rc
=
RETURNerror
;
assert
(
emm_fsm_get_status
()
==
EMM_DEREGISTERED_NORMAL_SERVICE
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_DEREGISTERED_NORMAL_SERVICE
);
switch
(
evt
->
primitive
)
{
case
_EMMREG_REGISTER_REQ
:
/*
* The user manually re-selected a PLMN to register to
*/
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_PLMN_SEARCH
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_PLMN_SEARCH
);
if
(
rc
!=
RETURNerror
)
{
/* Process the network registration request */
rc
=
emm_fsm_process
(
evt
);
rc
=
emm_fsm_process
(
user
,
evt
);
}
break
;
...
...
@@ -126,7 +126,7 @@ int EmmDeregisteredNormalService(nas_user_t *user, const emm_reg_t *evt)
* message successfully delivered to the network);
* enter state EMM-REGISTERED-INITIATED
*/
rc
=
emm_fsm_set_status
(
EMM_REGISTERED_INITIATED
);
rc
=
emm_fsm_set_status
(
user
,
EMM_REGISTERED_INITIATED
);
break
;
case
_EMMREG_LOWERLAYER_SUCCESS
:
...
...
@@ -157,7 +157,7 @@ int EmmDeregisteredNormalService(nas_user_t *user, const emm_reg_t *evt)
* context activated;
* enter state EMM-REGISTERED.
*/
rc
=
emm_fsm_set_status
(
EMM_REGISTERED
);
rc
=
emm_fsm_set_status
(
user
,
EMM_REGISTERED
);
break
;
default:
...
...
openair3/NAS/UE/EMM/SAP/EmmDeregisteredPlmnSearch.c
View file @
7ff4939d
...
...
@@ -88,7 +88,7 @@ int EmmDeregisteredPlmnSearch(nas_user_t *user, const emm_reg_t *evt)
int
rc
=
RETURNerror
;
assert
(
emm_fsm_get_status
()
==
EMM_DEREGISTERED_PLMN_SEARCH
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_DEREGISTERED_PLMN_SEARCH
);
switch
(
evt
->
primitive
)
{
case
_EMMREG_NO_CELL
:
...
...
@@ -102,7 +102,7 @@ int EmmDeregisteredPlmnSearch(nas_user_t *user, const emm_reg_t *evt)
"Failed to notify registration update"
);
}
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_NO_CELL_AVAILABLE
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_NO_CELL_AVAILABLE
);
break
;
case
_EMMREG_REGISTER_REQ
:
...
...
@@ -130,14 +130,14 @@ int EmmDeregisteredPlmnSearch(nas_user_t *user, const emm_reg_t *evt)
* The selected cell is known not to be able to provide normal
* service
*/
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_LIMITED_SERVICE
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_LIMITED_SERVICE
);
break
;
case
_EMMREG_REGISTER_CNF
:
/*
* A suitable cell of the selected PLMN has been found to camp on
*/
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_NORMAL_SERVICE
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_NORMAL_SERVICE
);
break
;
default:
...
...
openair3/NAS/UE/EMM/SAP/EmmNull.c
View file @
7ff4939d
...
...
@@ -46,6 +46,7 @@ Description Implements the EPS Mobility Management procedures executed
#include "nas_log.h"
#include "emm_proc.h"
#include "user_defs.h"
#include <assert.h>
...
...
@@ -82,7 +83,7 @@ int EmmNull(nas_user_t *user, const emm_reg_t *evt)
int
rc
;
assert
(
emm_fsm_get_status
()
==
EMM_NULL
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_NULL
);
/* Delete the authentication data RAND and RES */
rc
=
emm_proc_authentication_delete
();
...
...
@@ -97,7 +98,7 @@ int EmmNull(nas_user_t *user, const emm_reg_t *evt)
* The EPS capability has been enabled in the UE:
* Move to the DEREGISTERED state;
*/
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED
);
/*
* And initialize the EMM procedure call manager in order to
...
...
openair3/NAS/UE/EMM/SAP/EmmRegistered.c
View file @
7ff4939d
...
...
@@ -87,7 +87,7 @@ int EmmRegistered(nas_user_t *user, const emm_reg_t *evt)
int
rc
=
RETURNerror
;
assert
(
emm_fsm_get_status
()
==
EMM_REGISTERED
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_REGISTERED
);
switch
(
evt
->
primitive
)
{
...
...
@@ -105,7 +105,7 @@ int EmmRegistered(nas_user_t *user, const emm_reg_t *evt)
* message successfully delivered to the network);
* enter state EMM-DEREGISTERED-INITIATED
*/
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_INITIATED
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_INITIATED
);
break
;
case
_EMMREG_DETACH_CNF
:
...
...
@@ -113,7 +113,7 @@ int EmmRegistered(nas_user_t *user, const emm_reg_t *evt)
* The UE implicitly detached from the network (all EPS
* bearer contexts may have been deactivated)
*/
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED
);
break
;
case
_EMMREG_TAU_REQ
:
...
...
openair3/NAS/UE/EMM/SAP/EmmRegisteredAttemptingToUpdate.c
View file @
7ff4939d
...
...
@@ -78,11 +78,11 @@ Description Implements the EPS Mobility Management procedures executed
** Others: emm_fsm_status **
** **
***************************************************************************/
int
EmmRegisteredAttemptingToUpdate
(
const
emm_reg_t
*
evt
)
int
EmmRegisteredAttemptingToUpdate
(
nas_user_t
*
user
,
const
emm_reg_t
*
evt
)
{
LOG_FUNC_IN
;
assert
(
emm_fsm_get_status
()
==
EMM_REGISTERED_ATTEMPTING_TO_UPDATE
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_REGISTERED_ATTEMPTING_TO_UPDATE
);
/* TODO */
...
...
openair3/NAS/UE/EMM/SAP/EmmRegisteredImsiDetachInitiated.c
View file @
7ff4939d
...
...
@@ -78,11 +78,11 @@ Description Implements the EPS Mobility Management procedures executed
** Others: emm_fsm_status **
** **
***************************************************************************/
int
EmmRegisteredImsiDetachInitiated
(
const
emm_reg_t
*
evt
)
int
EmmRegisteredImsiDetachInitiated
(
nas_user_t
*
user
,
const
emm_reg_t
*
evt
)
{
LOG_FUNC_IN
;
assert
(
emm_fsm_get_status
()
==
EMM_REGISTERED_IMSI_DETACH_INITIATED
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_REGISTERED_IMSI_DETACH_INITIATED
);
/* TODO */
...
...
openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c
View file @
7ff4939d
...
...
@@ -84,7 +84,7 @@ int EmmRegisteredInitiated(nas_user_t *user, const emm_reg_t *evt)
int
rc
=
RETURNerror
;
assert
(
emm_fsm_get_status
()
==
EMM_REGISTERED_INITIATED
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_REGISTERED_INITIATED
);
switch
(
evt
->
primitive
)
{
case
_EMMREG_ATTACH_INIT
:
...
...
@@ -96,9 +96,9 @@ int EmmRegisteredInitiated(nas_user_t *user, const emm_reg_t *evt)
/* Move to the corresponding initial EMM state */
if
(
evt
->
u
.
attach
.
is_emergency
)
{
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_LIMITED_SERVICE
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_LIMITED_SERVICE
);
}
else
{
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_NORMAL_SERVICE
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_NORMAL_SERVICE
);
}
if
(
rc
!=
RETURNerror
)
{
...
...
@@ -114,7 +114,7 @@ int EmmRegisteredInitiated(nas_user_t *user, const emm_reg_t *evt)
* timer T3410 expired). The network attach procedure shall be
* restarted when timer T3411 expires.
*/
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_ATTEMPTING_TO_ATTACH
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_ATTEMPTING_TO_ATTACH
);
break
;
case
_EMMREG_ATTACH_EXCEEDED
:
...
...
@@ -126,7 +126,7 @@ int EmmRegisteredInitiated(nas_user_t *user, const emm_reg_t *evt)
* SEARCH in order to perform a PLMN selection.
*/
/* TODO: ATTEMPTING-TO-ATTACH or PLMN-SEARCH ??? */
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_ATTEMPTING_TO_ATTACH
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_ATTEMPTING_TO_ATTACH
);
break
;
case
_EMMREG_ATTACH_CNF
:
...
...
@@ -134,7 +134,7 @@ int EmmRegisteredInitiated(nas_user_t *user, const emm_reg_t *evt)
* EPS network attach accepted by the network;
* enter state EMM-REGISTERED.
*/
rc
=
emm_fsm_set_status
(
EMM_REGISTERED
);
rc
=
emm_fsm_set_status
(
user
,
EMM_REGISTERED
);
if
(
rc
!=
RETURNerror
)
{
/*
...
...
@@ -161,7 +161,7 @@ int EmmRegisteredInitiated(nas_user_t *user, const emm_reg_t *evt)
* EPS network attach rejected by the network;
* enter state EMM-DEREGISTERED.
*/
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED
);
if
(
rc
!=
RETURNerror
)
{
/*
...
...
@@ -181,11 +181,11 @@ int EmmRegisteredInitiated(nas_user_t *user, const emm_reg_t *evt)
/*
* The UE has to select a new PLMN to register to
*/
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_PLMN_SEARCH
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_PLMN_SEARCH
);
if
(
rc
!=
RETURNerror
)
{
/* Process the network registration request */
rc
=
emm_fsm_process
(
evt
);
rc
=
emm_fsm_process
(
user
,
evt
);
}
break
;
...
...
@@ -194,7 +194,7 @@ int EmmRegisteredInitiated(nas_user_t *user, const emm_reg_t *evt)
/*
* The UE failed to register to the network for normal EPS service
*/
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_LIMITED_SERVICE
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_LIMITED_SERVICE
);
break
;
case
_EMMREG_NO_IMSI
:
...
...
@@ -202,7 +202,7 @@ int EmmRegisteredInitiated(nas_user_t *user, const emm_reg_t *evt)
* The UE failed to register to the network for emergency
* bearer services
*/
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_NO_IMSI
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_NO_IMSI
);
break
;
case
_EMMREG_DETACH_INIT
:
...
...
@@ -218,7 +218,7 @@ int EmmRegisteredInitiated(nas_user_t *user, const emm_reg_t *evt)
* message successfully delivered to the network);
* enter state EMM-DEREGISTERED-INITIATED
*/
rc
=
emm_fsm_set_status
(
EMM_DEREGISTERED_INITIATED
);
rc
=
emm_fsm_set_status
(
user
,
EMM_DEREGISTERED_INITIATED
);
break
;
case
_EMMREG_LOWERLAYER_SUCCESS
:
...
...
openair3/NAS/UE/EMM/SAP/EmmRegisteredLimitedService.c
View file @
7ff4939d
...
...
@@ -74,11 +74,11 @@ Description Implements the EPS Mobility Management procedures executed
** Others: emm_fsm_status **
** **
***************************************************************************/
int
EmmRegisteredLimitedService
(
const
emm_reg_t
*
evt
)
int
EmmRegisteredLimitedService
(
nas_user_t
*
user
,
const
emm_reg_t
*
evt
)
{
LOG_FUNC_IN
;
assert
(
emm_fsm_get_status
()
==
EMM_REGISTERED_LIMITED_SERVICE
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_REGISTERED_LIMITED_SERVICE
);
/* TODO */
...
...
openair3/NAS/UE/EMM/SAP/EmmRegisteredNoCellAvailable.c
View file @
7ff4939d
...
...
@@ -75,11 +75,11 @@ Description Implements the EPS Mobility Management procedures executed
** Others: emm_fsm_status **
** **
***************************************************************************/
int
EmmRegisteredNoCellAvailable
(
const
emm_reg_t
*
evt
)
int
EmmRegisteredNoCellAvailable
(
nas_user_t
*
user
,
const
emm_reg_t
*
evt
)
{
LOG_FUNC_IN
;
assert
(
emm_fsm_get_status
()
==
EMM_REGISTERED_NO_CELL_AVAILABLE
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_REGISTERED_NO_CELL_AVAILABLE
);
/* TODO */
...
...
openair3/NAS/UE/EMM/SAP/EmmRegisteredNormalService.c
View file @
7ff4939d
...
...
@@ -74,11 +74,11 @@ Description Implements the EPS Mobility Management procedures executed
** Others: emm_fsm_status **
** **
***************************************************************************/
int
EmmRegisteredNormalService
(
const
emm_reg_t
*
evt
)
int
EmmRegisteredNormalService
(
nas_user_t
*
user
,
const
emm_reg_t
*
evt
)
{
LOG_FUNC_IN
;
assert
(
emm_fsm_get_status
()
==
EMM_REGISTERED_NORMAL_SERVICE
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_REGISTERED_NORMAL_SERVICE
);
/* TODO */
...
...
openair3/NAS/UE/EMM/SAP/EmmRegisteredPlmnSearch.c
View file @
7ff4939d
...
...
@@ -74,46 +74,13 @@ Description Implements the EPS Mobility Management procedures executed
** Others: emm_fsm_status **
** **
***************************************************************************/
int
EmmRegisteredPlmnSearch
(
const
emm_reg_t
*
evt
)
int
EmmRegisteredPlmnSearch
(
nas_user_t
*
user
,
const
emm_reg_t
*
evt
)
{
LOG_FUNC_IN
;
assert
(
emm_fsm_get_status
()
==
EMM_REGISTERED_PLMN_SEARCH
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_REGISTERED_PLMN_SEARCH
);
/* TODO */
LOG_FUNC_RETURN
(
RETURNok
);
}
#if 0
/****************************************************************************
** **
** Name: EmmRegisteredPlmnSearch_xxx() **
** **
** Description: Procedure executed when xxx **
** while the EMM-SAP is in EMM-REGISTERED.PLMN-SEARCH state. **
** **
** Inputs: evt: The received EMM-SAP event **
** Others: emm_fsm_status **
** **
** Outputs: None **
** Return: RETURNok, RETURNerror **
** Others: emm_fsm_status **
** **
***************************************************************************/
int EmmRegisteredPlmnSearch_xxx(const emm_reg_t *evt)
{
LOG_FUNC_IN;
assert(emm_fsm_get_status() == EMM_REGISTERED_PLMN_SEARCH);
/* TODO */
LOG_FUNC_RETURN (RETURNok);
}
#endif
/****************************************************************************/
/********************* L O C A L F U N C T I O N S *********************/
/****************************************************************************/
openair3/NAS/UE/EMM/SAP/EmmRegisteredUpdateNeeded.c
View file @
7ff4939d
...
...
@@ -80,11 +80,11 @@ Description Implements the EPS Mobility Management procedures executed
** Others: emm_fsm_status **
** **
***************************************************************************/
int
EmmRegisteredUpdateNeeded
(
const
emm_reg_t
*
evt
)
int
EmmRegisteredUpdateNeeded
(
nas_user_t
*
user
,
const
emm_reg_t
*
evt
)
{
LOG_FUNC_IN
;
assert
(
emm_fsm_get_status
()
==
EMM_REGISTERED_UPDATE_NEEDED
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_REGISTERED_UPDATE_NEEDED
);
/* TODO */
...
...
openair3/NAS/UE/EMM/SAP/EmmServiceRequestInitiated.c
View file @
7ff4939d
...
...
@@ -76,11 +76,11 @@ Description Implements the EPS Mobility Management procedures executed
** Others: emm_fsm_status **
** **
***************************************************************************/
int
EmmServiceRequestInitiated
(
const
emm_reg_t
*
evt
)
int
EmmServiceRequestInitiated
(
nas_user_t
*
user
,
const
emm_reg_t
*
evt
)
{
LOG_FUNC_IN
;
assert
(
emm_fsm_get_status
()
==
EMM_SERVICE_REQUEST_INITIATED
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_SERVICE_REQUEST_INITIATED
);
/* TODO */
...
...
openair3/NAS/UE/EMM/SAP/EmmTrackingAreaUpdatingInitiated.c
View file @
7ff4939d
...
...
@@ -76,11 +76,11 @@ Description Implements the EPS Mobility Management procedures executed
** Others: emm_fsm_status **
** **
***************************************************************************/
int
EmmTrackingAreaUpdatingInitiated
(
const
emm_reg_t
*
evt
)
int
EmmTrackingAreaUpdatingInitiated
(
nas_user_t
*
user
,
const
emm_reg_t
*
evt
)
{
LOG_FUNC_IN
;
assert
(
emm_fsm_get_status
()
==
EMM_TRACKING_AREA_UPDATING_INITIATED
);
assert
(
emm_fsm_get_status
(
user
)
==
EMM_TRACKING_AREA_UPDATING_INITIATED
);
/* TODO */
...
...
openair3/NAS/UE/EMM/SAP/emm_fsm.c
View file @
7ff4939d
...
...
@@ -43,6 +43,7 @@ Description Defines the EPS Mobility Management procedures executed at
#include "nas_log.h"
#include "emmData.h"
#include "user_defs.h"
...
...
@@ -127,30 +128,30 @@ static const char *_emm_fsm_status_str[EMM_STATE_MAX] = {
*/
/* Type of the EPS Mobility Management state machine handler */
typedef
int
(
*
emm_fsm_handler_t
)(
const
emm_reg_t
*
);
int
EmmNull
(
const
emm_reg_t
*
);
int
EmmDeregistered
(
const
emm_reg_t
*
);
int
EmmRegistered
(
const
emm_reg_t
*
);
int
EmmDeregisteredInitiated
(
const
emm_reg_t
*
);
int
EmmDeregisteredNormalService
(
const
emm_reg_t
*
);
int
EmmDeregisteredLimitedService
(
const
emm_reg_t
*
);
int
EmmDeregisteredAttemptingToAttach
(
const
emm_reg_t
*
);
int
EmmDeregisteredPlmnSearch
(
const
emm_reg_t
*
);
int
EmmDeregisteredNoImsi
(
const
emm_reg_t
*
);
int
EmmDeregisteredAttachNeeded
(
const
emm_reg_t
*
);
int
EmmDeregisteredNoCellAvailable
(
const
emm_reg_t
*
);
int
EmmRegisteredInitiated
(
const
emm_reg_t
*
);
int
EmmRegisteredNormalService
(
const
emm_reg_t
*
);
int
EmmRegisteredAttemptingToUpdate
(
const
emm_reg_t
*
);
int
EmmRegisteredLimitedService
(
const
emm_reg_t
*
);
int
EmmRegisteredPlmnSearch
(
const
emm_reg_t
*
);
int
EmmRegisteredUpdateNeeded
(
const
emm_reg_t
*
);
int
EmmRegisteredNoCellAvailable
(
const
emm_reg_t
*
);
int
EmmRegisteredAttemptingToUpdate
(
const
emm_reg_t
*
);
int
EmmRegisteredImsiDetachInitiated
(
const
emm_reg_t
*
);
int
EmmTrackingAreaUpdatingInitiated
(
const
emm_reg_t
*
);
int
EmmServiceRequestInitiated
(
const
emm_reg_t
*
);
typedef
int
(
*
emm_fsm_handler_t
)(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmNull
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmDeregistered
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmRegistered
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmDeregisteredInitiated
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmDeregisteredNormalService
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmDeregisteredLimitedService
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmDeregisteredAttemptingToAttach
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmDeregisteredPlmnSearch
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmDeregisteredNoImsi
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmDeregisteredAttachNeeded
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmDeregisteredNoCellAvailable
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmRegisteredInitiated
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmRegisteredNormalService
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmRegisteredAttemptingToUpdate
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmRegisteredLimitedService
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmRegisteredPlmnSearch
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmRegisteredUpdateNeeded
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmRegisteredNoCellAvailable
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmRegisteredAttemptingToUpdate
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmRegisteredImsiDetachInitiated
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmTrackingAreaUpdatingInitiated
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
int
EmmServiceRequestInitiated
(
nas_user_t
*
user
,
const
emm_reg_t
*
);
/* EMM state machine handlers */
...
...
@@ -180,14 +181,6 @@ static const emm_fsm_handler_t _emm_fsm_handlers[EMM_STATE_MAX] = {
EmmServiceRequestInitiated
,
};
/*
* -----------------------------------------------------------------------------
* Current EPS Mobility Management status
* -----------------------------------------------------------------------------
*/
emm_fsm_state_t
_emm_fsm_status
[
EMM_FSM_NB_UE_MAX
];
/****************************************************************************/
/****************** E X P O R T E D F U N C T I O N S ******************/
/****************************************************************************/
...
...
@@ -206,14 +199,12 @@ emm_fsm_state_t _emm_fsm_status[EMM_FSM_NB_UE_MAX];
** Others: _emm_fsm_status **
** **
***************************************************************************/
void
emm_fsm_initialize
(
void
)
emm_fsm_state_t
emm_fsm_initialize
(
)
{
//int ueid;
LOG_FUNC_IN
;
_emm_fsm_status
[
0
]
=
EMM_NULL
;
LOG_FUNC_OUT
;
return
EMM_NULL
;
}
/****************************************************************************
...
...
@@ -231,22 +222,18 @@ void emm_fsm_initialize(void)
** Others: _emm_fsm_status **
** **
***************************************************************************/
int
emm_fsm_set_status
(
int
emm_fsm_set_status
(
nas_user_t
*
user
,
emm_fsm_state_t
status
)
{
LOG_FUNC_IN
;
unsigned
int
ueid
=
0
;
if
(
(
status
<
EMM_STATE_MAX
)
&&
(
ueid
<
EMM_FSM_NB_UE_MAX
)
)
{
if
(
status
<
EMM_STATE_MAX
)
{
LOG_TRACE
(
INFO
,
"EMM-FSM - Status changed: %s ===> %s"
,
_emm_fsm_status_str
[
_emm_fsm_status
[
ueid
]
],
_emm_fsm_status_str
[
user
->
emm_fsm_status
],
_emm_fsm_status_str
[
status
]);
if
(
status
!=
_emm_fsm_status
[
ueid
]
)
{
_emm_fsm_status
[
ueid
]
=
status
;
if
(
status
!=
user
->
emm_fsm_status
)
{
user
->
emm_fsm_status
=
status
;
}
LOG_FUNC_RETURN
(
RETURNok
);
...
...
@@ -270,9 +257,9 @@ int emm_fsm_set_status(
** Others: None **
** **
***************************************************************************/
emm_fsm_state_t
emm_fsm_get_status
(
void
)
emm_fsm_state_t
emm_fsm_get_status
(
nas_user_t
*
user
)
{
return
(
_emm_fsm_status
[
0
])
;
return
user
->
emm_fsm_status
;
}
/****************************************************************************
...
...
@@ -289,7 +276,7 @@ emm_fsm_state_t emm_fsm_get_status(void)
** Others: None **
** **
***************************************************************************/
int
emm_fsm_process
(
const
emm_reg_t
*
evt
)
int
emm_fsm_process
(
nas_user_t
*
user
,
const
emm_reg_t
*
evt
)
{
int
rc
;
emm_fsm_state_t
status
;
...
...
@@ -299,7 +286,7 @@ int emm_fsm_process(const emm_reg_t *evt)
primitive
=
evt
->
primitive
;
status
=
_emm_fsm_status
[
0
]
;
status
=
user
->
emm_fsm_status
;
LOG_TRACE
(
INFO
,
"EMM-FSM - Received event %s (%d) in state %s"
,
_emm_fsm_event_str
[
primitive
-
_EMMREG_START
-
1
],
primitive
,
...
...
@@ -307,7 +294,7 @@ int emm_fsm_process(const emm_reg_t *evt)
/* Execute the EMM state machine */
rc
=
(
_emm_fsm_handlers
[
status
])(
evt
);
rc
=
(
_emm_fsm_handlers
[
status
])(
user
,
evt
);
LOG_FUNC_RETURN
(
rc
);
}
...
...
openair3/NAS/UE/EMM/SAP/emm_fsm.h
View file @
7ff4939d
...
...
@@ -41,48 +41,13 @@ Description Defines the EPS Mobility Management procedures executed at
#define __EMM_FSM_H__
#include "emm_regDef.h"
#include "emm_fsm_defs.h"
#include "user_defs.h"
/****************************************************************************/
/********************* G L O B A L C O N S T A N T S *******************/
/****************************************************************************/
/****************************************************************************/
/************************ G L O B A L T Y P E S ************************/
/****************************************************************************/
/*
* States of the EPS Mobility Management sublayer
* ----------------------------------------------
* The EMM protocol of the UE and the network is described by means of two
* different state machines.
*/
typedef
enum
{
EMM_INVALID
,
EMM_NULL
,
EMM_DEREGISTERED
,
EMM_REGISTERED
,
EMM_DEREGISTERED_INITIATED
,
EMM_DEREGISTERED_NORMAL_SERVICE
,
EMM_DEREGISTERED_LIMITED_SERVICE
,
EMM_DEREGISTERED_ATTEMPTING_TO_ATTACH
,
EMM_DEREGISTERED_PLMN_SEARCH
,
EMM_DEREGISTERED_NO_IMSI
,
EMM_DEREGISTERED_ATTACH_NEEDED
,
EMM_DEREGISTERED_NO_CELL_AVAILABLE
,
EMM_REGISTERED_INITIATED
,
EMM_REGISTERED_NORMAL_SERVICE
,
EMM_REGISTERED_ATTEMPTING_TO_UPDATE
,
EMM_REGISTERED_LIMITED_SERVICE
,
EMM_REGISTERED_PLMN_SEARCH
,
EMM_REGISTERED_UPDATE_NEEDED
,
EMM_REGISTERED_NO_CELL_AVAILABLE
,
EMM_REGISTERED_ATTEMPTING_TO_UPDATE_MM
,
EMM_REGISTERED_IMSI_DETACH_INITIATED
,
EMM_TRACKING_AREA_UPDATING_INITIATED
,
EMM_SERVICE_REQUEST_INITIATED
,
EMM_STATE_MAX
}
emm_fsm_state_t
;
/****************************************************************************/
/******************** G L O B A L V A R I A B L E S ********************/
/****************************************************************************/
...
...
@@ -91,12 +56,12 @@ typedef enum {
/****************** E X P O R T E D F U N C T I O N S ******************/
/****************************************************************************/
void
emm_fsm_initialize
(
void
);
emm_fsm_state_t
emm_fsm_initialize
(
void
);
int
emm_fsm_set_status
(
emm_fsm_state_t
status
);
emm_fsm_state_t
emm_fsm_get_status
(
void
);
int
emm_fsm_set_status
(
nas_user_t
*
user
,
emm_fsm_state_t
status
);
emm_fsm_state_t
emm_fsm_get_status
(
nas_user_t
*
user
);
int
emm_fsm_process
(
const
emm_reg_t
*
evt
);
int
emm_fsm_process
(
nas_user_t
*
user
,
const
emm_reg_t
*
evt
);
#endif
/* __EMM_FSM_H__*/
openair3/NAS/UE/EMM/SAP/emm_reg.c
View file @
7ff4939d
...
...
@@ -73,12 +73,12 @@ Description Defines the EMMREG Service Access Point that provides
** Others: NONE **
** **
***************************************************************************/
void
emm_reg_initialize
(
void
)
void
emm_reg_initialize
(
nas_user_t
*
user
)
{
LOG_FUNC_IN
;
/* Initialize the EMM state machine */
emm_fsm_initialize
();
user
->
emm_fsm_status
=
emm_fsm_initialize
();
LOG_FUNC_OUT
;
}
...
...
@@ -97,7 +97,7 @@ void emm_reg_initialize(void)
** Others: None **
** **
***************************************************************************/
int
emm_reg_send
(
const
emm_reg_t
*
msg
)
int
emm_reg_send
(
nas_user_t
*
user
,
const
emm_reg_t
*
msg
)
{
LOG_FUNC_IN
;
...
...
@@ -111,7 +111,7 @@ int emm_reg_send(const emm_reg_t *msg)
(
void
)
primitive
;
/* Execute the EMM procedure */
rc
=
emm_fsm_process
(
msg
);
rc
=
emm_fsm_process
(
user
,
msg
);
LOG_FUNC_RETURN
(
rc
);
}
...
...
openair3/NAS/UE/EMM/SAP/emm_reg.h
View file @
7ff4939d
...
...
@@ -42,6 +42,7 @@ Description Defines the EMMREG Service Access Point that provides
#define __EMM_REG_H__
#include "emm_regDef.h"
#include "user_defs.h"
/****************************************************************************/
/********************* G L O B A L C O N S T A N T S *******************/
...
...
@@ -59,8 +60,8 @@ Description Defines the EMMREG Service Access Point that provides
/****************** E X P O R T E D F U N C T I O N S ******************/
/****************************************************************************/
void
emm_reg_initialize
(
void
);
void
emm_reg_initialize
(
nas_user_t
*
user
);
int
emm_reg_send
(
const
emm_reg_t
*
msg
);
int
emm_reg_send
(
nas_user_t
*
user
,
const
emm_reg_t
*
msg
);
#endif
/* __EMM_REG_H__*/
openair3/NAS/UE/EMM/SAP/emm_sap.c
View file @
7ff4939d
...
...
@@ -78,7 +78,7 @@ void emm_sap_initialize(nas_user_t *user)
{
LOG_FUNC_IN
;
emm_reg_initialize
();
emm_reg_initialize
(
user
);
emm_esm_initialize
();
emm_as_initialize
(
user
);
...
...
@@ -112,7 +112,7 @@ int emm_sap_send(nas_user_t *user, emm_sap_t *msg)
(
primitive
<
(
emm_primitive_t
)
EMMREG_PRIMITIVE_MAX
)
)
{
/* Forward to the EMMREG-SAP */
msg
->
u
.
emm_reg
.
primitive
=
primitive
;
rc
=
emm_reg_send
(
&
msg
->
u
.
emm_reg
);
rc
=
emm_reg_send
(
user
,
&
msg
->
u
.
emm_reg
);
}
else
if
(
(
primitive
>
(
emm_primitive_t
)
EMMESM_PRIMITIVE_MIN
)
&&
(
primitive
<
(
emm_primitive_t
)
EMMESM_PRIMITIVE_MAX
)
)
{
/* Forward to the EMMESM-SAP */
...
...
openair3/NAS/UE/EMM/emm_fsm_defs.h
0 → 100644
View file @
7ff4939d
#ifndef _EMM_FSM_DEFS_H
#define _EMM_FSM_DEFS_H
/****************************************************************************/
/************************ G L O B A L T Y P E S ************************/
/****************************************************************************/
/*
* States of the EPS Mobility Management sublayer
* ----------------------------------------------
* The EMM protocol of the UE and the network is described by means of two
* different state machines.
*/
typedef
enum
{
EMM_INVALID
,
EMM_NULL
,
EMM_DEREGISTERED
,
EMM_REGISTERED
,
EMM_DEREGISTERED_INITIATED
,
EMM_DEREGISTERED_NORMAL_SERVICE
,
EMM_DEREGISTERED_LIMITED_SERVICE
,
EMM_DEREGISTERED_ATTEMPTING_TO_ATTACH
,
EMM_DEREGISTERED_PLMN_SEARCH
,
EMM_DEREGISTERED_NO_IMSI
,
EMM_DEREGISTERED_ATTACH_NEEDED
,
EMM_DEREGISTERED_NO_CELL_AVAILABLE
,
EMM_REGISTERED_INITIATED
,
EMM_REGISTERED_NORMAL_SERVICE
,
EMM_REGISTERED_ATTEMPTING_TO_UPDATE
,
EMM_REGISTERED_LIMITED_SERVICE
,
EMM_REGISTERED_PLMN_SEARCH
,
EMM_REGISTERED_UPDATE_NEEDED
,
EMM_REGISTERED_NO_CELL_AVAILABLE
,
EMM_REGISTERED_ATTEMPTING_TO_UPDATE_MM
,
EMM_REGISTERED_IMSI_DETACH_INITIATED
,
EMM_TRACKING_AREA_UPDATING_INITIATED
,
EMM_SERVICE_REQUEST_INITIATED
,
EMM_STATE_MAX
}
emm_fsm_state_t
;
#endif
openair3/NAS/UE/user_defs.h
View file @
7ff4939d
...
...
@@ -48,12 +48,14 @@ Description NAS type definition to manage a user equipment
#include "nas_proc_defs.h"
#include "esmData.h"
#include "esm_pt_defs.h"
#include "EMM/emm_fsm_defs.h"
typedef
struct
{
int
fd
;
proc_data_t
proc
;
esm_data_t
*
esm_data
;
// ESM internal data (used within ESM only)
esm_pt_data_t
*
esm_pt_data
;
emm_fsm_state_t
emm_fsm_status
;
// Current EPS Mobility Management status
}
nas_user_t
;
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment