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
spbro
OpenXG-RAN
Commits
c433f4de
Commit
c433f4de
authored
Aug 29, 2024
by
Guido Casati
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add test for F1 Setup Request enc/dec lib
parent
f278b008
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
117 additions
and
0 deletions
+117
-0
openair2/F1AP/tests/f1ap_lib_test.c
openair2/F1AP/tests/f1ap_lib_test.c
+117
-0
No files found.
openair2/F1AP/tests/f1ap_lib_test.c
View file @
c433f4de
...
...
@@ -8,6 +8,7 @@
#include "F1AP_F1AP-PDU.h"
#include "f1ap_lib_extern.h"
#include "lib/f1ap_interface_management.h"
void
exit_function
(
const
char
*
file
,
const
char
*
function
,
const
int
line
,
const
char
*
s
,
const
int
assert
)
{
...
...
@@ -155,10 +156,126 @@ static void test_ul_rrc_message_transfer(void)
free_ul_rrc_message_transfer
(
&
cp
);
}
/**
* @brief Test F1AP Setup Request Encoding/Decoding
*/
static
void
test_f1ap_setup_request
(
void
)
{
/* allocate memory */
/* gNB_DU_name */
uint8_t
*
gNB_DU_name
=
calloc
(
strlen
(
"OAI DU"
)
+
1
,
sizeof
(
uint8_t
));
AssertFatal
(
gNB_DU_name
!=
NULL
,
"out of memory
\n
"
);
memcpy
((
void
*
)
gNB_DU_name
,
"OAI DU"
,
strlen
(
"OAI DU"
)
+
1
);
/* sys_info */
uint8_t
*
mib
=
calloc
(
3
,
sizeof
(
uint8_t
));
uint8_t
*
sib1
=
calloc
(
3
,
sizeof
(
uint8_t
));
f1ap_gnb_du_system_info_t
sys_info
=
{
.
mib_length
=
3
,
.
mib
=
mib
,
.
sib1_length
=
3
,
.
sib1
=
sib1
,
};
/* measurement_timing_information */
int
measurement_timing_config_len
=
strlen
(
"0"
)
+
1
;
uint8_t
*
measurement_timing_information
=
calloc
(
measurement_timing_config_len
,
sizeof
(
uint8_t
));
AssertFatal
(
measurement_timing_information
!=
NULL
,
"out of memory
\n
"
);
memcpy
((
void
*
)
measurement_timing_information
,
"0"
,
measurement_timing_config_len
);
/* TAC */
uint32_t
*
tac
=
calloc
(
1
,
sizeof
(
uint32_t
));
/*
* TDD test
*/
// Served Cell Info
f1ap_served_cell_info_t
info
=
{
.
mode
=
F1AP_MODE_TDD
,
.
tdd
.
freqinfo
.
arfcn
=
640000
,
.
tdd
.
freqinfo
.
band
=
78
,
.
tdd
.
tbw
.
nrb
=
66
,
.
tdd
.
tbw
.
scs
=
1
,
.
measurement_timing_config_len
=
measurement_timing_config_len
,
.
measurement_timing_config
=
measurement_timing_information
,
.
nr_cellid
=
123456
,
.
plmn
.
mcc
=
1
,
.
plmn
.
mnc
=
1
,
.
plmn
.
mnc_digit_length
=
3
,
.
num_ssi
=
1
,
.
nssai
[
0
].
sst
=
1
,
.
nssai
[
0
].
sd
=
1
,
.
tac
=
tac
,
};
// create message
f1ap_setup_req_t
orig
=
{
.
gNB_DU_id
=
1
,
.
gNB_DU_name
=
(
char
*
)
gNB_DU_name
,
.
num_cells_available
=
1
,
.
transaction_id
=
2
,
.
rrc_ver
[
0
]
=
12
,
.
rrc_ver
[
1
]
=
34
,
.
rrc_ver
[
2
]
=
56
,
.
cell
[
0
].
info
=
info
,
};
orig
.
cell
[
0
].
sys_info
=
calloc
(
1
,
sizeof
(
*
orig
.
cell
[
0
].
sys_info
));
*
orig
.
cell
[
0
].
sys_info
=
sys_info
;
// encode
F1AP_F1AP_PDU_t
*
f1enc
=
encode_f1ap_setup_request
(
&
orig
);
F1AP_F1AP_PDU_t
*
f1dec
=
f1ap_encode_decode
(
f1enc
);
f1ap_msg_free
(
f1enc
);
// decode
f1ap_setup_req_t
decoded
=
{
0
};
bool
ret
=
decode_f1ap_setup_request
(
f1dec
,
&
decoded
);
AssertFatal
(
ret
,
"decode_f1ap_setup_request(): could not decode message
\n
"
);
f1ap_msg_free
(
f1dec
);
// equality check
ret
=
eq_f1ap_setup_request
(
&
orig
,
&
decoded
);
AssertFatal
(
ret
,
"eq_f1ap_setup_request(): decoded message doesn't match
\n
"
);
free_f1ap_setup_request
(
&
decoded
);
// deep copy
f1ap_setup_req_t
cp
=
cp_f1ap_setup_request
(
&
orig
);
ret
=
eq_f1ap_setup_request
(
&
orig
,
&
cp
);
AssertFatal
(
ret
,
"eq_f1ap_setup_request(): copied message doesn't match
\n
"
);
free_f1ap_setup_request
(
&
cp
);
/*
* FDD test
*/
info
.
mode
=
F1AP_MODE_FDD
;
info
.
tdd
.
freqinfo
.
arfcn
=
0
;
info
.
tdd
.
freqinfo
.
band
=
0
;
info
.
tdd
.
tbw
.
nrb
=
0
;
info
.
tdd
.
tbw
.
scs
=
0
;
info
.
fdd
.
ul_freqinfo
.
arfcn
=
640000
;
info
.
fdd
.
ul_freqinfo
.
band
=
78
;
info
.
fdd
.
dl_freqinfo
.
arfcn
=
641000
;
info
.
fdd
.
dl_freqinfo
.
band
=
78
;
info
.
fdd
.
ul_tbw
.
nrb
=
66
;
info
.
fdd
.
ul_tbw
.
scs
=
1
;
info
.
fdd
.
dl_tbw
.
nrb
=
66
;
info
.
fdd
.
dl_tbw
.
scs
=
1
;
// encode
f1enc
=
encode_f1ap_setup_request
(
&
orig
);
f1dec
=
f1ap_encode_decode
(
f1enc
);
f1ap_msg_free
(
f1enc
);
// decode
ret
=
decode_f1ap_setup_request
(
f1dec
,
&
decoded
);
AssertFatal
(
ret
,
"decode_f1ap_setup_request(): could not decode message
\n
"
);
f1ap_msg_free
(
f1dec
);
// equality check
ret
=
eq_f1ap_setup_request
(
&
orig
,
&
decoded
);
AssertFatal
(
ret
,
"eq_f1ap_setup_request(): decoded message doesn't match
\n
"
);
free_f1ap_setup_request
(
&
decoded
);
// copy
cp
=
cp_f1ap_setup_request
(
&
orig
);
ret
=
eq_f1ap_setup_request
(
&
orig
,
&
cp
);
AssertFatal
(
ret
,
"eq_f1ap_setup_request(): copied message doesn't match
\n
"
);
free_f1ap_setup_request
(
&
cp
);
// free original message
free_f1ap_setup_request
(
&
orig
);
}
int
main
()
{
test_initial_ul_rrc_message_transfer
();
test_dl_rrc_message_transfer
();
test_ul_rrc_message_transfer
();
test_f1ap_setup_request
();
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