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
da383da9
Commit
da383da9
authored
Sep 07, 2020
by
r.karey
Committed by
guhan
Feb 26, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Changed periodicity calculation according to CSI_Reporting branch
parent
07d90b44
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
...
@@ -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_report_id
=
0
;
uint8_t
csi_resourceidx
=
0
;
uint8_t
csi_resourceidx
=
0
;
uint8_t
csi_ssb_idx
=
0
;
uint8_t
csi_ssb_idx
=
0
;
uint16_t
period
,
offset
;
NR_CSI_ReportPeriodicityAndOffset_PR
p_and_o
;
NR_CSI_ResourceConfigId_t
csi_ResourceConfigId
;
NR_CSI_ResourceConfigId_t
csi_ResourceConfigId
;
for
(
csi_report_id
=
0
;
csi_report_id
<
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
count
;
csi_report_id
++
){
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
;
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
][
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][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
++
)
{
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
)
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
...
@@ -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
;
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
;
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
].
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
].
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
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
].
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
].
rsrp_bitlen
=
0
;
UE_list
->
csi_report_template
[
UE_id
][
csi_report_id
].
CSI_report_bitlen
[
0
].
diff_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"
,
LOG_I
(
MAC
,
"UCI: CSI_bit len : ssbri %d, rsrp: %d, diff_rsrp: %d"
,
...
...
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
View file @
da383da9
...
@@ -43,7 +43,7 @@
...
@@ -43,7 +43,7 @@
NR_IF_Module_t
*
if_inst
[
MAX_IF_MODULES
];
NR_IF_Module_t
*
if_inst
[
MAX_IF_MODULES
];
NR_Sched_Rsp_t
Sched_INFO
[
MAX_IF_MODULES
][
MAX_NUM_CCs
];
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_harq_indication
(
nfapi_harq_indication_t
*
harq_ind
);
extern
int
oai_nfapi_crc_indication
(
nfapi_crc_indication_t
*
crc_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
);
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,
...
@@ -174,8 +174,9 @@ void extract_pucch_csi_report ( NR_CSI_MeasConfig_t *csi_MeasConfig,
//Has to implement according to reportSlotConfig type
//Has to implement according to reportSlotConfig type
periodicity = UE_list->csi_report_template[UE_id][csi_report_id].periodicity;
periodicity = UE_list->csi_report_template[UE_id][csi_report_id].periodicity;
LOG_I(PHY,"SFN/SF:%d%d \n", frame,slot);
LOG_I(PHY,"SFN/SF:%d%d \n", frame,slot);
if (((NR_SubcarrierSpacing_kHz30 == scs) && (((((frame & 0xf)+1)*20 + 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))) {
||((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;
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);
LOG_I(PHY,"SFN/SF:%d%d reportQuantity type = %d\n",frame,slot,reportQuantity_type);
...
...
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