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
wangjie
OpenXG-RAN
Commits
b9c92931
Commit
b9c92931
authored
Apr 23, 2016
by
Xenofon Foukas
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added support for multiple eNBs
parent
07d30b22
Changes
3
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
325 additions
and
12 deletions
+325
-12
openair2/ENB_APP/enb_agent.c
openair2/ENB_APP/enb_agent.c
+18
-10
openair2/ENB_APP/enb_agent_common.c
openair2/ENB_APP/enb_agent_common.c
+5
-2
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.agent.oaisim.2.enb.conf
...TS/GENERIC-LTE-EPC/CONF/enb.band7.agent.oaisim.2.enb.conf
+302
-0
No files found.
openair2/ENB_APP/enb_agent.c
View file @
b9c92931
...
@@ -59,13 +59,15 @@ void *receive_thread(void *args);
...
@@ -59,13 +59,15 @@ void *receive_thread(void *args);
pthread_t
new_thread
(
void
*
(
*
f
)(
void
*
),
void
*
b
);
pthread_t
new_thread
(
void
*
(
*
f
)(
void
*
),
void
*
b
);
Protocol__ProgranMessage
*
enb_agent_timeout
(
void
*
args
);
Protocol__ProgranMessage
*
enb_agent_timeout
(
void
*
args
);
int
agent_task_created
=
0
;
/*
/*
* enb agent task mainly wakes up the tx thread for periodic and oneshot messages to the controller
* enb agent task mainly wakes up the tx thread for periodic and oneshot messages to the controller
* and can interact with other itti tasks
* and can interact with other itti tasks
*/
*/
void
*
enb_agent_task
(
void
*
args
){
void
*
enb_agent_task
(
void
*
args
){
enb_agent_instance_t
*
d
=
(
enb_agent_instance_t
*
)
args
;
//
enb_agent_instance_t *d = (enb_agent_instance_t *) args;
Protocol__ProgranMessage
*
msg
;
Protocol__ProgranMessage
*
msg
;
void
*
data
;
void
*
data
;
int
size
;
int
size
;
...
@@ -76,7 +78,7 @@ void *enb_agent_task(void *args){
...
@@ -76,7 +78,7 @@ void *enb_agent_task(void *args){
const
char
*
msg_name
=
NULL
;
const
char
*
msg_name
=
NULL
;
instance_t
instance
;
instance_t
instance
;
int
result
;
int
result
;
struct
enb_agent_timer_element_s
*
elem
=
NULL
;
itti_mark_task_ready
(
TASK_ENB_AGENT
);
itti_mark_task_ready
(
TASK_ENB_AGENT
);
...
@@ -100,7 +102,8 @@ void *enb_agent_task(void *args){
...
@@ -100,7 +102,8 @@ void *enb_agent_task(void *args){
msg
=
enb_agent_process_timeout
(
msg_p
->
ittiMsg
.
timer_has_expired
.
timer_id
,
msg_p
->
ittiMsg
.
timer_has_expired
.
arg
);
msg
=
enb_agent_process_timeout
(
msg_p
->
ittiMsg
.
timer_has_expired
.
timer_id
,
msg_p
->
ittiMsg
.
timer_has_expired
.
arg
);
if
(
msg
!=
NULL
){
if
(
msg
!=
NULL
){
data
=
enb_agent_pack_message
(
msg
,
&
size
);
data
=
enb_agent_pack_message
(
msg
,
&
size
);
if
(
enb_agent_msg_send
(
d
->
enb_id
,
ENB_AGENT_DEFAULT
,
data
,
size
,
priority
))
{
elem
=
get_timer_entry
(
msg_p
->
ittiMsg
.
timer_has_expired
.
timer_id
);
if
(
enb_agent_msg_send
(
elem
->
agent_id
,
ENB_AGENT_DEFAULT
,
data
,
size
,
priority
))
{
err_code
=
PROTOCOL__PROGRAN_ERR__MSG_ENQUEUING
;
err_code
=
PROTOCOL__PROGRAN_ERR__MSG_ENQUEUING
;
goto
error
;
goto
error
;
}
}
...
@@ -203,6 +206,7 @@ pthread_t new_thread(void *(*f)(void *), void *b) {
...
@@ -203,6 +206,7 @@ pthread_t new_thread(void *(*f)(void *), void *b) {
return
t
;
return
t
;
}
}
int
channel_container_init
=
0
;
int
enb_agent_start
(
mid_t
mod_id
,
const
Enb_properties_array_t
*
enb_properties
){
int
enb_agent_start
(
mid_t
mod_id
,
const
Enb_properties_array_t
*
enb_properties
){
int
channel_id
;
int
channel_id
;
...
@@ -240,8 +244,10 @@ int enb_agent_start(mid_t mod_id, const Enb_properties_array_t* enb_properties){
...
@@ -240,8 +244,10 @@ int enb_agent_start(mid_t mod_id, const Enb_properties_array_t* enb_properties){
/*
/*
* Initialize the channel container
* Initialize the channel container
*/
*/
if
(
!
channel_container_init
)
{
enb_agent_init_channel_container
();
enb_agent_init_channel_container
();
channel_container_init
=
1
;
}
/*Create the async channel info*/
/*Create the async channel info*/
enb_agent_instance_t
*
channel_info
=
enb_agent_async_channel_info
(
mod_id
,
in_ip
,
in_port
);
enb_agent_instance_t
*
channel_info
=
enb_agent_async_channel_info
(
mod_id
,
in_ip
,
in_port
);
...
@@ -294,11 +300,13 @@ int enb_agent_start(mid_t mod_id, const Enb_properties_array_t* enb_properties){
...
@@ -294,11 +300,13 @@ int enb_agent_start(mid_t mod_id, const Enb_properties_array_t* enb_properties){
/*
/*
* start the enb agent task for tx and interaction with the underlying network function
* start the enb agent task for tx and interaction with the underlying network function
*/
*/
if
(
!
agent_task_created
)
{
if
(
itti_create_task
(
TASK_ENB_AGENT
,
enb_agent_task
,
(
void
*
)
&
enb_agent
[
mod_id
])
<
0
)
{
if
(
itti_create_task
(
TASK_ENB_AGENT
,
enb_agent_task
,
(
void
*
)
&
enb_agent
[
mod_id
])
<
0
)
{
LOG_E
(
ENB_AGENT
,
"Create task for eNB Agent failed
\n
"
);
LOG_E
(
ENB_AGENT
,
"Create task for eNB Agent failed
\n
"
);
return
-
1
;
return
-
1
;
}
}
agent_task_created
=
1
;
}
LOG_I
(
ENB_AGENT
,
"client ends
\n
"
);
LOG_I
(
ENB_AGENT
,
"client ends
\n
"
);
return
0
;
return
0
;
...
...
openair2/ENB_APP/enb_agent_common.c
View file @
b9c92931
...
@@ -2090,11 +2090,14 @@ int enb_agent_enb_config_reply(mid_t mod_id, const void *params, Protocol__Progr
...
@@ -2090,11 +2090,14 @@ int enb_agent_enb_config_reply(mid_t mod_id, const void *params, Protocol__Progr
//struct enb_agent_map agent_map;
//struct enb_agent_map agent_map;
enb_agent_timer_instance_t
timer_instance
;
enb_agent_timer_instance_t
timer_instance
;
int
agent_timer_init
=
0
;
err_code_t
enb_agent_init_timer
(
void
){
err_code_t
enb_agent_init_timer
(
void
){
LOG_I
(
ENB_AGENT
,
"init RB tree
\n
"
);
LOG_I
(
ENB_AGENT
,
"init RB tree
\n
"
);
if
(
!
agent_timer_init
)
{
RB_INIT
(
&
timer_instance
.
enb_agent_head
);
RB_INIT
(
&
timer_instance
.
enb_agent_head
);
agent_timer_init
=
1
;
}
/*
/*
struct enb_agent_timer_element_s e;
struct enb_agent_timer_element_s e;
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.agent.oaisim.2.enb.conf
0 → 100644
View file @
b9c92931
This diff is collapsed.
Click to expand it.
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