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
常顺宇
OpenXG-RAN
Commits
865348b0
Commit
865348b0
authored
Aug 12, 2020
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
FlexRAN agent app: Add sample FlexRAN app
parent
fde31278
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
128 additions
and
0 deletions
+128
-0
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+7
-0
openair2/ENB_APP/flexran_apps/sample.c
openair2/ENB_APP/flexran_apps/sample.c
+121
-0
No files found.
cmake_targets/CMakeLists.txt
View file @
865348b0
...
...
@@ -1099,6 +1099,13 @@ add_library(FLEXRAN_AGENT
)
add_dependencies
(
FLEXRAN_AGENT rrc_flag
)
set
(
FLEXRAN_AGENT_LIB FLEXRAN_AGENT
)
add_library
(
flapp_sample SHARED
${
OPENAIR2_DIR
}
/ENB_APP/flexran_apps/sample.c
)
set_target_properties
(
flapp_sample PROPERTIES C_VISIBILITY_PRESET hidden
)
add_custom_target
(
flapp_all DEPENDS
flapp_sample
)
#include_directories(${OPENAIR2_DIR}/ENB_APP)
set
(
PROTOBUF_LIB
"protobuf-c"
)
...
...
openair2/ENB_APP/flexran_apps/sample.c
0 → 100644
View file @
865348b0
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file sample.c
* \brief flexran sample app
* \author Robert Schmidt
* \date 2020
* \version 0.1
*/
#include "flexran_agent_common.h"
#include "flexran_agent_async.h"
#include "flexran_agent_extern.h"
#include "flexran_agent_timer.h"
#include "flexran_agent_defs.h"
#include "flexran_agent_net_comm.h"
#include "flexran_agent_ran_api.h"
#include "flexran_agent_phy.h"
#include "flexran_agent_mac.h"
#include "flexran_agent_rrc.h"
#include "flexran_agent_pdcp.h"
#include "flexran_agent_s1ap.h"
#include "flexran_agent_app.h"
#include "common/utils/LOG/log.h"
#include "assertions.h"
/* callback to be called for event: shows exemplary variable use and use of RAN
* API */
int
tick
;
Protocol__FlexranMessage
*
sample_tick
(
mid_t
mod_id
,
const
Protocol__FlexranMessage
*
msg
)
{
tick
++
;
const
int
num
=
flexran_get_mac_num_ues
(
mod_id
);
LOG_I
(
FLEXRAN_AGENT
,
"%s(): tick %d number UEs %d
\n
"
,
__func__
,
tick
,
num
);
return
NULL
;
}
void
print_param
(
Protocol__FlexAgentReconfigurationSubsystem__ParamsEntry
**
p
,
int
n_p
)
{
LOG_I
(
FLEXRAN_AGENT
,
"%s(): received %d parameters
\n
"
,
__func__
,
n_p
);
for
(
int
i
=
0
;
i
<
n_p
;
++
i
)
{
switch
(
p
[
i
]
->
value
->
param_case
)
{
case
PROTOCOL__FLEX_AGENT_RECONFIGURATION_PARAM__PARAM__NOT_SET
:
LOG_I
(
FLEXRAN_AGENT
,
" param %s is not set
\n
"
,
p
[
i
]
->
key
);
break
;
case
PROTOCOL__FLEX_AGENT_RECONFIGURATION_PARAM__PARAM_INTEGER
:
LOG_I
(
FLEXRAN_AGENT
,
" param %s is %d
\n
"
,
p
[
i
]
->
key
,
p
[
i
]
->
value
->
integer
);
break
;
case
PROTOCOL__FLEX_AGENT_RECONFIGURATION_PARAM__PARAM_FLOATING
:
LOG_I
(
FLEXRAN_AGENT
,
" param %s is %f
\n
"
,
p
[
i
]
->
key
,
p
[
i
]
->
value
->
floating
);
break
;
case
PROTOCOL__FLEX_AGENT_RECONFIGURATION_PARAM__PARAM_BOOLEAN
:
LOG_I
(
FLEXRAN_AGENT
,
" param %s is %s
\n
"
,
p
[
i
]
->
key
,
p
[
i
]
->
value
->
boolean
?
"true"
:
"false"
);
break
;
case
PROTOCOL__FLEX_AGENT_RECONFIGURATION_PARAM__PARAM_STR
:
LOG_I
(
FLEXRAN_AGENT
,
" param %s is %s
\n
"
,
p
[
i
]
->
key
,
p
[
i
]
->
value
->
str
);
break
;
default:
LOG_W
(
FLEXRAN_AGENT
,
" type of param %s is unknown
\n
"
,
p
[
i
]
->
key
);
break
;
};
}
}
/* sa_start: entry point for sample app. Installs a callback using the timer
* API to have function sample_tick() called every 5s */
#define TIMER 22
int
sa_start
(
mid_t
mod_id
,
Protocol__FlexAgentReconfigurationSubsystem__ParamsEntry
**
p
,
int
n_p
)
{
LOG_W
(
FLEXRAN_AGENT
,
"%s(): enable sample app timer
\n
"
,
__func__
);
flexran_agent_create_timer
(
mod_id
,
5000
,
FLEXRAN_AGENT_TIMER_TYPE_PERIODIC
,
TIMER
,
sample_tick
,
NULL
);
print_param
(
p
,
n_p
);
return
0
;
}
int
sa_reconfig
(
mid_t
mod_id
,
Protocol__FlexAgentReconfigurationSubsystem__ParamsEntry
**
p
,
int
n_p
)
{
print_param
(
p
,
n_p
);
return
0
;
}
/* stop function: cleans up before app can be unloaded. Here: stop the timer */
int
sa_stop
(
mid_t
mod_id
)
{
LOG_W
(
FLEXRAN_AGENT
,
"%s(): disable sample app timer
\n
"
,
__func__
);
flexran_agent_destroy_timer
(
mod_id
,
TIMER
);
return
0
;
}
/* app definition. visibility should be set to default so this symbol is
* reachable from outside */
flexran_agent_app_t
__attribute__
((
visibility
(
"default"
)))
app
=
{
.
start
=
sa_start
,
.
reconfig
=
sa_reconfig
,
.
stop
=
sa_stop
};
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