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
wangwenhui
OpenXG-RAN
Commits
1094835d
Commit
1094835d
authored
Nov 20, 2018
by
OAI-admin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
RRC timer fixed and tested
parent
c194956d
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
8 additions
and
12 deletions
+8
-12
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+1
-1
openair2/RRC/LTE/rrc_defs.h
openair2/RRC/LTE/rrc_defs.h
+0
-1
openair2/RRC/LTE/rrc_eNB.c
openair2/RRC/LTE/rrc_eNB.c
+7
-10
No files found.
openair2/ENB_APP/enb_config.c
View file @
1094835d
...
@@ -579,7 +579,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
...
@@ -579,7 +579,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
for
(
int
I
=
0
;
I
<
sizeof
(
PLMNParams
)
/
sizeof
(
paramdef_t
);
++
I
)
for
(
int
I
=
0
;
I
<
sizeof
(
PLMNParams
)
/
sizeof
(
paramdef_t
);
++
I
)
PLMNParams
[
I
].
chkPptr
=
&
(
config_check_PLMNParams
[
I
]);
PLMNParams
[
I
].
chkPptr
=
&
(
config_check_PLMNParams
[
I
]);
RRC_CONFIGURATION_REQ
(
msg_p
).
rrc_inactivity_timer_thres
=
10000
;
RRC_CONFIGURATION_REQ
(
msg_p
).
rrc_inactivity_timer_thres
=
0
;
// set to 0 to deactivate
RRC_CONFIGURATION_REQ
(
msg_p
).
cell_identity
=
enb_id
;
RRC_CONFIGURATION_REQ
(
msg_p
).
cell_identity
=
enb_id
;
RRC_CONFIGURATION_REQ
(
msg_p
).
tac
=
*
ENBParamList
.
paramarray
[
i
][
ENB_TRACKING_AREA_CODE_IDX
].
uptr
;
RRC_CONFIGURATION_REQ
(
msg_p
).
tac
=
*
ENBParamList
.
paramarray
[
i
][
ENB_TRACKING_AREA_CODE_IDX
].
uptr
;
...
...
openair2/RRC/LTE/rrc_defs.h
View file @
1094835d
...
@@ -601,7 +601,6 @@ typedef struct eNB_RRC_UE_s {
...
@@ -601,7 +601,6 @@ typedef struct eNB_RRC_UE_s {
uint32_t
ue_reestablishment_timer_thres
;
uint32_t
ue_reestablishment_timer_thres
;
/* RRC inactivity timer: on timeout, should release RRC connection for inactivity on all E-RABs */
/* RRC inactivity timer: on timeout, should release RRC connection for inactivity on all E-RABs */
uint32_t
ue_rrc_inactivity_timer
;
uint32_t
ue_rrc_inactivity_timer
;
// uint32_t ue_rrc_inactivity_timer_thres;
uint8_t
e_rab_release_command_flag
;
uint8_t
e_rab_release_command_flag
;
int8_t
reestablishment_xid
;
int8_t
reestablishment_xid
;
}
eNB_RRC_UE_t
;
}
eNB_RRC_UE_t
;
...
...
openair2/RRC/LTE/rrc_eNB.c
View file @
1094835d
...
@@ -835,9 +835,9 @@ rrc_eNB_free_UE(
...
@@ -835,9 +835,9 @@ rrc_eNB_free_UE(
return
;
return
;
}
}
// if((ue_context_pP->ue_context.ue_rrc_inactivity_timer >= ue_context_pP->ue_context.ue_rrc_inactivity_timer_thres) &&
if
((
ue_context_pP
->
ue_context
.
ue_rrc_inactivity_timer
>=
RC
.
rrc
[
enb_mod_idP
]
->
configuration
.
rrc_inactivity_timer_thres
)
&&
if
((
ue_context_pP
->
ue_context
.
ue_rrc_inactivity_timer
>=
RC
.
rrc
[
enb_mod_idP
]
->
configuration
.
rrc_inactivity_timer_thres
)
&&
(
mac_eNB_get_rrc_status
(
enb_mod_idP
,
rnti
)
>=
RRC_CONNECTED
))
{
(
mac_eNB_get_rrc_status
(
enb_mod_idP
,
rnti
)
>=
RRC_CONNECTED
)
&&
(
RC
.
rrc
[
enb_mod_idP
]
->
configuration
.
rrc_inactivity_timer_thres
>
0
))
{
LOG_I
(
RRC
,
"[eNB %d] S1AP_UE_CONTEXT_RELEASE_REQ sent for RNTI %x, cause 20, user inactivity
\n
"
,
LOG_I
(
RRC
,
"[eNB %d] S1AP_UE_CONTEXT_RELEASE_REQ sent for RNTI %x, cause 20, user inactivity
\n
"
,
enb_mod_idP
,
enb_mod_idP
,
rnti
);
rnti
);
...
@@ -1009,7 +1009,6 @@ rrc_eNB_process_RRCConnectionSetupComplete(
...
@@ -1009,7 +1009,6 @@ rrc_eNB_process_RRCConnectionSetupComplete(
ue_context_pP
->
ue_context
.
Srb1
.
Active
=
1
;
ue_context_pP
->
ue_context
.
Srb1
.
Active
=
1
;
ue_context_pP
->
ue_context
.
Status
=
RRC_CONNECTED
;
ue_context_pP
->
ue_context
.
Status
=
RRC_CONNECTED
;
ue_context_pP
->
ue_context
.
ue_rrc_inactivity_timer
=
1
;
// set rrc inactivity when UE goes into RRC_CONNECTED
ue_context_pP
->
ue_context
.
ue_rrc_inactivity_timer
=
1
;
// set rrc inactivity when UE goes into RRC_CONNECTED
// ue_context_pP->ue_context.ue_rrc_inactivity_timer_thres = 10000; // The value should come from config file
T
(
T_ENB_RRC_CONNECTION_SETUP_COMPLETE
,
T_INT
(
ctxt_pP
->
module_id
),
T_INT
(
ctxt_pP
->
frame
),
T
(
T_ENB_RRC_CONNECTION_SETUP_COMPLETE
,
T_INT
(
ctxt_pP
->
module_id
),
T_INT
(
ctxt_pP
->
frame
),
T_INT
(
ctxt_pP
->
subframe
),
T_INT
(
ctxt_pP
->
rnti
));
T_INT
(
ctxt_pP
->
subframe
),
T_INT
(
ctxt_pP
->
rnti
));
...
@@ -1315,7 +1314,6 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
...
@@ -1315,7 +1314,6 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
uint8_t
next_xid
=
rrc_eNB_get_next_transaction_identifier
(
ctxt_pP
->
module_id
);
uint8_t
next_xid
=
rrc_eNB_get_next_transaction_identifier
(
ctxt_pP
->
module_id
);
ue_context_pP
->
ue_context
.
Status
=
RRC_CONNECTED
;
ue_context_pP
->
ue_context
.
Status
=
RRC_CONNECTED
;
ue_context_pP
->
ue_context
.
ue_rrc_inactivity_timer
=
1
;
// set rrc inactivity when UE goes into RRC_CONNECTED
ue_context_pP
->
ue_context
.
ue_rrc_inactivity_timer
=
1
;
// set rrc inactivity when UE goes into RRC_CONNECTED
// ue_context_pP->ue_context.ue_rrc_inactivity_timer_thres = 10000; // The value should come from config file
ue_context_pP
->
ue_context
.
reestablishment_xid
=
next_xid
;
ue_context_pP
->
ue_context
.
reestablishment_xid
=
next_xid
;
SRB_configList2
=
&
ue_context_pP
->
ue_context
.
SRB_configList2
[
xid
];
SRB_configList2
=
&
ue_context_pP
->
ue_context
.
SRB_configList2
[
xid
];
...
@@ -7380,9 +7378,8 @@ rrc_rx_tx(
...
@@ -7380,9 +7378,8 @@ rrc_rx_tx(
pthread_mutex_unlock
(
&
rrc_release_freelist
);
pthread_mutex_unlock
(
&
rrc_release_freelist
);
if
((
ue_context_p
->
ue_context
.
ue_rrc_inactivity_timer
>
0
)
&&
(
RC
.
rrc
[
enb_mod_idP
]
->
configuration
.
rrc_inactivity_timer_thres
>
0
))
{
if
((
ue_context_p
->
ue_context
.
ue_rrc_inactivity_timer
>
0
)
&&
(
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
configuration
.
rrc_inactivity_timer_thres
>
0
))
{
ue_context_p
->
ue_context
.
ue_rrc_inactivity_timer
++
;
// (un)comment this line to (de)activate the RRC inactivity timer
ue_context_p
->
ue_context
.
ue_rrc_inactivity_timer
++
;
// (un)comment this line to (de)activate the RRC inactivity timer
//if (ue_context_p->ue_context.ue_rrc_inactivity_timer >= ue_context_p->ue_context.ue_rrc_inactivity_timer_thres) {
if
(
ue_context_p
->
ue_context
.
ue_rrc_inactivity_timer
>=
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
configuration
.
rrc_inactivity_timer_thres
){
if
(
ue_context_p
->
ue_context
.
ue_rrc_inactivity_timer
>=
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
configuration
.
rrc_inactivity_timer_thres
){
LOG_I
(
RRC
,
"Removing UE %x instance because of rrc_inactivity_timer timeout
\n
"
,
LOG_I
(
RRC
,
"Removing UE %x instance because of rrc_inactivity_timer timeout
\n
"
,
ue_context_p
->
ue_context
.
rnti
);
ue_context_p
->
ue_context
.
rnti
);
...
@@ -7424,8 +7421,8 @@ rrc_rx_tx(
...
@@ -7424,8 +7421,8 @@ rrc_rx_tx(
if
(
ue_to_be_removed
)
{
if
(
ue_to_be_removed
)
{
if
((
ue_to_be_removed
->
ue_context
.
ul_failure_timer
>=
20000
)
||
if
((
ue_to_be_removed
->
ue_context
.
ul_failure_timer
>=
20000
)
||
(
ue_to_be_removed
->
ue_context
.
ue_rrc_inactivity_timer
>=
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
configuration
.
rrc_inactivity_timer_thres
))
{
(
(
ue_to_be_removed
->
ue_context
.
ue_rrc_inactivity_timer
>=
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
configuration
.
rrc_inactivity_timer_thres
)
&&
//(ue_to_be_removed->ue_context.ue_rrc_inactivity_timer >= ue_to_be_removed->ue_context.ue_rrc_inactivity_timer_thres
)) {
(
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
configuration
.
rrc_inactivity_timer_thres
>
0
)
))
{
ue_to_be_removed
->
ue_context
.
ue_release_timer_s1
=
1
;
ue_to_be_removed
->
ue_context
.
ue_release_timer_s1
=
1
;
ue_to_be_removed
->
ue_context
.
ue_release_timer_thres_s1
=
100
;
ue_to_be_removed
->
ue_context
.
ue_release_timer_thres_s1
=
100
;
ue_to_be_removed
->
ue_context
.
ue_release_timer
=
0
;
ue_to_be_removed
->
ue_context
.
ue_release_timer
=
0
;
...
@@ -7438,8 +7435,8 @@ rrc_rx_tx(
...
@@ -7438,8 +7435,8 @@ rrc_rx_tx(
ue_to_be_removed
->
ue_context
.
ul_failure_timer
=
0
;
ue_to_be_removed
->
ue_context
.
ul_failure_timer
=
0
;
}
}
//if (ue_to_be_removed->ue_context.ue_rrc_inactivity_timer >= ue_to_be_removed->ue_context.ue_rrc_inactivity_timer_thres) {
if
((
ue_to_be_removed
->
ue_context
.
ue_rrc_inactivity_timer
>=
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
configuration
.
rrc_inactivity_timer_thres
)
&&
if
(
ue_to_be_removed
->
ue_context
.
ue_rrc_inactivity_timer
>=
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
configuration
.
rrc_inactivity_timer_thres
)
{
(
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
configuration
.
rrc_inactivity_timer_thres
>
0
)
)
{
ue_to_be_removed
->
ue_context
.
ue_rrc_inactivity_timer
=
0
;
//reset timer after S1 command UE context release request is sent
ue_to_be_removed
->
ue_context
.
ue_rrc_inactivity_timer
=
0
;
//reset timer after S1 command UE context release request is sent
}
}
}
}
...
...
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