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
canghaiwuhen
OpenXG-RAN
Commits
5e0088fa
Commit
5e0088fa
authored
Oct 24, 2018
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Simplify RRC FlexRAN agent interface
parent
33d0ac49
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
43 additions
and
37 deletions
+43
-37
openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc.c
openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc.c
+23
-12
openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc.h
openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc.h
+4
-5
openair2/ENB_APP/flexran_agent_extern.h
openair2/ENB_APP/flexran_agent_extern.h
+1
-4
openair2/LAYER2/MAC/eNB_scheduler.c
openair2/LAYER2/MAC/eNB_scheduler.c
+2
-2
openair2/RRC/LTE/L2_interface.c
openair2/RRC/LTE/L2_interface.c
+3
-4
openair2/RRC/LTE/rrc_eNB.c
openair2/RRC/LTE/rrc_eNB.c
+10
-10
No files found.
openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc.c
View file @
5e0088fa
...
@@ -36,9 +36,6 @@
...
@@ -36,9 +36,6 @@
/*Trigger boolean for RRC measurement*/
/*Trigger boolean for RRC measurement*/
bool
triggered_rrc
=
false
;
bool
triggered_rrc
=
false
;
/*Flags showing if an rrc agent has already been registered*/
unsigned
int
rrc_agent_registered
[
NUM_MAX_ENB
];
/*Array containing the Agent-RRC interfaces*/
/*Array containing the Agent-RRC interfaces*/
AGENT_RRC_xface
*
agent_rrc_xface
[
NUM_MAX_ENB
];
AGENT_RRC_xface
*
agent_rrc_xface
[
NUM_MAX_ENB
];
...
@@ -643,9 +640,15 @@ int flexran_agent_rrc_stats_reply(mid_t mod_id,
...
@@ -643,9 +640,15 @@ int flexran_agent_rrc_stats_reply(mid_t mod_id,
}
}
int
flexran_agent_register_rrc_xface
(
mid_t
mod_id
,
AGENT_RRC_xface
*
xface
)
{
int
flexran_agent_register_rrc_xface
(
mid_t
mod_id
)
if
(
rrc_agent_registered
[
mod_id
])
{
{
LOG_E
(
RRC
,
"RRC agent for eNB %d is already registered
\n
"
,
mod_id
);
if
(
agent_rrc_xface
[
mod_id
])
{
LOG_E
(
FLEXRAN_AGENT
,
"RRC agent for eNB %d is already registered
\n
"
,
mod_id
);
return
-
1
;
}
AGENT_RRC_xface
*
xface
=
malloc
(
sizeof
(
AGENT_RRC_xface
));
if
(
!
xface
)
{
LOG_E
(
FLEXRAN_AGENT
,
"could not allocate memory for RRC agent xface %d
\n
"
,
mod_id
);
return
-
1
;
return
-
1
;
}
}
...
@@ -654,21 +657,29 @@ int flexran_agent_register_rrc_xface(mid_t mod_id, AGENT_RRC_xface *xface) {
...
@@ -654,21 +657,29 @@ int flexran_agent_register_rrc_xface(mid_t mod_id, AGENT_RRC_xface *xface) {
xface
->
flexran_agent_notify_ue_state_change
=
flexran_agent_ue_state_change
;
xface
->
flexran_agent_notify_ue_state_change
=
flexran_agent_ue_state_change
;
xface
->
flexran_trigger_rrc_measurements
=
flexran_trigger_rrc_measurements
;
xface
->
flexran_trigger_rrc_measurements
=
flexran_trigger_rrc_measurements
;
rrc_agent_registered
[
mod_id
]
=
1
;
agent_rrc_xface
[
mod_id
]
=
xface
;
agent_rrc_xface
[
mod_id
]
=
xface
;
return
0
;
return
0
;
}
}
int
flexran_agent_unregister_rrc_xface
(
mid_t
mod_id
,
AGENT_RRC_xface
*
xface
)
{
int
flexran_agent_unregister_rrc_xface
(
mid_t
mod_id
)
{
if
(
!
agent_rrc_xface
[
mod_id
])
{
LOG_E
(
FLEXRAN_AGENT
,
"RRC agent for eNB %d is not registered
\n
"
,
mod_id
);
return
-
1
;
}
//xface->agent_ctxt = NULL;
//xface->agent_ctxt = NULL;
// xface->flexran_agent_send_update_rrc_stats = NULL;
// xface->flexran_agent_send_update_rrc_stats = NULL;
xface
->
flexran_agent_notify_ue_state_change
=
NULL
;
agent_rrc_xface
[
mod_id
]
->
flexran_agent_notify_ue_state_change
=
NULL
;
xface
->
flexran_trigger_rrc_measurements
=
NULL
;
agent_rrc_xface
[
mod_id
]
->
flexran_trigger_rrc_measurements
=
NULL
;
rrc_agent_registered
[
mod_id
]
=
0
;
free
(
agent_rrc_xface
[
mod_id
])
;
agent_rrc_xface
[
mod_id
]
=
NULL
;
agent_rrc_xface
[
mod_id
]
=
NULL
;
return
0
;
return
0
;
}
}
AGENT_RRC_xface
*
flexran_agent_get_rrc_xface
(
mid_t
mod_id
)
{
return
agent_rrc_xface
[
mod_id
];
}
openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc.h
View file @
5e0088fa
...
@@ -37,11 +37,10 @@
...
@@ -37,11 +37,10 @@
#include "flexran_agent_common.h"
#include "flexran_agent_common.h"
#include "flexran_agent_rrc_defs.h"
#include "flexran_agent_rrc_defs.h"
// for flexran_agent_get_rrc_xface()
#include "flexran_agent_extern.h"
/* Initialization function for the agent structures etc */
void
flexran_agent_init_rrc_agent
(
mid_t
mod_id
);
/* UE state change message constructor and destructor */
/* UE state change message constructor and destructor */
void
flexran_agent_ue_state_change
(
mid_t
mod_id
,
uint32_t
rnti
,
uint8_t
state_change
);
void
flexran_agent_ue_state_change
(
mid_t
mod_id
,
uint32_t
rnti
,
uint8_t
state_change
);
int
flexran_agent_destroy_ue_state_change
(
Protocol__FlexranMessage
*
msg
);
int
flexran_agent_destroy_ue_state_change
(
Protocol__FlexranMessage
*
msg
);
...
@@ -62,9 +61,9 @@ int flexran_agent_rrc_stats_reply(mid_t mod_id, const report_config_t *report_co
...
@@ -62,9 +61,9 @@ int flexran_agent_rrc_stats_reply(mid_t mod_id, const report_config_t *report_co
int
flexran_agent_rrc_destroy_stats_reply
(
Protocol__FlexranMessage
*
msg
);
int
flexran_agent_rrc_destroy_stats_reply
(
Protocol__FlexranMessage
*
msg
);
/*Register technology specific interface callbacks*/
/*Register technology specific interface callbacks*/
int
flexran_agent_register_rrc_xface
(
mid_t
mod_id
,
AGENT_RRC_xface
*
xface
);
int
flexran_agent_register_rrc_xface
(
mid_t
mod_id
);
/*Unregister technology specific callbacks*/
/*Unregister technology specific callbacks*/
int
flexran_agent_unregister_rrc_xface
(
mid_t
mod_id
,
AGENT_RRC_xface
*
xface
);
int
flexran_agent_unregister_rrc_xface
(
mid_t
mod_id
);
#endif
#endif
openair2/ENB_APP/flexran_agent_extern.h
View file @
5e0088fa
...
@@ -39,10 +39,7 @@
...
@@ -39,10 +39,7 @@
AGENT_MAC_xface
*
flexran_agent_get_mac_xface
(
mid_t
mod_id
);
AGENT_MAC_xface
*
flexran_agent_get_mac_xface
(
mid_t
mod_id
);
/* Control module interface for the communication of the RRC Control Module with the agent */
/* Control module interface for the communication of the RRC Control Module with the agent */
extern
AGENT_RRC_xface
*
agent_rrc_xface
[
NUM_MAX_ENB
];
AGENT_RRC_xface
*
flexran_agent_get_rrc_xface
(
mid_t
mod_id
);
/* Flag indicating whether the VSFs for the RRC control module have been registered */
extern
unsigned
int
rrc_agent_registered
[
NUM_MAX_ENB
];
/* Control module interface for the communication of the RRC Control Module with the agent */
/* Control module interface for the communication of the RRC Control Module with the agent */
extern
AGENT_PDCP_xface
*
agent_pdcp_xface
[
NUM_MAX_ENB
];
extern
AGENT_PDCP_xface
*
agent_pdcp_xface
[
NUM_MAX_ENB
];
...
...
openair2/LAYER2/MAC/eNB_scheduler.c
View file @
5e0088fa
...
@@ -416,9 +416,9 @@ check_ul_failure(module_id_t module_idP, int CC_id, int UE_id,
...
@@ -416,9 +416,9 @@ check_ul_failure(module_id_t module_idP, int CC_id, int UE_id,
UE_list
->
UE_sched_ctrl
[
UE_id
].
ul_out_of_sync
=
1
;
UE_list
->
UE_sched_ctrl
[
UE_id
].
ul_out_of_sync
=
1
;
//Inform the controller about the UE deactivation. Should be moved to RRC agent in the future
//Inform the controller about the UE deactivation. Should be moved to RRC agent in the future
if
(
rrc_agent_registered
[
module_idP
]
)
{
if
(
flexran_agent_get_rrc_xface
(
module_idP
)
)
{
LOG_W
(
MAC
,
"notify flexran Agent of UE state change
\n
"
);
LOG_W
(
MAC
,
"notify flexran Agent of UE state change
\n
"
);
agent_rrc_xface
[
module_idP
]
->
flexran_agent_notify_ue_state_change
(
module_idP
,
flexran_agent_get_rrc_xface
(
module_idP
)
->
flexran_agent_notify_ue_state_change
(
module_idP
,
rnti
,
PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_DEACTIVATED
);
rnti
,
PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_DEACTIVATED
);
}
}
}
}
...
...
openair2/RRC/LTE/L2_interface.c
View file @
5e0088fa
...
@@ -386,10 +386,9 @@ void mac_eNB_rrc_ul_failure(const module_id_t Mod_instP,
...
@@ -386,10 +386,9 @@ void mac_eNB_rrc_ul_failure(const module_id_t Mod_instP,
else
{
else
{
LOG_W
(
RRC
,
"Frame %d, Subframe %d: UL failure: UE %x unknown
\n
"
,
frameP
,
subframeP
,
rntiP
);
LOG_W
(
RRC
,
"Frame %d, Subframe %d: UL failure: UE %x unknown
\n
"
,
frameP
,
subframeP
,
rntiP
);
}
}
if
(
rrc_agent_registered
[
Mod_instP
])
{
if
(
flexran_agent_get_rrc_xface
(
Mod_instP
))
{
agent_rrc_xface
[
Mod_instP
]
->
flexran_agent_notify_ue_state_change
(
Mod_instP
,
flexran_agent_get_rrc_xface
(
Mod_instP
)
->
flexran_agent_notify_ue_state_change
(
Mod_instP
,
rntiP
,
rntiP
,
PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_DEACTIVATED
);
PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_DEACTIVATED
);
}
}
rrc_mac_remove_ue
(
Mod_instP
,
rntiP
);
rrc_mac_remove_ue
(
Mod_instP
,
rntiP
);
}
}
...
...
openair2/RRC/LTE/rrc_eNB.c
View file @
5e0088fa
...
@@ -1038,8 +1038,8 @@ void release_UE_in_freeList(module_id_t mod_id)
...
@@ -1038,8 +1038,8 @@ void release_UE_in_freeList(module_id_t mod_id)
}
}
}
}
if
(
rrc_agent_registered
[
mod_id
]
)
{
if
(
flexran_agent_get_rrc_xface
(
mod_id
)
)
{
agent_rrc_xface
[
mod_id
]
->
flexran_agent_notify_ue_state_change
(
mod_id
,
flexran_agent_get_rrc_xface
(
mod_id
)
->
flexran_agent_notify_ue_state_change
(
mod_id
,
rnti
,
PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_DEACTIVATED
);
rnti
,
PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_DEACTIVATED
);
}
}
...
@@ -6578,8 +6578,8 @@ rrc_eNB_decode_ccch(
...
@@ -6578,8 +6578,8 @@ rrc_eNB_decode_ccch(
}
else
{
}
else
{
// no context available
// no context available
if
(
rrc_agent_registered
[
ctxt_pP
->
module_id
]
)
{
if
(
flexran_agent_get_rrc_xface
(
ctxt_pP
->
module_id
)
)
{
agent_rrc_xface
[
ctxt_pP
->
module_id
]
->
flexran_agent_notify_ue_state_change
(
ctxt_pP
->
module_id
,
flexran_agent_get_rrc_xface
(
ctxt_pP
->
module_id
)
->
flexran_agent_notify_ue_state_change
(
ctxt_pP
->
module_id
,
ctxt_pP
->
rnti
,
ctxt_pP
->
rnti
,
PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_DEACTIVATED
);
PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_DEACTIVATED
);
}
}
...
@@ -6869,8 +6869,8 @@ rrc_eNB_decode_dcch(
...
@@ -6869,8 +6869,8 @@ rrc_eNB_decode_dcch(
ul_dcch_msg
->
message
.
choice
.
c1
.
choice
.
rrcConnectionReconfigurationComplete
.
rrc_TransactionIdentifier
);
ul_dcch_msg
->
message
.
choice
.
c1
.
choice
.
rrcConnectionReconfigurationComplete
.
rrc_TransactionIdentifier
);
//WARNING:Inform the controller about the UE activation. Should be moved to RRC agent in the future
//WARNING:Inform the controller about the UE activation. Should be moved to RRC agent in the future
if
(
rrc_agent_registered
[
ctxt_pP
->
module_id
]
)
{
if
(
flexran_agent_get_rrc_xface
(
ctxt_pP
->
module_id
)
)
{
agent_rrc_xface
[
ctxt_pP
->
eNB_index
]
->
flexran_agent_notify_ue_state_change
(
ctxt_pP
->
module_id
,
flexran_agent_get_rrc_xface
(
ctxt_pP
->
module_id
)
->
flexran_agent_notify_ue_state_change
(
ctxt_pP
->
module_id
,
ue_context_p
->
ue_id_rnti
,
ue_context_p
->
ue_id_rnti
,
PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_UPDATED
);
PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_UPDATED
);
}
}
...
@@ -7022,8 +7022,8 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) {
...
@@ -7022,8 +7022,8 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) {
ul_dcch_msg
->
message
.
choice
.
c1
.
choice
.
rrcConnectionReestablishmentComplete
.
rrc_TransactionIdentifier
,
ul_dcch_msg
->
message
.
choice
.
c1
.
choice
.
rrcConnectionReestablishmentComplete
.
rrc_TransactionIdentifier
,
&
ul_dcch_msg
->
message
.
choice
.
c1
.
choice
.
rrcConnectionReestablishmentComplete
.
criticalExtensions
.
choice
.
rrcConnectionReestablishmentComplete_r8
);
&
ul_dcch_msg
->
message
.
choice
.
c1
.
choice
.
rrcConnectionReestablishmentComplete
.
criticalExtensions
.
choice
.
rrcConnectionReestablishmentComplete_r8
);
if
(
rrc_agent_registered
[
ctxt_pP
->
module_id
]
)
{
if
(
flexran_agent_get_rrc_xface
(
ctxt_pP
->
module_id
)
)
{
agent_rrc_xface
[
ctxt_pP
->
eNB_index
]
->
flexran_agent_notify_ue_state_change
(
ctxt_pP
->
module_id
,
flexran_agent_get_rrc_xface
(
ctxt_pP
->
module_id
)
->
flexran_agent_notify_ue_state_change
(
ctxt_pP
->
module_id
,
ue_context_p
->
ue_id_rnti
,
ue_context_p
->
ue_id_rnti
,
PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_ACTIVATED
);
PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_ACTIVATED
);
}
}
...
@@ -7090,8 +7090,8 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) {
...
@@ -7090,8 +7090,8 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) {
PROTOCOL_RRC_CTXT_UE_ARGS
(
ctxt_pP
));
PROTOCOL_RRC_CTXT_UE_ARGS
(
ctxt_pP
));
}
}
//WARNING:Inform the controller about the UE activation. Should be moved to RRC agent in the future
//WARNING:Inform the controller about the UE activation. Should be moved to RRC agent in the future
if
(
rrc_agent_registered
[
ctxt_pP
->
module_id
]
)
{
if
(
flexran_agent_get_rrc_xface
(
ctxt_pP
->
module_id
)
)
{
agent_rrc_xface
[
ctxt_pP
->
eNB_index
]
->
flexran_agent_notify_ue_state_change
(
ctxt_pP
->
module_id
,
flexran_agent_get_rrc_xface
(
ctxt_pP
->
module_id
)
->
flexran_agent_notify_ue_state_change
(
ctxt_pP
->
module_id
,
ue_context_p
->
ue_id_rnti
,
ue_context_p
->
ue_id_rnti
,
PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_ACTIVATED
);
PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_ACTIVATED
);
}
}
...
...
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