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
alex037yang
OpenXG-RAN
Commits
94ac102f
Commit
94ac102f
authored
Aug 29, 2017
by
fnabet
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update UE RRC timers only once per subframe
parent
b10df82b
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
36 additions
and
33 deletions
+36
-33
openair2/LAYER2/MAC/ue_procedures.c
openair2/LAYER2/MAC/ue_procedures.c
+36
-33
No files found.
openair2/LAYER2/MAC/ue_procedures.c
View file @
94ac102f
...
@@ -1928,7 +1928,7 @@ ue_scheduler(
...
@@ -1928,7 +1928,7 @@ ue_scheduler(
//if (subframe%5 == 0)
//if (subframe%5 == 0)
//LG#ifdef EXMIMO
//LG#ifdef EXMIMO
//#ifdef UE_NR_PHY_DEMO
//#ifdef UE_NR_PHY_DEMO
// call pdcp_run every subframe on TTI0. To check later if OK
//
NR demo:
call pdcp_run every subframe on TTI0. To check later if OK
if
(
isNewTxSubframe
)
if
(
isNewTxSubframe
)
//#endif
//#endif
{
{
...
@@ -1944,57 +1944,60 @@ ue_scheduler(
...
@@ -1944,57 +1944,60 @@ ue_scheduler(
UE_mac_inst
[
module_idP
].
rxNRTti
=
rxNRTtiP
;
UE_mac_inst
[
module_idP
].
rxNRTti
=
rxNRTtiP
;
//#endif
//#endif
//NR demo: update RRC timers and check RRC state only once per subframe
if
(
isNewTxSubframe
)
{
#ifdef CELLULAR
#ifdef CELLULAR
rrc_rx_tx
(
module_idP
,
txFrameP
,
0
,
eNB_indexP
);
rrc_rx_tx
(
module_idP
,
txFrameP
,
0
,
eNB_indexP
);
#else
#else
switch
(
rrc_rx_tx
(
&
ctxt
,
switch
(
rrc_rx_tx
(
&
ctxt
,
eNB_indexP
,
eNB_indexP
,
CC_id
))
{
CC_id
))
{
case
RRC_OK
:
case
RRC_OK
:
break
;
break
;
case
RRC_ConnSetup_failed
:
case
RRC_ConnSetup_failed
:
LOG_E
(
MAC
,
"RRCConnectionSetup failed, returning to IDLE state
\n
"
);
LOG_E
(
MAC
,
"RRCConnectionSetup failed, returning to IDLE state
\n
"
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SCHEDULER
,
VCD_FUNCTION_OUT
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SCHEDULER
,
VCD_FUNCTION_OUT
);
#if UE_TIMING_TRACE
#if UE_TIMING_TRACE
stop_meas
(
&
UE_mac_inst
[
module_idP
].
ue_scheduler
);
stop_meas
(
&
UE_mac_inst
[
module_idP
].
ue_scheduler
);
#endif
#endif
return
(
CONNECTION_LOST
);
return
(
CONNECTION_LOST
);
break
;
break
;
case
RRC_PHY_RESYNCH
:
case
RRC_PHY_RESYNCH
:
LOG_E
(
MAC
,
"RRC Loss of synch, returning PHY_RESYNCH
\n
"
);
LOG_E
(
MAC
,
"RRC Loss of synch, returning PHY_RESYNCH
\n
"
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SCHEDULER
,
VCD_FUNCTION_OUT
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SCHEDULER
,
VCD_FUNCTION_OUT
);
#if UE_TIMING_TRACE
#if UE_TIMING_TRACE
stop_meas
(
&
UE_mac_inst
[
module_idP
].
ue_scheduler
);
stop_meas
(
&
UE_mac_inst
[
module_idP
].
ue_scheduler
);
#endif
#endif
return
(
PHY_RESYNCH
);
return
(
PHY_RESYNCH
);
case
RRC_Handover_failed
:
case
RRC_Handover_failed
:
LOG_N
(
MAC
,
"Handover failure for UE %d eNB_index %d
\n
"
,
module_idP
,
eNB_indexP
);
LOG_N
(
MAC
,
"Handover failure for UE %d eNB_index %d
\n
"
,
module_idP
,
eNB_indexP
);
//Invalid...need to add another MAC UE state for re-connection procedure
//Invalid...need to add another MAC UE state for re-connection procedure
mac_xface
->
phy_config_afterHO_ue
(
module_idP
,
0
,
eNB_indexP
,(
MobilityControlInfo_t
*
)
NULL
,
1
);
mac_xface
->
phy_config_afterHO_ue
(
module_idP
,
0
,
eNB_indexP
,(
MobilityControlInfo_t
*
)
NULL
,
1
);
//return(3);
//return(3);
break
;
break
;
case
RRC_HO_STARTED
:
case
RRC_HO_STARTED
:
#if DISABLE_LOG_X
#if DISABLE_LOG_X
printf
(
"MAC,RRC handover, Instruct PHY to start the contention-free PRACH and synchronization
\n
"
);
printf
(
"MAC,RRC handover, Instruct PHY to start the contention-free PRACH and synchronization
\n
"
);
#else
#else
LOG_I
(
MAC
,
"RRC handover, Instruct PHY to start the contention-free PRACH and synchronization
\n
"
);
LOG_I
(
MAC
,
"RRC handover, Instruct PHY to start the contention-free PRACH and synchronization
\n
"
);
#endif
#endif
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SCHEDULER
,
VCD_FUNCTION_OUT
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SCHEDULER
,
VCD_FUNCTION_OUT
);
#if UE_TIMING_TRACE
#if UE_TIMING_TRACE
stop_meas
(
&
UE_mac_inst
[
module_idP
].
ue_scheduler
);
stop_meas
(
&
UE_mac_inst
[
module_idP
].
ue_scheduler
);
#endif
#endif
return
(
PHY_HO_PRACH
);
return
(
PHY_HO_PRACH
);
default:
default:
break
;
break
;
}
}
#endif
#endif
}
// Check Contention resolution timer (put in a function later)
// Check Contention resolution timer (put in a function later)
if
(
UE_mac_inst
[
module_idP
].
RA_contention_resolution_timer_active
==
1
)
{
if
(
UE_mac_inst
[
module_idP
].
RA_contention_resolution_timer_active
==
1
)
{
...
...
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