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
Michael Black
OpenXG-RAN
Commits
da383da9
Commit
da383da9
authored
4 years ago
by
r.karey
Committed by
guhan
4 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Changed periodicity calculation according to CSI_Reporting branch
parent
07d90b44
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
59 additions
and
6 deletions
+59
-6
openair2/LAYER2/NR_MAC_gNB/config.c
openair2/LAYER2/NR_MAC_gNB/config.c
+55
-3
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
+4
-3
No files found.
openair2/LAYER2/NR_MAC_gNB/config.c
View file @
da383da9
...
...
@@ -316,12 +316,62 @@ void update_csi_bitlen (NR_CSI_MeasConfig_t *csi_MeasConfig, NR_UE_list_t *UE_li
uint8_t
csi_report_id
=
0
;
uint8_t
csi_resourceidx
=
0
;
uint8_t
csi_ssb_idx
=
0
;
uint16_t
period
,
offset
;
NR_CSI_ReportPeriodicityAndOffset_PR
p_and_o
;
NR_CSI_ResourceConfigId_t
csi_ResourceConfigId
;
for
(
csi_report_id
=
0
;
csi_report_id
<
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
count
;
csi_report_id
++
){
csi_ResourceConfigId
=
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
array
[
csi_report_id
]
->
resourcesForChannelMeasurement
;
UE_list
->
csi_report_template
[
UE_id
][
csi_report_id
].
reportQuantity_type
=
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
array
[
csi_report_id
]
->
reportQuantity
.
present
;
// UE_list->csi_report_template[UE_id][idx].
UE_list
->
csi_report_template
[
UE_id
][
csi_report_id
].
periodicity
=
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
array
[
csi_report_id
]
->
reportConfigType
.
choice
.
periodic
->
reportSlotConfig
.
choice
.
slots320
;
p_and_o
=
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
array
[
csi_report_id
]
->
reportConfigType
.
choice
.
periodic
->
reportSlotConfig
.
present
;
switch
(
p_and_o
){
case
NR_CSI_ReportPeriodicityAndOffset_PR_slots4
:
period
=
4
;
offset
=
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
array
[
csi_report_id
]
->
reportConfigType
.
choice
.
periodic
->
reportSlotConfig
.
choice
.
slots4
;
break
;
case
NR_CSI_ReportPeriodicityAndOffset_PR_slots5
:
period
=
5
;
offset
=
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
array
[
csi_report_id
]
->
reportConfigType
.
choice
.
periodic
->
reportSlotConfig
.
choice
.
slots5
;
break
;
case
NR_CSI_ReportPeriodicityAndOffset_PR_slots8
:
period
=
8
;
offset
=
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
array
[
csi_report_id
]
->
reportConfigType
.
choice
.
periodic
->
reportSlotConfig
.
choice
.
slots8
;
break
;
case
NR_CSI_ReportPeriodicityAndOffset_PR_slots10
:
period
=
10
;
offset
=
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
array
[
csi_report_id
]
->
reportConfigType
.
choice
.
periodic
->
reportSlotConfig
.
choice
.
slots10
;
break
;
case
NR_CSI_ReportPeriodicityAndOffset_PR_slots16
:
period
=
16
;
offset
=
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
array
[
csi_report_id
]
->
reportConfigType
.
choice
.
periodic
->
reportSlotConfig
.
choice
.
slots16
;
break
;
case
NR_CSI_ReportPeriodicityAndOffset_PR_slots20
:
period
=
20
;
offset
=
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
array
[
csi_report_id
]
->
reportConfigType
.
choice
.
periodic
->
reportSlotConfig
.
choice
.
slots20
;
break
;
case
NR_CSI_ReportPeriodicityAndOffset_PR_slots40
:
period
=
40
;
offset
=
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
array
[
csi_report_id
]
->
reportConfigType
.
choice
.
periodic
->
reportSlotConfig
.
choice
.
slots40
;
break
;
case
NR_CSI_ReportPeriodicityAndOffset_PR_slots80
:
period
=
80
;
offset
=
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
array
[
csi_report_id
]
->
reportConfigType
.
choice
.
periodic
->
reportSlotConfig
.
choice
.
slots80
;
break
;
case
NR_CSI_ReportPeriodicityAndOffset_PR_slots160
:
period
=
160
;
offset
=
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
array
[
csi_report_id
]
->
reportConfigType
.
choice
.
periodic
->
reportSlotConfig
.
choice
.
slots160
;
break
;
case
NR_CSI_ReportPeriodicityAndOffset_PR_slots320
:
period
=
320
;
offset
=
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
array
[
csi_report_id
]
->
reportConfigType
.
choice
.
periodic
->
reportSlotConfig
.
choice
.
slots320
;
break
;
default:
AssertFatal
(
1
==
0
,
"No periodicity and offset resource found in CSI report"
);
}
UE_list
->
csi_report_template
[
UE_id
][
csi_report_id
].
periodicity
=
period
;
UE_list
->
csi_report_template
[
UE_id
][
csi_report_id
].
offset
=
offset
;
for
(
csi_resourceidx
=
0
;
csi_resourceidx
<
csi_MeasConfig
->
csi_ResourceConfigToAddModList
->
list
.
count
;
csi_resourceidx
++
)
{
if
(
csi_MeasConfig
->
csi_ResourceConfigToAddModList
->
list
.
array
[
csi_resourceidx
]
->
csi_ResourceConfigId
!=
csi_ResourceConfigId
)
...
...
@@ -358,14 +408,16 @@ void update_csi_bitlen (NR_CSI_MeasConfig_t *csi_MeasConfig, NR_UE_list_t *UE_li
UE_list
->
csi_report_template
[
UE_id
][
csi_report_id
].
CSI_report_bitlen
[
0
].
nb_ssbri_cri
=
2
;
nb_ssb_resources
=
csi_MeasConfig
->
csi_SSB_ResourceSetToAddModList
->
list
.
array
[
csi_ssb_idx
]
->
csi_SSB_ResourceList
.
list
.
count
;
if
(
nb_ssb_resources
)
if
(
nb_ssb_resources
)
{
UE_list
->
csi_report_template
[
UE_id
][
csi_report_id
].
CSI_report_bitlen
[
0
].
cri_ssbri_bitlen
=
ceil
(
log2
(
nb_ssb_resources
));
UE_list
->
csi_report_template
[
UE_id
][
csi_report_id
].
CSI_report_bitlen
[
0
].
rsrp_bitlen
=
7
;
//From spec 38.212 Table 6.3.1.1.2-6: CRI, SSBRI, and RSRP
UE_list
->
csi_report_template
[
UE_id
][
csi_report_id
].
CSI_report_bitlen
[
0
].
diff_rsrp_bitlen
=
4
;
//From spec 38.212 Table 6.3.1.1.2-6: CRI, SSBRI, and RSRP
else
}
else
{
UE_list
->
csi_report_template
[
UE_id
][
csi_report_id
].
CSI_report_bitlen
[
0
].
cri_ssbri_bitlen
=
0
;
UE_list
->
csi_report_template
[
UE_id
][
csi_report_id
].
CSI_report_bitlen
[
0
].
rsrp_bitlen
=
0
;
UE_list
->
csi_report_template
[
UE_id
][
csi_report_id
].
CSI_report_bitlen
[
0
].
diff_rsrp_bitlen
=
0
;
}
LOG_I
(
MAC
,
"UCI: CSI_bit len : ssbri %d, rsrp: %d, diff_rsrp: %d"
,
...
...
This diff is collapsed.
Click to expand it.
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
View file @
da383da9
...
...
@@ -43,7 +43,7 @@
NR_IF_Module_t
*
if_inst
[
MAX_IF_MODULES
];
NR_Sched_Rsp_t
Sched_INFO
[
MAX_IF_MODULES
][
MAX_NUM_CCs
];
extern
const
uint8_t
slots_per_frame
[
5
];
extern
int
oai_nfapi_harq_indication
(
nfapi_harq_indication_t
*
harq_ind
);
extern
int
oai_nfapi_crc_indication
(
nfapi_crc_indication_t
*
crc_ind
);
extern
int
oai_nfapi_cqi_indication
(
nfapi_cqi_indication_t
*
cqi_ind
);
...
...
@@ -174,8 +174,9 @@ void extract_pucch_csi_report ( NR_CSI_MeasConfig_t *csi_MeasConfig,
//Has to implement according to reportSlotConfig type
periodicity = UE_list->csi_report_template[UE_id][csi_report_id].periodicity;
LOG_I(PHY,"SFN/SF:%d%d \n", frame,slot);
if (((NR_SubcarrierSpacing_kHz30 == scs) && (((((frame & 0xf)+1)*20 + slot) & periodicity) == periodicity))
||((NR_SubcarrierSpacing_kHz120 == scs)&&(((((frame & 0xf)+1)*80 + slot) & periodicity) == periodicity))) {
/* if (((NR_SubcarrierSpacing_kHz30 == scs) && (((((frame & 0xf)+1)*20 + slot) & periodicity) == periodicity))
||((NR_SubcarrierSpacing_kHz120 == scs)&&(((((frame & 0xf)+1)*80 + slot) & periodicity) == periodicity))) {*/
if (((slots_per_frame[scs]*frame + slot -UE_list->csi_report_template[UE_id][csi_report_id].offset)%periodicity)==0) {
reportQuantity_type = UE_list->csi_report_template[UE_id][csi_report_id].reportQuantity_type;
LOG_I(PHY,"SFN/SF:%d%d reportQuantity type = %d\n",frame,slot,reportQuantity_type);
...
...
This diff is collapsed.
Click to expand it.
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