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
71bfc510
Commit
71bfc510
authored
Feb 28, 2024
by
Teodora
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
squash in previous commit
parent
e772bc95
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
9 additions
and
13 deletions
+9
-13
openair2/E2AP/RAN_FUNCTION/O-RAN/ran_func_kpm.c
openair2/E2AP/RAN_FUNCTION/O-RAN/ran_func_kpm.c
+9
-13
No files found.
openair2/E2AP/RAN_FUNCTION/O-RAN/ran_func_kpm.c
View file @
71bfc510
...
...
@@ -28,7 +28,7 @@
#include "openair2/RRC/NR/rrc_gNB_UE_context.h"
static
ngran_node_t
node_type
=
0
;
static
void
get_node_type
(
void
)
static
void
get_
e2_
node_type
(
void
)
{
#if defined (NGRAN_GNB_DU) && defined (NGRAN_GNB_CUUP) && defined (NGRAN_GNB_CUCP)
node_type
=
RC
.
nrrrc
[
0
]
->
node_type
;
...
...
@@ -47,7 +47,7 @@ typedef struct {
}
arr_ue_id_t
;
static
kpm_ind_msg_format_1_t
fill_kpm_ind_msg_frm_1
_general
(
cudu_ue_info_pair_t
ue_info
,
const
size_t
ue_idx
,
const
kpm_act_def_format_1_t
*
act_def_fr_1
)
static
kpm_ind_msg_format_1_t
fill_kpm_ind_msg_frm_1
(
cudu_ue_info_pair_t
ue_info
,
const
size_t
ue_idx
,
const
kpm_act_def_format_1_t
*
act_def_fr_1
)
{
kpm_ind_msg_format_1_t
msg_frm_1
=
{
0
};
...
...
@@ -68,15 +68,11 @@ static kpm_ind_msg_format_1_t fill_kpm_ind_msg_frm_1_general(cudu_ue_info_pair_t
// Measurement Type as requested in Action Definition
assert
(
act_def_fr_1
->
meas_info_lst
[
i
].
meas_type
.
type
==
NAME_MEAS_TYPE
&&
"Only NAME supported"
);
// use cp_ba_to_str
char
meas_info_name_str
[
act_def_fr_1
->
meas_info_lst
[
i
].
meas_type
.
name
.
len
+
1
];
memcpy
(
meas_info_name_str
,
act_def_fr_1
->
meas_info_lst
[
i
].
meas_type
.
name
.
buf
,
act_def_fr_1
->
meas_info_lst
[
i
].
meas_type
.
name
.
len
);
meas_info_name_str
[
act_def_fr_1
->
meas_info_lst
[
i
].
meas_type
.
name
.
len
]
=
'\0'
;
char
*
meas_info_name_str
=
cp_ba_to_str
(
act_def_fr_1
->
meas_info_lst
[
i
].
meas_type
.
name
);
msg_frm_1
.
meas_data_lst
[
0
].
meas_record_lst
[
i
]
=
get_kpm_meas_value
(
meas_info_name_str
,
act_def_fr_1
->
gran_period_ms
,
ue_info
,
ue_idx
);
}
// Measurement Information - OPTIONAL
msg_frm_1
.
meas_info_lst_len
=
act_def_fr_1
->
meas_info_lst_len
;
msg_frm_1
.
meas_info_lst
=
calloc
(
msg_frm_1
.
meas_info_lst_len
,
sizeof
(
meas_info_format_1_lst_t
));
...
...
@@ -88,7 +84,7 @@ static kpm_ind_msg_format_1_t fill_kpm_ind_msg_frm_1_general(cudu_ue_info_pair_t
return
msg_frm_1
;
}
static
kpm_ind_msg_format_3_t
fill_kpm_
meas_data_for_frm_3_general
(
arr_ue_id_t
*
arr_ue_id
,
const
kpm_act_def_format_1_t
*
act_def_fr_1
)
static
kpm_ind_msg_format_3_t
fill_kpm_
ind_msg_frm_3
(
arr_ue_id_t
*
arr_ue_id
,
const
kpm_act_def_format_1_t
*
act_def_fr_1
)
{
assert
(
act_def_fr_1
!=
NULL
);
...
...
@@ -106,18 +102,18 @@ static kpm_ind_msg_format_3_t fill_kpm_meas_data_for_frm_3_general(arr_ue_id_t*
// Fill UE related info
cudu_ue_info_pair_t
ue_info
=
{
0
};
if
(
arr_ue_id
->
ue_id
[
i
].
type
==
GNB_UE_ID_E2SM
)
{
ue_info
.
rrc_ue_id
=
*
arr_ue_id
->
ue_id
[
i
].
gnb
.
ran_ue_id
;
ue_info
.
rrc_ue_id
=
*
arr_ue_id
->
ue_id
[
i
].
gnb
.
ran_ue_id
;
// rrc_ue_id
ue_info
.
ue
=
&
arr_ue_id
->
ue_info_list
[
i
];
}
else
if
(
arr_ue_id
->
ue_id
[
i
].
type
==
GNB_CU_UP_UE_ID_E2SM
)
{
/* in OAI implementation, CU-UP ue id = CU-CP ue id
=> CU-UP ue id = rrc_ue_id, but it should not be the case */
=> CU-UP ue id = rrc_ue_id, but it should not be the case
by the spec
*/
ue_info
.
rrc_ue_id
=
*
arr_ue_id
->
ue_id
[
i
].
gnb_cu_up
.
ran_ue_id
;
// cucp_ue_id = rrc_ue_id
}
else
if
(
arr_ue_id
->
ue_id
[
i
].
type
==
GNB_DU_UE_ID_E2SM
)
{
ue_info
.
rrc_ue_id
=
*
arr_ue_id
->
ue_id
[
i
].
gnb_du
.
ran_ue_id
;
// rrc_ue_id
ue_info
.
ue
=
&
arr_ue_id
->
ue_info_list
[
i
];
}
msg_frm_3
.
meas_report_per_ue
[
i
].
ind_msg_format_1
=
fill_kpm_ind_msg_frm_1
_general
(
ue_info
,
i
,
act_def_fr_1
);
msg_frm_3
.
meas_report_per_ue
[
i
].
ind_msg_format_1
=
fill_kpm_ind_msg_frm_1
(
ue_info
,
i
,
act_def_fr_1
);
}
return
msg_frm_3
;
...
...
@@ -470,7 +466,7 @@ bool read_kpm_sm(void* data)
arr_ue_id_t
arr_ue_id
=
fp_match_cond_type
(
test_info
);
if
(
arr_ue_id
.
sz
==
0
)
return
false
;
kpm
->
ind
.
msg
.
frm_3
=
fill_kpm_
meas_data_for_frm_3_general
(
&
arr_ue_id
,
&
frm_4
->
action_def_format_1
);
kpm
->
ind
.
msg
.
frm_3
=
fill_kpm_
ind_msg_frm_3
(
&
arr_ue_id
,
&
frm_4
->
action_def_format_1
);
}
break
;
}
...
...
@@ -565,7 +561,7 @@ void read_kpm_setup_sm(void* e2ap)
// Fill supported measurements depending on the E2 node
// [1, 65535]
// 3GPP TS 28.552
get_node_type
();
get_
e2_
node_type
();
char
**
kpm_meas
=
ran_def_kpm
[
node_type
]();
if
(
kpm_meas
==
NULL
)
return
;
// e.g. CU-CP node, doesn't support any measurements
size_t
sz
=
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