Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Michael Black
OpenXG UE
Commits
895e1d5b
Commit
895e1d5b
authored
Jul 19, 2016
by
Frédéric Leroy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
UE/API/USER: rename _user_data to user_at_commands_t and move it to nas_user_t
parent
a399448c
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
38 additions
and
24 deletions
+38
-24
openair3/NAS/UE/API/USER/user_api.c
openair3/NAS/UE/API/USER/user_api.c
+13
-20
openair3/NAS/UE/API/USER/user_api.h
openair3/NAS/UE/API/USER/user_api.h
+13
-2
openair3/NAS/UE/UEprocess.c
openair3/NAS/UE/UEprocess.c
+1
-0
openair3/NAS/UE/nas_ue_task.c
openair3/NAS/UE/nas_ue_task.c
+6
-0
openair3/NAS/UE/nas_user.c
openair3/NAS/UE/nas_user.c
+2
-2
openair3/NAS/UE/user_defs.h
openair3/NAS/UE/user_defs.h
+3
-0
No files found.
openair3/NAS/UE/API/USER/user_api.c
View file @
895e1d5b
...
...
@@ -110,23 +110,16 @@ static struct {
* The buffer used to receive data from the user application layer
*/
#define USER_API_RECV_BUFFER_SIZE 4096
// FIXME not reentrant
static
char
_user_api_recv_buffer
[
USER_API_RECV_BUFFER_SIZE
];
/*
* The buffer used to send data to the user application layer
*/
#define USER_API_SEND_BUFFER_SIZE USER_API_RECV_BUFFER_SIZE
// FIXME not reentrant
static
char
_user_api_send_buffer
[
USER_API_SEND_BUFFER_SIZE
];
/*
* The decoded data received from the user application layer
*/
static
struct
{
int
n_cmd
;
/* number of user data to be processed */
#define USER_DATA_MAX 10
at_command_t
cmd
[
USER_DATA_MAX
];
/* user data to be processed */
}
_user_data
=
{};
/****************************************************************************/
/****************** E X P O R T E D F U N C T I O N S ******************/
/****************************************************************************/
...
...
@@ -261,12 +254,12 @@ int user_api_get_fd(void)
** Others: None **
** **
***************************************************************************/
const
void
*
user_api_get_data
(
int
index
)
const
void
*
user_api_get_data
(
user_at_commands_t
*
commands
,
int
index
)
{
LOG_FUNC_IN
;
if
(
index
<
_user_data
.
n_cmd
)
{
LOG_FUNC_RETURN
((
void
*
)(
&
_user_data
.
cmd
[
index
]));
if
(
index
<
commands
->
n_cmd
)
{
LOG_FUNC_RETURN
((
void
*
)(
&
commands
->
cmd
[
index
]));
}
LOG_FUNC_RETURN
(
NULL
);
...
...
@@ -458,22 +451,22 @@ void user_api_close(int fd)
** Others: _user_api_send_buffer, _user_data **
** **
***************************************************************************/
int
user_api_decode_data
(
int
length
)
int
user_api_decode_data
(
user_at_commands_t
*
commands
,
int
length
)
{
LOG_FUNC_IN
;
/* 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
);
commands
->
n_cmd
=
at_command_decode
(
_user_api_recv_buffer
,
length
,
commands
->
cmd
);
if
(
_user_data
.
n_cmd
>
0
)
{
if
(
commands
->
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"
);
"decoded"
,
commands
->
n_cmd
,
(
commands
->
n_cmd
>
1
)
?
"s"
:
""
,
(
commands
->
n_cmd
>
1
)
?
"ve"
:
"s"
);
}
else
{
int
bytes
;
...
...
@@ -490,7 +483,7 @@ int user_api_decode_data(int length)
(
void
)
_user_api_send_data
(
bytes
);
}
LOG_FUNC_RETURN
(
_user_data
.
n_cmd
);
LOG_FUNC_RETURN
(
commands
->
n_cmd
);
}
/****************************************************************************
...
...
openair3/NAS/UE/API/USER/user_api.h
View file @
895e1d5b
...
...
@@ -42,6 +42,7 @@ Description Implements the API used by the NAS layer running in the UE
#include "commonDef.h"
#include "networkDef.h"
#include "at_command.h"
/****************************************************************************/
/********************* G L O B A L C O N S T A N T S *******************/
...
...
@@ -51,6 +52,16 @@ Description Implements the API used by the NAS layer running in the UE
/************************ G L O B A L T Y P E S ************************/
/****************************************************************************/
/*
* The decoded data received from the user application layer
*/
typedef
struct
{
int
n_cmd
;
/* number of user data to be processed */
#define USER_DATA_MAX 10
at_command_t
cmd
[
USER_DATA_MAX
];
/* user data to be processed */
}
user_at_commands_t
;
/****************************************************************************/
/******************** G L O B A L V A R I A B L E S ********************/
/****************************************************************************/
...
...
@@ -65,14 +76,14 @@ int user_api_emm_callback(Stat_t stat, tac_t tac, ci_t ci, AcT_t AcT, const char
int
user_api_esm_callback
(
int
cid
,
network_pdn_state_t
state
);
int
user_api_get_fd
(
void
);
const
void
*
user_api_get_data
(
int
index
);
const
void
*
user_api_get_data
(
user_at_commands_t
*
commands
,
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
);
int
user_api_decode_data
(
int
length
);
int
user_api_decode_data
(
user_at_commands_t
*
commands
,
int
length
);
int
user_api_encode_data
(
const
void
*
data
,
int
add_success_code
);
#endif
/* __USER_API_H__ */
openair3/NAS/UE/UEprocess.c
View file @
895e1d5b
...
...
@@ -74,6 +74,7 @@ static void _nas_clean(int usr_fd, int net_fd);
uint8_t
usim_test
=
0
;
// FIXME user must be set up with right itti message instance
// FIXME allocate user and initialize its fields
nas_user_t
*
user
=
NULL
;
/****************************************************************************/
...
...
openair3/NAS/UE/nas_ue_task.c
View file @
895e1d5b
...
...
@@ -88,6 +88,12 @@ void *nas_ue_task(void *args_p)
itti_subscribe_event_fd
(
TASK_NAS_UE
,
user
->
fd
);
}
user
->
user_at_commands
=
calloc
(
1
,
sizeof
(
user_at_commands_t
));
if
(
user
->
user_at_commands
==
NULL
)
{
LOG_E
(
NAS
,
"[UE %d] Can't allocate memory for user_at_commands
\n
"
,
0
);
// FIXME stop here
}
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
);
...
...
openair3/NAS/UE/nas_user.c
View file @
895e1d5b
...
...
@@ -239,11 +239,11 @@ int nas_user_receive_and_process(nas_user_t *user, char *message)
}
/* Decode the user data message */
nb_command
=
user_api_decode_data
(
bytes
);
nb_command
=
user_api_decode_data
(
user
->
user_at_commands
,
bytes
);
for
(
i
=
0
;
i
<
nb_command
;
i
++
)
{
/* Get the user data to be processed */
const
void
*
data
=
user_api_get_data
(
i
);
const
void
*
data
=
user_api_get_data
(
user
->
user_at_commands
,
i
);
if
(
data
==
NULL
)
{
/* Failed to get user data at the given index;
...
...
openair3/NAS/UE/user_defs.h
View file @
895e1d5b
...
...
@@ -53,6 +53,7 @@ Description NAS type definition to manage a user equipment
#include "EMM/Authentication.h"
#include "EMM/IdleMode_defs.h"
#include "API/USIM/usim_api.h"
#include "API/USER/user_api.h"
#include "SecurityModeControl.h"
#include "userDef.h"
#include "at_response.h"
...
...
@@ -77,6 +78,8 @@ typedef struct {
//
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
//
user_at_commands_t
*
user_at_commands
;
//decoded data received from the user application layer
}
nas_user_t
;
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment