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
spbro
OpenXG-RAN
Commits
63a9cbcc
Commit
63a9cbcc
authored
Aug 11, 2022
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixes to correctly configure and schedule CSI-RS in case of multiple BWPs
parent
c0244ee6
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
22 additions
and
4 deletions
+22
-4
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+18
-2
openair2/RRC/NR/nr_rrc_config.c
openair2/RRC/NR/nr_rrc_config.c
+4
-2
No files found.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
63a9cbcc
...
@@ -2672,7 +2672,19 @@ void nr_csirs_scheduling(int Mod_idP,
...
@@ -2672,7 +2672,19 @@ void nr_csirs_scheduling(int Mod_idP,
NR_CSI_MeasConfig_t
*
csi_measconfig
=
ul_bwp
->
csi_MeasConfig
;
NR_CSI_MeasConfig_t
*
csi_measconfig
=
ul_bwp
->
csi_MeasConfig
;
if
(
csi_measconfig
->
nzp_CSI_RS_ResourceToAddModList
!=
NULL
)
{
// looking for the correct CSI-RS resource in current BWP
NR_NZP_CSI_RS_ResourceSetId_t
*
nzp
=
NULL
;
for
(
int
csi_list
=
0
;
csi_list
<
csi_measconfig
->
csi_ResourceConfigToAddModList
->
list
.
count
;
csi_list
++
)
{
NR_CSI_ResourceConfig_t
*
csires
=
csi_measconfig
->
csi_ResourceConfigToAddModList
->
list
.
array
[
csi_list
];
if
(
csires
->
bwp_Id
==
dl_bwp
->
bwp_id
&&
csires
->
csi_RS_ResourceSetList
.
present
==
NR_CSI_ResourceConfig__csi_RS_ResourceSetList_PR_nzp_CSI_RS_SSB
&&
csires
->
csi_RS_ResourceSetList
.
choice
.
nzp_CSI_RS_SSB
->
nzp_CSI_RS_ResourceSetList
)
{
nzp
=
csires
->
csi_RS_ResourceSetList
.
choice
.
nzp_CSI_RS_SSB
->
nzp_CSI_RS_ResourceSetList
->
list
.
array
[
0
];
}
}
if
(
csi_measconfig
->
nzp_CSI_RS_ResourceToAddModList
!=
NULL
&&
nzp
!=
NULL
)
{
NR_NZP_CSI_RS_Resource_t
*
nzpcsi
;
NR_NZP_CSI_RS_Resource_t
*
nzpcsi
;
int
period
,
offset
;
int
period
,
offset
;
...
@@ -2681,12 +2693,16 @@ void nr_csirs_scheduling(int Mod_idP,
...
@@ -2681,12 +2693,16 @@ void nr_csirs_scheduling(int Mod_idP,
for
(
int
id
=
0
;
id
<
csi_measconfig
->
nzp_CSI_RS_ResourceToAddModList
->
list
.
count
;
id
++
){
for
(
int
id
=
0
;
id
<
csi_measconfig
->
nzp_CSI_RS_ResourceToAddModList
->
list
.
count
;
id
++
){
nzpcsi
=
csi_measconfig
->
nzp_CSI_RS_ResourceToAddModList
->
list
.
array
[
id
];
nzpcsi
=
csi_measconfig
->
nzp_CSI_RS_ResourceToAddModList
->
list
.
array
[
id
];
// transmitting CSI-RS only for current BWP
if
(
nzpcsi
->
nzp_CSI_RS_ResourceId
!=
*
nzp
)
continue
;
NR_CSI_RS_ResourceMapping_t
resourceMapping
=
nzpcsi
->
resourceMapping
;
NR_CSI_RS_ResourceMapping_t
resourceMapping
=
nzpcsi
->
resourceMapping
;
csi_period_offset
(
NULL
,
nzpcsi
->
periodicityAndOffset
,
&
period
,
&
offset
);
csi_period_offset
(
NULL
,
nzpcsi
->
periodicityAndOffset
,
&
period
,
&
offset
);
if
((
frame
*
n_slots_frame
+
slot
-
offset
)
%
period
==
0
)
{
if
((
frame
*
n_slots_frame
+
slot
-
offset
)
%
period
==
0
)
{
LOG_D
(
NR_MAC
,
"Scheduling CSI-RS in frame %d slot %d
\n
"
,
frame
,
slot
);
LOG_D
(
NR_MAC
,
"Scheduling CSI-RS in frame %d slot %d
Resource ID %ld
\n
"
,
frame
,
slot
,
nzpcsi
->
nzp_CSI_RS_ResourceId
);
UE_info
->
sched_csirs
=
true
;
UE_info
->
sched_csirs
=
true
;
nfapi_nr_dl_tti_request_pdu_t
*
dl_tti_csirs_pdu
=
&
dl_req
->
dl_tti_pdu_list
[
dl_req
->
nPDUs
];
nfapi_nr_dl_tti_request_pdu_t
*
dl_tti_csirs_pdu
=
&
dl_req
->
dl_tti_pdu_list
[
dl_req
->
nPDUs
];
...
...
openair2/RRC/NR/nr_rrc_config.c
View file @
63a9cbcc
...
@@ -148,6 +148,7 @@ void config_csirs(NR_ServingCellConfigCommon_t *servingcellconfigcommon,
...
@@ -148,6 +148,7 @@ void config_csirs(NR_ServingCellConfigCommon_t *servingcellconfigcommon,
if
(
do_csirs
)
{
if
(
do_csirs
)
{
if
(
!
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
)
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
=
calloc
(
1
,
sizeof
(
*
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
));
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
=
calloc
(
1
,
sizeof
(
*
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
));
NR_NZP_CSI_RS_ResourceSet_t
*
nzpcsirs0
=
calloc
(
1
,
sizeof
(
*
nzpcsirs0
));
NR_NZP_CSI_RS_ResourceSet_t
*
nzpcsirs0
=
calloc
(
1
,
sizeof
(
*
nzpcsirs0
));
nzpcsirs0
->
nzp_CSI_ResourceSetId
=
id
;
nzpcsirs0
->
nzp_CSI_ResourceSetId
=
id
;
...
@@ -168,6 +169,7 @@ void config_csirs(NR_ServingCellConfigCommon_t *servingcellconfigcommon,
...
@@ -168,6 +169,7 @@ void config_csirs(NR_ServingCellConfigCommon_t *servingcellconfigcommon,
if
(
tdd
)
if
(
tdd
)
nb_slots_per_period
=
n_slots_frame
/
get_nb_periods_per_frame
(
tdd
->
dl_UL_TransmissionPeriodicity
);
nb_slots_per_period
=
n_slots_frame
/
get_nb_periods_per_frame
(
tdd
->
dl_UL_TransmissionPeriodicity
);
if
(
!
csi_MeasConfig
->
nzp_CSI_RS_ResourceToAddModList
)
csi_MeasConfig
->
nzp_CSI_RS_ResourceToAddModList
=
calloc
(
1
,
sizeof
(
*
csi_MeasConfig
->
nzp_CSI_RS_ResourceToAddModList
));
csi_MeasConfig
->
nzp_CSI_RS_ResourceToAddModList
=
calloc
(
1
,
sizeof
(
*
csi_MeasConfig
->
nzp_CSI_RS_ResourceToAddModList
));
NR_NZP_CSI_RS_Resource_t
*
nzpcsi0
=
calloc
(
1
,
sizeof
(
*
nzpcsi0
));
NR_NZP_CSI_RS_Resource_t
*
nzpcsi0
=
calloc
(
1
,
sizeof
(
*
nzpcsi0
));
nzpcsi0
->
nzp_CSI_RS_ResourceId
=
id
;
nzpcsi0
->
nzp_CSI_RS_ResourceId
=
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