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
6f5ea27e
Commit
6f5ea27e
authored
Mar 23, 2022
by
luis_pereira87
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improve nr_rrc_processing_timer procedures
parent
726cebaa
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
28 additions
and
35 deletions
+28
-35
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
+0
-4
openair2/LAYER2/NR_MAC_gNB/config.c
openair2/LAYER2/NR_MAC_gNB/config.c
+4
-0
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+1
-0
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+1
-4
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
+2
-0
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+2
-0
openair2/RRC/NR/L2_nr_interface.c
openair2/RRC/NR/L2_nr_interface.c
+1
-18
openair2/RRC/NR/rrc_gNB.c
openair2/RRC/NR/rrc_gNB.c
+16
-8
No files found.
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
View file @
6f5ea27e
...
@@ -203,8 +203,4 @@ void nr_mac_gNB_rrc_ul_failure_reset(const module_id_t Mod_instP,
...
@@ -203,8 +203,4 @@ void nr_mac_gNB_rrc_ul_failure_reset(const module_id_t Mod_instP,
const
sub_frame_t
subframeP
,
const
sub_frame_t
subframeP
,
const
rnti_t
rntiP
);
const
rnti_t
rntiP
);
bool
nr_rrc_disabled_mac_scheduling
(
const
module_id_t
Mod_instP
,
const
frame_t
frameP
,
const
sub_frame_t
subframeP
,
const
rnti_t
rntiP
);
#endif
#endif
openair2/LAYER2/NR_MAC_gNB/config.c
View file @
6f5ea27e
...
@@ -425,6 +425,10 @@ void config_common(int Mod_idP, int ssb_SubcarrierOffset, int pdsch_AntennaPorts
...
@@ -425,6 +425,10 @@ void config_common(int Mod_idP, int ssb_SubcarrierOffset, int pdsch_AntennaPorts
}
}
void
nr_rrc_mac_schedule_ue_enabled
(
module_id_t
module_id
,
rnti_t
rnti
,
bool
schedule_enabled
)
{
const
int
UE_id
=
find_nr_UE_id
(
module_id
,
rnti
);
RC
.
nrmac
[
module_id
]
->
UE_info
.
UE_sched_ctrl
[
UE_id
].
schedule_enabled
=
schedule_enabled
;
}
int
rrc_mac_config_req_gNB
(
module_id_t
Mod_idP
,
int
rrc_mac_config_req_gNB
(
module_id_t
Mod_idP
,
int
ssb_SubcarrierOffset
,
int
ssb_SubcarrierOffset
,
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
6f5ea27e
...
@@ -518,7 +518,7 @@ void nr_store_dlsch_buffer(module_id_t module_id,
...
@@ -518,7 +518,7 @@ void nr_store_dlsch_buffer(module_id_t module_id,
lcid
=
DL_SCH_LCID_DCCH
;
lcid
=
DL_SCH_LCID_DCCH
;
}
else
if
(
sched_ctrl
->
rlc_status
[
DL_SCH_LCID_DCCH1
].
bytes_in_buffer
>
0
)
{
}
else
if
(
sched_ctrl
->
rlc_status
[
DL_SCH_LCID_DCCH1
].
bytes_in_buffer
>
0
)
{
lcid
=
DL_SCH_LCID_DCCH1
;
lcid
=
DL_SCH_LCID_DCCH1
;
}
else
if
(
!
nr_rrc_disabled_mac_scheduling
(
module_id
,
frame
,
slot
,
rnti
)
)
{
}
else
if
(
sched_ctrl
->
schedule_enabled
==
true
)
{
lcid
=
DL_SCH_LCID_DTCH
;
lcid
=
DL_SCH_LCID_DTCH
;
}
else
{
}
else
{
continue
;
continue
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
6f5ea27e
...
@@ -2220,6 +2220,7 @@ int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *CellG
...
@@ -2220,6 +2220,7 @@ int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *CellG
sched_ctrl
->
pucch_consecutive_dtx_cnt
=
0
;
sched_ctrl
->
pucch_consecutive_dtx_cnt
=
0
;
sched_ctrl
->
pusch_consecutive_dtx_cnt
=
0
;
sched_ctrl
->
pusch_consecutive_dtx_cnt
=
0
;
sched_ctrl
->
ul_failure
=
0
;
sched_ctrl
->
ul_failure
=
0
;
sched_ctrl
->
schedule_enabled
=
true
;
sched_ctrl
->
sched_srs
.
frame
=
-
1
;
sched_ctrl
->
sched_srs
.
frame
=
-
1
;
sched_ctrl
->
sched_srs
.
slot
=
-
1
;
sched_ctrl
->
sched_srs
.
slot
=
-
1
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
6f5ea27e
...
@@ -1177,10 +1177,7 @@ void pf_ul(module_id_t module_id,
...
@@ -1177,10 +1177,7 @@ void pf_ul(module_id_t module_id,
const
bool
do_sched
=
nr_UE_is_to_be_scheduled
(
module_id
,
0
,
UE_id
,
sched_pusch
->
frame
,
sched_pusch
->
slot
);
const
bool
do_sched
=
nr_UE_is_to_be_scheduled
(
module_id
,
0
,
UE_id
,
sched_pusch
->
frame
,
sched_pusch
->
slot
);
LOG_D
(
NR_MAC
,
"pf_ul: do_sched UE %d => %s
\n
"
,
UE_id
,
do_sched
?
"yes"
:
"no"
);
LOG_D
(
NR_MAC
,
"pf_ul: do_sched UE %d => %s
\n
"
,
UE_id
,
do_sched
?
"yes"
:
"no"
);
if
(
B
==
0
&&
!
do_sched
)
if
(
(
B
==
0
&&
!
do_sched
)
||
(
sched_ctrl
->
schedule_enabled
==
false
)
)
{
continue
;
if
(
nr_rrc_disabled_mac_scheduling
(
module_id
,
frame
,
slot
,
UE_info
->
rnti
[
UE_id
]))
{
continue
;
continue
;
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
View file @
6f5ea27e
...
@@ -45,6 +45,8 @@ void config_common(int Mod_idP,
...
@@ -45,6 +45,8 @@ void config_common(int Mod_idP,
NR_ServingCellConfigCommon_t
*
scc
NR_ServingCellConfigCommon_t
*
scc
);
);
void
nr_rrc_mac_schedule_ue_enabled
(
module_id_t
module_id
,
rnti_t
rnti
,
bool
schedule_enabled
);
int
rrc_mac_config_req_gNB
(
module_id_t
Mod_idP
,
int
rrc_mac_config_req_gNB
(
module_id_t
Mod_idP
,
int
ssb_SubcarrierOffset
,
int
ssb_SubcarrierOffset
,
int
pdsch_AntennaPorts
,
int
pdsch_AntennaPorts
,
...
...
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
6f5ea27e
...
@@ -646,6 +646,8 @@ typedef struct {
...
@@ -646,6 +646,8 @@ typedef struct {
/// UL HARQ processes that await retransmission
/// UL HARQ processes that await retransmission
NR_list_t
retrans_ul_harq
;
NR_list_t
retrans_ul_harq
;
NR_UE_mac_ce_ctrl_t
UE_mac_ce_ctrl
;
// MAC CE related information
NR_UE_mac_ce_ctrl_t
UE_mac_ce_ctrl
;
// MAC CE related information
/// Flag to indicate if MAC scheduling is enabled or disabled by RRC (e.g. during RRC processing time)
bool
schedule_enabled
;
}
NR_UE_sched_ctrl_t
;
}
NR_UE_sched_ctrl_t
;
typedef
struct
{
typedef
struct
{
...
...
openair2/RRC/NR/L2_nr_interface.c
View file @
6f5ea27e
...
@@ -391,21 +391,4 @@ void nr_mac_gNB_rrc_ul_failure_reset(const module_id_t Mod_instP,
...
@@ -391,21 +391,4 @@ void nr_mac_gNB_rrc_ul_failure_reset(const module_id_t Mod_instP,
}
else
{
}
else
{
LOG_W
(
RRC
,
"Frame %d, Subframe %d: UL failure reset: UE %x unknown
\n
"
,
frameP
,
subframeP
,
rntiP
);
LOG_W
(
RRC
,
"Frame %d, Subframe %d: UL failure reset: UE %x unknown
\n
"
,
frameP
,
subframeP
,
rntiP
);
}
}
}
}
\ No newline at end of file
bool
nr_rrc_disabled_mac_scheduling
(
const
module_id_t
Mod_instP
,
const
frame_t
frameP
,
const
sub_frame_t
subframeP
,
const
rnti_t
rntiP
)
{
bool
ret
=
false
;
struct
rrc_gNB_ue_context_s
*
ue_context_p
=
NULL
;
ue_context_p
=
rrc_gNB_get_ue_context
(
RC
.
nrrrc
[
Mod_instP
],
rntiP
);
if
(
ue_context_p
!=
NULL
)
{
if
(
ue_context_p
->
ue_context
.
nr_rrc_processing_timer
>
0
)
{
ret
=
true
;
}
}
else
{
LOG_W
(
RRC
,
"Frame %d, Subframe %d: UE 0x%04x unknown
\n
"
,
frameP
,
subframeP
,
rntiP
);
}
return
ret
;
}
openair2/RRC/NR/rrc_gNB.c
View file @
6f5ea27e
...
@@ -140,11 +140,13 @@ void openair_nr_rrc_on(const protocol_ctxt_t *const ctxt_pP) {
...
@@ -140,11 +140,13 @@ void openair_nr_rrc_on(const protocol_ctxt_t *const ctxt_pP) {
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
carrier
.
Srb0
.
Active
=
1
;
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
carrier
.
Srb0
.
Active
=
1
;
}
}
void
enable_nr_rrc_processing_timer
(
rrc_gNB_ue_context_t
*
ue_context_pP
,
void
enable_nr_rrc_processing_timer
(
module_id_t
module_id
,
NR_SubcarrierSpacing_t
subcarrierSpacing
,
rrc_gNB_ue_context_t
*
ue_context_pP
,
uint32_t
delay_ms
)
{
NR_SubcarrierSpacing_t
subcarrierSpacing
,
uint32_t
delay_ms
)
{
ue_context_pP
->
ue_context
.
nr_rrc_processing_timer
=
1
;
ue_context_pP
->
ue_context
.
nr_rrc_processing_timer
=
1
;
ue_context_pP
->
ue_context
.
nr_rrc_processing_delay
=
delay_ms
<<
subcarrierSpacing
;
ue_context_pP
->
ue_context
.
nr_rrc_processing_delay
=
delay_ms
<<
subcarrierSpacing
;
nr_rrc_mac_schedule_ue_enabled
(
module_id
,
ue_context_pP
->
ue_context
.
rnti
,
false
);
}
}
///---------------------------------------------------------------------------------------------------------------///
///---------------------------------------------------------------------------------------------------------------///
...
@@ -731,7 +733,8 @@ rrc_gNB_generate_defaultRRCReconfiguration(
...
@@ -731,7 +733,8 @@ rrc_gNB_generate_defaultRRCReconfiguration(
NULL
,
NULL
,
ue_p
->
masterCellGroup
);
ue_p
->
masterCellGroup
);
enable_nr_rrc_processing_timer
(
ue_context_pP
,
enable_nr_rrc_processing_timer
(
ctxt_pP
->
module_id
,
ue_context_pP
,
rrc
->
carrier
.
servingcellconfigcommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
0
]
->
subcarrierSpacing
,
rrc
->
carrier
.
servingcellconfigcommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
0
]
->
subcarrierSpacing
,
NR_RRC_PROCESSING_DELAY_MS
);
NR_RRC_PROCESSING_DELAY_MS
);
...
@@ -998,7 +1001,8 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
...
@@ -998,7 +1001,8 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
NULL
,
NULL
,
cellGroupConfig
);
cellGroupConfig
);
enable_nr_rrc_processing_timer
(
ue_context_pP
,
enable_nr_rrc_processing_timer
(
ctxt_pP
->
module_id
,
ue_context_pP
,
rrc
->
carrier
.
servingcellconfigcommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
0
]
->
subcarrierSpacing
,
rrc
->
carrier
.
servingcellconfigcommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
0
]
->
subcarrierSpacing
,
NR_RRC_PROCESSING_DELAY_MS
);
NR_RRC_PROCESSING_DELAY_MS
);
...
@@ -1175,7 +1179,8 @@ rrc_gNB_modify_dedicatedRRCReconfiguration(
...
@@ -1175,7 +1179,8 @@ rrc_gNB_modify_dedicatedRRCReconfiguration(
NULL
,
NULL
,
NULL
);
NULL
);
enable_nr_rrc_processing_timer
(
ue_context_pP
,
enable_nr_rrc_processing_timer
(
ctxt_pP
->
module_id
,
ue_context_pP
,
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
carrier
.
servingcellconfigcommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
0
]
->
subcarrierSpacing
,
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
carrier
.
servingcellconfigcommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
0
]
->
subcarrierSpacing
,
NR_RRC_PROCESSING_DELAY_MS
);
NR_RRC_PROCESSING_DELAY_MS
);
...
@@ -1280,7 +1285,8 @@ rrc_gNB_generate_dedicatedRRCReconfiguration_release(
...
@@ -1280,7 +1285,8 @@ rrc_gNB_generate_dedicatedRRCReconfiguration_release(
NULL
,
NULL
,
NULL
);
NULL
);
enable_nr_rrc_processing_timer
(
ue_context_pP
,
enable_nr_rrc_processing_timer
(
ctxt_pP
->
module_id
,
ue_context_pP
,
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
carrier
.
servingcellconfigcommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
0
]
->
subcarrierSpacing
,
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
carrier
.
servingcellconfigcommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
0
]
->
subcarrierSpacing
,
NR_RRC_PROCESSING_DELAY_MS
);
NR_RRC_PROCESSING_DELAY_MS
);
...
@@ -1834,7 +1840,8 @@ rrc_gNB_process_RRCConnectionReestablishmentComplete(
...
@@ -1834,7 +1840,8 @@ rrc_gNB_process_RRCConnectionReestablishmentComplete(
NULL
,
NULL
,
NULL
);
NULL
);
enable_nr_rrc_processing_timer
(
ue_context_pP
,
enable_nr_rrc_processing_timer
(
ctxt_pP
->
module_id
,
ue_context_pP
,
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
carrier
.
servingcellconfigcommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
0
]
->
subcarrierSpacing
,
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
carrier
.
servingcellconfigcommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
0
]
->
subcarrierSpacing
,
NR_RRC_PROCESSING_DELAY_MS
);
NR_RRC_PROCESSING_DELAY_MS
);
...
@@ -3460,6 +3467,7 @@ void nr_rrc_subframe_process(protocol_ctxt_t *const ctxt_pP, const int CC_id) {
...
@@ -3460,6 +3467,7 @@ void nr_rrc_subframe_process(protocol_ctxt_t *const ctxt_pP, const int CC_id) {
ue_context_p
->
ue_context
.
nr_rrc_processing_timer
++
;
ue_context_p
->
ue_context
.
nr_rrc_processing_timer
++
;
if
(
ue_context_p
->
ue_context
.
nr_rrc_processing_timer
>=
ue_context_p
->
ue_context
.
nr_rrc_processing_delay
)
{
if
(
ue_context_p
->
ue_context
.
nr_rrc_processing_timer
>=
ue_context_p
->
ue_context
.
nr_rrc_processing_delay
)
{
ue_context_p
->
ue_context
.
nr_rrc_processing_timer
=
0
;
ue_context_p
->
ue_context
.
nr_rrc_processing_timer
=
0
;
nr_rrc_mac_schedule_ue_enabled
(
ctxt_pP
->
module_id
,
ue_context_p
->
ue_context
.
rnti
,
true
);
}
}
}
}
...
...
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