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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG
OpenXG-RAN
Commits
3f35d462
Commit
3f35d462
authored
Dec 13, 2024
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
separate DL and UL timers at UE
parent
65bc749e
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
23 additions
and
12 deletions
+23
-12
executables/nr-ue.c
executables/nr-ue.c
+4
-1
openair2/LAYER2/NR_MAC_UE/mac_proto.h
openair2/LAYER2/NR_MAC_UE/mac_proto.h
+2
-1
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+11
-7
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
+5
-2
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.h
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.h
+1
-1
No files found.
executables/nr-ue.c
View file @
3f35d462
...
...
@@ -519,7 +519,7 @@ void processSlotTX(void *arg)
bool
sl_tx_action
=
false
;
if
(
UE
->
if_inst
)
UE
->
if_inst
->
slot_indication
(
UE
->
Mod_id
);
UE
->
if_inst
->
slot_indication
(
UE
->
Mod_id
,
true
);
if
(
proc
->
tx_slot_type
==
NR_UPLINK_SLOT
||
proc
->
tx_slot_type
==
NR_MIXED_SLOT
)
{
if
(
UE
->
sl_mode
==
2
&&
proc
->
tx_slot_type
==
NR_SIDELINK_SLOT
)
{
...
...
@@ -650,6 +650,9 @@ static int UE_dl_preprocessing(PHY_VARS_NR_UE *UE,
}
}
if
(
UE
->
if_inst
)
UE
->
if_inst
->
slot_indication
(
UE
->
Mod_id
,
false
);
bool
dl_slot
=
false
;
if
(
proc
->
rx_slot_type
==
NR_DOWNLINK_SLOT
||
proc
->
rx_slot_type
==
NR_MIXED_SLOT
)
{
dl_slot
=
true
;
...
...
openair2/LAYER2/NR_MAC_UE/mac_proto.h
View file @
3f35d462
...
...
@@ -49,7 +49,8 @@ NR_UE_DL_BWP_t *get_dl_bwp_structure(NR_UE_MAC_INST_t *mac, int bwp_id, bool set
NR_UE_UL_BWP_t
*
get_ul_bwp_structure
(
NR_UE_MAC_INST_t
*
mac
,
int
bwp_id
,
bool
setup
);
void
send_srb0_rrc
(
int
ue_id
,
const
uint8_t
*
sdu
,
sdu_size_t
sdu_len
,
void
*
data
);
void
update_mac_timers
(
NR_UE_MAC_INST_t
*
mac
);
void
update_mac_ul_timers
(
NR_UE_MAC_INST_t
*
mac
);
void
update_mac_dl_timers
(
NR_UE_MAC_INST_t
*
mac
);
NR_LC_SCHEDULING_INFO
*
get_scheduling_info_from_lcid
(
NR_UE_MAC_INST_t
*
mac
,
NR_LogicalChannelIdentity_t
lcid
);
/**\brief apply default configuration values in nr_mac instance
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
View file @
3f35d462
...
...
@@ -182,16 +182,23 @@ void handle_time_alignment_timer_expired(NR_UE_MAC_INST_t *mac)
// TODO not sure what to do here
}
void
update_mac_timers
(
NR_UE_MAC_INST_t
*
mac
)
void
update_mac_dl_timers
(
NR_UE_MAC_INST_t
*
mac
)
{
bool
ra_window_expired
=
nr_timer_tick
(
&
mac
->
ra
.
response_window_timer
);
if
(
ra_window_expired
)
// consider the Random Access Response reception not successful
nr_rar_not_successful
(
mac
);
bool
alignment_timer_expired
=
nr_timer_tick
(
&
mac
->
time_alignment_timer
);
if
(
alignment_timer_expired
)
handle_time_alignment_timer_expired
(
mac
);
}
void
update_mac_ul_timers
(
NR_UE_MAC_INST_t
*
mac
)
{
if
(
mac
->
data_inactivity_timer
)
{
bool
inactivity_timer_expired
=
nr_timer_tick
(
mac
->
data_inactivity_timer
);
if
(
inactivity_timer_expired
)
nr_mac_rrc_inactivity_timer_ind
(
mac
->
ue_id
);
}
bool
alignment_timer_expired
=
nr_timer_tick
(
&
mac
->
time_alignment_timer
);
if
(
alignment_timer_expired
)
handle_time_alignment_timer_expired
(
mac
);
bool
contention_resolution_expired
=
nr_timer_tick
(
&
mac
->
ra
.
contention_resolution_timer
);
if
(
contention_resolution_expired
)
nr_ra_contention_resolution_failed
(
mac
);
...
...
@@ -238,9 +245,6 @@ void update_mac_timers(NR_UE_MAC_INST_t *mac)
phr_info
->
phr_reporting
|=
(
1
<<
phr_cause_periodic_timer
);
}
}
bool
ra_window_expired
=
nr_timer_tick
(
&
mac
->
ra
.
response_window_timer
);
if
(
ra_window_expired
)
// consider the Random Access Response reception not successful
nr_rar_not_successful
(
mac
);
bool
ra_backoff_expired
=
nr_timer_tick
(
&
mac
->
ra
.
RA_backoff_timer
);
if
(
ra_backoff_expired
)
{
// perform the Random Access Resource selection procedure after the backoff time
...
...
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
View file @
3f35d462
...
...
@@ -1329,12 +1329,15 @@ int nr_ue_dl_indication(nr_downlink_indication_t *dl_info)
return
ret2
;
}
void
nr_ue_slot_indication
(
uint8_t
mod_id
)
void
nr_ue_slot_indication
(
uint8_t
mod_id
,
bool
is_tx
)
{
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
mod_id
);
int
ret
=
pthread_mutex_lock
(
&
mac
->
if_mutex
);
AssertFatal
(
!
ret
,
"mutex failed %d
\n
"
,
ret
);
update_mac_timers
(
mac
);
if
(
is_tx
)
update_mac_ul_timers
(
mac
);
else
update_mac_dl_timers
(
mac
);
ret
=
pthread_mutex_unlock
(
&
mac
->
if_mutex
);
AssertFatal
(
!
ret
,
"mutex failed %d
\n
"
,
ret
);
}
...
...
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.h
View file @
3f35d462
...
...
@@ -260,7 +260,7 @@ typedef int (nr_ue_dl_indication_f)(nr_downlink_indication_t *dl_info);
*/
typedef
int
(
nr_ue_ul_indication_f
)(
nr_uplink_indication_t
*
ul_info
);
typedef
void
(
nr_ue_slot_indication_f
)(
uint8_t
mod_id
);
typedef
void
(
nr_ue_slot_indication_f
)(
uint8_t
mod_id
,
bool
is_tx
);
/*
* Generic type of an application-defined callback to return various
...
...
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