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
lizhongxiao
OpenXG-RAN
Commits
404c3461
Commit
404c3461
authored
Jul 13, 2016
by
Frédéric Leroy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
UE: rename _nas_user_data to at_response and move it to nas_user_t
parent
607f0ca3
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
240 additions
and
238 deletions
+240
-238
openair3/NAS/UE/nas_ue_task.c
openair3/NAS/UE/nas_ue_task.c
+6
-0
openair3/NAS/UE/nas_user.c
openair3/NAS/UE/nas_user.c
+231
-237
openair3/NAS/UE/nas_user.h
openair3/NAS/UE/nas_user.h
+1
-1
openair3/NAS/UE/user_defs.h
openair3/NAS/UE/user_defs.h
+2
-0
No files found.
openair3/NAS/UE/nas_ue_task.c
View file @
404c3461
...
...
@@ -88,6 +88,12 @@ void *nas_ue_task(void *args_p)
itti_subscribe_event_fd
(
TASK_NAS_UE
,
user
->
fd
);
}
user
->
at_response
=
calloc
(
1
,
sizeof
(
at_response_t
));
if
(
user
->
at_response
==
NULL
)
{
LOG_E
(
NAS
,
"[UE %d] Can't allocate memory for user_at_commands
\n
"
,
0
);
// FIXME stop here
}
/* Initialize NAS user */
nas_user_initialize
(
user
,
&
user_api_emm_callback
,
&
user_api_esm_callback
,
FIRMWARE_VERSION
);
}
...
...
openair3/NAS/UE/nas_user.c
View file @
404c3461
...
...
@@ -115,12 +115,6 @@ static _nas_user_procedure_t _nas_user_procedure[AT_COMMAND_ID_MAX] = {
_nas_user_proc_cgpaddr
,
/* CGPADDR */
};
/*
* Internal representation of data structure returned to the user
* as the result of NAS procedure function call
*/
static
at_response_t
_nas_user_data
=
{};
/*
* ---------------------------------------------------------------------
* Local UE context
...
...
@@ -275,7 +269,7 @@ int nas_user_receive_and_process(nas_user_t *user, char *message)
/* Send response to UserProcess (If not in simulated reception) */
if
(
message
==
NULL
)
{
/* Encode the user data message */
bytes
=
user_api_encode_data
(
nas_user_get_data
(),
i
==
nb_command
-
1
);
bytes
=
user_api_encode_data
(
nas_user_get_data
(
user
),
i
==
nb_command
-
1
);
if
(
bytes
==
RETURNerror
)
{
/* Failed to encode the user data message;
...
...
@@ -313,12 +307,12 @@ int nas_user_receive_and_process(nas_user_t *user, char *message)
** Outputs: None **
** Return: RETURNok if the command has been success- **
** fully executed; RETURNerror otherwise **
** Others: _nas_user_data **
** **
***************************************************************************/
int
nas_user_process_data
(
nas_user_t
*
user
,
const
void
*
data
)
{
LOG_FUNC_IN
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNerror
;
...
...
@@ -340,15 +334,15 @@ int nas_user_process_data(nas_user_t *user, const void *data)
ret_code
=
(
*
nas_procedure
)(
user
,
user_data
);
}
else
{
/* AT command related to result format only */
_nas_user_data
.
id
=
user_data
->
id
;
_nas_user_data
.
type
=
user_data
->
type
;
_nas_user_data
.
mask
=
user_data
->
mask
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
user_data
->
id
;
at_response
->
type
=
user_data
->
type
;
at_response
->
mask
=
user_data
->
mask
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
ret_code
=
RETURNok
;
}
}
else
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Data to be processed is null"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
LOG_FUNC_RETURN
(
ret_code
);
...
...
@@ -371,10 +365,10 @@ int nas_user_process_data(nas_user_t *user, const void *data)
** Others: None **
** **
***************************************************************************/
const
void
*
nas_user_get_data
(
void
)
const
void
*
nas_user_get_data
(
nas_user_t
*
user
)
{
LOG_FUNC_IN
;
LOG_FUNC_RETURN
((
void
*
)
&
_nas_user_data
);
LOG_FUNC_RETURN
((
void
*
)
user
->
at_response
);
}
/****************************************************************************/
...
...
@@ -396,21 +390,21 @@ const void *nas_user_get_data(void)
** **
** Outputs: None **
** Return: RETURNok; RETURNerror; **
** Others: _nas_user_data **
** **
***************************************************************************/
static
int
_nas_user_proc_cgsn
(
nas_user_t
*
user
,
const
at_command_t
*
data
)
{
LOG_FUNC_IN
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNok
;
at_cgsn_resp_t
*
cgsn
=
&
_nas_user_data
.
response
.
cgsn
;
at_cgsn_resp_t
*
cgsn
=
&
at_response
->
response
.
cgsn
;
memset
(
cgsn
,
0
,
sizeof
(
at_cgsn_resp_t
));
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_CGSN_MASK
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_CGSN_MASK
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_ACT
:
...
...
@@ -426,7 +420,7 @@ static int _nas_user_proc_cgsn(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+CGSN command type %d is not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -447,21 +441,21 @@ static int _nas_user_proc_cgsn(nas_user_t *user, const at_command_t *data)
** **
** Outputs: None **
** Return: RETURNok; RETURNerror; **
** Others: _nas_user_data **
** **
***************************************************************************/
static
int
_nas_user_proc_cgmi
(
nas_user_t
*
user
,
const
at_command_t
*
data
)
{
LOG_FUNC_IN
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNok
;
at_cgmi_resp_t
*
cgmi
=
&
_nas_user_data
.
response
.
cgmi
;
at_cgmi_resp_t
*
cgmi
=
&
at_response
->
response
.
cgmi
;
memset
(
cgmi
,
0
,
sizeof
(
at_cgmi_resp_t
));
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_CGMI_MASK
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_CGMI_MASK
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_ACT
:
...
...
@@ -477,7 +471,7 @@ static int _nas_user_proc_cgmi(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+CGMI command type %d is not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -498,21 +492,21 @@ static int _nas_user_proc_cgmi(nas_user_t *user, const at_command_t *data)
** **
** Outputs: None **
** Return: RETURNok; RETURNerror; **
** Others: _nas_user_data **
** **
***************************************************************************/
static
int
_nas_user_proc_cgmm
(
nas_user_t
*
user
,
const
at_command_t
*
data
)
{
LOG_FUNC_IN
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNok
;
at_cgmm_resp_t
*
cgmm
=
&
_nas_user_data
.
response
.
cgmm
;
at_cgmm_resp_t
*
cgmm
=
&
at_response
->
response
.
cgmm
;
memset
(
cgmm
,
0
,
sizeof
(
at_cgmm_resp_t
));
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_CGMM_MASK
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_CGMM_MASK
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_ACT
:
...
...
@@ -528,7 +522,7 @@ static int _nas_user_proc_cgmm(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+CGMM command type %d is not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -550,22 +544,22 @@ static int _nas_user_proc_cgmm(nas_user_t *user, const at_command_t *data)
** **
** Outputs: None **
** Return: RETURNok; RETURNerror; **
** Others: _nas_user_data **
** **
***************************************************************************/
static
int
_nas_user_proc_cgmr
(
nas_user_t
*
user
,
const
at_command_t
*
data
)
{
LOG_FUNC_IN
;
nas_user_context_t
*
nas_user_context
=
user
->
nas_user_context
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNok
;
at_cgmr_resp_t
*
cgmr
=
&
_nas_user_data
.
response
.
cgmr
;
at_cgmr_resp_t
*
cgmr
=
&
at_response
->
response
.
cgmr
;
memset
(
cgmr
,
0
,
sizeof
(
at_cgmr_resp_t
));
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_CGMR_MASK
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_CGMR_MASK
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_ACT
:
...
...
@@ -581,7 +575,7 @@ static int _nas_user_proc_cgmr(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+CGMR command type %d is not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -606,27 +600,27 @@ static int _nas_user_proc_cgmr(nas_user_t *user, const at_command_t *data)
** **
** Outputs: None **
** Return: RETURNok; RETURNerror; **
** Others: _nas_user_data **
** **
***************************************************************************/
static
int
_nas_user_proc_cimi
(
nas_user_t
*
user
,
const
at_command_t
*
data
)
{
LOG_FUNC_IN
;
nas_user_context_t
*
nas_user_context
=
user
->
nas_user_context
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNok
;
at_cimi_resp_t
*
cimi
=
&
_nas_user_data
.
response
.
cimi
;
at_cimi_resp_t
*
cimi
=
&
at_response
->
response
.
cimi
;
memset
(
cimi
,
0
,
sizeof
(
at_cimi_resp_t
));
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_CIMI_MASK
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_CIMI_MASK
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_ACT
:
if
(
nas_user_context
->
sim_status
!=
NAS_USER_READY
)
{
_nas_user_data
.
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
at_response
->
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
LOG_FUNC_RETURN
(
RETURNerror
);
}
...
...
@@ -635,7 +629,7 @@ static int _nas_user_proc_cimi(nas_user_t *user, const at_command_t *data)
if
(
ret_code
!=
RETURNok
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Failed to get IMSI number"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
break
;
...
...
@@ -647,7 +641,7 @@ static int _nas_user_proc_cimi(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+CIMI command type %d is not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -667,24 +661,24 @@ static int _nas_user_proc_cimi(nas_user_t *user, const at_command_t *data)
** **
** Outputs: None **
** Return: RETURNok; RETURNerror; **
** Others: _nas_user_data **
** **
***************************************************************************/
static
int
_nas_user_proc_cfun
(
nas_user_t
*
user
,
const
at_command_t
*
data
)
{
LOG_FUNC_IN
;
nas_user_context_t
*
nas_user_context
=
user
->
nas_user_context
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNok
;
at_cfun_resp_t
*
cfun
=
&
_nas_user_data
.
response
.
cfun
;
at_cfun_resp_t
*
cfun
=
&
at_response
->
response
.
cfun
;
memset
(
cfun
,
0
,
sizeof
(
at_cfun_resp_t
));
int
fun
=
AT_CFUN_FUN_DEFAULT
;
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_CFUN_MASK
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_CFUN_MASK
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_SET
:
...
...
@@ -700,7 +694,7 @@ static int _nas_user_proc_cfun(nas_user_t *user, const at_command_t *data)
* return an error message */
LOG_TRACE
(
ERROR
,
"USR-MAIN - <rst> parameter is not valid"
" (%d)"
,
data
->
command
.
cfun
.
rst
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -713,7 +707,7 @@ static int _nas_user_proc_cfun(nas_user_t *user, const at_command_t *data)
* is not valid; return an error message */
LOG_TRACE
(
ERROR
,
"USR-MAIN - <fun> parameter is not valid"
" (%d)"
,
data
->
command
.
cfun
.
fun
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -759,7 +753,7 @@ static int _nas_user_proc_cfun(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+CFUN command type %d is not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -786,15 +780,16 @@ static int _nas_user_proc_cpin(nas_user_t *user, const at_command_t *data)
{
LOG_FUNC_IN
;
nas_user_context_t
*
nas_user_context
=
user
->
nas_user_context
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNok
;
at_cpin_resp_t
*
cpin
=
&
_nas_user_data
.
response
.
cpin
;
at_cpin_resp_t
*
cpin
=
&
at_response
->
response
.
cpin
;
memset
(
cpin
,
0
,
sizeof
(
at_cpin_resp_t
));
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_CPIN_MASK
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_CPIN_MASK
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_SET
:
...
...
@@ -810,7 +805,7 @@ static int _nas_user_proc_cpin(nas_user_t *user, const at_command_t *data)
/* The PIN code is NOT matching; return an error message */
LOG_TRACE
(
ERROR
,
"USR-MAIN - PIN code is not correct "
"(%s)"
,
data
->
command
.
cpin
.
pin
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PASSWD
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PASSWD
;
ret_code
=
RETURNerror
;
}
else
{
/* The PIN code is matching; update the user's PIN
...
...
@@ -820,7 +815,7 @@ static int _nas_user_proc_cpin(nas_user_t *user, const at_command_t *data)
}
else
{
/* The MT is NOT waiting for PIN password;
* return an error message */
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_ALLOWED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_ALLOWED
;
ret_code
=
RETURNerror
;
}
...
...
@@ -844,7 +839,7 @@ static int _nas_user_proc_cpin(nas_user_t *user, const at_command_t *data)
/* Other types of AT CPIN command are not valid */
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+CPIN command type %d is not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -865,27 +860,27 @@ static int _nas_user_proc_cpin(nas_user_t *user, const at_command_t *data)
** **
** Outputs: None **
** Return: RETURNok; RETURNerror; **
** Others: _nas_user_data **
** **
***************************************************************************/
static
int
_nas_user_proc_csq
(
nas_user_t
*
user
,
const
at_command_t
*
data
)
{
LOG_FUNC_IN
;
nas_user_context_t
*
nas_user_context
=
user
->
nas_user_context
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNok
;
at_csq_resp_t
*
csq
=
&
_nas_user_data
.
response
.
csq
;
at_csq_resp_t
*
csq
=
&
at_response
->
response
.
csq
;
memset
(
csq
,
0
,
sizeof
(
at_csq_resp_t
));
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_CSQ_MASK
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_CSQ_MASK
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_ACT
:
if
(
nas_user_context
->
sim_status
!=
NAS_USER_READY
)
{
_nas_user_data
.
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
at_response
->
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
LOG_FUNC_RETURN
(
RETURNerror
);
}
...
...
@@ -906,7 +901,7 @@ static int _nas_user_proc_csq(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+CSQ command type %d is not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -926,27 +921,27 @@ static int _nas_user_proc_csq(nas_user_t *user, const at_command_t *data)
** **
** Outputs: None **
** Return: RETURNok; RETURNerror; **
** Others: _nas_user_data **
** **
***************************************************************************/
static
int
_nas_user_proc_cesq
(
nas_user_t
*
user
,
const
at_command_t
*
data
)
{
LOG_FUNC_IN
;
nas_user_context_t
*
nas_user_context
=
user
->
nas_user_context
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNok
;
at_cesq_resp_t
*
cesq
=
&
_nas_user_data
.
response
.
cesq
;
at_cesq_resp_t
*
cesq
=
&
at_response
->
response
.
cesq
;
memset
(
cesq
,
0
,
sizeof
(
at_cesq_resp_t
));
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_CESQ_MASK
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_CESQ_MASK
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_ACT
:
if
(
nas_user_context
->
sim_status
!=
NAS_USER_READY
)
{
_nas_user_data
.
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
at_response
->
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
LOG_FUNC_RETURN
(
RETURNerror
);
}
...
...
@@ -969,7 +964,7 @@ static int _nas_user_proc_cesq(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+CESQ command type %d is not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -991,16 +986,16 @@ static int _nas_user_proc_cesq(nas_user_t *user, const at_command_t *data)
** **
** Outputs: None **
** Return: RETURNok; RETURNerror; **
** Others: _nas_user_data **
** **
***************************************************************************/
static
int
_nas_user_proc_cops
(
nas_user_t
*
user
,
const
at_command_t
*
data
)
{
LOG_FUNC_IN
;
nas_user_context_t
*
nas_user_context
=
user
->
nas_user_context
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNok
;
at_cops_resp_t
*
cops
=
&
_nas_user_data
.
response
.
cops
;
at_cops_resp_t
*
cops
=
&
at_response
->
response
.
cops
;
memset
(
cops
,
0
,
sizeof
(
at_cops_resp_t
));
static
int
read_format
=
AT_COPS_FORMAT_DEFAULT
;
...
...
@@ -1013,15 +1008,15 @@ static int _nas_user_proc_cops(nas_user_t *user, const at_command_t *data)
int
oper_is_selected
;
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_NO_PARAM
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_NO_PARAM
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_SET
:
if
(
nas_user_context
->
sim_status
!=
NAS_USER_READY
)
{
_nas_user_data
.
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
at_response
->
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
LOG_FUNC_RETURN
(
RETURNerror
);
}
...
...
@@ -1057,7 +1052,7 @@ static int _nas_user_proc_cops(nas_user_t *user, const at_command_t *data)
/* <oper> field shall be present */
if
(
!
(
data
->
mask
&
AT_COPS_OPER_MASK
)
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - <oper> parameter is not present"
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1065,7 +1060,7 @@ static int _nas_user_proc_cops(nas_user_t *user, const at_command_t *data)
/* <format> field shall be present */
if
(
!
(
data
->
mask
&
AT_COPS_FORMAT_MASK
)
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - <format> parameter is not present"
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1076,7 +1071,7 @@ static int _nas_user_proc_cops(nas_user_t *user, const at_command_t *data)
/* The value of <format> field is not valid */
LOG_TRACE
(
ERROR
,
"USR-MAIN - <format> parameter is not valid (%d)"
,
data
->
command
.
cops
.
format
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1090,7 +1085,7 @@ static int _nas_user_proc_cops(nas_user_t *user, const at_command_t *data)
/* The value of <AcT> field is not valid */
LOG_TRACE
(
ERROR
,
"USR-MAIN - <AcT> parameter is not valid (%d)"
,
data
->
command
.
cops
.
AcT
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1118,7 +1113,7 @@ static int _nas_user_proc_cops(nas_user_t *user, const at_command_t *data)
/* The value of <format> field is not valid */
LOG_TRACE
(
ERROR
,
"USR-MAIN - <format> parameter is not valid (%d)"
,
data
->
command
.
cops
.
format
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1134,7 +1129,7 @@ static int _nas_user_proc_cops(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - <mode> parameter is not supported (%d)"
,
mode
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1150,7 +1145,7 @@ static int _nas_user_proc_cops(nas_user_t *user, const at_command_t *data)
if
(
ret_code
!=
RETURNok
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Network deregistration failed"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
break
;
}
}
else
if
(
mode
!=
AT_COPS_FORMAT
)
{
...
...
@@ -1161,7 +1156,7 @@ static int _nas_user_proc_cops(nas_user_t *user, const at_command_t *data)
if
(
ret_code
!=
RETURNok
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Network registration failed (<mode>=%d)"
,
mode
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
break
;
}
}
...
...
@@ -1183,7 +1178,7 @@ static int _nas_user_proc_cops(nas_user_t *user, const at_command_t *data)
if
(
ret_code
!=
RETURNok
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Failed to get registration data (<mode>=%d)"
,
mode
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
break
;
}
...
...
@@ -1199,11 +1194,11 @@ static int _nas_user_proc_cops(nas_user_t *user, const at_command_t *data)
/* Set optional parameter bitmask */
if
(
oper_is_selected
)
{
cops
->
get
.
format
=
read_format
;
_nas_user_data
.
mask
|=
(
AT_COPS_RESP_FORMAT_MASK
|
at_response
->
mask
|=
(
AT_COPS_RESP_FORMAT_MASK
|
AT_COPS_RESP_OPER_MASK
);
if
(
cops
->
get
.
AcT
!=
NET_ACCESS_UNAVAILABLE
)
{
_nas_user_data
.
mask
|=
AT_COPS_RESP_ACT_MASK
;
at_response
->
mask
|=
AT_COPS_RESP_ACT_MASK
;
}
}
...
...
@@ -1220,7 +1215,7 @@ static int _nas_user_proc_cops(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+COPS command type %d is not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1240,27 +1235,27 @@ static int _nas_user_proc_cops(nas_user_t *user, const at_command_t *data)
** **
** Outputs: None **
** Return: RETURNok; RETURNerror; **
** Others: _nas_user_data **
** **
***************************************************************************/
static
int
_nas_user_proc_cgatt
(
nas_user_t
*
user
,
const
at_command_t
*
data
)
{
LOG_FUNC_IN
;
nas_user_context_t
*
nas_user_context
=
user
->
nas_user_context
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNok
;
at_cgatt_resp_t
*
cgatt
=
&
_nas_user_data
.
response
.
cgatt
;
at_cgatt_resp_t
*
cgatt
=
&
at_response
->
response
.
cgatt
;
memset
(
cgatt
,
0
,
sizeof
(
at_cgatt_resp_t
));
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_CGATT_MASK
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_CGATT_MASK
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_SET
:
if
(
nas_user_context
->
sim_status
!=
NAS_USER_READY
)
{
_nas_user_data
.
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
at_response
->
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
LOG_FUNC_RETURN
(
RETURNerror
);
}
...
...
@@ -1275,7 +1270,7 @@ static int _nas_user_proc_cgatt(nas_user_t *user, const at_command_t *data)
* return an error message */
LOG_TRACE
(
ERROR
,
"USR-MAIN - <state> parameter is not valid (%d)"
,
data
->
command
.
cgatt
.
state
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1295,7 +1290,7 @@ static int _nas_user_proc_cgatt(nas_user_t *user, const at_command_t *data)
LOG_TRACE
(
ERROR
,
"USR-MAIN - Failed to attach/detach "
"to/from EPS service (<state>=%d)"
,
data
->
command
.
cgatt
.
state
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
}
...
...
@@ -1324,7 +1319,7 @@ static int _nas_user_proc_cgatt(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+CGATT command type %d is not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1345,29 +1340,29 @@ static int _nas_user_proc_cgatt(nas_user_t *user, const at_command_t *data)
** **
** Outputs: None **
** Return: RETURNok; RETURNerror; **
** Others: _nas_user_data **
** **
***************************************************************************/
static
int
_nas_user_proc_creg
(
nas_user_t
*
user
,
const
at_command_t
*
data
)
{
LOG_FUNC_IN
;
nas_user_context_t
*
nas_user_context
=
user
->
nas_user_context
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNok
;
at_creg_resp_t
*
creg
=
&
_nas_user_data
.
response
.
creg
;
at_creg_resp_t
*
creg
=
&
at_response
->
response
.
creg
;
memset
(
creg
,
0
,
sizeof
(
at_creg_resp_t
));
static
int
n
=
AT_CREG_N_DEFAULT
;
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_NO_PARAM
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_NO_PARAM
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_SET
:
if
(
nas_user_context
->
sim_status
!=
NAS_USER_READY
)
{
_nas_user_data
.
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
at_response
->
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
LOG_FUNC_RETURN
(
RETURNerror
);
}
...
...
@@ -1384,7 +1379,7 @@ static int _nas_user_proc_creg(nas_user_t *user, const at_command_t *data)
* return an error message */
LOG_TRACE
(
ERROR
,
"USR-MAIN - <n> parameter is not valid"
" (%d)"
,
data
->
command
.
creg
.
n
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1410,7 +1405,7 @@ static int _nas_user_proc_creg(nas_user_t *user, const at_command_t *data)
if
(
ret_code
!=
RETURNok
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Failed to disable logging of network notification"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
break
;
...
...
@@ -1425,7 +1420,7 @@ static int _nas_user_proc_creg(nas_user_t *user, const at_command_t *data)
if
(
ret_code
!=
RETURNok
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Failed to enable logging of registration status"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
break
;
...
...
@@ -1456,7 +1451,7 @@ static int _nas_user_proc_creg(nas_user_t *user, const at_command_t *data)
if
(
ret_code
!=
RETURNok
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Failed to get registration status"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
break
;
...
...
@@ -1473,7 +1468,7 @@ static int _nas_user_proc_creg(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+CREG command type %d is not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1494,29 +1489,29 @@ static int _nas_user_proc_creg(nas_user_t *user, const at_command_t *data)
** **
** Outputs: None **
** Return: RETURNok; RETURNerror; **
** Others: _nas_user_data **
** **
***************************************************************************/
static
int
_nas_user_proc_cgreg
(
nas_user_t
*
user
,
const
at_command_t
*
data
)
{
LOG_FUNC_IN
;
nas_user_context_t
*
nas_user_context
=
user
->
nas_user_context
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNok
;
at_cgreg_resp_t
*
cgreg
=
&
_nas_user_data
.
response
.
cgreg
;
at_cgreg_resp_t
*
cgreg
=
&
at_response
->
response
.
cgreg
;
memset
(
cgreg
,
0
,
sizeof
(
at_cgreg_resp_t
));
static
int
n
=
AT_CGREG_N_DEFAULT
;
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_NO_PARAM
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_NO_PARAM
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_SET
:
if
(
nas_user_context
->
sim_status
!=
NAS_USER_READY
)
{
_nas_user_data
.
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
at_response
->
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
LOG_FUNC_RETURN
(
RETURNerror
);
}
...
...
@@ -1533,7 +1528,7 @@ static int _nas_user_proc_cgreg(nas_user_t *user, const at_command_t *data)
* return an error message */
LOG_TRACE
(
ERROR
,
"USR-MAIN - <n> parameter is not valid"
" (%d)"
,
data
->
command
.
cgreg
.
n
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1559,7 +1554,7 @@ static int _nas_user_proc_cgreg(nas_user_t *user, const at_command_t *data)
if
(
ret_code
!=
RETURNok
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Failed to disable logging of network notification"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
break
;
...
...
@@ -1574,7 +1569,7 @@ static int _nas_user_proc_cgreg(nas_user_t *user, const at_command_t *data)
if
(
ret_code
!=
RETURNok
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Failed to enable logging of registration status"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
break
;
...
...
@@ -1605,7 +1600,7 @@ static int _nas_user_proc_cgreg(nas_user_t *user, const at_command_t *data)
if
(
ret_code
!=
RETURNok
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Failed to get registration status"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
break
;
...
...
@@ -1622,7 +1617,7 @@ static int _nas_user_proc_cgreg(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+CGREG command type %d is not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1643,29 +1638,29 @@ static int _nas_user_proc_cgreg(nas_user_t *user, const at_command_t *data)
** **
** Outputs: None **
** Return: RETURNok; RETURNerror; **
** Others: _nas_user_data **
** **
***************************************************************************/
static
int
_nas_user_proc_cereg
(
nas_user_t
*
user
,
const
at_command_t
*
data
)
{
LOG_FUNC_IN
;
nas_user_context_t
*
nas_user_context
=
user
->
nas_user_context
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNok
;
at_cereg_resp_t
*
cereg
=
&
_nas_user_data
.
response
.
cereg
;
at_cereg_resp_t
*
cereg
=
&
at_response
->
response
.
cereg
;
memset
(
cereg
,
0
,
sizeof
(
at_cereg_resp_t
));
static
int
n
=
AT_CEREG_N_DEFAULT
;
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_NO_PARAM
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_NO_PARAM
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_SET
:
if
(
nas_user_context
->
sim_status
!=
NAS_USER_READY
)
{
_nas_user_data
.
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
at_response
->
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
LOG_FUNC_RETURN
(
RETURNerror
);
}
...
...
@@ -1682,7 +1677,7 @@ static int _nas_user_proc_cereg(nas_user_t *user, const at_command_t *data)
* return an error message */
LOG_TRACE
(
ERROR
,
"USR-MAIN - <n> parameter is not valid"
" (%d)"
,
data
->
command
.
cereg
.
n
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1708,7 +1703,7 @@ static int _nas_user_proc_cereg(nas_user_t *user, const at_command_t *data)
if
(
ret_code
!=
RETURNok
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Failed to disable logging of network notification"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
break
;
...
...
@@ -1719,7 +1714,7 @@ static int _nas_user_proc_cereg(nas_user_t *user, const at_command_t *data)
if
(
ret_code
!=
RETURNok
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Failed to enable logging of location information"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
break
;
...
...
@@ -1731,7 +1726,7 @@ static int _nas_user_proc_cereg(nas_user_t *user, const at_command_t *data)
if
(
ret_code
!=
RETURNok
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Failed to enable logging of registration status"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
break
;
...
...
@@ -1759,16 +1754,16 @@ static int _nas_user_proc_cereg(nas_user_t *user, const at_command_t *data)
if
(
ret_code
!=
RETURNok
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Failed to get location information"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
break
;
}
if
(
cereg
->
tac
[
0
]
!=
0
)
{
_nas_user_data
.
mask
|=
(
AT_CEREG_RESP_TAC_MASK
|
at_response
->
mask
|=
(
AT_CEREG_RESP_TAC_MASK
|
AT_CEREG_RESP_CI_MASK
);
if
(
cereg
->
AcT
!=
NET_ACCESS_UNAVAILABLE
)
{
_nas_user_data
.
mask
|=
(
AT_CEREG_RESP_ACT_MASK
);
at_response
->
mask
|=
(
AT_CEREG_RESP_ACT_MASK
);
}
}
...
...
@@ -1781,7 +1776,7 @@ static int _nas_user_proc_cereg(nas_user_t *user, const at_command_t *data)
if
(
ret_code
!=
RETURNok
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Failed to get registration status"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
break
;
...
...
@@ -1798,7 +1793,7 @@ static int _nas_user_proc_cereg(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+CEREG command type %d is not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1824,16 +1819,16 @@ static int _nas_user_proc_cereg(nas_user_t *user, const at_command_t *data)
** **
** Outputs: None **
** Return: RETURNok; RETURNerror; **
** Others: _nas_user_data **
** **
***************************************************************************/
static
int
_nas_user_proc_cgdcont
(
nas_user_t
*
user
,
const
at_command_t
*
data
)
{
LOG_FUNC_IN
;
nas_user_context_t
*
nas_user_context
=
user
->
nas_user_context
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNok
;
at_cgdcont_get_t
*
cgdcont
=
&
_nas_user_data
.
response
.
cgdcont
.
get
;
at_cgdcont_get_t
*
cgdcont
=
&
at_response
->
response
.
cgdcont
.
get
;
memset
(
cgdcont
,
0
,
sizeof
(
at_cgdcont_resp_t
));
int
cid
=
AT_CGDCONT_CID_DEFAULT
;
...
...
@@ -1845,15 +1840,15 @@ static int _nas_user_proc_cgdcont(nas_user_t *user, const at_command_t *data)
int
im_cn_signalling
=
AT_CGDCONT_IM_CM_DEFAULT
;
int
reset_pdn
=
TRUE
;
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_NO_PARAM
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_NO_PARAM
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_SET
:
if
(
nas_user_context
->
sim_status
!=
NAS_USER_READY
)
{
_nas_user_data
.
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
at_response
->
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
LOG_FUNC_RETURN
(
RETURNerror
);
}
...
...
@@ -1867,7 +1862,7 @@ static int _nas_user_proc_cgdcont(nas_user_t *user, const at_command_t *data)
* return an error message */
LOG_TRACE
(
ERROR
,
"USR-MAIN - <cid> parameter is not valid"
" (%d)"
,
data
->
command
.
cgdcont
.
cid
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1887,7 +1882,7 @@ static int _nas_user_proc_cgdcont(nas_user_t *user, const at_command_t *data)
* return an error message */
LOG_TRACE
(
ERROR
,
"USR-MAIN - <PDN_type> parameter is not "
"valid (%s)"
,
data
->
command
.
cgdcont
.
PDP_type
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1906,7 +1901,7 @@ static int _nas_user_proc_cgdcont(nas_user_t *user, const at_command_t *data)
* not valid; return an error message */
LOG_TRACE
(
ERROR
,
"USR-MAIN - <d_comp> parameter is not "
"valid (%d)"
,
data
->
command
.
cgdcont
.
d_comp
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1921,7 +1916,7 @@ static int _nas_user_proc_cgdcont(nas_user_t *user, const at_command_t *data)
* not valid; return an error message */
LOG_TRACE
(
ERROR
,
"USR-MAIN - <h_comp> parameter is not "
"valid (%d)"
,
data
->
command
.
cgdcont
.
h_comp
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1937,7 +1932,7 @@ static int _nas_user_proc_cgdcont(nas_user_t *user, const at_command_t *data)
LOG_TRACE
(
ERROR
,
"USR-MAIN - <IPv4AddrAlloc> parameter "
"is not valid (%d)"
,
data
->
command
.
cgdcont
.
IPv4AddrAlloc
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1953,7 +1948,7 @@ static int _nas_user_proc_cgdcont(nas_user_t *user, const at_command_t *data)
LOG_TRACE
(
ERROR
,
"USR-MAIN - <emergency indication> "
"parameter is not valid (%d)"
,
data
->
command
.
cgdcont
.
emergency_indication
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1969,7 +1964,7 @@ static int _nas_user_proc_cgdcont(nas_user_t *user, const at_command_t *data)
LOG_TRACE
(
ERROR
,
"USR-MAIN - <P-CSCF_discovery> "
"parameter is not valid (%d)"
,
data
->
command
.
cgdcont
.
P_CSCF_discovery
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -1986,7 +1981,7 @@ static int _nas_user_proc_cgdcont(nas_user_t *user, const at_command_t *data)
LOG_TRACE
(
ERROR
,
"USR-MAIN - <IM_CN_Signalling_Flag_Ind> "
"parameter is not valid (%d)"
,
data
->
command
.
cgdcont
.
IM_CN_Signalling_Flag_Ind
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -2011,7 +2006,7 @@ static int _nas_user_proc_cgdcont(nas_user_t *user, const at_command_t *data)
if
(
ret_code
!=
RETURNok
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Failed to setup PDN connection "
"(<cid>=%d)"
,
data
->
command
.
cgdcont
.
cid
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
break
;
...
...
@@ -2028,7 +2023,7 @@ static int _nas_user_proc_cgdcont(nas_user_t *user, const at_command_t *data)
if
(
cgdcont
->
n_pdns
==
0
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - No any PDN context is defined"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
break
;
...
...
@@ -2043,11 +2038,11 @@ static int _nas_user_proc_cgdcont(nas_user_t *user, const at_command_t *data)
if
(
cid_max
>
AT_CGDCONT_RESP_SIZE
)
{
/* The range is defined by the user interface */
_nas_user_data
.
response
.
cgdcont
.
tst
.
n_cid
=
at_response
->
response
.
cgdcont
.
tst
.
n_cid
=
AT_CGDCONT_RESP_SIZE
;
}
else
{
/* The range is defined by the ESM sublayer application */
_nas_user_data
.
response
.
cgdcont
.
tst
.
n_cid
=
cid_max
;
at_response
->
response
.
cgdcont
.
tst
.
n_cid
=
cid_max
;
}
}
break
;
...
...
@@ -2055,7 +2050,7 @@ static int _nas_user_proc_cgdcont(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+CGDCONT command type %d is not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -2076,30 +2071,30 @@ static int _nas_user_proc_cgdcont(nas_user_t *user, const at_command_t *data)
** **
** Outputs: None **
** Return: RETURNok; RETURNerror; **
** Others: _nas_user_data **
** **
***************************************************************************/
static
int
_nas_user_proc_cgact
(
nas_user_t
*
user
,
const
at_command_t
*
data
)
{
LOG_FUNC_IN
;
nas_user_context_t
*
nas_user_context
=
user
->
nas_user_context
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNok
;
at_cgact_resp_t
*
cgact
=
&
_nas_user_data
.
response
.
cgact
;
at_cgact_resp_t
*
cgact
=
&
at_response
->
response
.
cgact
;
memset
(
cgact
,
0
,
sizeof
(
at_cgact_resp_t
));
int
cid
=
-
1
;
int
state
=
AT_CGACT_STATE_DEFAULT
;
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_CGACT_MASK
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_CGACT_MASK
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_SET
:
if
(
nas_user_context
->
sim_status
!=
NAS_USER_READY
)
{
_nas_user_data
.
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
at_response
->
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
LOG_FUNC_RETURN
(
RETURNerror
);
}
...
...
@@ -2114,7 +2109,7 @@ static int _nas_user_proc_cgact(nas_user_t *user, const at_command_t *data)
* not valid; return an error message */
LOG_TRACE
(
ERROR
,
"USR-MAIN - <state> parameter is "
"not valid (%d)"
,
data
->
command
.
cgact
.
state
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -2128,7 +2123,7 @@ static int _nas_user_proc_cgact(nas_user_t *user, const at_command_t *data)
* return an error message */
LOG_TRACE
(
ERROR
,
"USR-MAIN - <cid> parameter is "
"not valid (%d)"
,
data
->
command
.
cgact
.
cid
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -2152,7 +2147,7 @@ static int _nas_user_proc_cgact(nas_user_t *user, const at_command_t *data)
"(<state>=%d,<cid>=%d)"
,
(
state
!=
AT_CGACT_ACTIVATED
)
?
"deactivate"
:
"activate"
,
state
,
cid
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
break
;
...
...
@@ -2167,7 +2162,7 @@ static int _nas_user_proc_cgact(nas_user_t *user, const at_command_t *data)
if
(
cgact
->
n_pdns
==
0
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - No any PDN context is defined"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
break
;
...
...
@@ -2182,7 +2177,7 @@ static int _nas_user_proc_cgact(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+CGACT command type %d is not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -2204,7 +2199,6 @@ static int _nas_user_proc_cgact(nas_user_t *user, const at_command_t *data)
** **
** Outputs: None **
** Return: RETURNok; RETURNerror; **
** Others: _nas_user_data **
** **
***************************************************************************/
static
int
_nas_user_proc_cmee
(
nas_user_t
*
user
,
const
at_command_t
*
data
)
...
...
@@ -2212,15 +2206,16 @@ static int _nas_user_proc_cmee(nas_user_t *user, const at_command_t *data)
LOG_FUNC_IN
;
int
ret_code
=
RETURNok
;
at_cmee_resp_t
*
cmee
=
&
_nas_user_data
.
response
.
cmee
;
at_response_t
*
at_response
=
user
->
at_response
;
at_cmee_resp_t
*
cmee
=
&
at_response
->
response
.
cmee
;
memset
(
cmee
,
0
,
sizeof
(
at_cmee_resp_t
));
int
n
=
AT_CMEE_N_DEFAULT
;
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_CMEE_MASK
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_CMEE_MASK
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_ACT
:
/* ATV0, ATV1 response format commands */
...
...
@@ -2238,7 +2233,7 @@ static int _nas_user_proc_cmee(nas_user_t *user, const at_command_t *data)
* return an error message */
LOG_TRACE
(
ERROR
,
"USR-MAIN - <n> parameter is not valid"
" (%d)"
,
data
->
command
.
cmee
.
n
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -2282,7 +2277,7 @@ static int _nas_user_proc_cmee(nas_user_t *user, const at_command_t *data)
if
(
cmee
->
n
==
RETURNerror
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Failed to get format of the final result code"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
break
;
...
...
@@ -2296,7 +2291,7 @@ static int _nas_user_proc_cmee(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+CMEE command type %d is not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -2317,21 +2312,21 @@ static int _nas_user_proc_cmee(nas_user_t *user, const at_command_t *data)
** **
** Outputs: None **
** Return: RETURNok; RETURNerror; **
** Others: _nas_user_data **
** **
***************************************************************************/
static
int
_nas_user_proc_clck
(
nas_user_t
*
user
,
const
at_command_t
*
data
)
{
LOG_FUNC_IN
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNok
;
at_clck_resp_t
*
clck
=
&
_nas_user_data
.
response
.
clck
;
at_clck_resp_t
*
clck
=
&
at_response
->
response
.
clck
;
memset
(
clck
,
0
,
sizeof
(
at_clck_resp_t
));
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_CLCK_MASK
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_CLCK_MASK
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_SET
:
...
...
@@ -2347,7 +2342,7 @@ static int _nas_user_proc_clck(nas_user_t *user, const at_command_t *data)
/* Facilities other than SIM is not supported */
LOG_TRACE
(
ERROR
,
"USR-MAIN - Facility is not supported (%s)"
,
data
->
command
.
clck
.
fac
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -2360,7 +2355,7 @@ static int _nas_user_proc_clck(nas_user_t *user, const at_command_t *data)
/* The PIN code is NOT matching; return an error message */
LOG_TRACE
(
ERROR
,
"USR-MAIN - Password is not correct "
"(%s)"
,
data
->
command
.
clck
.
passwd
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PASSWD
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PASSWD
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -2375,14 +2370,14 @@ static int _nas_user_proc_clck(nas_user_t *user, const at_command_t *data)
/* unlock requires password */
LOG_TRACE
(
ERROR
,
"USR-MAIN - unlock mode of operation "
"requires a password"
);
_nas_user_data
.
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
at_response
->
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
ret_code
=
RETURNerror
;
break
;
}
LOG_TRACE
(
ERROR
,
"USR-MAIN - unlock mode of operation "
"is not supported"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
...
...
@@ -2393,14 +2388,14 @@ static int _nas_user_proc_clck(nas_user_t *user, const at_command_t *data)
/* unlock requires password */
LOG_TRACE
(
ERROR
,
"USR-MAIN - lock mode of operation "
"requires a password"
);
_nas_user_data
.
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
at_response
->
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
ret_code
=
RETURNerror
;
break
;
}
LOG_TRACE
(
ERROR
,
"USR-MAIN - lock mode of operation "
"is not supported"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
...
...
@@ -2412,7 +2407,7 @@ static int _nas_user_proc_clck(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - <mode> parameter is not valid"
" (%d)"
,
data
->
command
.
clck
.
mode
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -2428,7 +2423,7 @@ static int _nas_user_proc_clck(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+CLCK command type %d is not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -2448,29 +2443,29 @@ static int _nas_user_proc_clck(nas_user_t *user, const at_command_t *data)
** **
** Outputs: None **
** Return: RETURNok; RETURNerror; **
** Others: _nas_user_data **
** **
***************************************************************************/
static
int
_nas_user_proc_cgpaddr
(
nas_user_t
*
user
,
const
at_command_t
*
data
)
{
LOG_FUNC_IN
;
nas_user_context_t
*
nas_user_context
=
user
->
nas_user_context
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNok
;
at_cgpaddr_resp_t
*
cgpaddr
=
&
_nas_user_data
.
response
.
cgpaddr
;
at_cgpaddr_resp_t
*
cgpaddr
=
&
at_response
->
response
.
cgpaddr
;
memset
(
cgpaddr
,
0
,
sizeof
(
at_cgpaddr_resp_t
));
int
cid
=
-
1
;
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_CGPADDR_MASK
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_CGPADDR_MASK
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_SET
:
if
(
nas_user_context
->
sim_status
!=
NAS_USER_READY
)
{
_nas_user_data
.
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
at_response
->
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
LOG_FUNC_RETURN
(
RETURNerror
);
}
...
...
@@ -2484,7 +2479,7 @@ static int _nas_user_proc_cgpaddr(nas_user_t *user, const at_command_t *data)
* return an error message */
LOG_TRACE
(
ERROR
,
"USR-MAIN - <cid> parameter is "
"not valid (%d)"
,
data
->
command
.
cgpaddr
.
cid
);
_nas_user_data
.
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
at_response
->
cause_code
=
AT_ERROR_INCORRECT_PARAMETERS
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -2502,7 +2497,7 @@ static int _nas_user_proc_cgpaddr(nas_user_t *user, const at_command_t *data)
if
(
cgpaddr
->
n_pdns
==
0
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - No any PDN context is defined"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
break
;
...
...
@@ -2520,7 +2515,7 @@ static int _nas_user_proc_cgpaddr(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+CGPADDR command type %d is "
"not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -2540,27 +2535,27 @@ static int _nas_user_proc_cgpaddr(nas_user_t *user, const at_command_t *data)
** **
** Outputs: None **
** Return: RETURNok; RETURNerror; **
** Others: _nas_user_data **
** **
***************************************************************************/
static
int
_nas_user_proc_cnum
(
nas_user_t
*
user
,
const
at_command_t
*
data
)
{
LOG_FUNC_IN
;
nas_user_context_t
*
nas_user_context
=
user
->
nas_user_context
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNok
;
at_cnum_resp_t
*
cnum
=
&
_nas_user_data
.
response
.
cnum
;
at_cnum_resp_t
*
cnum
=
&
at_response
->
response
.
cnum
;
memset
(
cnum
,
0
,
sizeof
(
at_cnum_resp_t
));
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_CNUM_MASK
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_CNUM_MASK
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_ACT
:
if
(
nas_user_context
->
sim_status
!=
NAS_USER_READY
)
{
_nas_user_data
.
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
at_response
->
cause_code
=
AT_ERROR_SIM_PIN_REQUIRED
;
LOG_FUNC_RETURN
(
RETURNerror
);
}
...
...
@@ -2569,7 +2564,7 @@ static int _nas_user_proc_cnum(nas_user_t *user, const at_command_t *data)
if
(
ret_code
!=
RETURNok
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Failed to get MS dialing number"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
break
;
...
...
@@ -2581,7 +2576,7 @@ static int _nas_user_proc_cnum(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+CNUM command type %d is "
"not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
@@ -2601,21 +2596,20 @@ static int _nas_user_proc_cnum(nas_user_t *user, const at_command_t *data)
** **
** Outputs: None **
** Return: RETURNok; RETURNerror; **
** Others: _nas_user_data **
** **
***************************************************************************/
static
int
_nas_user_proc_clac
(
nas_user_t
*
user
,
const
at_command_t
*
data
)
{
LOG_FUNC_IN
;
at_response_t
*
at_response
=
user
->
at_response
;
int
ret_code
=
RETURNok
;
at_clac_resp_t
*
clac
=
&
_nas_user_data
.
response
.
clac
;
at_clac_resp_t
*
clac
=
&
at_response
->
response
.
clac
;
memset
(
clac
,
0
,
sizeof
(
at_clac_resp_t
));
_nas_user_data
.
id
=
data
->
id
;
_nas_user_data
.
type
=
data
->
type
;
_nas_user_data
.
mask
=
AT_RESPONSE_CLAC_MASK
;
_nas_user_data
.
cause_code
=
AT_ERROR_SUCCESS
;
at_response
->
id
=
data
->
id
;
at_response
->
type
=
data
->
type
;
at_response
->
mask
=
AT_RESPONSE_CLAC_MASK
;
at_response
->
cause_code
=
AT_ERROR_SUCCESS
;
switch
(
data
->
type
)
{
case
AT_COMMAND_ACT
:
...
...
@@ -2625,7 +2619,7 @@ static int _nas_user_proc_clac(nas_user_t *user, const at_command_t *data)
if
(
clac
->
n_acs
==
0
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Failed to get the list of "
"supported AT commands"
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
}
break
;
...
...
@@ -2637,7 +2631,7 @@ static int _nas_user_proc_clac(nas_user_t *user, const at_command_t *data)
default:
LOG_TRACE
(
ERROR
,
"USR-MAIN - AT+CLAC command type %d is "
"not supported"
,
data
->
type
);
_nas_user_data
.
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
at_response
->
cause_code
=
AT_ERROR_OPERATION_NOT_SUPPORTED
;
ret_code
=
RETURNerror
;
break
;
}
...
...
openair3/NAS/UE/nas_user.h
View file @
404c3461
...
...
@@ -67,6 +67,6 @@ int nas_user_receive_and_process(nas_user_t *user, char *message);
int
nas_user_process_data
(
nas_user_t
*
user
,
const
void
*
data
);
const
void
*
nas_user_get_data
(
void
);
const
void
*
nas_user_get_data
(
nas_user_t
*
nas_user
);
#endif
/* __NAS_USER_H__*/
openair3/NAS/UE/user_defs.h
View file @
404c3461
...
...
@@ -55,6 +55,7 @@ Description NAS type definition to manage a user equipment
#include "API/USIM/usim_api.h"
#include "SecurityModeControl.h"
#include "userDef.h"
#include "at_response.h"
typedef
struct
{
int
fd
;
...
...
@@ -74,6 +75,7 @@ typedef struct {
user_nvdata_t
*
nas_user_nvdata
;
//UE parameters stored in the UE's non-volatile memory device
//
nas_user_context_t
*
nas_user_context
;
at_response_t
*
at_response
;
// data structure returned to the user as the result of NAS procedure function call
}
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