Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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 UE
Commits
bbcbd931
Commit
bbcbd931
authored
Apr 23, 2016
by
Xenofon Foukas
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added support for multiple eNBs
parent
892b8f28
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 @
bbcbd931
...
@@ -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 @
bbcbd931
...
@@ -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 @
bbcbd931
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