From b3fda596b16d0738317884c436eca8128bf3e5eb Mon Sep 17 00:00:00 2001
From: winckel <winckel@eurecom.fr>
Date: Sun, 22 Dec 2013 11:36:48 +0000
Subject: [PATCH] Created function to set received some data in user buffer
(used in simulated UserProcess mode).
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4808 818b1a75-f10b-46b9-bf7c-635c3b92a50f
---
.../NAS/EURECOM-NAS/src/api/user/user_api.c | 410 ++++++++++--------
.../NAS/EURECOM-NAS/src/api/user/user_api.h | 1 +
2 files changed, 221 insertions(+), 190 deletions(-)
diff --git a/openair-cn/NAS/EURECOM-NAS/src/api/user/user_api.c b/openair-cn/NAS/EURECOM-NAS/src/api/user/user_api.c
index 8618d25824..b946a92bf7 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/api/user/user_api.c
+++ b/openair-cn/NAS/EURECOM-NAS/src/api/user/user_api.c
@@ -1,21 +1,21 @@
/*****************************************************************************
- Eurecom OpenAirInterface 3
- Copyright(c) 2012 Eurecom
+ Eurecom OpenAirInterface 3
+ Copyright(c) 2012 Eurecom
-Source user_api.c
+Source user_api.c
-Version 0.1
+Version 0.1
-Date 2012/02/28
+Date 2012/02/28
-Product NAS stack
+Product NAS stack
-Subsystem Application Programming Interface
+Subsystem Application Programming Interface
-Author Frederic Maurel
+Author Frederic Maurel
-Description Implements the API used by the NAS layer running in the UE
- to send/receive message to/from the user application layer
+Description Implements the API used by the NAS layer running in the UE
+ to send/receive message to/from the user application layer
*****************************************************************************/
@@ -60,15 +60,15 @@ static int _user_api_send(at_response_t* data);
/* -------------------
* Connection endpoint
* -------------------
- * The connection endpoint is used to send/receive data to/from the
- * user application layer. Its definition depends on the underlaying
- * mechanism chosen to communicate (network socket, I/O terminal device).
- * A connection endpoint is handled using an identifier, and functions
- * used to retreive the file descriptor actually allocated by the system,
- * to receive data, to send data, and to perform clean up when connection
- * is shut down.
- * Only one single end to end connection with the user is managed at a
- * time.
+ * The connection endpoint is used to send/receive data to/from the
+ * user application layer. Its definition depends on the underlaying
+ * mechanism chosen to communicate (network socket, I/O terminal device).
+ * A connection endpoint is handled using an identifier, and functions
+ * used to retreive the file descriptor actually allocated by the system,
+ * to receive data, to send data, and to perform clean up when connection
+ * is shut down.
+ * Only one single end to end connection with the user is managed at a
+ * time.
*/
static struct {
/* Connection endpoint reference */
@@ -114,19 +114,19 @@ static struct {
/****************************************************************************
** **
- ** Name: user_api_initialize() **
+ ** Name: user_api_initialize() **
** **
** Description: Initializes the user API from which the NAS layer **
- ** will send/receive messages to/from the user application **
- ** layer **
+ ** will send/receive messages to/from the user application **
+ ** layer **
** **
- ** Inputs: host: The name of the host from which the user **
- ** application layer will connect **
- ** port: The local port number **
- ** Others: None **
+ ** Inputs: host: The name of the host from which the user **
+ ** application layer will connect **
+ ** port: The local port number **
+ ** Others: None **
** **
- ** Outputs: Return: RETURNerror, RETURNok **
- ** Others: _user_api_id **
+ ** Outputs: Return: RETURNerror, RETURNok **
+ ** Others: _user_api_id **
** **
***************************************************************************/
int user_api_initialize(const char* host, const char* port,
@@ -137,73 +137,73 @@ int user_api_initialize(const char* host, const char* port,
gethostname(_user_api_send_buffer, USER_API_SEND_BUFFER_SIZE);
if (devname != NULL) {
- /* Initialize device handlers */
- _user_api_id.open = device_open;
- _user_api_id.getfd = device_get_fd;
- _user_api_id.recv = device_read;
- _user_api_id.send = device_write;
- _user_api_id.close = device_close;
-
- /* Initialize communication channel */
- _user_api_id.endpoint = USER_API_OPEN(DEVICE, devname, devparams);
- if (_user_api_id.endpoint == NULL) {
- LOG_TRACE(ERROR, "USR-API - Failed to open connection endpoint, "
- "%s", strerror(errno));
- LOG_FUNC_RETURN (RETURNerror);
- }
-
- LOG_TRACE(INFO, "USR-API - User's communication device %d is OPENED "
- "on %s/%s", user_api_get_fd(), _user_api_send_buffer, devname);
+ /* Initialize device handlers */
+ _user_api_id.open = device_open;
+ _user_api_id.getfd = device_get_fd;
+ _user_api_id.recv = device_read;
+ _user_api_id.send = device_write;
+ _user_api_id.close = device_close;
+
+ /* Initialize communication channel */
+ _user_api_id.endpoint = USER_API_OPEN(DEVICE, devname, devparams);
+ if (_user_api_id.endpoint == NULL) {
+ LOG_TRACE(ERROR, "USR-API - Failed to open connection endpoint, "
+ "%s", strerror(errno));
+ LOG_FUNC_RETURN (RETURNerror);
+ }
+
+ LOG_TRACE(INFO, "USR-API - User's communication device %d is OPENED "
+ "on %s/%s", user_api_get_fd(), _user_api_send_buffer, devname);
}
else {
- /* Initialize network socket handlers */
- _user_api_id.open = socket_udp_open;
- _user_api_id.getfd = socket_get_fd;
- _user_api_id.recv = socket_recv;
- _user_api_id.send = socket_send;
- _user_api_id.close = socket_close;
-
- /* Initialize communication channel */
- _user_api_id.endpoint = USER_API_OPEN(SOCKET_SERVER, host, port);
- if (_user_api_id.endpoint == NULL) {
- const char* error = ( (errno < 0) ?
- gai_strerror(errno) : strerror(errno) );
- LOG_TRACE(ERROR, "USR-API - Failed to open connection endpoint, "
- "%s", error);
- LOG_FUNC_RETURN (RETURNerror);
- }
-
- LOG_TRACE(INFO, "USR-API - User's UDP socket %d is BOUND to %s/%s",
- user_api_get_fd(), _user_api_send_buffer, port);
+ /* Initialize network socket handlers */
+ _user_api_id.open = socket_udp_open;
+ _user_api_id.getfd = socket_get_fd;
+ _user_api_id.recv = socket_recv;
+ _user_api_id.send = socket_send;
+ _user_api_id.close = socket_close;
+
+ /* Initialize communication channel */
+ _user_api_id.endpoint = USER_API_OPEN(SOCKET_SERVER, host, port);
+ if (_user_api_id.endpoint == NULL) {
+ const char* error = ( (errno < 0) ?
+ gai_strerror(errno) : strerror(errno) );
+ LOG_TRACE(ERROR, "USR-API - Failed to open connection endpoint, "
+ "%s", error);
+ LOG_FUNC_RETURN (RETURNerror);
+ }
+
+ LOG_TRACE(INFO, "USR-API - User's UDP socket %d is BOUND to %s/%s",
+ user_api_get_fd(), _user_api_send_buffer, port);
}
/* Register the asynchronous notification handlers */
if (user_ind_register(USER_IND_REG, 0, _user_api_registration_handler) != RETURNok) {
- LOG_TRACE(WARNING, "USR-API - "
- "Failed to register registration notification");
+ LOG_TRACE(WARNING, "USR-API - "
+ "Failed to register registration notification");
}
else if (user_ind_register(USER_IND_LOC, 0, _user_api_location_handler) != RETURNok) {
- LOG_TRACE(WARNING, "USR-API - "
- "Failed to register location notification");
+ LOG_TRACE(WARNING, "USR-API - "
+ "Failed to register location notification");
}
else if (user_ind_register(USER_IND_PLMN, 0, _user_api_network_handler) != RETURNok) {
- LOG_TRACE(WARNING, "USR-API - "
- "Failed to register network notification");
+ LOG_TRACE(WARNING, "USR-API - "
+ "Failed to register network notification");
}
else if (user_ind_register(USER_IND_PLMN, 0, NULL) != RETURNok) {
- LOG_TRACE(WARNING, "USR-API - Failed to enable network notification");
+ LOG_TRACE(WARNING, "USR-API - Failed to enable network notification");
}
else if (user_ind_register(USER_IND_PDN, 0, _user_api_pdn_connection_handler) != RETURNok) {
- LOG_TRACE(WARNING, "USR-API - "
- "Failed to register PDN connection notification");
+ LOG_TRACE(WARNING, "USR-API - "
+ "Failed to register PDN connection notification");
}
else if (user_ind_register(USER_IND_PDN, AT_CGACT, NULL) != RETURNok) {
- LOG_TRACE(WARNING, "USR-API - "
- "Failed to enable PDN connection notification");
+ LOG_TRACE(WARNING, "USR-API - "
+ "Failed to enable PDN connection notification");
}
else {
- LOG_TRACE(INFO, "USR-API - "
- "Notification handlers successfully registered");
+ LOG_TRACE(INFO, "USR-API - "
+ "Notification handlers successfully registered");
}
LOG_FUNC_RETURN (RETURNok);
@@ -211,18 +211,18 @@ int user_api_initialize(const char* host, const char* port,
/****************************************************************************
** **
- ** Name: user_api_get_fd() **
+ ** Name: user_api_get_fd() **
** **
** Description: Get the file descriptor of the connection endpoint used **
- ** to send/receive messages to/from the user application **
- ** layer **
+ ** to send/receive messages to/from the user application **
+ ** layer **
** **
- ** Inputs: None **
- ** Others: _user_api_id **
+ ** Inputs: None **
+ ** Others: _user_api_id **
** **
- ** Outputs: Return: The file descriptor of the connection end- **
- ** point used by the user application layer **
- ** Others: None **
+ ** Outputs: Return: The file descriptor of the connection end- **
+ ** point used by the user application layer **
+ ** Others: None **
** **
***************************************************************************/
int user_api_get_fd(void)
@@ -233,42 +233,42 @@ int user_api_get_fd(void)
/****************************************************************************
** **
- ** Name: user_api_get_data() **
+ ** Name: user_api_get_data() **
** **
** Description: Get a generic pointer to the user data structure at the **
- ** given index. Casting to the proper type is necessary **
- ** before its usage. **
+ ** given index. Casting to the proper type is necessary **
+ ** before its usage. **
** **
- ** Inputs: index: Index of the user data structure to get **
- ** Others: _user_data **
+ ** Inputs: index: Index of the user data structure to get **
+ ** Others: _user_data **
** **
- ** Outputs: Return: A generic pointer to the user data **
- ** structure **
- ** Others: None **
+ ** Outputs: Return: A generic pointer to the user data **
+ ** structure **
+ ** Others: None **
** **
***************************************************************************/
const void* user_api_get_data(int index)
{
LOG_FUNC_IN;
if (index < _user_data.n_cmd) {
- LOG_FUNC_RETURN ((void*)(&_user_data.cmd[index]));
+ LOG_FUNC_RETURN ((void*)(&_user_data.cmd[index]));
}
LOG_FUNC_RETURN (NULL);
}
/****************************************************************************
** **
- ** Name: user_api_read_data() **
+ ** Name: user_api_read_data() **
** **
** Description: Read data received from the user application layer **
** **
- ** Inputs: fd: File descriptor of the connection endpoint **
- ** from which data have been received **
- ** Others: _user_api_id **
+ ** Inputs: fd: File descriptor of the connection endpoint **
+ ** from which data have been received **
+ ** Others: _user_api_id **
** **
- ** Outputs: Return: The number of bytes read when success; **
- ** RETURNerror Otherwise **
- ** Others: _user_api_recv_buffer, _user_api_id **
+ ** Outputs: Return: The number of bytes read when success; **
+ ** RETURNerror Otherwise **
+ ** Others: _user_api_recv_buffer, _user_api_id **
** **
***************************************************************************/
int user_api_read_data(int fd)
@@ -280,8 +280,8 @@ int user_api_read_data(int fd)
/* Sanity check */
int sfd = user_api_get_fd();
if (fd != sfd) {
- LOG_TRACE(ERROR, "USR-API - Endpoint %d is not the one created for communication with the user application layer (%d)", fd, sfd);
- LOG_FUNC_RETURN (RETURNerror);
+ LOG_TRACE(ERROR, "USR-API - Endpoint %d is not the one created for communication with the user application layer (%d)", fd, sfd);
+ LOG_FUNC_RETURN (RETURNerror);
}
memset(_user_api_recv_buffer, 0, USER_API_RECV_BUFFER_SIZE);
@@ -289,16 +289,16 @@ int user_api_read_data(int fd)
/* Receive data from the user application layer */
rbytes = USER_API_RECV(_user_api_recv_buffer, USER_API_RECV_BUFFER_SIZE);
if (rbytes == RETURNerror) {
- LOG_TRACE(ERROR, "USR-API - recv() failed, %s", strerror(errno));
- LOG_FUNC_RETURN (RETURNerror);
+ LOG_TRACE(ERROR, "USR-API - recv() failed, %s", strerror(errno));
+ LOG_FUNC_RETURN (RETURNerror);
}
else if (rbytes == 0) {
- //LOG_TRACE(WARNING, "USR-API - A signal was caught");
+ //LOG_TRACE(WARNING, "USR-API - A signal was caught");
}
else {
- LOG_TRACE(INFO, "USR-API - %d bytes received "
- "from the user application layer", rbytes);
- LOG_DUMP(_user_api_recv_buffer, rbytes);
+ LOG_TRACE(INFO, "USR-API - %d bytes received "
+ "from the user application layer", rbytes);
+ LOG_DUMP(_user_api_recv_buffer, rbytes);
}
LOG_FUNC_RETURN (rbytes);
@@ -306,34 +306,64 @@ int user_api_read_data(int fd)
/****************************************************************************
** **
- ** Name: user_api_send_data() **
+ ** Name: user_api_set_data() **
+ ** **
+ ** Description: Set content of data received buffer to allow loop back **
+ ** **
+ ** Inputs: message: Message to set into the received buffer **
+ ** **
+ ** Outputs: Return: The number of bytes write when success; **
+ ** RETURNerror Otherwise **
+ ** Others: _user_api_recv_buffer **
+ ** **
+ ***************************************************************************/
+int user_api_set_data(char *message)
+{
+ LOG_FUNC_IN;
+
+ int rbytes;
+
+ memset(_user_api_recv_buffer, 0, USER_API_RECV_BUFFER_SIZE);
+
+ strncpy(_user_api_recv_buffer, message, USER_API_RECV_BUFFER_SIZE);
+ rbytes = strlen(_user_api_recv_buffer);
+
+ LOG_TRACE(INFO, "USR-API - %d bytes write", rbytes);
+ LOG_DUMP(_user_api_recv_buffer, rbytes);
+
+ LOG_FUNC_RETURN (rbytes);
+}
+
+/****************************************************************************
+ ** **
+ ** Name: user_api_send_data() **
** **
** Description: Send data to the user application layer **
** **
- ** Inputs: fd: File descriptor of the connection endpoint **
- ** to which data have to be sent **
- ** length: Number of bytes to send **
- ** Others: _user_api_send_buffer, _user_api_id **
+ ** Inputs: fd: File descriptor of the connection endpoint **
+ ** to which data have to be sent **
+ ** length: Number of bytes to send **
+ ** Others: _user_api_send_buffer, _user_api_id **
** **
- ** Outputs: Return: The number of bytes sent when success; **
- ** RETURNerror Otherwise **
- ** Others: None **
+ ** Outputs: Return: The number of bytes sent when success; **
+ ** RETURNerror Otherwise **
+ ** Others: None **
** **
***************************************************************************/
static int _user_api_send_data(int length)
{
int sbytes = USER_API_SEND(_user_api_send_buffer, length);
if (sbytes == RETURNerror) {
- LOG_TRACE(ERROR, "USR-API - send() failed, %s", strerror(errno));
- return RETURNerror;
+ LOG_TRACE(ERROR, "USR-API - send() failed, %s", strerror(errno));
+ return RETURNerror;
}
else if (sbytes == 0) {
- LOG_TRACE(WARNING, "USR-API - A signal was caught");
+ LOG_TRACE(WARNING, "USR-API - A signal was caught");
}
else {
- LOG_TRACE(INFO, "USR-API - %d bytes sent "
- "to the user application layer", sbytes);
- LOG_DUMP(_user_api_send_buffer, sbytes);
+ LOG_TRACE(INFO, "USR-API - %d bytes sent "
+ "to the user application layer", sbytes);
+ LOG_DUMP(_user_api_send_buffer, sbytes);
}
return sbytes;
@@ -345,32 +375,32 @@ int user_api_send_data(int fd, int length)
/* Sanity check */
int sfd = user_api_get_fd();
if (fd != sfd) {
- LOG_TRACE(ERROR, "USR-API - Endpoint %d is not the one created for communication with the user application layer (%d)", fd, sfd);
- LOG_FUNC_RETURN (RETURNerror);
+ LOG_TRACE(ERROR, "USR-API - Endpoint %d is not the one created for communication with the user application layer (%d)", fd, sfd);
+ LOG_FUNC_RETURN (RETURNerror);
}
/* Send data to the user application layer */
int sbytes = 0;
if (length > 0) {
- sbytes = _user_api_send_data(length);
+ sbytes = _user_api_send_data(length);
}
LOG_FUNC_RETURN (sbytes);
}
/****************************************************************************
** **
- ** Name: user_api_close() **
+ ** Name: user_api_close() **
** **
** Description: Close the user API from which the NAS layer sent/received **
- ** messages to/from the user application layer **
+ ** messages to/from the user application layer **
** **
- ** Inputs: fd: File descriptor of the connection endpoint **
- ** allocated by the system to communicate **
- ** with the user application layer **
- ** Others: None **
+ ** Inputs: fd: File descriptor of the connection endpoint **
+ ** allocated by the system to communicate **
+ ** with the user application layer **
+ ** Others: None **
** **
- ** Outputs: Return: None **
- ** Others: _user_api_id **
+ ** Outputs: Return: None **
+ ** Others: _user_api_id **
** **
***************************************************************************/
void user_api_close(int fd)
@@ -416,31 +446,31 @@ int user_api_decode_data(int length)
/* Parse the AT command line */
LOG_TRACE(INFO, "USR-API - Decode user data: %s", _user_api_recv_buffer);
_user_data.n_cmd = at_command_decode(_user_api_recv_buffer, length,
- _user_data.cmd);
+ _user_data.cmd);
if (_user_data.n_cmd > 0) {
- /* AT command data received from the user application layer
- * has been successfully decoded */
- LOG_TRACE(INFO, "USR-API - %d AT command%s ha%s been successfully "
- "decoded", _user_data.n_cmd,
- (_user_data.n_cmd > 1) ? "s" : "",
- (_user_data.n_cmd > 1) ? "ve" : "s");
+ /* AT command data received from the user application layer
+ * has been successfully decoded */
+ LOG_TRACE(INFO, "USR-API - %d AT command%s ha%s been successfully "
+ "decoded", _user_data.n_cmd,
+ (_user_data.n_cmd > 1) ? "s" : "",
+ (_user_data.n_cmd > 1) ? "ve" : "s");
}
else
{
- int bytes;
+ int bytes;
- /* Failed to decode AT command data received from the user
- * application layer; Return syntax error code message */
- LOG_TRACE(ERROR, "USR-API - Syntax error: Failed to decode "
- "AT command data %s", _user_api_recv_buffer);
+ /* Failed to decode AT command data received from the user
+ * application layer; Return syntax error code message */
+ LOG_TRACE(ERROR, "USR-API - Syntax error: Failed to decode "
+ "AT command data %s", _user_api_recv_buffer);
- /* Encode the syntax error code message */
- bytes = at_error_encode(_user_api_send_buffer, AT_ERROR_SYNTAX,
- AT_ERROR_OPERATION_NOT_SUPPORTED);
+ /* Encode the syntax error code message */
+ bytes = at_error_encode(_user_api_send_buffer, AT_ERROR_SYNTAX,
+ AT_ERROR_OPERATION_NOT_SUPPORTED);
- /* Send the syntax error code message */
- (void) _user_api_send_data(bytes);
+ /* Send the syntax error code message */
+ (void) _user_api_send_data(bytes);
}
LOG_FUNC_RETURN (_user_data.n_cmd);
@@ -475,27 +505,27 @@ int user_api_encode_data(const void* data, int success_code)
/* Encode AT command error message */
if (user_data->cause_code != AT_ERROR_SUCCESS)
{
- bytes = at_error_encode(_user_api_send_buffer, AT_ERROR_CME,
- user_data->cause_code);
+ bytes = at_error_encode(_user_api_send_buffer, AT_ERROR_CME,
+ user_data->cause_code);
}
/* Encode AT command response message */
else
{
- bytes = at_response_encode(_user_api_send_buffer, user_data);
+ bytes = at_response_encode(_user_api_send_buffer, user_data);
- /* Add success result code */
- if ( (success_code) && (bytes != RETURNerror) ) {
- bytes += at_error_encode(&_user_api_send_buffer[bytes],
- AT_ERROR_OK, 0);
- }
+ /* Add success result code */
+ if ( (success_code) && (bytes != RETURNerror) ) {
+ bytes += at_error_encode(&_user_api_send_buffer[bytes],
+ AT_ERROR_OK, 0);
+ }
}
if (bytes != RETURNerror) {
- LOG_TRACE(INFO, "USR-API - %d bytes encoded", bytes);
+ LOG_TRACE(INFO, "USR-API - %d bytes encoded", bytes);
}
else {
- LOG_TRACE(ERROR, "USR-API - Syntax error: Failed to encode AT "
- "response data (%d)", user_data->id);
+ LOG_TRACE(ERROR, "USR-API - Syntax error: Failed to encode AT "
+ "response data (%d)", user_data->id);
}
LOG_FUNC_RETURN (bytes);
@@ -525,39 +555,39 @@ int user_api_encode_data(const void* data, int success_code)
** **
***************************************************************************/
int user_api_emm_callback(Stat_t stat, tac_t tac, ci_t ci, AcT_t AcT,
- const char* data, size_t size)
+ const char* data, size_t size)
{
LOG_FUNC_IN;
int rc = RETURNok;
if (size > 1) {
- /*
- * The list of available operators present in the network has to be
- * displayed to the user application
- */
- rc = user_ind_notify(USER_IND_PLMN, (void*)data, size);
+ /*
+ * The list of available operators present in the network has to be
+ * displayed to the user application
+ */
+ rc = user_ind_notify(USER_IND_PLMN, (void*)data, size);
}
else {
- user_indication_t ind;
- ind.notification.reg.status = stat;
- if (size > 0) {
- /* The UE's network registration status has changed */
- rc = user_ind_notify(USER_IND_REG, (void*)&ind, 0);
- }
- if (rc != RETURNerror) {
- /* The UE's location area has changed or,
- * the UE's network registration status has changed and
- * only location information notification is enabled */
- ind.notification.loc.tac = tac;
- ind.notification.loc.ci = ci;
- ind.notification.loc.AcT = AcT;
- rc = user_ind_notify(USER_IND_LOC, (void*)&ind, 0);
- }
+ user_indication_t ind;
+ ind.notification.reg.status = stat;
+ if (size > 0) {
+ /* The UE's network registration status has changed */
+ rc = user_ind_notify(USER_IND_REG, (void*)&ind, 0);
+ }
+ if (rc != RETURNerror) {
+ /* The UE's location area has changed or,
+ * the UE's network registration status has changed and
+ * only location information notification is enabled */
+ ind.notification.loc.tac = tac;
+ ind.notification.loc.ci = ci;
+ ind.notification.loc.AcT = AcT;
+ rc = user_ind_notify(USER_IND_LOC, (void*)&ind, 0);
+ }
}
if (rc != RETURNerror) {
- LOG_FUNC_RETURN (RETURNok);
+ LOG_FUNC_RETURN (RETURNok);
}
LOG_FUNC_RETURN (rc);
@@ -650,7 +680,7 @@ static int _user_api_send(at_response_t* data)
** **
***************************************************************************/
static int _user_api_registration_handler(unsigned char id, const void* data,
- size_t size)
+ size_t size)
{
LOG_FUNC_IN;
@@ -692,7 +722,7 @@ static int _user_api_registration_handler(unsigned char id, const void* data,
** **
***************************************************************************/
static int _user_api_location_handler(unsigned char id, const void* data,
- size_t size)
+ size_t size)
{
LOG_FUNC_IN;
@@ -709,8 +739,8 @@ static int _user_api_location_handler(unsigned char id, const void* data,
sprintf(at_response.response.cereg.tac, "%.4x", loc->tac); // two byte
sprintf(at_response.response.cereg.ci, "%.8x", loc->ci); // four byte
if (at_response.response.cereg.AcT != NET_ACCESS_UNAVAILABLE) {
- at_response.response.cereg.AcT = loc->AcT;
- at_response.mask |= AT_CEREG_RESP_ACT_MASK;
+ at_response.response.cereg.AcT = loc->AcT;
+ at_response.mask |= AT_CEREG_RESP_ACT_MASK;
}
/* Encode and send the AT command response message to the user */
@@ -738,7 +768,7 @@ static int _user_api_location_handler(unsigned char id, const void* data,
** **
***************************************************************************/
static int _user_api_network_handler(unsigned char id, const void* data,
- size_t size)
+ size_t size)
{
LOG_FUNC_IN;
@@ -776,7 +806,7 @@ static int _user_api_network_handler(unsigned char id, const void* data,
** **
***************************************************************************/
static int _user_api_pdn_connection_handler(unsigned char id, const void* data,
- size_t size)
+ size_t size)
{
LOG_FUNC_IN;
diff --git a/openair-cn/NAS/EURECOM-NAS/src/api/user/user_api.h b/openair-cn/NAS/EURECOM-NAS/src/api/user/user_api.h
index b1d83cc043..1d01acf2c7 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/api/user/user_api.h
+++ b/openair-cn/NAS/EURECOM-NAS/src/api/user/user_api.h
@@ -49,6 +49,7 @@ int user_api_get_fd(void);
const void* user_api_get_data(int index);
int user_api_read_data(int fd);
+int user_api_set_data(char *message);
int user_api_send_data(int fd, int length);
void user_api_close(int fd);
--
GitLab