UE: use nas_user_t in nas_* function prototype
This patch merely adds a "user" object in all nas_* functions. This don't move any data structure. It allows next patches to be nicely split. Signed-off-by: Frédéric Leroy <frederic.leroy@b-com.com>
This commit is contained in:
@@ -408,7 +408,9 @@ static void _nas_clean(int usr_fd, int net_fd)
|
|||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
LOG_TRACE (INFO, "UE-MAIN - Perform EMM and ESM cleanup");
|
LOG_TRACE (INFO, "UE-MAIN - Perform EMM and ESM cleanup");
|
||||||
nas_network_cleanup ();
|
// FIXME nas_network_cleanup depends on nas_user_t
|
||||||
|
// Why this program should interfere like that with oaisim ?
|
||||||
|
//nas_network_cleanup ();
|
||||||
|
|
||||||
LOG_TRACE (INFO, "UE-MAIN - "
|
LOG_TRACE (INFO, "UE-MAIN - "
|
||||||
"Closing user connection %d and network connection %d",
|
"Closing user connection %d and network connection %d",
|
||||||
|
|||||||
@@ -92,11 +92,11 @@ void nas_network_initialize(void)
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
void nas_network_cleanup(void)
|
void nas_network_cleanup(nas_user_t *user)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
nas_proc_cleanup();
|
nas_proc_cleanup(user);
|
||||||
|
|
||||||
LOG_FUNC_OUT;
|
LOG_FUNC_OUT;
|
||||||
}
|
}
|
||||||
@@ -161,12 +161,12 @@ int nas_network_process_data(nas_user_t *user, int msg_id, const void *data)
|
|||||||
|
|
||||||
if ( (confirm->errCode == AS_SUCCESS) ||
|
if ( (confirm->errCode == AS_SUCCESS) ||
|
||||||
(confirm->errCode == AS_TERMINATED_NAS) ) {
|
(confirm->errCode == AS_TERMINATED_NAS) ) {
|
||||||
rc = nas_proc_establish_cnf(confirm->nasMsg.data,
|
rc = nas_proc_establish_cnf(user, confirm->nasMsg.data,
|
||||||
confirm->nasMsg.length);
|
confirm->nasMsg.length);
|
||||||
} else {
|
} else {
|
||||||
LOG_TRACE(WARNING, "NET-MAIN - "
|
LOG_TRACE(WARNING, "NET-MAIN - "
|
||||||
"Initial NAS message not delivered");
|
"Initial NAS message not delivered");
|
||||||
rc = nas_proc_establish_rej();
|
rc = nas_proc_establish_rej(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@@ -174,7 +174,7 @@ int nas_network_process_data(nas_user_t *user, int msg_id, const void *data)
|
|||||||
|
|
||||||
case AS_NAS_RELEASE_IND:
|
case AS_NAS_RELEASE_IND:
|
||||||
/* Received NAS signalling connection releaase indication */
|
/* Received NAS signalling connection releaase indication */
|
||||||
rc = nas_proc_release_ind(msg->msg.nas_release_ind.cause);
|
rc = nas_proc_release_ind(user, msg->msg.nas_release_ind.cause);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AS_UL_INFO_TRANSFER_CNF:
|
case AS_UL_INFO_TRANSFER_CNF:
|
||||||
@@ -183,9 +183,9 @@ int nas_network_process_data(nas_user_t *user, int msg_id, const void *data)
|
|||||||
if (msg->msg.ul_info_transfer_cnf.errCode != AS_SUCCESS) {
|
if (msg->msg.ul_info_transfer_cnf.errCode != AS_SUCCESS) {
|
||||||
LOG_TRACE(WARNING, "NET-MAIN - "
|
LOG_TRACE(WARNING, "NET-MAIN - "
|
||||||
"Uplink NAS message not delivered");
|
"Uplink NAS message not delivered");
|
||||||
rc = nas_proc_ul_transfer_rej();
|
rc = nas_proc_ul_transfer_rej(user);
|
||||||
} else {
|
} else {
|
||||||
rc = nas_proc_ul_transfer_cnf();
|
rc = nas_proc_ul_transfer_cnf(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@@ -193,7 +193,7 @@ int nas_network_process_data(nas_user_t *user, int msg_id, const void *data)
|
|||||||
case AS_DL_INFO_TRANSFER_IND: {
|
case AS_DL_INFO_TRANSFER_IND: {
|
||||||
const dl_info_transfer_ind_t *info = &msg->msg.dl_info_transfer_ind;
|
const dl_info_transfer_ind_t *info = &msg->msg.dl_info_transfer_ind;
|
||||||
/* Received downlink data transfer indication */
|
/* Received downlink data transfer indication */
|
||||||
rc = nas_proc_dl_transfer_ind(info->nasMsg.data,
|
rc = nas_proc_dl_transfer_ind(user, info->nasMsg.data,
|
||||||
info->nasMsg.length);
|
info->nasMsg.length);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ Description NAS procedure functions triggered by the network
|
|||||||
|
|
||||||
void nas_network_initialize(void);
|
void nas_network_initialize(void);
|
||||||
|
|
||||||
void nas_network_cleanup(void);
|
void nas_network_cleanup(nas_user_t *user);
|
||||||
|
|
||||||
int nas_network_process_data(nas_user_t *user, int command_id, const void *data);
|
int nas_network_process_data(nas_user_t *user, int command_id, const void *data);
|
||||||
|
|
||||||
|
|||||||
+34
-34
@@ -64,8 +64,8 @@ Description NAS procedure call manager
|
|||||||
#define NAS_PROC_RSRP_UNKNOWN 255
|
#define NAS_PROC_RSRP_UNKNOWN 255
|
||||||
|
|
||||||
|
|
||||||
static int _nas_proc_activate(int cid, int apply_to_all);
|
static int _nas_proc_activate(nas_user_t *user, int cid, int apply_to_all);
|
||||||
static int _nas_proc_deactivate(int cid, int apply_to_all);
|
static int _nas_proc_deactivate(nas_user_t *user, int cid, int apply_to_all);
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
/****************** E X P O R T E D F U N C T I O N S ******************/
|
/****************** E X P O R T E D F U N C T I O N S ******************/
|
||||||
@@ -121,12 +121,12 @@ void nas_proc_initialize(nas_user_t *user, emm_indication_callback_t emm_cb,
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
void nas_proc_cleanup()
|
void nas_proc_cleanup(nas_user_t *user)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
/* Detach the UE from the EPS network */
|
/* Detach the UE from the EPS network */
|
||||||
int rc = nas_proc_detach(TRUE);
|
int rc = nas_proc_detach(user, TRUE);
|
||||||
|
|
||||||
if (rc != RETURNok) {
|
if (rc != RETURNok) {
|
||||||
LOG_TRACE(ERROR, "NAS-PROC - Failed to detach from the network");
|
LOG_TRACE(ERROR, "NAS-PROC - Failed to detach from the network");
|
||||||
@@ -377,7 +377,7 @@ int nas_proc_get_signal_quality(nas_user_t *user, int *rsrq, int *rsrp)
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_register(int mode, int format, const network_plmn_t *oper, int AcT)
|
int nas_proc_register(nas_user_t *user, int mode, int format, const network_plmn_t *oper, int AcT)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
@@ -416,7 +416,7 @@ int nas_proc_register(int mode, int format, const network_plmn_t *oper, int AcT)
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_deregister()
|
int nas_proc_deregister(nas_user_t *user)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
@@ -446,7 +446,7 @@ int nas_proc_deregister()
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_get_reg_data(int *mode, int *selected, int format,
|
int nas_proc_get_reg_data(nas_user_t *user, int *mode, int *selected, int format,
|
||||||
network_plmn_t *oper, int *AcT)
|
network_plmn_t *oper, int *AcT)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
@@ -485,7 +485,7 @@ int nas_proc_get_reg_data(int *mode, int *selected, int format,
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_get_oper_list(const char **oper_list)
|
int nas_proc_get_oper_list(nas_user_t *user, const char **oper_list)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
@@ -510,7 +510,7 @@ int nas_proc_get_oper_list(const char **oper_list)
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_get_reg_status(int *stat)
|
int nas_proc_get_reg_status(nas_user_t *user, int *stat)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
@@ -538,7 +538,7 @@ int nas_proc_get_reg_status(int *stat)
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_get_loc_info(char *tac, char *ci, int *AcT)
|
int nas_proc_get_loc_info(nas_user_t *user, char *tac, char *ci, int *AcT)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
@@ -563,7 +563,7 @@ int nas_proc_get_loc_info(char *tac, char *ci, int *AcT)
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_detach(int switch_off)
|
int nas_proc_detach(nas_user_t *user, int switch_off)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
@@ -594,7 +594,7 @@ int nas_proc_detach(int switch_off)
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_attach()
|
int nas_proc_attach(nas_user_t *user)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
@@ -626,7 +626,7 @@ int nas_proc_attach()
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_get_attach_status()
|
int nas_proc_get_attach_status(nas_user_t *user)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
@@ -649,7 +649,7 @@ int nas_proc_get_attach_status()
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_get_pdn_range()
|
int nas_proc_get_pdn_range(nas_user_t *user)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
@@ -674,7 +674,7 @@ int nas_proc_get_pdn_range()
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_get_pdn_status(int *cids, int *states, int n_pdn_max)
|
int nas_proc_get_pdn_status(nas_user_t *user, int *cids, int *states, int n_pdn_max)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
@@ -718,7 +718,7 @@ int nas_proc_get_pdn_status(int *cids, int *states, int n_pdn_max)
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_get_pdn_param(int *cids, int *types, const char **apns,
|
int nas_proc_get_pdn_param(nas_user_t *user, int *cids, int *types, const char **apns,
|
||||||
int n_pdn_max)
|
int n_pdn_max)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
@@ -770,7 +770,7 @@ int nas_proc_get_pdn_param(int *cids, int *types, const char **apns,
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_get_pdn_addr(int cid, int *cids, const char **addr1,
|
int nas_proc_get_pdn_addr(nas_user_t *user, int cid, int *cids, const char **addr1,
|
||||||
const char **addr2, int n_pdn_max)
|
const char **addr2, int n_pdn_max)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
@@ -833,7 +833,7 @@ int nas_proc_get_pdn_addr(int cid, int *cids, const char **addr1,
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_set_pdn(int cid, int type, const char *apn, int ipv4_addr,
|
int nas_proc_set_pdn(nas_user_t *user, int cid, int type, const char *apn, int ipv4_addr,
|
||||||
int emergency, int p_cscf, int im_cn_signal)
|
int emergency, int p_cscf, int im_cn_signal)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
@@ -871,7 +871,7 @@ int nas_proc_set_pdn(int cid, int type, const char *apn, int ipv4_addr,
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_reset_pdn(int cid)
|
int nas_proc_reset_pdn(nas_user_t *user, int cid)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
@@ -905,7 +905,7 @@ int nas_proc_reset_pdn(int cid)
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_deactivate_pdn(int cid)
|
int nas_proc_deactivate_pdn(nas_user_t *user, int cid)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
@@ -913,7 +913,7 @@ int nas_proc_deactivate_pdn(int cid)
|
|||||||
|
|
||||||
if (cid > 0) {
|
if (cid > 0) {
|
||||||
/* Deactivate only the specified PDN context */
|
/* Deactivate only the specified PDN context */
|
||||||
rc = _nas_proc_deactivate(cid, FALSE);
|
rc = _nas_proc_deactivate(user, cid, FALSE);
|
||||||
} else {
|
} else {
|
||||||
/* Do not deactivate the PDN connection established during initial
|
/* Do not deactivate the PDN connection established during initial
|
||||||
* network attachment (identifier 1) */
|
* network attachment (identifier 1) */
|
||||||
@@ -921,7 +921,7 @@ int nas_proc_deactivate_pdn(int cid)
|
|||||||
|
|
||||||
/* Deactivate all active PDN contexts */
|
/* Deactivate all active PDN contexts */
|
||||||
while ((rc != RETURNerror) && (cid < esm_main_get_nb_pdns_max()+1)) {
|
while ((rc != RETURNerror) && (cid < esm_main_get_nb_pdns_max()+1)) {
|
||||||
rc = _nas_proc_deactivate(cid++, TRUE);
|
rc = _nas_proc_deactivate(user, cid++, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -944,7 +944,7 @@ int nas_proc_deactivate_pdn(int cid)
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_activate_pdn(int cid)
|
int nas_proc_activate_pdn(nas_user_t *user, int cid)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
@@ -956,7 +956,7 @@ int nas_proc_activate_pdn(int cid)
|
|||||||
* procedure prior to attempt to request any PDN connectivity
|
* procedure prior to attempt to request any PDN connectivity
|
||||||
*/
|
*/
|
||||||
LOG_TRACE(WARNING, "NAS-PROC - UE is not attached to the network");
|
LOG_TRACE(WARNING, "NAS-PROC - UE is not attached to the network");
|
||||||
rc = nas_proc_attach();
|
rc = nas_proc_attach(user);
|
||||||
} else if (emm_main_is_emergency()) {
|
} else if (emm_main_is_emergency()) {
|
||||||
/* The UE is attached for emergency bearer services; It shall not
|
/* The UE is attached for emergency bearer services; It shall not
|
||||||
* request a PDN connection to any other PDN */
|
* request a PDN connection to any other PDN */
|
||||||
@@ -967,13 +967,13 @@ int nas_proc_activate_pdn(int cid)
|
|||||||
if (rc != RETURNerror) {
|
if (rc != RETURNerror) {
|
||||||
if (cid > 0) {
|
if (cid > 0) {
|
||||||
/* Activate only the specified PDN context */
|
/* Activate only the specified PDN context */
|
||||||
rc = _nas_proc_activate(cid, FALSE);
|
rc = _nas_proc_activate(user, cid, FALSE);
|
||||||
} else {
|
} else {
|
||||||
cid = 1;
|
cid = 1;
|
||||||
|
|
||||||
/* Activate all defined PDN contexts */
|
/* Activate all defined PDN contexts */
|
||||||
while ((rc != RETURNerror) && (cid < esm_main_get_nb_pdns_max()+1)) {
|
while ((rc != RETURNerror) && (cid < esm_main_get_nb_pdns_max()+1)) {
|
||||||
rc = _nas_proc_activate(cid++, TRUE);
|
rc = _nas_proc_activate(user, cid++, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1056,7 +1056,7 @@ int nas_proc_cell_info(nas_user_t *user, int found, tac_t tac, ci_t ci, AcT_t Ac
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_establish_cnf(const Byte_t *data, uint32_t len)
|
int nas_proc_establish_cnf(nas_user_t *user, const Byte_t *data, uint32_t len)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
@@ -1093,7 +1093,7 @@ int nas_proc_establish_cnf(const Byte_t *data, uint32_t len)
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_establish_rej()
|
int nas_proc_establish_rej(nas_user_t *user)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
@@ -1126,7 +1126,7 @@ int nas_proc_establish_rej()
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_release_ind(int cause)
|
int nas_proc_release_ind(nas_user_t *user, int cause)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
@@ -1160,7 +1160,7 @@ int nas_proc_release_ind(int cause)
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_ul_transfer_cnf()
|
int nas_proc_ul_transfer_cnf(nas_user_t *user)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
@@ -1197,7 +1197,7 @@ int nas_proc_ul_transfer_cnf()
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_ul_transfer_rej()
|
int nas_proc_ul_transfer_rej(nas_user_t *user)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
@@ -1234,7 +1234,7 @@ int nas_proc_ul_transfer_rej()
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int nas_proc_dl_transfer_ind(const Byte_t *data, uint32_t len)
|
int nas_proc_dl_transfer_ind(nas_user_t *user, const Byte_t *data, uint32_t len)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
@@ -1281,7 +1281,7 @@ int nas_proc_dl_transfer_ind(const Byte_t *data, uint32_t len)
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
static int _nas_proc_activate(int cid, int apply_to_all)
|
static int _nas_proc_activate(nas_user_t *user, int cid, int apply_to_all)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
@@ -1354,7 +1354,7 @@ static int _nas_proc_activate(int cid, int apply_to_all)
|
|||||||
** Others: None **
|
** Others: None **
|
||||||
** **
|
** **
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
static int _nas_proc_deactivate(int cid, int apply_to_all)
|
static int _nas_proc_deactivate(nas_user_t *user, int cid, int apply_to_all)
|
||||||
{
|
{
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|
||||||
|
|||||||
+24
-24
@@ -63,7 +63,7 @@ Description NAS procedure call manager
|
|||||||
void nas_proc_initialize(nas_user_t *user, emm_indication_callback_t emm_cb,
|
void nas_proc_initialize(nas_user_t *user, emm_indication_callback_t emm_cb,
|
||||||
esm_indication_callback_t esm_cb, const char *imei);
|
esm_indication_callback_t esm_cb, const char *imei);
|
||||||
|
|
||||||
void nas_proc_cleanup(void);
|
void nas_proc_cleanup(nas_user_t *user);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* --------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
@@ -80,30 +80,30 @@ int nas_proc_get_msisdn(char *msisdn_str, int *ton_npi);
|
|||||||
|
|
||||||
int nas_proc_get_signal_quality(nas_user_t *user, int *rsrq, int *rsrp);
|
int nas_proc_get_signal_quality(nas_user_t *user, int *rsrq, int *rsrp);
|
||||||
|
|
||||||
int nas_proc_register(int mode, int format, const network_plmn_t *oper, int AcT);
|
int nas_proc_register(nas_user_t *user, int mode, int format, const network_plmn_t *oper, int AcT);
|
||||||
int nas_proc_deregister(void);
|
int nas_proc_deregister(nas_user_t *user);
|
||||||
int nas_proc_get_reg_data(int *mode, int *selected, int format,
|
int nas_proc_get_reg_data(nas_user_t *user, int *mode, int *selected, int format,
|
||||||
network_plmn_t *oper, int *AcT);
|
network_plmn_t *oper, int *AcT);
|
||||||
int nas_proc_get_oper_list(const char **oper_list);
|
int nas_proc_get_oper_list(nas_user_t *user, const char **oper_list);
|
||||||
|
|
||||||
int nas_proc_get_reg_status(int *stat);
|
int nas_proc_get_reg_status(nas_user_t *user, int *stat);
|
||||||
int nas_proc_get_loc_info(char *tac, char *ci, int *AcT);
|
int nas_proc_get_loc_info(nas_user_t *user, char *tac, char *ci, int *AcT);
|
||||||
|
|
||||||
int nas_proc_detach(int switch_off);
|
int nas_proc_detach(nas_user_t *user, int switch_off);
|
||||||
int nas_proc_attach(void);
|
int nas_proc_attach(nas_user_t *user);
|
||||||
int nas_proc_get_attach_status(void);
|
int nas_proc_get_attach_status(nas_user_t *user);
|
||||||
|
|
||||||
int nas_proc_reset_pdn(int cid);
|
int nas_proc_reset_pdn(nas_user_t *user, int cid);
|
||||||
int nas_proc_set_pdn(int cid, int type, const char *apn, int ipv4_addr,
|
int nas_proc_set_pdn(nas_user_t *user, int cid, int type, const char *apn, int ipv4_addr,
|
||||||
int emergency, int p_cscf, int im_cn_signal);
|
int emergency, int p_cscf, int im_cn_signal);
|
||||||
int nas_proc_get_pdn_range(void);
|
int nas_proc_get_pdn_range(nas_user_t *user);
|
||||||
int nas_proc_get_pdn_status(int *cids, int *states, int n_pdn_max);
|
int nas_proc_get_pdn_status(nas_user_t *user, int *cids, int *states, int n_pdn_max);
|
||||||
int nas_proc_get_pdn_param(int *cids, int *types, const char **apns,
|
int nas_proc_get_pdn_param(nas_user_t *user, int *cids, int *types, const char **apns,
|
||||||
int n_pdn_max);
|
int n_pdn_max);
|
||||||
int nas_proc_get_pdn_addr(int cid, int *cids, const char **addr1,
|
int nas_proc_get_pdn_addr(nas_user_t *user, int cid, int *cids, const char **addr1,
|
||||||
const char **addr2, int n_addr_max);
|
const char **addr2, int n_addr_max);
|
||||||
int nas_proc_deactivate_pdn(int cid);
|
int nas_proc_deactivate_pdn(nas_user_t *user, int cid);
|
||||||
int nas_proc_activate_pdn(int cid);
|
int nas_proc_activate_pdn(nas_user_t *user, int cid);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* --------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
@@ -114,14 +114,14 @@ int nas_proc_activate_pdn(int cid);
|
|||||||
int nas_proc_cell_info(nas_user_t *user, int found, tac_t tac, ci_t ci, AcT_t rat, uint8_t rsrp,
|
int nas_proc_cell_info(nas_user_t *user, int found, tac_t tac, ci_t ci, AcT_t rat, uint8_t rsrp,
|
||||||
uint8_t rsrq);
|
uint8_t rsrq);
|
||||||
|
|
||||||
int nas_proc_establish_cnf(const Byte_t *data, uint32_t len);
|
int nas_proc_establish_cnf(nas_user_t *user, const Byte_t *data, uint32_t len);
|
||||||
int nas_proc_establish_rej(void);
|
int nas_proc_establish_rej(nas_user_t *user);
|
||||||
|
|
||||||
int nas_proc_release_ind(int cause);
|
int nas_proc_release_ind(nas_user_t *user, int cause);
|
||||||
|
|
||||||
int nas_proc_ul_transfer_cnf(void);
|
int nas_proc_ul_transfer_cnf(nas_user_t *user);
|
||||||
int nas_proc_ul_transfer_rej(void);
|
int nas_proc_ul_transfer_rej(nas_user_t *user);
|
||||||
int nas_proc_dl_transfer_ind(const Byte_t *data, uint32_t len);
|
int nas_proc_dl_transfer_ind(nas_user_t *user, const Byte_t *data, uint32_t len);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ void *nas_ue_task(void *args_p)
|
|||||||
|
|
||||||
if ((NAS_CONN_ESTABLI_CNF (msg_p).errCode == AS_SUCCESS)
|
if ((NAS_CONN_ESTABLI_CNF (msg_p).errCode == AS_SUCCESS)
|
||||||
|| (NAS_CONN_ESTABLI_CNF (msg_p).errCode == AS_TERMINATED_NAS)) {
|
|| (NAS_CONN_ESTABLI_CNF (msg_p).errCode == AS_TERMINATED_NAS)) {
|
||||||
nas_proc_establish_cnf(NAS_CONN_ESTABLI_CNF (msg_p).nasMsg.data, NAS_CONN_ESTABLI_CNF (msg_p).nasMsg.length);
|
nas_proc_establish_cnf(user, NAS_CONN_ESTABLI_CNF (msg_p).nasMsg.data, NAS_CONN_ESTABLI_CNF (msg_p).nasMsg.length);
|
||||||
|
|
||||||
/* TODO checks if NAS will free the nas message, better to do it there anyway! */
|
/* TODO checks if NAS will free the nas message, better to do it there anyway! */
|
||||||
// result = itti_free (ITTI_MSG_ORIGIN_ID(msg_p), NAS_CONN_ESTABLI_CNF(msg_p).nasMsg.data);
|
// result = itti_free (ITTI_MSG_ORIGIN_ID(msg_p), NAS_CONN_ESTABLI_CNF(msg_p).nasMsg.data);
|
||||||
@@ -176,7 +176,7 @@ void *nas_ue_task(void *args_p)
|
|||||||
LOG_I(NAS, "[UE %d] Received %s: cause %u\n", Mod_id, msg_name,
|
LOG_I(NAS, "[UE %d] Received %s: cause %u\n", Mod_id, msg_name,
|
||||||
NAS_CONN_RELEASE_IND (msg_p).cause);
|
NAS_CONN_RELEASE_IND (msg_p).cause);
|
||||||
|
|
||||||
nas_proc_release_ind (NAS_CONN_RELEASE_IND (msg_p).cause);
|
nas_proc_release_ind (user, NAS_CONN_RELEASE_IND (msg_p).cause);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NAS_UPLINK_DATA_CNF:
|
case NAS_UPLINK_DATA_CNF:
|
||||||
@@ -184,9 +184,9 @@ void *nas_ue_task(void *args_p)
|
|||||||
NAS_UPLINK_DATA_CNF (msg_p).UEid, NAS_UPLINK_DATA_CNF (msg_p).errCode);
|
NAS_UPLINK_DATA_CNF (msg_p).UEid, NAS_UPLINK_DATA_CNF (msg_p).errCode);
|
||||||
|
|
||||||
if (NAS_UPLINK_DATA_CNF (msg_p).errCode == AS_SUCCESS) {
|
if (NAS_UPLINK_DATA_CNF (msg_p).errCode == AS_SUCCESS) {
|
||||||
nas_proc_ul_transfer_cnf ();
|
nas_proc_ul_transfer_cnf (user);
|
||||||
} else {
|
} else {
|
||||||
nas_proc_ul_transfer_rej ();
|
nas_proc_ul_transfer_rej (user);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@@ -195,7 +195,7 @@ void *nas_ue_task(void *args_p)
|
|||||||
LOG_I(NAS, "[UE %d] Received %s: UEid %u, length %u\n", Mod_id, msg_name,
|
LOG_I(NAS, "[UE %d] Received %s: UEid %u, length %u\n", Mod_id, msg_name,
|
||||||
NAS_DOWNLINK_DATA_IND (msg_p).UEid, NAS_DOWNLINK_DATA_IND (msg_p).nasMsg.length);
|
NAS_DOWNLINK_DATA_IND (msg_p).UEid, NAS_DOWNLINK_DATA_IND (msg_p).nasMsg.length);
|
||||||
|
|
||||||
nas_proc_dl_transfer_ind (NAS_DOWNLINK_DATA_IND(msg_p).nasMsg.data, NAS_DOWNLINK_DATA_IND(msg_p).nasMsg.length);
|
nas_proc_dl_transfer_ind (user, NAS_DOWNLINK_DATA_IND(msg_p).nasMsg.data, NAS_DOWNLINK_DATA_IND(msg_p).nasMsg.length);
|
||||||
|
|
||||||
if (0) {
|
if (0) {
|
||||||
/* TODO checks if NAS will free the nas message, better to do it there anyway! */
|
/* TODO checks if NAS will free the nas message, better to do it there anyway! */
|
||||||
|
|||||||
+20
-20
@@ -1168,7 +1168,7 @@ static int _nas_user_proc_cops(nas_user_t *user, const at_command_t *data)
|
|||||||
if (ret_code != RETURNerror) {
|
if (ret_code != RETURNerror) {
|
||||||
if (mode == AT_COPS_DEREG) {
|
if (mode == AT_COPS_DEREG) {
|
||||||
/* Force an attempt to deregister from the network */
|
/* Force an attempt to deregister from the network */
|
||||||
ret_code = nas_proc_deregister();
|
ret_code = nas_proc_deregister(user);
|
||||||
|
|
||||||
if (ret_code != RETURNok) {
|
if (ret_code != RETURNok) {
|
||||||
LOG_TRACE(ERROR, "USR-MAIN - Network deregistration failed");
|
LOG_TRACE(ERROR, "USR-MAIN - Network deregistration failed");
|
||||||
@@ -1178,7 +1178,7 @@ static int _nas_user_proc_cops(nas_user_t *user, const at_command_t *data)
|
|||||||
} else if (mode != AT_COPS_FORMAT) {
|
} else if (mode != AT_COPS_FORMAT) {
|
||||||
/* Force an attempt to automatically/manualy select
|
/* Force an attempt to automatically/manualy select
|
||||||
* and register the GSM/UMTS/EPS network operator */
|
* and register the GSM/UMTS/EPS network operator */
|
||||||
ret_code = nas_proc_register(mode, format,
|
ret_code = nas_proc_register(user, mode, format,
|
||||||
&data->command.cops.plmn, AcT);
|
&data->command.cops.plmn, AcT);
|
||||||
|
|
||||||
if (ret_code != RETURNok) {
|
if (ret_code != RETURNok) {
|
||||||
@@ -1198,7 +1198,7 @@ static int _nas_user_proc_cops(nas_user_t *user, const at_command_t *data)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Get the current network registration data */
|
/* Get the current network registration data */
|
||||||
ret_code = nas_proc_get_reg_data(&mode,
|
ret_code = nas_proc_get_reg_data(user, &mode,
|
||||||
&oper_is_selected, read_format,
|
&oper_is_selected, read_format,
|
||||||
&cops->get.plmn, &cops->get.AcT);
|
&cops->get.plmn, &cops->get.AcT);
|
||||||
|
|
||||||
@@ -1236,7 +1236,7 @@ static int _nas_user_proc_cops(nas_user_t *user, const at_command_t *data)
|
|||||||
* Test command returns a set of parameters, each representing
|
* Test command returns a set of parameters, each representing
|
||||||
* an operator present in the network.
|
* an operator present in the network.
|
||||||
*/
|
*/
|
||||||
cops->tst.size = nas_proc_get_oper_list(&cops->tst.data);
|
cops->tst.size = nas_proc_get_oper_list(user, &cops->tst.data);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -1308,9 +1308,9 @@ static int _nas_user_proc_cgatt(nas_user_t *user, const at_command_t *data)
|
|||||||
ret_code = RETURNerror;
|
ret_code = RETURNerror;
|
||||||
|
|
||||||
if (data->command.cgatt.state == AT_CGATT_ATTACHED) {
|
if (data->command.cgatt.state == AT_CGATT_ATTACHED) {
|
||||||
ret_code = nas_proc_attach();
|
ret_code = nas_proc_attach(user);
|
||||||
} else if (data->command.cgatt.state == AT_CGATT_DETACHED) {
|
} else if (data->command.cgatt.state == AT_CGATT_DETACHED) {
|
||||||
ret_code = nas_proc_detach(FALSE);
|
ret_code = nas_proc_detach(user, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret_code != RETURNok) {
|
if (ret_code != RETURNok) {
|
||||||
@@ -1328,7 +1328,7 @@ static int _nas_user_proc_cgatt(nas_user_t *user, const at_command_t *data)
|
|||||||
/*
|
/*
|
||||||
* Read command returns the current EPS service state.
|
* Read command returns the current EPS service state.
|
||||||
*/
|
*/
|
||||||
if (nas_proc_get_attach_status() != TRUE) {
|
if (nas_proc_get_attach_status(user) != TRUE) {
|
||||||
cgatt->state = AT_CGATT_DETACHED;
|
cgatt->state = AT_CGATT_DETACHED;
|
||||||
} else {
|
} else {
|
||||||
cgatt->state = AT_CGATT_ATTACHED;
|
cgatt->state = AT_CGATT_ATTACHED;
|
||||||
@@ -1474,7 +1474,7 @@ static int _nas_user_proc_creg(nas_user_t *user, const at_command_t *data)
|
|||||||
case AT_CREG_OFF:
|
case AT_CREG_OFF:
|
||||||
case AT_CREG_ON:
|
case AT_CREG_ON:
|
||||||
/* Get network registration status */
|
/* Get network registration status */
|
||||||
ret_code = nas_proc_get_reg_status(&creg->stat);
|
ret_code = nas_proc_get_reg_status(user, &creg->stat);
|
||||||
|
|
||||||
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");
|
||||||
@@ -1623,7 +1623,7 @@ static int _nas_user_proc_cgreg(nas_user_t *user, const at_command_t *data)
|
|||||||
case AT_CGREG_OFF:
|
case AT_CGREG_OFF:
|
||||||
case AT_CGREG_ON:
|
case AT_CGREG_ON:
|
||||||
/* Get network registration status */
|
/* Get network registration status */
|
||||||
ret_code = nas_proc_get_reg_status(&cgreg->stat);
|
ret_code = nas_proc_get_reg_status(user, &cgreg->stat);
|
||||||
|
|
||||||
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");
|
||||||
@@ -1776,7 +1776,7 @@ static int _nas_user_proc_cereg(nas_user_t *user, const at_command_t *data)
|
|||||||
switch (n) {
|
switch (n) {
|
||||||
case AT_CEREG_BOTH:
|
case AT_CEREG_BOTH:
|
||||||
/* Get EPS location information */
|
/* Get EPS location information */
|
||||||
ret_code = nas_proc_get_loc_info(cereg->tac, cereg->ci,
|
ret_code = nas_proc_get_loc_info(user, cereg->tac, cereg->ci,
|
||||||
&cereg->AcT);
|
&cereg->AcT);
|
||||||
|
|
||||||
if (ret_code != RETURNok) {
|
if (ret_code != RETURNok) {
|
||||||
@@ -1799,7 +1799,7 @@ static int _nas_user_proc_cereg(nas_user_t *user, const at_command_t *data)
|
|||||||
case AT_CEREG_OFF:
|
case AT_CEREG_OFF:
|
||||||
case AT_CEREG_ON:
|
case AT_CEREG_ON:
|
||||||
/* Get network registration status */
|
/* Get network registration status */
|
||||||
ret_code = nas_proc_get_reg_status(&cereg->stat);
|
ret_code = nas_proc_get_reg_status(user, &cereg->stat);
|
||||||
|
|
||||||
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");
|
||||||
@@ -2022,10 +2022,10 @@ static int _nas_user_proc_cgdcont(nas_user_t *user, const at_command_t *data)
|
|||||||
if (reset_pdn) {
|
if (reset_pdn) {
|
||||||
/* A special form of the set command, +CGDCONT=<cid> causes
|
/* A special form of the set command, +CGDCONT=<cid> causes
|
||||||
* the values for context number <cid> to become undefined */
|
* the values for context number <cid> to become undefined */
|
||||||
ret_code = nas_proc_reset_pdn(cid);
|
ret_code = nas_proc_reset_pdn(user, cid);
|
||||||
} else {
|
} else {
|
||||||
/* Define a new PDN connection */
|
/* Define a new PDN connection */
|
||||||
ret_code = nas_proc_set_pdn(cid, pdn_type, apn,
|
ret_code = nas_proc_set_pdn(user, cid, pdn_type, apn,
|
||||||
ipv4_addr_allocation, emergency,
|
ipv4_addr_allocation, emergency,
|
||||||
p_cscf, im_cn_signalling);
|
p_cscf, im_cn_signalling);
|
||||||
}
|
}
|
||||||
@@ -2043,7 +2043,7 @@ static int _nas_user_proc_cgdcont(nas_user_t *user, const at_command_t *data)
|
|||||||
* Read command returns the current settings for each
|
* Read command returns the current settings for each
|
||||||
* defined PDN connection/default EPS bearer context
|
* defined PDN connection/default EPS bearer context
|
||||||
*/
|
*/
|
||||||
cgdcont->n_pdns = nas_proc_get_pdn_param(cgdcont->cid,
|
cgdcont->n_pdns = nas_proc_get_pdn_param(user, cgdcont->cid,
|
||||||
cgdcont->PDP_type,
|
cgdcont->PDP_type,
|
||||||
cgdcont->APN,
|
cgdcont->APN,
|
||||||
AT_CGDCONT_RESP_SIZE);
|
AT_CGDCONT_RESP_SIZE);
|
||||||
@@ -2061,7 +2061,7 @@ static int _nas_user_proc_cgdcont(nas_user_t *user, const at_command_t *data)
|
|||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
/* Get the maximum value of a PDN context identifier */
|
/* Get the maximum value of a PDN context identifier */
|
||||||
int cid_max = nas_proc_get_pdn_range();
|
int cid_max = nas_proc_get_pdn_range(user);
|
||||||
|
|
||||||
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 */
|
||||||
@@ -2164,9 +2164,9 @@ static int _nas_user_proc_cgact(nas_user_t *user, const at_command_t *data)
|
|||||||
ret_code = RETURNerror;
|
ret_code = RETURNerror;
|
||||||
|
|
||||||
if (state == AT_CGACT_DEACTIVATED) {
|
if (state == AT_CGACT_DEACTIVATED) {
|
||||||
ret_code = nas_proc_deactivate_pdn(cid);
|
ret_code = nas_proc_deactivate_pdn(user, cid);
|
||||||
} else if (state == AT_CGACT_ACTIVATED) {
|
} else if (state == AT_CGACT_ACTIVATED) {
|
||||||
ret_code = nas_proc_activate_pdn(cid);
|
ret_code = nas_proc_activate_pdn(user, cid);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret_code != RETURNok) {
|
if (ret_code != RETURNok) {
|
||||||
@@ -2184,7 +2184,7 @@ static int _nas_user_proc_cgact(nas_user_t *user, const at_command_t *data)
|
|||||||
* The read command returns the current activation states for
|
* The read command returns the current activation states for
|
||||||
* all the defined PDN/EPS bearer contexts
|
* all the defined PDN/EPS bearer contexts
|
||||||
*/
|
*/
|
||||||
cgact->n_pdns = nas_proc_get_pdn_status(cgact->cid, cgact->state,
|
cgact->n_pdns = nas_proc_get_pdn_status(user, cgact->cid, cgact->state,
|
||||||
AT_CGACT_RESP_SIZE);
|
AT_CGACT_RESP_SIZE);
|
||||||
|
|
||||||
if (cgact->n_pdns == 0) {
|
if (cgact->n_pdns == 0) {
|
||||||
@@ -2517,7 +2517,7 @@ static int _nas_user_proc_cgpaddr(nas_user_t *user, const at_command_t *data)
|
|||||||
/*
|
/*
|
||||||
* Get the PDP addresses
|
* Get the PDP addresses
|
||||||
*/
|
*/
|
||||||
cgpaddr->n_pdns = nas_proc_get_pdn_addr(cid, cgpaddr->cid,
|
cgpaddr->n_pdns = nas_proc_get_pdn_addr(user, cid, cgpaddr->cid,
|
||||||
cgpaddr->PDP_addr_1,
|
cgpaddr->PDP_addr_1,
|
||||||
cgpaddr->PDP_addr_2,
|
cgpaddr->PDP_addr_2,
|
||||||
AT_CGPADDR_RESP_SIZE);
|
AT_CGPADDR_RESP_SIZE);
|
||||||
@@ -2533,7 +2533,7 @@ static int _nas_user_proc_cgpaddr(nas_user_t *user, const at_command_t *data)
|
|||||||
/*
|
/*
|
||||||
* The test command returns a list of defined <cid>s.
|
* The test command returns a list of defined <cid>s.
|
||||||
*/
|
*/
|
||||||
cgpaddr->n_pdns = nas_proc_get_pdn_addr(cid, cgpaddr->cid,
|
cgpaddr->n_pdns = nas_proc_get_pdn_addr(user, cid, cgpaddr->cid,
|
||||||
cgpaddr->PDP_addr_1,
|
cgpaddr->PDP_addr_1,
|
||||||
cgpaddr->PDP_addr_2,
|
cgpaddr->PDP_addr_2,
|
||||||
AT_CGPADDR_RESP_SIZE);
|
AT_CGPADDR_RESP_SIZE);
|
||||||
|
|||||||
Reference in New Issue
Block a user