Commit 404c3461 authored by Frédéric Leroy's avatar Frédéric Leroy

UE: rename _nas_user_data to at_response and move it to nas_user_t

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