Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lizhongxiao
OpenXG-RAN
Commits
5ab2fccf
Commit
5ab2fccf
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
26538bb9
Changes
6
Hide 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 @
5ab2fccf
...
...
@@ -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 @
5ab2fccf
...
...
@@ -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 @
5ab2fccf
...
...
@@ -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 @
5ab2fccf
...
...
@@ -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 @
5ab2fccf
...
...
@@ -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 @
5ab2fccf
...
...
@@ -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