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
canghaiwuhen
OpenXG-RAN
Commits
60032f57
Commit
60032f57
authored
Jul 13, 2016
by
Frédéric Leroy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
UE/EMM: move _emm_attach_data to emm_data_t
parent
289f1ea9
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
41 additions
and
25 deletions
+41
-25
openair3/NAS/UE/EMM/Attach.c
openair3/NAS/UE/EMM/Attach.c
+15
-25
openair3/NAS/UE/EMM/emmData.h
openair3/NAS/UE/EMM/emmData.h
+12
-0
openair3/NAS/UE/EMM/emm_main.c
openair3/NAS/UE/EMM/emm_main.c
+14
-0
No files found.
openair3/NAS/UE/EMM/Attach.c
View file @
60032f57
...
@@ -99,16 +99,6 @@ static void *_emm_attach_t3402_handler(void *);
...
@@ -99,16 +99,6 @@ static void *_emm_attach_t3402_handler(void *);
*/
*/
static
void
_emm_attach_abnormal_cases_bcd
(
nas_user_t
*
user
,
emm_sap_t
*
);
static
void
_emm_attach_abnormal_cases_bcd
(
nas_user_t
*
user
,
emm_sap_t
*
);
/*
* Internal data used for attach procedure
*/
static
struct
{
#define EMM_ATTACH_COUNTER_MAX 5
unsigned
int
attempt_count
;
/* Counter used to limit the number of
* subsequently rejected attach attempts */
}
_emm_attach_data
=
{
0
};
/****************************************************************************/
/****************************************************************************/
/****************** E X P O R T E D F U N C T I O N S ******************/
/****************** E X P O R T E D F U N C T I O N S ******************/
/****************************************************************************/
/****************************************************************************/
...
@@ -499,7 +489,6 @@ int emm_proc_attach_accept(nas_user_t *user, long t3412, long t3402, long t3423,
...
@@ -499,7 +489,6 @@ int emm_proc_attach_accept(nas_user_t *user, long t3412, long t3402, long t3423,
** **
** **
** Outputs: None **
** Outputs: None **
** Return: RETURNok, RETURNerror **
** Return: RETURNok, RETURNerror **
** Others: user->emm_data-> _emm_attach_data, T3410 **
** **
** **
***************************************************************************/
***************************************************************************/
int
emm_proc_attach_reject
(
nas_user_t
*
user
,
int
emm_cause
,
const
OctetString
*
esm_msg_pP
)
int
emm_proc_attach_reject
(
nas_user_t
*
user
,
int
emm_cause
,
const
OctetString
*
esm_msg_pP
)
...
@@ -509,6 +498,7 @@ int emm_proc_attach_reject(nas_user_t *user, int emm_cause, const OctetString *e
...
@@ -509,6 +498,7 @@ int emm_proc_attach_reject(nas_user_t *user, int emm_cause, const OctetString *e
emm_sap_t
emm_sap
;
emm_sap_t
emm_sap
;
int
rc
;
int
rc
;
emm_timers_t
*
emm_timers
=
user
->
emm_data
->
emm_timers
;
emm_timers_t
*
emm_timers
=
user
->
emm_data
->
emm_timers
;
emm_attach_data_t
*
emm_attach_data
=
user
->
emm_data
->
emm_attach_data
;
LOG_TRACE
(
WARNING
,
"EMM-PROC - EPS attach rejected by the network, "
LOG_TRACE
(
WARNING
,
"EMM-PROC - EPS attach rejected by the network, "
"EMM cause = %d"
,
emm_cause
);
"EMM cause = %d"
,
emm_cause
);
...
@@ -566,14 +556,14 @@ int emm_proc_attach_reject(nas_user_t *user, int emm_cause, const OctetString *e
...
@@ -566,14 +556,14 @@ int emm_proc_attach_reject(nas_user_t *user, int emm_cause, const OctetString *e
/* Delete the list of equivalent PLMNs */
/* Delete the list of equivalent PLMNs */
user
->
emm_data
->
nvdata
.
eplmn
.
n_plmns
=
0
;
user
->
emm_data
->
nvdata
.
eplmn
.
n_plmns
=
0
;
/* Reset the attach attempt counter */
/* Reset the attach attempt counter */
_emm_attach_data
.
attempt_count
=
0
;
emm_attach_data
->
attempt_count
=
0
;
break
;
break
;
case
EMM_CAUSE_TA_NOT_ALLOWED
:
case
EMM_CAUSE_TA_NOT_ALLOWED
:
case
EMM_CAUSE_EPS_NOT_ALLOWED_IN_PLMN
:
case
EMM_CAUSE_EPS_NOT_ALLOWED_IN_PLMN
:
case
EMM_CAUSE_NO_SUITABLE_CELLS
:
case
EMM_CAUSE_NO_SUITABLE_CELLS
:
/* Reset the attach attempt counter */
/* Reset the attach attempt counter */
_emm_attach_data
.
attempt_count
=
0
;
emm_attach_data
->
attempt_count
=
0
;
break
;
break
;
case
EMM_CAUSE_ESM_FAILURE
:
case
EMM_CAUSE_ESM_FAILURE
:
...
@@ -582,7 +572,7 @@ int emm_proc_attach_reject(nas_user_t *user, int emm_cause, const OctetString *e
...
@@ -582,7 +572,7 @@ int emm_proc_attach_reject(nas_user_t *user, int emm_cause, const OctetString *e
if
(
user
->
emm_data
->
NAS_SignallingPriority
!=
1
)
{
if
(
user
->
emm_data
->
NAS_SignallingPriority
!=
1
)
{
/* The UE is not configured for NAS signalling low priority;
/* The UE is not configured for NAS signalling low priority;
* set the attach attempt counter to 5 */
* set the attach attempt counter to 5 */
_emm_attach_data
.
attempt_count
=
EMM_ATTACH_COUNTER_MAX
;
emm_attach_data
->
attempt_count
=
EMM_ATTACH_COUNTER_MAX
;
}
}
break
;
break
;
...
@@ -594,7 +584,7 @@ int emm_proc_attach_reject(nas_user_t *user, int emm_cause, const OctetString *e
...
@@ -594,7 +584,7 @@ int emm_proc_attach_reject(nas_user_t *user, int emm_cause, const OctetString *e
case
EMM_CAUSE_PROTOCOL_ERROR
:
case
EMM_CAUSE_PROTOCOL_ERROR
:
/* 3GPP TS 24.301, section 5.5.1.2.6, case d
/* 3GPP TS 24.301, section 5.5.1.2.6, case d
* Set the attach attempt counter to 5 */
* Set the attach attempt counter to 5 */
_emm_attach_data
.
attempt_count
=
EMM_ATTACH_COUNTER_MAX
;
emm_attach_data
->
attempt_count
=
EMM_ATTACH_COUNTER_MAX
;
break
;
break
;
default
:
default
:
...
@@ -717,14 +707,14 @@ int emm_proc_attach_reject(nas_user_t *user, int emm_cause, const OctetString *e
...
@@ -717,14 +707,14 @@ int emm_proc_attach_reject(nas_user_t *user, int emm_cause, const OctetString *e
** **
** **
** Outputs: None **
** Outputs: None **
** Return: RETURNok, RETURNerror **
** Return: RETURNok, RETURNerror **
** Others: user->emm_data-> _emm_attach_data **
** **
** **
***************************************************************************/
***************************************************************************/
int
emm_proc_attach_complete
(
void
*
args
)
int
emm_proc_attach_complete
(
void
*
args
)
{
{
LOG_FUNC_IN
;
LOG_FUNC_IN
;
nas_user_t
*
user
=
args
;
nas_user_t
*
user
=
args
;
emm_attach_data_t
*
emm_attach_data
=
user
->
emm_data
->
emm_attach_data
;
emm_sap_t
emm_sap
;
emm_sap_t
emm_sap
;
esm_sap_t
esm_sap
;
esm_sap_t
esm_sap
;
int
rc
;
int
rc
;
...
@@ -735,7 +725,7 @@ int emm_proc_attach_complete(void *args)
...
@@ -735,7 +725,7 @@ int emm_proc_attach_complete(void *args)
(
void
)
emm_proc_lowerlayer_initialize
(
NULL
,
NULL
,
NULL
,
NULL
);
(
void
)
emm_proc_lowerlayer_initialize
(
NULL
,
NULL
,
NULL
,
NULL
);
/* Reset the attach attempt counter */
/* Reset the attach attempt counter */
_emm_attach_data
.
attempt_count
=
0
;
emm_attach_data
->
attempt_count
=
0
;
/* TODO: Reset the tracking area updating attempt counter */
/* TODO: Reset the tracking area updating attempt counter */
/* Set the EPS update status to EU1 UPDATED */
/* Set the EPS update status to EU1 UPDATED */
...
@@ -1088,15 +1078,15 @@ static void *_emm_attach_t3411_handler(void *args)
...
@@ -1088,15 +1078,15 @@ static void *_emm_attach_t3411_handler(void *args)
** **
** **
** Outputs: None **
** Outputs: None **
** Return: None **
** Return: None **
** Others: _emm_attach_data, T3402 **
** **
** **
***************************************************************************/
***************************************************************************/
static
void
*
_emm_attach_t3402_handler
(
void
*
args
)
static
void
*
_emm_attach_t3402_handler
(
void
*
args
)
{
{
LOG_FUNC_IN
;
LOG_FUNC_IN
;
nas_user_t
*
user
=
args
;
nas_user_t
*
user
=
args
;
emm_timers_t
*
emm_timers
=
user
->
emm_data
->
emm_timers
;
emm_timers_t
*
emm_timers
=
user
->
emm_data
->
emm_timers
;
emm_attach_data_t
*
emm_attach_data
=
user
->
emm_data
->
emm_attach_data
;
emm_sap_t
emm_sap
;
emm_sap_t
emm_sap
;
LOG_TRACE
(
WARNING
,
"EMM-PROC - T3402 timer expired"
);
LOG_TRACE
(
WARNING
,
"EMM-PROC - T3402 timer expired"
);
...
@@ -1104,7 +1094,7 @@ static void *_emm_attach_t3402_handler(void *args)
...
@@ -1104,7 +1094,7 @@ static void *_emm_attach_t3402_handler(void *args)
/* Stop T3402 timer */
/* Stop T3402 timer */
emm_timers
->
T3402
.
id
=
nas_timer_stop
(
emm_timers
->
T3402
.
id
);
emm_timers
->
T3402
.
id
=
nas_timer_stop
(
emm_timers
->
T3402
.
id
);
/* Reset the attach attempt counter */
/* Reset the attach attempt counter */
_emm_attach_data
.
attempt_count
=
0
;
emm_attach_data
->
attempt_count
=
0
;
/*
/*
* Notify EMM that timer T3402 expired and attach procedure has to be
* Notify EMM that timer T3402 expired and attach procedure has to be
* restarted
* restarted
...
@@ -1140,7 +1130,6 @@ static void *_emm_attach_t3402_handler(void *args)
...
@@ -1140,7 +1130,6 @@ static void *_emm_attach_t3402_handler(void *args)
** **
** **
** Outputs: emm_sap: EMM service access point **
** Outputs: emm_sap: EMM service access point **
** Return: None **
** Return: None **
** Others: user->emm_data-> _emm_attach_data, T3402, T3410, **
** T3411 **
** T3411 **
** **
** **
***************************************************************************/
***************************************************************************/
...
@@ -1148,8 +1137,9 @@ static void _emm_attach_abnormal_cases_bcd(nas_user_t *user, emm_sap_t *emm_sap)
...
@@ -1148,8 +1137,9 @@ static void _emm_attach_abnormal_cases_bcd(nas_user_t *user, emm_sap_t *emm_sap)
{
{
LOG_FUNC_IN
;
LOG_FUNC_IN
;
emm_timers_t
*
emm_timers
=
user
->
emm_data
->
emm_timers
;
emm_timers_t
*
emm_timers
=
user
->
emm_data
->
emm_timers
;
emm_attach_data_t
*
emm_attach_data
=
user
->
emm_data
->
emm_attach_data
;
LOG_TRACE
(
WARNING
,
"EMM-PROC - Abnormal case, attach counter = %d"
,
LOG_TRACE
(
WARNING
,
"EMM-PROC - Abnormal case, attach counter = %d"
,
_emm_attach_data
.
attempt_count
);
emm_attach_data
->
attempt_count
);
/* Stop timer T3410 */
/* Stop timer T3410 */
if
(
emm_timers
->
T3410
.
id
!=
NAS_TIMER_INACTIVE_ID
)
{
if
(
emm_timers
->
T3410
.
id
!=
NAS_TIMER_INACTIVE_ID
)
{
...
@@ -1157,9 +1147,9 @@ static void _emm_attach_abnormal_cases_bcd(nas_user_t *user, emm_sap_t *emm_sap)
...
@@ -1157,9 +1147,9 @@ static void _emm_attach_abnormal_cases_bcd(nas_user_t *user, emm_sap_t *emm_sap)
emm_timers
->
T3410
.
id
=
nas_timer_stop
(
emm_timers
->
T3410
.
id
);
emm_timers
->
T3410
.
id
=
nas_timer_stop
(
emm_timers
->
T3410
.
id
);
}
}
if
(
_emm_attach_data
.
attempt_count
<
EMM_ATTACH_COUNTER_MAX
)
{
if
(
emm_attach_data
->
attempt_count
<
EMM_ATTACH_COUNTER_MAX
)
{
/* Increment the attach attempt counter */
/* Increment the attach attempt counter */
_emm_attach_data
.
attempt_count
+=
1
;
emm_attach_data
->
attempt_count
+=
1
;
/* Start T3411 timer */
/* Start T3411 timer */
emm_timers
->
T3411
.
id
=
nas_timer_start
(
emm_timers
->
T3411
.
sec
,
_emm_attach_t3411_handler
,
NULL
);
emm_timers
->
T3411
.
id
=
nas_timer_start
(
emm_timers
->
T3411
.
sec
,
_emm_attach_t3411_handler
,
NULL
);
LOG_TRACE
(
INFO
,
"EMM-PROC - Timer T3411 (%d) expires in %ld seconds"
,
LOG_TRACE
(
INFO
,
"EMM-PROC - Timer T3411 (%d) expires in %ld seconds"
,
...
...
openair3/NAS/UE/EMM/emmData.h
View file @
60032f57
...
@@ -94,6 +94,17 @@ Description Defines internal private data handled by EPS Mobility
...
@@ -94,6 +94,17 @@ Description Defines internal private data handled by EPS Mobility
/************************ G L O B A L T Y P E S ************************/
/************************ G L O B A L T Y P E S ************************/
/****************************************************************************/
/****************************************************************************/
/*
* Internal data used for attach procedure
*/
#define EMM_ATTACH_COUNTER_MAX 5
typedef
struct
{
unsigned
int
attempt_count
;
/* Counter used to limit the number of
* subsequently rejected attach attempts */
}
emm_attach_data_t
;
/*
/*
* Internal data used for detach procedure
* Internal data used for detach procedure
*/
*/
...
@@ -357,6 +368,7 @@ typedef struct emm_data_s {
...
@@ -357,6 +368,7 @@ typedef struct emm_data_s {
*/
*/
emm_timers_t
*
emm_timers
;
emm_timers_t
*
emm_timers
;
emm_detach_data_t
*
emm_detach_data
;
emm_detach_data_t
*
emm_detach_data
;
emm_attach_data_t
*
emm_attach_data
;
}
emm_data_t
;
}
emm_data_t
;
...
...
openair3/NAS/UE/EMM/emm_main.c
View file @
60032f57
...
@@ -106,6 +106,10 @@ void _emm_timers_initialize(emm_timers_t *emm_timers) {
...
@@ -106,6 +106,10 @@ void _emm_timers_initialize(emm_timers_t *emm_timers) {
emm_timers
->
T3430
.
sec
=
T3430_DEFAULT_VALUE
;
emm_timers
->
T3430
.
sec
=
T3430_DEFAULT_VALUE
;
}
}
void
_emm_attach_initialize
(
emm_attach_data_t
*
emm_attach_data
)
{
emm_attach_data
->
attempt_count
=
0
;
}
void
_emm_detach_initialize
(
emm_detach_data_t
*
emm_detach
)
{
void
_emm_detach_initialize
(
emm_detach_data_t
*
emm_detach
)
{
emm_detach
->
count
=
0
;
emm_detach
->
count
=
0
;
emm_detach
->
switch_off
=
FALSE
;
emm_detach
->
switch_off
=
FALSE
;
...
@@ -410,6 +414,16 @@ void emm_main_initialize(nas_user_t *user, emm_indication_callback_t cb, const c
...
@@ -410,6 +414,16 @@ void emm_main_initialize(nas_user_t *user, emm_indication_callback_t cb, const c
}
}
_emm_detach_initialize
(
user
->
emm_data
->
emm_detach_data
);
_emm_detach_initialize
(
user
->
emm_data
->
emm_detach_data
);
/*
* Initialize Internal data used for attach procedure
*/
user
->
emm_data
->
emm_attach_data
=
calloc
(
1
,
sizeof
(
emm_attach_data_t
));
if
(
user
->
emm_data
->
emm_attach_data
==
NULL
)
{
LOG_TRACE
(
ERROR
,
"EMM-MAIN - Failed to alloc emm_timers"
);
// FIXME stop here
}
_emm_attach_initialize
(
user
->
emm_data
->
emm_attach_data
);
/*
/*
* Initialize the user notification callback
* Initialize the user notification callback
*/
*/
...
...
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