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
4496b054
Commit
4496b054
authored
Oct 17, 2021
by
Eurecom
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
testing CSI reporting and MIMO DL
parent
f83c02d9
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
26 additions
and
20 deletions
+26
-20
openair1/PHY/NR_TRANSPORT/pucch_rx.c
openair1/PHY/NR_TRANSPORT/pucch_rx.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+5
-5
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
+10
-10
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/main.c
openair2/LAYER2/NR_MAC_gNB/main.c
+6
-0
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+0
-1
openair2/RRC/NR/rrc_gNB_reconfig.c
openair2/RRC/NR/rrc_gNB_reconfig.c
+2
-1
No files found.
openair1/PHY/NR_TRANSPORT/pucch_rx.c
View file @
4496b054
...
...
@@ -1519,7 +1519,7 @@ void nr_decode_pucch2(PHY_VARS_gNB *gNB,
#ifdef DEBUG_NR_PUCCH_RX
printf
(
"cw_ML %d, metric %d dB
\n
"
,
cw_ML
,
corr_dB
);
#endif
LOG_
I
(
PHY
,
"slot %d PUCCH2 cw_ML %d, metric %d dB
\n
"
,
slot
,
cw_ML
,
corr_dB
);
LOG_
D
(
PHY
,
"slot %d PUCCH2 cw_ML %d, metric %d dB
\n
"
,
slot
,
cw_ML
,
corr_dB
);
decodedPayload
[
0
]
=
(
uint64_t
)
cw_ML
;
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
4496b054
...
...
@@ -905,7 +905,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
harq
->
is_waiting
=
true
;
UE_info
->
mac_stats
[
UE_id
].
dlsch_rounds
[
harq
->
round
]
++
;
LOG_
I
(
NR_MAC
,
LOG_
D
(
NR_MAC
,
"%4d.%2d [DLSCH/PDSCH/PUCCH] UE %d RNTI %04x DCI L %d start %3d RBs %3d startSymbol %2d nb_symbol %2d dmrspos %x MCS %2d nrOfLayer %d TBS %4d HARQ PID %2d round %d RV %d NDI %d dl_data_to_ULACK %d (%d.%d) TPC %d
\n
"
,
frame
,
slot
,
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
4496b054
...
...
@@ -418,7 +418,7 @@ void nr_set_pdsch_semi_static(const NR_ServingCellConfigCommon_t *scc,
NR_PDSCH_Config_t
*
pdsch_Config
=
NULL
;
if
(
bwpd
)
pdsch_Config
=
bwpd
->
pdsch_Config
->
choice
.
setup
;
LOG_
I
(
NR_MAC
,
"tda %d, ps->time_domain_allocation %d,layers %d, ps->nrOfLayers %d, pdsch_config %p
\n
"
,
tda
,
ps
->
time_domain_allocation
,
layers
,
ps
->
nrOfLayers
,
pdsch_Config
);
LOG_
D
(
NR_MAC
,
"tda %d, ps->time_domain_allocation %d,layers %d, ps->nrOfLayers %d, pdsch_config %p
\n
"
,
tda
,
ps
->
time_domain_allocation
,
layers
,
ps
->
nrOfLayers
,
pdsch_Config
);
if
(
ps
->
time_domain_allocation
!=
tda
)
{
reset_dmrs
=
true
;
ps
->
time_domain_allocation
=
tda
;
...
...
@@ -440,7 +440,7 @@ void nr_set_pdsch_semi_static(const NR_ServingCellConfigCommon_t *scc,
}
const
long
dci_format
=
sched_ctrl
->
search_space
->
searchSpaceType
->
choice
.
ue_Specific
->
dci_Formats
;
LOG_
I
(
NR_MAC
,
"dci_format %d
\n
"
,(
int
)
dci_format
);
LOG_
D
(
NR_MAC
,
"dci_format %d
\n
"
,(
int
)
dci_format
);
if
(
dci_format
==
NR_SearchSpace__searchSpaceType__ue_Specific__dci_Formats_formats0_0_And_1_0
||
pdsch_Config
==
NULL
)
{
if
(
ps
->
nrOfSymbols
==
2
&&
ps
->
mapping_type
==
NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeB
)
...
...
@@ -456,7 +456,7 @@ void nr_set_pdsch_semi_static(const NR_ServingCellConfigCommon_t *scc,
ps
->
nrOfLayers
=
1
;
}
else
{
LOG_
I
(
NR_MAC
,
"checking layers
\n
"
);
LOG_
D
(
NR_MAC
,
"checking layers
\n
"
);
if
(
ps
->
nrOfLayers
!=
layers
)
{
reset_dmrs
=
true
;
ps
->
nrOfLayers
=
layers
;
...
...
@@ -468,7 +468,7 @@ void nr_set_pdsch_semi_static(const NR_ServingCellConfigCommon_t *scc,
if
(
reset_dmrs
)
{
ps
->
dl_dmrs_symb_pos
=
fill_dmrs_mask
(
bwpd
?
bwpd
->
pdsch_Config
->
choice
.
setup
:
NULL
,
scc
->
dmrs_TypeA_Position
,
ps
->
nrOfSymbols
,
ps
->
startSymbolIndex
,
ps
->
mapping_type
,
ps
->
frontloaded_symb
);
ps
->
N_DMRS_SLOT
=
get_num_dmrs
(
ps
->
dl_dmrs_symb_pos
);
LOG_
I
(
NR_MAC
,
"bwpd0 %p, bwpd %p : Filling dmrs info, ps->N_PRB_DMRS %d, ps->dl_dmrs_symb_pos %x, ps->N_DMRS_SLOT %d
\n
"
,
bwpd0
,
bwpd
,
ps
->
N_PRB_DMRS
,
ps
->
dl_dmrs_symb_pos
,
ps
->
N_DMRS_SLOT
);
LOG_
D
(
NR_MAC
,
"bwpd0 %p, bwpd %p : Filling dmrs info, ps->N_PRB_DMRS %d, ps->dl_dmrs_symb_pos %x, ps->N_DMRS_SLOT %d
\n
"
,
bwpd0
,
bwpd
,
ps
->
N_PRB_DMRS
,
ps
->
dl_dmrs_symb_pos
,
ps
->
N_DMRS_SLOT
);
}
}
...
...
@@ -2349,7 +2349,7 @@ void nr_csirs_scheduling(int Mod_idP,
if
((
frame
*
n_slots_frame
+
slot
-
offset
)
%
period
==
0
)
{
LOG_
I
(
MAC
,
"Scheduling CSI-RS in frame %d slot %d
\n
"
,
frame
,
slot
);
LOG_
D
(
NR_
MAC
,
"Scheduling CSI-RS in frame %d slot %d
\n
"
,
frame
,
slot
);
nfapi_nr_dl_tti_request_pdu_t
*
dl_tti_csirs_pdu
=
&
dl_req
->
dl_tti_pdu_list
[
dl_req
->
nPDUs
];
memset
((
void
*
)
dl_tti_csirs_pdu
,
0
,
sizeof
(
nfapi_nr_dl_tti_request_pdu_t
));
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
View file @
4496b054
...
...
@@ -60,7 +60,7 @@ void nr_fill_nfapi_pucch(module_id_t mod_id,
memset
(
pucch_pdu
,
0
,
sizeof
(
nfapi_nr_pucch_pdu_t
));
future_ul_tti_req
->
n_pdus
+=
1
;
LOG_
I
(
NR_MAC
,
LOG_
D
(
NR_MAC
,
"%s %4d.%2d Scheduling pucch reception in %4d.%2d: bits SR %d, DAI %d, CSI %d on res %d
\n
"
,
pucch
->
dai_c
>
0
?
"pucch_acknak"
:
""
,
frame
,
...
...
@@ -78,7 +78,7 @@ void nr_fill_nfapi_pucch(module_id_t mod_id,
NR_BWP_UplinkDedicated_t
*
ubwpd
;
ubwpd
=
cg
?
cg
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
initialUplinkBWP
:
NULL
;
LOG_
I
(
NR_MAC
,
"pucch_acknak: %d.%d Calling nr_configure_pucch (ubwpd %p,r_pucch %d) pucch in %d.%d
\n
"
,
frame
,
slot
,
ubwpd
,
pucch
->
r_pucch
,
pucch
->
frame
,
pucch
->
ul_slot
);
LOG_
D
(
NR_MAC
,
"pucch_acknak: %d.%d Calling nr_configure_pucch (ubwpd %p,r_pucch %d) pucch in %d.%d
\n
"
,
frame
,
slot
,
ubwpd
,
pucch
->
r_pucch
,
pucch
->
frame
,
pucch
->
ul_slot
);
nr_configure_pucch
(
pucch_pdu
,
scc
,
UE_info
->
CellGroup
[
UE_id
],
...
...
@@ -556,7 +556,7 @@ void compute_csi_bitlen(NR_CSI_MeasConfig_t *csi_MeasConfig, NR_UE_info_t *UE_in
struct
NR_CSI_ResourceConfig
*
csi_resourceconfig
;
// for each CSI measurement report configuration (list of CSI-ReportConfig)
LOG_
I
(
NR_MAC
,
"Searching %d csi_reports
\n
"
,
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
count
);
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
++
){
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)
...
...
@@ -611,7 +611,7 @@ void compute_csi_bitlen(NR_CSI_MeasConfig_t *csi_MeasConfig, NR_UE_info_t *UE_in
}
else
AssertFatal
(
1
==
0
,
"Only periodic resource configuration currently supported
\n
"
);
}
LOG_
I
(
NR_MAC
,
"nb_resources %d
\n
"
,
nb_resources
);
LOG_
D
(
NR_MAC
,
"nb_resources %d
\n
"
,
nb_resources
);
// computation of bit length depending on the report type
switch
(
reportQuantity_type
){
case
(
NR_CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP
):
...
...
@@ -724,7 +724,7 @@ void nr_csi_meas_reporting(int Mod_idP,
// preparation is done in first slot of tdd period
if
(
frame
%
(
period
/
n_slots_frame
)
!=
offset
/
n_slots_frame
)
continue
;
LOG_
I
(
NR_MAC
,
"CSI reporting in frame %d slot %d
\n
"
,
frame
,
sched_slot
);
LOG_
D
(
NR_MAC
,
"CSI reporting in frame %d slot %d
\n
"
,
frame
,
sched_slot
);
const
NR_PUCCH_CSI_Resource_t
*
pucchcsires
=
csirep
->
reportConfigType
.
choice
.
periodic
->
pucch_CSI_ResourceList
.
list
.
array
[
0
];
const
NR_PUCCH_ResourceSet_t
*
pucchresset
=
pucch_Config
->
resourceSetToAddModList
->
list
.
array
[
1
];
// set with formats >1
...
...
@@ -750,7 +750,7 @@ void nr_csi_meas_reporting(int Mod_idP,
curr_pucch
->
resource_indicator
=
res_index
;
curr_pucch
->
csi_bits
+=
nr_get_csi_bitlen
(
Mod_idP
,
UE_id
,
csi_report_id
);
LOG_
I
(
NR_MAC
,
"Programmed CSI pucch for %d.%d, resource %d, csi_bits %d
\n
"
,
frame
,
sched_slot
,
res_index
,
curr_pucch
->
csi_bits
);
LOG_
D
(
NR_MAC
,
"Programmed CSI pucch for %d.%d, resource %d, csi_bits %d
\n
"
,
frame
,
sched_slot
,
res_index
,
curr_pucch
->
csi_bits
);
// going through the list of PUCCH resources to find the one indexed by resource_id
uint16_t
*
vrb_map_UL
=
&
RC
.
nrmac
[
Mod_idP
]
->
common_channels
[
0
].
vrb_map_UL
[
sched_slot
*
MAX_BWP_SIZE
];
const
int
m
=
pucch_Config
->
resourceToAddModList
->
list
.
count
;
...
...
@@ -1188,7 +1188,7 @@ int evaluate_ri_report(uint8_t *payload,
if
((
ri_restriction
>>
i
)
&
0x01
)
{
if
(
count
==
ri_index
)
{
sched_ctrl
->
CSI_report
.
cri_ri_li_pmi_cqi_report
.
ri
=
i
;
LOG_
I
(
MAC
,
"CSI Reported Rank %d
\n
"
,
i
+
1
);
LOG_
D
(
MAC
,
"CSI Reported Rank %d
\n
"
,
i
+
1
);
return
i
;
}
count
++
;
...
...
@@ -1218,7 +1218,7 @@ void evaluate_cqi_report(uint8_t *payload,
else
AssertFatal
(
1
==
0
,
"CQI Table not present in RRC configuration
\n
"
);
sched_ctrl
->
CSI_report
.
cri_ri_li_pmi_cqi_report
.
wb_cqi_1tb
=
temp_cqi
;
LOG_
I
(
MAC
,
"Wide-band CQI for the first TB %d
\n
"
,
temp_cqi
);
LOG_
D
(
MAC
,
"Wide-band CQI for the first TB %d
\n
"
,
temp_cqi
);
if
(
cqi_bitlen
>
4
)
{
temp_cqi
=
pickandreverse_bits
(
payload
,
4
,
cumul_bits
);
sched_ctrl
->
CSI_report
.
cri_ri_li_pmi_cqi_report
.
wb_cqi_2tb
=
temp_cqi
;
...
...
@@ -1243,7 +1243,7 @@ uint8_t evaluate_pmi_report(uint8_t *payload,
sched_ctrl
->
CSI_report
.
cri_ri_li_pmi_cqi_report
.
pmi_x1
=
temp_pmi
&
((
1
<<
x1_bitlen
)
-
1
);
sched_ctrl
->
CSI_report
.
cri_ri_li_pmi_cqi_report
.
pmi_x2
=
(
temp_pmi
>>
x1_bitlen
)
&
((
1
<<
x2_bitlen
)
-
1
);
LOG_
I
(
MAC
,
"PMI Report: X1 %d X2 %d
\n
"
,
LOG_
D
(
MAC
,
"PMI Report: X1 %d X2 %d
\n
"
,
sched_ctrl
->
CSI_report
.
cri_ri_li_pmi_cqi_report
.
pmi_x1
,
sched_ctrl
->
CSI_report
.
cri_ri_li_pmi_cqi_report
.
pmi_x2
);
...
...
@@ -1262,7 +1262,7 @@ int evaluate_li_report(uint8_t *payload,
if
(
li_bitlen
>
0
)
{
int
temp_li
=
pickandreverse_bits
(
payload
,
li_bitlen
,
cumul_bits
);
LOG_
I
(
MAC
,
"LI %d
\n
"
,
temp_li
);
LOG_
D
(
MAC
,
"LI %d
\n
"
,
temp_li
);
sched_ctrl
->
CSI_report
.
cri_ri_li_pmi_cqi_report
.
li
=
temp_li
;
}
return
li_bitlen
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
4496b054
...
...
@@ -1261,7 +1261,7 @@ void pf_ul(module_id_t module_id,
&
rbSize
);
sched_pusch
->
rbSize
=
rbSize
;
sched_pusch
->
tb_size
=
TBS
;
LOG_
I
(
NR_MAC
,
"rbSize %d (max_rbSize %d), TBS %d, est buf %d, sched_ul %d, B %d, CCE %d, num_dmrs_symb %d, N_PRB_DMRS %d
\n
"
,
LOG_
D
(
NR_MAC
,
"rbSize %d (max_rbSize %d), TBS %d, est buf %d, sched_ul %d, B %d, CCE %d, num_dmrs_symb %d, N_PRB_DMRS %d
\n
"
,
rbSize
,
max_rbSize
,
sched_pusch
->
tb_size
,
sched_ctrl
->
estimated_ul_buffer
,
sched_ctrl
->
sched_ul_bytes
,
B
,
sched_ctrl
->
cce_index
,
ps
->
num_dmrs_symb
,
ps
->
N_PRB_DMRS
);
/* Mark the corresponding RBs as used */
...
...
openair2/LAYER2/NR_MAC_gNB/main.c
View file @
4496b054
...
...
@@ -96,6 +96,12 @@ void dump_mac_stats(gNB_MAC_INST *gNB, char *output, int strlen)
stats
->
dlsch_rounds
[
2
],
stats
->
dlsch_rounds
[
3
],
stats
->
dlsch_errors
,
stats
->
pucch0_DTX
,
avg_rsrp
,
stats
->
num_rsrp_meas
);
stroff
+=
sprintf
(
output
+
stroff
,
"UE %d: CQI %d, RI %d, PMI (%d,%d)
\n
"
,
UE_id
,
UE_info
->
UE_sched_ctrl
[
UE_id
].
CSI_report
.
cri_ri_li_pmi_cqi_report
.
wb_cqi_1tb
,
UE_info
->
UE_sched_ctrl
[
UE_id
].
CSI_report
.
cri_ri_li_pmi_cqi_report
.
ri
+
1
,
UE_info
->
UE_sched_ctrl
[
UE_id
].
CSI_report
.
cri_ri_li_pmi_cqi_report
.
pmi_x1
,
UE_info
->
UE_sched_ctrl
[
UE_id
].
CSI_report
.
cri_ri_li_pmi_cqi_report
.
pmi_x2
);
stats
->
num_rsrp_meas
=
0
;
stats
->
cumul_rsrp
=
0
;
stroff
+=
sprintf
(
output
+
stroff
,
"UE %d: dlsch_total_bytes %d
\n
"
,
UE_id
,
stats
->
dlsch_total_bytes
);
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
4496b054
...
...
@@ -1406,7 +1406,6 @@ void fill_initial_SpCellConfig(rnti_t rnti,
}
csi_MeasConfig
->
csi_IM_ResourceToReleaseList
=
NULL
;
csi_MeasConfig
->
csi_IM_ResourceSetToAddModList
=
NULL
;
csi_MeasConfig
->
csi_IM_ResourceSetToReleaseList
=
NULL
;
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
=
calloc
(
1
,
sizeof
(
*
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
));
...
...
openair2/RRC/NR/rrc_gNB_reconfig.c
View file @
4496b054
...
...
@@ -1342,7 +1342,8 @@ void config_csirs(NR_ServingCellConfigCommon_t *servingcellconfigcommon,
nzpcsi0
->
periodicityAndOffset
=
calloc
(
1
,
sizeof
(
*
nzpcsi0
->
periodicityAndOffset
));
nzpcsi0
->
periodicityAndOffset
->
present
=
NR_CSI_ResourcePeriodicityAndOffset_PR_slots320
;
nzpcsi0
->
periodicityAndOffset
->
choice
.
slots320
=
0
;
nzpcsi0
->
qcl_InfoPeriodicCSI_RS
=
NULL
;
nzpcsi0
->
qcl_InfoPeriodicCSI_RS
=
calloc
(
1
,
sizeof
(
*
nzpcsi0
->
qcl_InfoPeriodicCSI_RS
));
*
nzpcsi0
->
qcl_InfoPeriodicCSI_RS
=
0
;
ASN_SEQUENCE_ADD
(
&
csi_MeasConfig
->
nzp_CSI_RS_ResourceToAddModList
->
list
,
nzpcsi0
);
}
else
...
...
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