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
lizhongxiao
OpenXG-RAN
Commits
e0f6dfff
Commit
e0f6dfff
authored
Oct 06, 2023
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
RLF handled after SRB retx failure
parent
5c119f03
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
12 additions
and
12 deletions
+12
-12
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+8
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
+1
-1
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
+2
-9
No files found.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
e0f6dfff
...
@@ -2964,14 +2964,21 @@ bool nr_mac_check_release(NR_UE_sched_ctrl_t *sched_ctrl, int rnti)
...
@@ -2964,14 +2964,21 @@ bool nr_mac_check_release(NR_UE_sched_ctrl_t *sched_ctrl, int rnti)
return
sched_ctrl
->
release_timer
==
0
;
return
sched_ctrl
->
release_timer
==
0
;
}
}
void
nr_mac_trigger_ul_failure
(
NR_UE_sched_ctrl_t
*
sched_ctrl
,
NR_SubcarrierSpacing_t
subcarrier_spacing
)
void
nr_mac_trigger_ul_failure
(
int
rnti
)
{
{
NR_UE_info_t
*
UE
=
find_nr_UE
(
&
RC
.
nrmac
[
0
]
->
UE_info
,
rnti
);
if
(
UE
==
NULL
)
{
LOG_E
(
NR_MAC
,
"could not find UE RNTI %04x
\n
"
,
rnti
);
return
;
}
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE
->
UE_sched_ctrl
;
if
(
sched_ctrl
->
ul_failure
)
{
if
(
sched_ctrl
->
ul_failure
)
{
/* already running */
/* already running */
return
;
return
;
}
}
sched_ctrl
->
ul_failure
=
true
;
sched_ctrl
->
ul_failure
=
true
;
// 30 seconds till triggering release request
// 30 seconds till triggering release request
NR_SubcarrierSpacing_t
subcarrier_spacing
=
UE
->
current_DL_BWP
.
scs
;
sched_ctrl
->
ul_failure_timer
=
30000
<<
subcarrier_spacing
;
sched_ctrl
->
ul_failure_timer
=
30000
<<
subcarrier_spacing
;
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
e0f6dfff
...
@@ -677,7 +677,7 @@ static void _nr_rx_sdu(const module_id_t gnb_mod_idP,
...
@@ -677,7 +677,7 @@ static void _nr_rx_sdu(const module_id_t gnb_mod_idP,
if
(
!
get_softmodem_params
()
->
phy_test
&&
UE
->
UE_sched_ctrl
.
pusch_consecutive_dtx_cnt
>=
pusch_failure_thres
)
{
if
(
!
get_softmodem_params
()
->
phy_test
&&
UE
->
UE_sched_ctrl
.
pusch_consecutive_dtx_cnt
>=
pusch_failure_thres
)
{
LOG_W
(
NR_MAC
,
"Detected UL Failure on PUSCH after %d PUSCH DTX, stopping scheduling
\n
"
,
LOG_W
(
NR_MAC
,
"Detected UL Failure on PUSCH after %d PUSCH DTX, stopping scheduling
\n
"
,
UE
->
UE_sched_ctrl
.
pusch_consecutive_dtx_cnt
);
UE
->
UE_sched_ctrl
.
pusch_consecutive_dtx_cnt
);
nr_mac_trigger_ul_failure
(
&
UE
->
UE_sched_ctrl
,
UE
->
current_UL_BWP
.
scs
);
nr_mac_trigger_ul_failure
(
UE
->
rnti
);
}
}
}
}
}
else
if
(
sduP
)
{
}
else
if
(
sduP
)
{
...
...
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
View file @
e0f6dfff
...
@@ -442,7 +442,7 @@ void abort_nr_dl_harq(NR_UE_info_t* UE, int8_t harq_pid);
...
@@ -442,7 +442,7 @@ void abort_nr_dl_harq(NR_UE_info_t* UE, int8_t harq_pid);
void
nr_mac_trigger_release_timer
(
NR_UE_sched_ctrl_t
*
sched_ctrl
,
NR_SubcarrierSpacing_t
subcarrier_spacing
);
void
nr_mac_trigger_release_timer
(
NR_UE_sched_ctrl_t
*
sched_ctrl
,
NR_SubcarrierSpacing_t
subcarrier_spacing
);
bool
nr_mac_check_release
(
NR_UE_sched_ctrl_t
*
sched_ctrl
,
int
rnti
);
bool
nr_mac_check_release
(
NR_UE_sched_ctrl_t
*
sched_ctrl
,
int
rnti
);
void
nr_mac_trigger_ul_failure
(
NR_UE_sched_ctrl_t
*
sched_ctrl
,
NR_SubcarrierSpacing_t
subcarrier_spacing
);
void
nr_mac_trigger_ul_failure
(
int
rnti
);
void
nr_mac_reset_ul_failure
(
NR_UE_sched_ctrl_t
*
sched_ctrl
);
void
nr_mac_reset_ul_failure
(
NR_UE_sched_ctrl_t
*
sched_ctrl
);
void
nr_mac_check_ul_failure
(
const
gNB_MAC_INST
*
nrmac
,
int
rnti
,
NR_UE_sched_ctrl_t
*
sched_ctrl
);
void
nr_mac_check_ul_failure
(
const
gNB_MAC_INST
*
nrmac
,
int
rnti
,
NR_UE_sched_ctrl_t
*
sched_ctrl
);
...
...
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
View file @
e0f6dfff
...
@@ -571,6 +571,7 @@ rb_found:
...
@@ -571,6 +571,7 @@ rb_found:
#endif
#endif
}
}
extern
void
nr_mac_trigger_ul_failure
(
int
rnti
);
static
void
max_retx_reached
(
void
*
_ue
,
nr_rlc_entity_t
*
entity
)
static
void
max_retx_reached
(
void
*
_ue
,
nr_rlc_entity_t
*
entity
)
{
{
nr_rlc_ue_t
*
ue
=
_ue
;
nr_rlc_ue_t
*
ue
=
_ue
;
...
@@ -617,15 +618,7 @@ rb_found:
...
@@ -617,15 +618,7 @@ rb_found:
if
(
!
is_enb
)
if
(
!
is_enb
)
return
;
return
;
#if 0
nr_mac_trigger_ul_failure
(
ue
->
rnti
);
msg = itti_alloc_new_message(TASK_RLC_ENB, RLC_SDU_INDICATION);
RLC_SDU_INDICATION(msg).rnti = ue->rnti;
RLC_SDU_INDICATION(msg).is_successful = 0;
RLC_SDU_INDICATION(msg).srb_id = rb_id;
RLC_SDU_INDICATION(msg).message_id = -1;
/* TODO: accept more than 1 instance? here we send to instance id 0 */
itti_send_msg_to_task(TASK_RRC_ENB, 0, msg);
#endif
}
}
void
nr_rlc_reestablish_entity
(
int
rnti
,
int
lc_id
)
void
nr_rlc_reestablish_entity
(
int
rnti
,
int
lc_id
)
...
...
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