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
Michael Black
OpenXG-RAN
Commits
d2b1e6aa
Commit
d2b1e6aa
authored
Sep 20, 2019
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
FlexRAN: report employed splits to controller
parent
a8b4a62b
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
45 additions
and
0 deletions
+45
-0
openair2/ENB_APP/MESSAGES/V2/flexran.proto
openair2/ENB_APP/MESSAGES/V2/flexran.proto
+9
-0
openair2/ENB_APP/flexran_agent_common.c
openair2/ENB_APP/flexran_agent_common.c
+2
-0
openair2/ENB_APP/flexran_agent_ran_api.c
openair2/ENB_APP/flexran_agent_ran_api.c
+28
-0
openair2/ENB_APP/flexran_agent_ran_api.h
openair2/ENB_APP/flexran_agent_ran_api.h
+6
-0
No files found.
openair2/ENB_APP/MESSAGES/V2/flexran.proto
View file @
d2b1e6aa
...
...
@@ -77,10 +77,19 @@ enum flex_bs_capability {
RRC
=
7
;
}
enum
flex_bs_split
{
F1
=
0
;
nFAPI
=
1
;
IF4
=
2
;
IF4p5
=
3
;
IF5
=
4
;
}
message
flex_hello
{
optional
flex_header
header
=
1
;
optional
uint64
bs_id
=
2
;
// Unique id to distinguish the eNB
repeated
flex_bs_capability
capabilities
=
3
;
repeated
flex_bs_split
splits
=
4
;
}
message
flex_echo_request
{
...
...
openair2/ENB_APP/flexran_agent_common.c
View file @
d2b1e6aa
...
...
@@ -128,6 +128,7 @@ int flexran_agent_hello(mid_t mod_id, const void *params, Protocol__FlexranMessa
hello_msg
->
bs_id
=
flexran_get_bs_id
(
mod_id
);
hello_msg
->
has_bs_id
=
1
;
hello_msg
->
n_capabilities
=
flexran_get_capabilities
(
mod_id
,
&
hello_msg
->
capabilities
);
hello_msg
->
n_splits
=
flexran_get_splits
(
mod_id
,
&
hello_msg
->
splits
);
*
msg
=
malloc
(
sizeof
(
Protocol__FlexranMessage
));
if
(
*
msg
==
NULL
)
...
...
@@ -161,6 +162,7 @@ int flexran_agent_destroy_hello(Protocol__FlexranMessage *msg) {
free
(
msg
->
hello_msg
->
header
);
free
(
msg
->
hello_msg
->
capabilities
);
free
(
msg
->
hello_msg
->
splits
);
free
(
msg
->
hello_msg
);
free
(
msg
);
return
0
;
...
...
openair2/ENB_APP/flexran_agent_ran_api.c
View file @
d2b1e6aa
...
...
@@ -3570,3 +3570,31 @@ uint16_t flexran_get_capabilities_mask(mid_t mod_id) {
return
mask
;
}
size_t
flexran_get_splits
(
mid_t
mod_id
,
Protocol__FlexBsSplit
**
splits
)
{
size_t
n_splits
=
0
;
*
splits
=
NULL
;
if
(
rrc_is_present
(
mod_id
)
&&
!
NODE_IS_MONOLITHIC
(
RC
.
rrc
[
mod_id
]
->
node_type
))
n_splits
++
;
if
(
NFAPI_MODE
!=
NFAPI_MONOLITHIC
)
n_splits
++
;
if
(
RC
.
ru
&&
RC
.
ru
[
mod_id
]
&&
RC
.
ru
[
mod_id
]
->
if_south
!=
LOCAL_RF
)
n_splits
++
;
if
(
n_splits
==
0
)
return
0
;
AssertFatal
(
n_splits
<
3
,
"illegal number of splits (%lu)
\n
"
,
n_splits
);
*
splits
=
calloc
(
n_splits
,
sizeof
(
Protocol__FlexBsSplit
));
AssertFatal
(
*
splits
,
"could not allocate Protocol__FlexBsSplit array
\n
"
);
int
n
=
0
;
if
(
rrc_is_present
(
mod_id
)
&&
!
NODE_IS_MONOLITHIC
(
RC
.
rrc
[
mod_id
]
->
node_type
))
(
*
splits
)[
n
++
]
=
PROTOCOL__FLEX_BS_SPLIT__F1
;
if
(
NFAPI_MODE
!=
NFAPI_MONOLITHIC
)
(
*
splits
)[
n
++
]
=
PROTOCOL__FLEX_BS_SPLIT__nFAPI
;
if
(
RC
.
ru
&&
RC
.
ru
[
mod_id
]
&&
RC
.
ru
[
mod_id
]
->
if_south
==
REMOTE_IF4p5
)
(
*
splits
)[
n
++
]
=
PROTOCOL__FLEX_BS_SPLIT__IF4p5
;
if
(
RC
.
ru
&&
RC
.
ru
[
mod_id
]
&&
RC
.
ru
[
mod_id
]
->
if_south
==
REMOTE_IF5
)
(
*
splits
)[
n
++
]
=
PROTOCOL__FLEX_BS_SPLIT__IF5
;
DevAssert
(
n
==
n_splits
);
return
n_splits
;
}
openair2/ENB_APP/flexran_agent_ran_api.h
View file @
d2b1e6aa
...
...
@@ -44,6 +44,7 @@
#include "RRC/LTE/rrc_eNB_UE_context.h"
#include "PHY/phy_extern.h"
#include "common/utils/LOG/log.h"
#include "nfapi/oai_integration/vendor_ext.h"
/****************************
* get generic info from RAN
...
...
@@ -815,3 +816,8 @@ size_t flexran_get_capabilities(mid_t mod_id, Protocol__FlexBsCapability **caps)
/* get the capabilities supported by the underlying network function as a bit
* mask. */
uint16_t
flexran_get_capabilities_mask
(
mid_t
mod_id
);
/* get the splits used by the underlying network function,
* return the number and stores list of this length in splits. If there are
* zero capabilities, splits will be NULL */
size_t
flexran_get_splits
(
mid_t
mod_id
,
Protocol__FlexBsSplit
**
splits
);
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