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
12e1045d
Commit
12e1045d
authored
1 year ago
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix for MAC template with CSI report config
parent
c985a794
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
35 additions
and
21 deletions
+35
-21
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
+1
-0
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
+8
-8
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
+1
-1
openair2/LAYER2/NR_MAC_UE/config_ue.c
openair2/LAYER2/NR_MAC_UE/config_ue.c
+6
-3
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+18
-8
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
+1
-1
No files found.
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
View file @
12e1045d
...
...
@@ -501,6 +501,7 @@ typedef struct{
}
CSI_Meas_bitlen_t
;
typedef
struct
nr_csi_report
{
NR_CSI_ReportConfigId_t
reportConfigId
;
NR_CSI_ReportConfig__reportQuantity_PR
reportQuantity_type
;
long
periodicity
;
uint16_t
offset
;
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
View file @
12e1045d
...
...
@@ -5028,7 +5028,7 @@ void compute_csi_bitlen(const NR_CSI_MeasConfig_t *csi_MeasConfig, nr_csi_report
// for each CSI measurement report configuration (list of CSI-ReportConfig)
LOG_D
(
NR_MAC
,
"Searching %d csi_reports
\n
"
,
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
count
);
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
++
)
{
struct
NR_CSI_ReportConfig
*
csi_reportconfig
=
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
array
[
csi_report_id
];
// MAC structure for CSI measurement reports (per UE and per report)
nr_csi_report_t
*
csi_report
=
&
csi_report_template
[
csi_report_id
];
...
...
@@ -5051,6 +5051,7 @@ void compute_csi_bitlen(const NR_CSI_MeasConfig_t *csi_MeasConfig, nr_csi_report
reportQuantity_type
=
csi_reportconfig
->
reportQuantity
.
present
;
csi_report
->
reportQuantity_type
=
reportQuantity_type
;
csi_report
->
reportConfigId
=
csi_reportconfig
->
reportConfigId
;
// setting the CSI or SSB index list
if
(
NR_CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP
==
csi_report
->
reportQuantity_type
)
{
...
...
@@ -5115,21 +5116,21 @@ void compute_csi_bitlen(const NR_CSI_MeasConfig_t *csi_MeasConfig, nr_csi_report
}
}
uint16_t
nr_get_csi_bitlen
(
nr_csi_report_t
*
csi_report
_template
,
uint8_t
csi_report_id
)
{
uint16_t
nr_get_csi_bitlen
(
nr_csi_report_t
*
csi_report
)
{
uint16_t
csi_bitlen
=
0
;
uint16_t
max_bitlen
=
0
;
L1_RSRP_bitlen_t
*
CSI_report_bitlen
=
NULL
;
CSI_Meas_bitlen_t
*
csi_meas_bitlen
=
NULL
;
if
(
csi_report
_template
[
csi_report_id
].
reportQuantity_type
==
NR_CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP
||
csi_report
_template
[
csi_report_id
].
reportQuantity_type
==
NR_CSI_ReportConfig__reportQuantity_PR_cri_RSRP
)
{
CSI_report_bitlen
=
&
(
csi_report
_template
[
csi_report_id
].
CSI_report_bitlen
);
// This might need to be moodif for Aperiodic CSI-RS measurements
if
(
csi_report
->
reportQuantity_type
==
NR_CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP
||
csi_report
->
reportQuantity_type
==
NR_CSI_ReportConfig__reportQuantity_PR_cri_RSRP
)
{
CSI_report_bitlen
=
&
(
csi_report
->
CSI_report_bitlen
);
// This might need to be moodif for Aperiodic CSI-RS measurements
csi_bitlen
+=
((
CSI_report_bitlen
->
cri_ssbri_bitlen
*
CSI_report_bitlen
->
nb_ssbri_cri
)
+
CSI_report_bitlen
->
rsrp_bitlen
+
(
CSI_report_bitlen
->
diff_rsrp_bitlen
*
(
CSI_report_bitlen
->
nb_ssbri_cri
-
1
)));
}
else
{
csi_meas_bitlen
=
&
(
csi_report
_template
[
csi_report_id
].
csi_meas_bitlen
);
//This might need to be moodif for Aperiodic CSI-RS measurements
csi_meas_bitlen
=
&
(
csi_report
->
csi_meas_bitlen
);
//This might need to be moodif for Aperiodic CSI-RS measurements
uint16_t
temp_bitlen
;
for
(
int
i
=
0
;
i
<
8
;
i
++
)
{
temp_bitlen
=
(
csi_meas_bitlen
->
cri_bitlen
+
...
...
@@ -5143,7 +5144,6 @@ uint16_t nr_get_csi_bitlen(nr_csi_report_t *csi_report_template, uint8_t csi_rep
}
csi_bitlen
+=
max_bitlen
;
}
return
csi_bitlen
;
}
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
View file @
12e1045d
...
...
@@ -309,7 +309,7 @@ void compute_cqi_bitlen(struct NR_CSI_ReportConfig *csi_reportconfig,
void
compute_csi_bitlen
(
const
NR_CSI_MeasConfig_t
*
csi_MeasConfig
,
nr_csi_report_t
*
csi_report_template
);
uint16_t
nr_get_csi_bitlen
(
nr_csi_report_t
*
csi_report
_template
,
uint8_t
csi_report_id
);
uint16_t
nr_get_csi_bitlen
(
nr_csi_report_t
*
csi_report
);
uint16_t
compute_PDU_length
(
uint32_t
num_TLV
,
uint16_t
total_length
);
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_UE/config_ue.c
View file @
12e1045d
...
...
@@ -1964,10 +1964,13 @@ static void configure_csiconfig(NR_UE_ServingCell_Info_t *sc_info, struct NR_Set
}
}
static
void
configure_servingcell_info
(
NR_UE_
ServingCell_Info_t
*
sc_info
,
NR_ServingCellConfig_t
*
scd
)
static
void
configure_servingcell_info
(
NR_UE_
MAC_INST_t
*
mac
,
NR_ServingCellConfig_t
*
scd
)
{
if
(
scd
->
csi_MeasConfig
)
NR_UE_ServingCell_Info_t
*
sc_info
=
&
mac
->
sc_info
;
if
(
scd
->
csi_MeasConfig
)
{
configure_csiconfig
(
sc_info
,
scd
->
csi_MeasConfig
);
compute_csi_bitlen
(
sc_info
->
csi_MeasConfig
,
mac
->
csi_report_template
);
}
if
(
scd
->
supplementaryUplink
)
UPDATE_IE
(
sc_info
->
supplementaryUplink
,
scd
->
supplementaryUplink
,
NR_UplinkConfig_t
);
...
...
@@ -2228,7 +2231,7 @@ void nr_rrc_mac_config_req_cg(module_id_t module_id,
handle_reconfiguration_with_sync
(
mac
,
cc_idP
,
spCellConfig
->
reconfigurationWithSync
);
}
if
(
scd
)
{
configure_servingcell_info
(
&
mac
->
sc_info
,
scd
);
configure_servingcell_info
(
mac
,
scd
);
configure_BWPs
(
mac
,
scd
);
}
}
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
12e1045d
...
...
@@ -2805,9 +2805,14 @@ csi_payload_t get_csirs_RI_PMI_CQI_payload(NR_UE_MAC_INST_t *mac,
if
(
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
->
list
.
array
[
csi_idx
]
->
nzp_CSI_ResourceSetId
==
*
(
csi_resourceconfig
->
csi_RS_ResourceSetList
.
choice
.
nzp_CSI_RS_SSB
->
nzp_CSI_RS_ResourceSetList
->
list
.
array
[
0
]))
{
nr_csi_report_t
*
csi_report
=
&
mac
->
csi_report_template
[
csi_idx
];
compute_csi_bitlen
(
csi_MeasConfig
,
mac
->
csi_report_template
);
nr_csi_report_t
*
csi_report
=
NULL
;
for
(
int
i
=
0
;
i
<
MAX_CSI_REPORTCONFIG
;
i
++
)
{
if
(
mac
->
csi_report_template
[
i
].
reportConfigId
==
csi_reportconfig
->
reportConfigId
)
{
csi_report
=
&
mac
->
csi_report_template
[
i
];
break
;
}
}
AssertFatal
(
csi_report
,
"Couldn't find CSI report with ID %ld
\n
"
,
csi_reportconfig
->
reportConfigId
);
int
cri_bitlen
=
csi_report
->
csi_meas_bitlen
.
cri_bitlen
;
int
ri_bitlen
=
csi_report
->
csi_meas_bitlen
.
ri_bitlen
;
int
pmi_x1_bitlen
=
csi_report
->
csi_meas_bitlen
.
pmi_x1_bitlen
[
mac
->
csirs_measurements
.
rank_indicator
];
...
...
@@ -2837,7 +2842,7 @@ csi_payload_t get_csirs_RI_PMI_CQI_payload(NR_UE_MAC_INST_t *mac,
mac
->
csirs_measurements
.
i2
;
}
else
{
p1_bits
=
nr_get_csi_bitlen
(
mac
->
csi_report_template
,
csi_idx
);
p1_bits
=
nr_get_csi_bitlen
(
csi_report
);
padding_bitlen
=
p1_bits
-
(
cri_bitlen
+
ri_bitlen
+
pmi_x1_bitlen
+
pmi_x2_bitlen
+
cqi_bitlen
);
temp_payload_1
=
(
0
/*mac->csi_measurements.cri*/
<<
(
cqi_bitlen
+
pmi_x2_bitlen
+
pmi_x1_bitlen
+
padding_bitlen
+
ri_bitlen
))
|
(
mac
->
csirs_measurements
.
rank_indicator
<<
(
cqi_bitlen
+
pmi_x2_bitlen
+
pmi_x1_bitlen
+
padding_bitlen
))
|
...
...
@@ -2884,10 +2889,15 @@ csi_payload_t get_csirs_RSRP_payload(NR_UE_MAC_INST_t *mac,
if
(
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
->
list
.
array
[
csi_idx
]
->
nzp_CSI_ResourceSetId
==
*
(
csi_resourceconfig
->
csi_RS_ResourceSetList
.
choice
.
nzp_CSI_RS_SSB
->
nzp_CSI_RS_ResourceSetList
->
list
.
array
[
0
]))
{
nr_csi_report_t
*
csi_report
=
&
mac
->
csi_report_template
[
csi_idx
];
compute_csi_bitlen
(
csi_MeasConfig
,
mac
->
csi_report_template
);
n_bits
=
nr_get_csi_bitlen
(
mac
->
csi_report_template
,
csi_idx
);
nr_csi_report_t
*
csi_report
=
NULL
;
for
(
int
i
=
0
;
i
<
MAX_CSI_REPORTCONFIG
;
i
++
)
{
if
(
mac
->
csi_report_template
[
i
].
reportConfigId
==
csi_reportconfig
->
reportConfigId
)
{
csi_report
=
&
mac
->
csi_report_template
[
i
];
break
;
}
}
AssertFatal
(
csi_report
,
"Couldn't find CSI report with ID %ld
\n
"
,
csi_reportconfig
->
reportConfigId
);
n_bits
=
nr_get_csi_bitlen
(
csi_report
);
int
cri_ssbri_bitlen
=
csi_report
->
CSI_report_bitlen
.
cri_ssbri_bitlen
;
int
rsrp_bitlen
=
csi_report
->
CSI_report_bitlen
.
rsrp_bitlen
;
int
diff_rsrp_bitlen
=
csi_report
->
CSI_report_bitlen
.
diff_rsrp_bitlen
;
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
View file @
12e1045d
...
...
@@ -273,7 +273,7 @@ void nr_csi_meas_reporting(int Mod_idP,
curr_pucch
->
frame
=
sched_frame
;
curr_pucch
->
ul_slot
=
sched_slot
;
curr_pucch
->
resource_indicator
=
res_index
;
curr_pucch
->
csi_bits
+=
nr_get_csi_bitlen
(
UE
->
csi_report_template
,
csi_report_id
);
curr_pucch
->
csi_bits
+=
nr_get_csi_bitlen
(
&
UE
->
csi_report_template
[
csi_report_id
]
);
curr_pucch
->
active
=
true
;
int
bwp_start
=
ul_bwp
->
BWPStart
;
...
...
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