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
a170257d
Commit
a170257d
authored
Apr 15, 2021
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix for RA SS
parent
1051c94c
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
38 additions
and
28 deletions
+38
-28
openair2/LAYER2/NR_MAC_UE/mac_defs.h
openair2/LAYER2/NR_MAC_UE/mac_defs.h
+2
-0
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
+25
-2
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+1
-2
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
+2
-14
openair2/RRC/NR_UE/L2_interface_ue.c
openair2/RRC/NR_UE/L2_interface_ue.c
+1
-1
openair2/RRC/NR_UE/rrc_UE.c
openair2/RRC/NR_UE/rrc_UE.c
+7
-9
No files found.
openair2/LAYER2/NR_MAC_UE/mac_defs.h
View file @
a170257d
...
...
@@ -300,6 +300,8 @@ typedef struct {
/// BeamfailurerecoveryConfig
NR_BeamFailureRecoveryConfig_t
RA_BeamFailureRecoveryConfig
;
/// RA SearchSpace
NR_SearchSpace_t
*
ss
;
}
RA_config_t
;
typedef
struct
{
...
...
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
View file @
a170257d
...
...
@@ -79,6 +79,29 @@ void init_RA(module_id_t mod_id,
prach_resources
->
POWER_OFFSET_2STEP_RA
=
0
;
prach_resources
->
RA_SCALING_FACTOR_BI
=
1
;
struct
NR_PDCCH_ConfigCommon__commonSearchSpaceList
*
commonSearchSpaceList
;
NR_SearchSpaceId_t
ss_id
=
0
;
NR_SearchSpace_t
*
ss
=
NULL
;
if
(
mac
->
scc
)
{
commonSearchSpaceList
=
mac
->
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
;
ss_id
=
*
mac
->
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
ra_SearchSpace
;
}
else
{
if
(
mac
->
scc_SIB
)
{
commonSearchSpaceList
=
mac
->
scc_SIB
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
;
ss_id
=
*
mac
->
scc_SIB
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
->
choice
.
setup
->
ra_SearchSpace
;
}
else
AssertFatal
(
1
==
0
,
"Both scc and scc_SIB are null
\n
"
);
}
AssertFatal
(
commonSearchSpaceList
->
list
.
count
>
0
,
"common SearchSpace list has 0 elements
\n
"
);
// Common searchspace list
for
(
int
i
=
0
;
i
<
commonSearchSpaceList
->
list
.
count
;
i
++
)
{
ss
=
commonSearchSpaceList
->
list
.
array
[
i
];
if
(
ss
->
searchSpaceId
==
ss_id
)
ra
->
ss
=
ss
;
}
if
(
rach_ConfigDedicated
)
{
if
(
rach_ConfigDedicated
->
cfra
){
LOG_I
(
MAC
,
"Initialization of 2-step contention-free random access procedure
\n
"
);
...
...
@@ -682,8 +705,8 @@ void nr_get_RA_window(NR_UE_MAC_INST_t *mac){
AssertFatal
(
&
setup
->
rach_ConfigGeneric
!=
NULL
,
"In %s: FATAL! rach_ConfigGeneric is NULL...
\n
"
,
__FUNCTION__
);
NR_RACH_ConfigGeneric_t
*
rach_ConfigGeneric
=
&
setup
->
rach_ConfigGeneric
;
long
scs
=
(
mac
->
scc
)
?
&
mac
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
0
]
->
subcarrierSpacing
:
&
mac
->
scc_SIB
->
downlinkConfigCommon
.
frequencyInfoDL
.
scs_SpecificCarrierList
.
list
.
array
[
0
]
->
subcarrierSpacing
;
mac
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
0
]
->
subcarrierSpacing
:
mac
->
scc_SIB
->
downlinkConfigCommon
.
frequencyInfoDL
.
scs_SpecificCarrierList
.
list
.
array
[
0
]
->
subcarrierSpacing
;
ra_ResponseWindow
=
rach_ConfigGeneric
->
ra_ResponseWindow
;
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
View file @
a170257d
...
...
@@ -861,12 +861,11 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
else
{
// this is for Msg2/Msg4
if
(
mac
->
ra
.
ra_state
>=
WAIT_RAR
)
{
NR_SearchSpace_t
*
ss0
=
mac
->
search_space_zero
;
fapi_nr_dl_config_dci_dl_pdu_rel15_t
*
rel15
=
&
dl_config
->
dl_config_list
[
dl_config
->
number_pdus
].
dci_config_pdu
.
dci_config_rel15
;
rel15
->
num_dci_options
=
1
;
rel15
->
dci_format_options
[
0
]
=
NR_DL_DCI_FORMAT_1_0
;
config_dci_pdu
(
mac
,
rel15
,
dl_config
,
mac
->
ra
.
ra_state
==
WAIT_RAR
?
NR_RNTI_RA
:
NR_RNTI_TC
,
-
1
);
fill_dci_search_candidates
(
ss0
,
rel15
);
fill_dci_search_candidates
(
mac
->
ra
.
ss
,
rel15
);
dl_config
->
number_pdus
=
1
;
LOG_D
(
MAC
,
"mac->cg %p: Calling fill_scheduled_response rnti %x, type0_pdcch, num_pdus %d
\n
"
,
mac
->
cg
,
rel15
->
rnti
,
dl_config
->
number_pdus
);
fill_scheduled_response
(
&
scheduled_response
,
dl_config
,
NULL
,
NULL
,
mod_id
,
cc_id
,
rx_frame
,
rx_slot
,
dl_info
->
thread_id
);
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
View file @
a170257d
...
...
@@ -897,13 +897,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
if
(
ra
->
ra_ss
)
{
ss
=
ra
->
ra_ss
;
}
else
{
if
(
nr_mac
->
sched_ctrlCommon
==
NULL
){
nr_mac
->
sched_ctrlCommon
=
calloc
(
1
,
sizeof
(
*
nr_mac
->
sched_ctrlCommon
));
}
if
(
nr_mac
->
sched_ctrlCommon
->
search_space
==
NULL
)
AssertFatal
(
1
==
0
,
"This seach space should have been already filled in SIB1
\n
"
);
else
ss
=
nr_mac
->
sched_ctrlCommon
->
search_space
;
AssertFatal
(
1
==
0
,
"RA SS missing
\n
"
);
}
NR_BWP_Downlink_t
*
bwp
=
NULL
;
...
...
@@ -1169,13 +1163,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
if
(
ra
->
ra_ss
)
{
ss
=
ra
->
ra_ss
;
}
else
{
if
(
nr_mac
->
sched_ctrlCommon
==
NULL
){
nr_mac
->
sched_ctrlCommon
=
calloc
(
1
,
sizeof
(
*
nr_mac
->
sched_ctrlCommon
));
}
if
(
nr_mac
->
sched_ctrlCommon
->
search_space
==
NULL
)
AssertFatal
(
1
==
0
,
"This seach space should have been already filled in SIB1
\n
"
);
else
ss
=
nr_mac
->
sched_ctrlCommon
->
search_space
;
AssertFatal
(
1
==
0
,
"RA SS missing
\n
"
);
}
NR_BWP_Downlink_t
*
bwp
=
ra
->
CellGroup
?
ra
->
CellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
array
[
ra
->
bwp_id
-
1
]
:
NULL
;
...
...
openair2/RRC/NR_UE/L2_interface_ue.c
View file @
a170257d
openair2/RRC/NR_UE/rrc_UE.c
View file @
a170257d
...
...
@@ -1005,7 +1005,6 @@ int nr_decode_SI( const protocol_ctxt_t *const ctxt_pP, const uint8_t gNB_index
}
if
(
new_sib
==
1
)
{
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
gNB_index
].
SIcnt
++
;
if
(
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
gNB_index
].
SIcnt
==
sib1
->
si_SchedulingInfo
->
schedulingInfoList
.
list
.
count
)
nr_rrc_set_sub_state
(
ctxt_pP
->
module_id
,
RRC_SUB_STATE_IDLE_SIB_COMPLETE
);
...
...
@@ -1126,8 +1125,7 @@ int8_t nr_rrc_ue_generate_ra_msg(module_id_t module_id, uint8_t gNB_index) {
return
0
;
}
int8_t
nr_rrc_ue_decode_NR_BCCH_DL_SCH_Message
(
module_id_t
module_id
,
int8_t
nr_rrc_ue_decode_NR_BCCH_DL_SCH_Message
(
module_id_t
module_id
,
const
uint8_t
gNB_index
,
uint8_t
*
const
Sdu
,
const
uint8_t
Sdu_len
,
...
...
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