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
alex037yang
OpenXG-RAN
Commits
d94ae11f
Commit
d94ae11f
authored
Sep 20, 2018
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add test programs to verify F1U
parent
278fc6d7
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
360 additions
and
1 deletion
+360
-1
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+29
-1
openair2/LAYER2/PROTO_AGENT/cu_test.c
openair2/LAYER2/PROTO_AGENT/cu_test.c
+169
-0
openair2/LAYER2/PROTO_AGENT/du_test.c
openair2/LAYER2/PROTO_AGENT/du_test.c
+162
-0
No files found.
cmake_targets/CMakeLists.txt
View file @
d94ae11f
...
...
@@ -2062,6 +2062,34 @@ target_link_libraries (lte-softmodem
NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB
-Wl,--end-group z dl
)
add_executable
(
cu_test
${
OPENAIR2_DIR
}
/LAYER2/PROTO_AGENT/cu_test.c
${
OPENAIR2_DIR
}
/LAYER2/PROTO_AGENT/proto_agent_handler.c
${
OPENAIR2_DIR
}
/LAYER2/PROTO_AGENT/proto_agent_common.c
${
OPENAIR2_DIR
}
/LAYER2/PROTO_AGENT/proto_agent.c
${
OPENAIR2_DIR
}
/LAYER2/PROTO_AGENT/proto_agent_net_comm.c
${
OPENAIR2_DIR
}
/LAYER2/PROTO_AGENT/proto_agent_async.c
${
T_SOURCE
}
)
target_link_libraries
(
cu_test
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
FSPT_MSG_LIB
}
${
PROTOBUF_LIB
}
${
PROTO_AGENT_LIB
}
pthread UTIL
${
T_LIB
}
dl
)
add_executable
(
du_test
${
OPENAIR2_DIR
}
/LAYER2/PROTO_AGENT/du_test.c
${
OPENAIR2_DIR
}
/LAYER2/PROTO_AGENT/proto_agent_handler.c
${
OPENAIR2_DIR
}
/LAYER2/PROTO_AGENT/proto_agent_common.c
${
OPENAIR2_DIR
}
/LAYER2/PROTO_AGENT/proto_agent.c
${
OPENAIR2_DIR
}
/LAYER2/PROTO_AGENT/proto_agent_net_comm.c
${
OPENAIR2_DIR
}
/LAYER2/PROTO_AGENT/proto_agent_async.c
${
T_SOURCE
}
)
target_link_libraries
(
du_test
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
FSPT_MSG_LIB
}
${
PROTOBUF_LIB
}
${
PROTO_AGENT_LIB
}
pthread UTIL
${
T_LIB
}
dl
)
target_link_libraries
(
lte-softmodem
${
LIBXML2_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem pthread m
${
CONFIG_LIBRARIES
}
rt crypt
${
CRYPTO_LIBRARIES
}
${
OPENSSL_LIBRARIES
}
${
NETTLE_LIBRARIES
}
sctp
${
XFORMS_LIBRARIES
}
${
PROTOBUF_LIB
}
${
CMAKE_DL_LIBS
}
${
LIBYAML_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem
${
LIB_LMS_LIBRARIES
}
)
...
...
@@ -2310,7 +2338,7 @@ if (${T_TRACER})
#all "add_executable" definitions (except tests, rb_tool, updatefw)
lte-softmodem lte-softmodem-nos1 lte-uesoftmodem lte-uesoftmodem-nos1
dlsim_tm4 dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim
pdcchsim pucchsim prachsim syncsim ulsim
pdcchsim pucchsim prachsim syncsim ulsim
cu_test du_test
#all "add_library" definitions
ITTI RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB F1AP_LIB F1AP
oai_exmimodevif oai_usrpdevif oai_bladerfdevif oai_lmssdrdevif
...
...
openair2/LAYER2/PROTO_AGENT/cu_test.c
0 → 100644
View file @
d94ae11f
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <sys/time.h>
#include "ENB_APP/enb_paramdef.h"
#include "LAYER2/PROTO_AGENT/proto_agent.h"
#define BUF_MAX 1400
int
recv_client
=
0
;
FILE
*
output
;
void
usage
(
char
*
prg_name
)
{
fprintf
(
stderr
,
"usage: %s <file or ->
\n
"
,
prg_name
);
fprintf
(
stderr
,
" - is stdin
\n
"
);
fprintf
(
stderr
,
" received packets are written to stdout
\n
"
);
}
long
uelapsed
(
struct
timeval
*
s
,
struct
timeval
*
e
)
{
return
e
->
tv_sec
*
1000000
+
e
->
tv_usec
-
(
s
->
tv_sec
*
1000000
+
s
->
tv_usec
);
}
boolean_t
pdcp_data_ind
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
srb_flag_t
srb_flagP
,
const
MBMS_flag_t
MBMS_flagP
,
const
rb_id_t
rb_idP
,
const
sdu_size_t
sdu_buffer_sizeP
,
mem_block_t
*
const
sdu_buffer_pP
)
{
fwrite
(
sdu_buffer_pP
->
data
,
sdu_buffer_sizeP
,
1
,
stdout
);
free_mem_block
(
sdu_buffer_pP
,
__func__
);
fflush
(
stdout
);
recv_client
=
1
;
return
0
;
}
int
main
(
int
argc
,
char
*
argv
[])
{
const
cudu_params_t
params
=
{
.
local_interface
=
"lo"
,
.
local_ipv4_address
=
"192.168.12.45"
,
.
local_port
=
6464
,
.
remote_ipv4_address
=
"192.168.12.45"
,
.
remote_port
=
6465
};
protocol_ctxt_t
p
;
memset
(
&
p
,
0
,
sizeof
p
);
mem_block_t
mem
;
char
s
[
BUF_MAX
];
size_t
size
,
totsize
=
0
;
struct
timeval
t_start
,
t_end
;
FILE
*
f
;
if
(
argc
!=
2
)
{
usage
(
argv
[
0
]);
return
1
;
}
if
(
strcmp
(
argv
[
1
],
"-"
)
==
0
)
{
f
=
stdin
;
}
else
{
f
=
fopen
(
argv
[
1
],
"r"
);
}
if
(
!
f
)
{
fprintf
(
stderr
,
"cannot open %s: %s
\n
"
,
argv
[
1
],
strerror
(
errno
));
return
2
;
}
pool_buffer_init
();
if
(
proto_agent_start
(
0
,
&
params
)
!=
0
)
{
fprintf
(
stderr
,
"error on proto_agent_start()
\n
"
);
return
3
;
}
/* wait for first packet of client */
while
(
!
recv_client
)
sleep
(
1
);
fprintf
(
stderr
,
"reading file
\n
"
);
/* now send back at the same time */
gettimeofday
(
&
t_start
,
NULL
);
while
((
size
=
fread
(
s
,
1
,
BUF_MAX
,
f
))
>
0
)
{
usleep
(
100
);
totsize
+=
size
;
mem
.
data
=
&
s
[
0
];
proto_agent_send_rlc_data_req
(
&
p
,
0
,
0
,
0
,
0
,
0
,
size
,
&
mem
);
}
gettimeofday
(
&
t_end
,
NULL
);
fclose
(
f
);
long
us
=
uelapsed
(
&
t_start
,
&
t_end
);
fprintf
(
stderr
,
"read %ld bytes in %ld ms -> %.3fMB/s, %.3fMbps
\n
"
,
totsize
,
us
/
1000
,
((
float
)
totsize
)
/
us
,
((
float
)
totsize
)
/
us
*
8
);
fprintf
(
stderr
,
"check files using 'diff afile bfile'
\n
"
);
/* give some time in case the other direction is slower */
sleep
(
60
);
return
0
;
}
/*
*********************************************************
* arbitrary functions, needed for linking (used or not) *
*********************************************************
*/
rlc_op_status_t
rlc_data_req
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
srb_flag_t
srb_flagP
,
const
MBMS_flag_t
MBMS_flagP
,
const
rb_id_t
rb_idP
,
const
mui_t
muiP
,
confirm_t
confirmP
,
sdu_size_t
sdu_sizeP
,
mem_block_t
*
sdu_pP
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
const
uint32_t
*
const
sourceL2Id
,
const
uint32_t
*
const
destinationL2Id
#endif
)
{
fprintf
(
stderr
,
"This should never be called on the CU
\n
"
);
exit
(
1
);
}
pthread_t
new_thread
(
void
*
(
*
f
)(
void
*
),
void
*
b
)
{
pthread_t
t
;
pthread_attr_t
att
;
if
(
pthread_attr_init
(
&
att
)){
fprintf
(
stderr
,
"pthread_attr_init err
\n
"
);
exit
(
1
);
}
if
(
pthread_attr_setdetachstate
(
&
att
,
PTHREAD_CREATE_DETACHED
))
{
fprintf
(
stderr
,
"pthread_attr_setdetachstate err
\n
"
);
exit
(
1
);
}
if
(
pthread_create
(
&
t
,
&
att
,
f
,
b
))
{
fprintf
(
stderr
,
"pthread_create err
\n
"
);
exit
(
1
);
}
if
(
pthread_attr_destroy
(
&
att
))
{
fprintf
(
stderr
,
"pthread_attr_destroy err
\n
"
);
exit
(
1
);
}
return
t
;
}
int
log_header
(
char
*
log_buffer
,
int
buffsize
,
int
comp
,
int
level
,
const
char
*
format
)
{
return
0
;
}
int
config_get
(
paramdef_t
*
params
,
int
numparams
,
char
*
prefix
)
{
return
0
;
}
int
config_process_cmdline
(
paramdef_t
*
cfgoptions
,
int
numoptions
,
char
*
prefix
)
{
return
0
;
}
openair2/LAYER2/PROTO_AGENT/du_test.c
0 → 100644
View file @
d94ae11f
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <sys/time.h>
#include "ENB_APP/enb_paramdef.h"
#include "LAYER2/PROTO_AGENT/proto_agent.h"
#define BUF_MAX 1400
void
usage
(
char
*
prg_name
)
{
fprintf
(
stderr
,
"usage: %s <file or ->
\n
"
,
prg_name
);
fprintf
(
stderr
,
" - is stdin
\n
"
);
fprintf
(
stderr
,
" received packets are written to stdout
\n
"
);
}
long
uelapsed
(
struct
timeval
*
s
,
struct
timeval
*
e
)
{
return
e
->
tv_sec
*
1000000
+
e
->
tv_usec
-
(
s
->
tv_sec
*
1000000
+
s
->
tv_usec
);
}
rlc_op_status_t
rlc_data_req
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
srb_flag_t
srb_flagP
,
const
MBMS_flag_t
MBMS_flagP
,
const
rb_id_t
rb_idP
,
const
mui_t
muiP
,
confirm_t
confirmP
,
sdu_size_t
sdu_sizeP
,
mem_block_t
*
sdu_pP
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
const
uint32_t
*
const
sourceL2Id
,
const
uint32_t
*
const
destinationL2Id
#endif
)
{
fwrite
(
sdu_pP
->
data
,
sdu_sizeP
,
1
,
stdout
);
free_mem_block
(
sdu_pP
,
__func__
);
fflush
(
stdout
);
return
0
;
}
int
main
(
int
argc
,
char
*
argv
[])
{
const
cudu_params_t
params
=
{
.
local_interface
=
"lo"
,
.
local_ipv4_address
=
"192.168.12.45"
,
.
local_port
=
6465
,
.
remote_ipv4_address
=
"192.168.12.45"
,
.
remote_port
=
6464
};
protocol_ctxt_t
p
;
memset
(
&
p
,
0
,
sizeof
p
);
mem_block_t
mem
;
char
s
[
BUF_MAX
];
size_t
size
,
totsize
=
0
;
struct
timeval
t_start
,
t_end
;
FILE
*
f
;
if
(
argc
!=
2
)
{
usage
(
argv
[
0
]);
return
1
;
}
if
(
strcmp
(
argv
[
1
],
"-"
)
==
0
)
{
f
=
stdin
;
}
else
{
f
=
fopen
(
argv
[
1
],
"r"
);
}
if
(
!
f
)
{
fprintf
(
stderr
,
"cannot open %s: %s
\n
"
,
argv
[
1
],
strerror
(
errno
));
return
2
;
}
pool_buffer_init
();
if
(
proto_agent_start
(
0
,
&
params
)
!=
0
)
{
fprintf
(
stderr
,
"error on proto_agent_start()
\n
"
);
return
3
;
}
gettimeofday
(
&
t_start
,
NULL
);
while
((
size
=
fread
(
s
,
1
,
BUF_MAX
,
f
))
>
0
)
{
usleep
(
100
);
totsize
+=
size
;
mem
.
data
=
&
s
[
0
];
proto_agent_send_pdcp_data_ind
(
&
p
,
0
,
0
,
0
,
size
,
&
mem
);
}
gettimeofday
(
&
t_end
,
NULL
);
fclose
(
f
);
long
us
=
uelapsed
(
&
t_start
,
&
t_end
);
fprintf
(
stderr
,
"read %ld bytes in %ld ms -> %.3fMB/s, %.3fMbps
\n
"
,
totsize
,
us
/
1000
,
((
float
)
totsize
)
/
us
,
((
float
)
totsize
)
/
us
*
8
);
fprintf
(
stderr
,
"check files using 'diff afile bfile'
\n
"
);
/* wait, we are possibly receiving data */
sleep
(
60
);
return
0
;
}
/*
*********************************************************
* arbitrary functions, needed for linking (used or not) *
*********************************************************
*/
boolean_t
pdcp_data_ind
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
srb_flag_t
srb_flagP
,
const
MBMS_flag_t
MBMS_flagP
,
const
rb_id_t
rb_idP
,
const
sdu_size_t
sdu_buffer_sizeP
,
mem_block_t
*
const
sdu_buffer_pP
)
{
fprintf
(
stderr
,
"This should never be called on the DU
\n
"
);
exit
(
1
);
}
pthread_t
new_thread
(
void
*
(
*
f
)(
void
*
),
void
*
b
)
{
pthread_t
t
;
pthread_attr_t
att
;
if
(
pthread_attr_init
(
&
att
)){
fprintf
(
stderr
,
"pthread_attr_init err
\n
"
);
exit
(
1
);
}
if
(
pthread_attr_setdetachstate
(
&
att
,
PTHREAD_CREATE_DETACHED
))
{
fprintf
(
stderr
,
"pthread_attr_setdetachstate err
\n
"
);
exit
(
1
);
}
if
(
pthread_create
(
&
t
,
&
att
,
f
,
b
))
{
fprintf
(
stderr
,
"pthread_create err
\n
"
);
exit
(
1
);
}
if
(
pthread_attr_destroy
(
&
att
))
{
fprintf
(
stderr
,
"pthread_attr_destroy err
\n
"
);
exit
(
1
);
}
return
t
;
}
int
log_header
(
char
*
log_buffer
,
int
buffsize
,
int
comp
,
int
level
,
const
char
*
format
)
{
return
0
;
}
int
config_get
(
paramdef_t
*
params
,
int
numparams
,
char
*
prefix
)
{
return
0
;
}
int
config_process_cmdline
(
paramdef_t
*
cfgoptions
,
int
numoptions
,
char
*
prefix
)
{
return
0
;
}
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