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
zzha zzha
OpenXG-RAN
Commits
d6dc2794
Commit
d6dc2794
authored
Mar 01, 2022
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/NR_UE_CSIRS_scheduling' into integration_2022_wk09
parents
37e09d1c
50d4d3e8
Changes
13
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
389 additions
and
128 deletions
+389
-128
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_constants.h
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_constants.h
+3
-1
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
+42
-0
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
+1
-5
openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h
openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h
+1
-0
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
+91
-75
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+1
-0
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
+16
-16
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/mac_proto.h
openair2/LAYER2/NR_MAC_UE/mac_proto.h
+3
-0
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+19
-20
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+201
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+4
-3
openair2/RRC/NR/rrc_gNB_reconfig.c
openair2/RRC/NR/rrc_gNB_reconfig.c
+6
-6
No files found.
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_constants.h
View file @
d6dc2794
...
...
@@ -46,7 +46,9 @@
#define FAPI_NR_DL_CONFIG_TYPE_RA_DLSCH 0x03
#define FAPI_NR_DL_CONFIG_TYPE_SI_DLSCH 0x04
#define FAPI_NR_DL_CONFIG_TYPE_P_DLSCH 0x05
#define FAPI_NR_DL_CONFIG_TYPES 0x05
#define FAPI_NR_DL_CONFIG_TYPE_CSI_RS 0x06
#define FAPI_NR_DL_CONFIG_TYPE_CSI_IM 0x07
#define FAPI_NR_DL_CONFIG_TYPES 0x07
#define FAPI_NR_CCE_REG_MAPPING_TYPE_INTERLEAVED 0x01
#define FAPI_NR_CCE_REG_MAPPING_TYPE_NON_INTERLEAVED 0x02
...
...
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
View file @
d6dc2794
...
...
@@ -473,11 +473,53 @@ typedef struct {
fapi_nr_dl_config_dlsch_pdu_rel15_t
dlsch_config_rel15
;
}
fapi_nr_dl_config_dlsch_pdu
;
typedef
struct
{
uint16_t
bwp_size
;
//
uint16_t
bwp_start
;
//
uint8_t
subcarrier_spacing
;
//
uint8_t
cyclic_prefix
;
//
uint16_t
start_rb
;
uint16_t
nr_of_rbs
;
uint8_t
csi_type
;
//Value: 0:TRS 1:CSI-RS NZP 2:CSI-RS ZP
uint8_t
row
;
//Row entry into the CSI Resource location table. [TS38.211, sec 7.4.1.5.3 and table 7.4.1.5.3-1] Value: 1-18
uint16_t
freq_domain
;
//Value: Up to the 12 LSBs, actual size is determined by the Row parameter
uint8_t
symb_l0
;
//The time domain location l0 and firstOFDMSymbolInTimeDomain Value: 0->13
uint8_t
symb_l1
;
//
uint8_t
cdm_type
;
uint8_t
freq_density
;
//The density field, p and comb offset (for dot5).0: dot5 (even RB), 1: dot5 (odd RB), 2: one, 3: three
uint16_t
scramb_id
;
//ScramblingID of the CSI-RS [TS38.214, sec 5.2.2.3.1] Value: 0->1023
}
fapi_nr_dl_config_csirs_pdu_rel15_t
;
typedef
struct
{
uint16_t
bwp_size
;
uint16_t
bwp_start
;
uint8_t
subcarrier_spacing
;
uint16_t
start_rb
;
uint16_t
nr_of_rbs
;
uint8_t
k_csiim
[
4
];
uint8_t
l_csiim
[
4
];
}
fapi_nr_dl_config_csiim_pdu_rel15_t
;
typedef
struct
{
fapi_nr_dl_config_csirs_pdu_rel15_t
csirs_config_rel15
;
}
fapi_nr_dl_config_csirs_pdu
;
typedef
struct
{
fapi_nr_dl_config_csiim_pdu_rel15_t
csiim_config_rel15
;
}
fapi_nr_dl_config_csiim_pdu
;
typedef
struct
{
uint8_t
pdu_type
;
union
{
fapi_nr_dl_config_dci_pdu
dci_config_pdu
;
fapi_nr_dl_config_dlsch_pdu
dlsch_config_pdu
;
fapi_nr_dl_config_csirs_pdu
csirs_config_pdu
;
fapi_nr_dl_config_csiim_pdu
csiim_config_pdu
;
};
}
fapi_nr_dl_config_request_pdu_t
;
...
...
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
View file @
d6dc2794
...
...
@@ -642,6 +642,7 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
unsigned
short
p
,
unsigned
char
symbol
,
unsigned
short
BWPStart
,
uint8_t
config_type
,
unsigned
short
bwp_start_subcarrier
,
unsigned
short
nb_rb_pdsch
)
{
...
...
@@ -653,10 +654,6 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
int16_t
*
fl
=
NULL
,
*
fm
=
NULL
,
*
fr
=
NULL
,
*
fml
=
NULL
,
*
fmr
=
NULL
,
*
fmm
=
NULL
,
*
fdcl
=
NULL
,
*
fdcr
=
NULL
,
*
fdclh
=
NULL
,
*
fdcrh
=
NULL
,
*
frl
=
NULL
,
*
frr
=
NULL
;
int
ch_offset
,
symbol_offset
;
NR_UE_DLSCH_t
**
dlsch
=
ue
->
dlsch
[
proc
->
thread_id
][
gNB_id
];
const
unsigned
char
harq_pid
=
dlsch
[
0
]
->
current_harq_pid
;
NR_DL_UE_HARQ_t
*
dlsch0_harq
=
dlsch
[
0
]
->
harq_processes
[
harq_pid
];
uint8_t
nushift
;
int
**
dl_ch_estimates
=
ue
->
pdsch_vars
[
proc
->
thread_id
][
gNB_id
]
->
dl_ch_estimates
;
int
**
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
proc
->
thread_id
].
rxdataF
;
...
...
@@ -678,7 +675,6 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
if
(
is_SI
)
{
rb_offset
-=
BWPStart
;
}
uint8_t
config_type
=
dlsch0_harq
->
dmrsConfigType
;
int8_t
delta
=
get_delta
(
p
,
config_type
);
// checking if re-initialization of scrambling IDs is needed
...
...
openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h
View file @
d6dc2794
...
...
@@ -72,6 +72,7 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
unsigned
short
p
,
unsigned
char
symbol
,
unsigned
short
BWPStart
,
uint8_t
config_type
,
unsigned
short
bwp_start_subcarrier
,
unsigned
short
nb_rb_pdsch
);
...
...
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
View file @
d6dc2794
This diff is collapsed.
Click to expand it.
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
d6dc2794
...
...
@@ -576,6 +576,7 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, int gNB_
get_dmrs_port
(
aatx
,
dlsch0_harq
->
dmrs_ports
),
m
,
BWPStart
,
dlsch0_harq
->
dmrsConfigType
,
ue
->
frame_parms
.
first_carrier_offset
+
(
BWPStart
+
pdsch_start_rb
)
*
12
,
pdsch_nb_rb
);
#if 0
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
View file @
d6dc2794
...
...
@@ -3337,65 +3337,65 @@ uint16_t get_ssb_start_symbol(const long band, NR_SubcarrierSpacing_t scs, int i
void
csi_period_offset
(
NR_CSI_ReportConfig_t
*
csirep
,
NR_NZP_CSI_RS_Resource_t
*
nzpcsi
,
struct
NR_CSI_ResourcePeriodicityAndOffset
*
periodicityAndOffset
,
int
*
period
,
int
*
offset
)
{
if
(
nzpcsi
!=
NULL
)
{
if
(
periodicityAndOffset
!=
NULL
)
{
NR_CSI_ResourcePeriodicityAndOffset_PR
p_and_o
=
nzpcsi
->
periodicityAndOffset
->
present
;
NR_CSI_ResourcePeriodicityAndOffset_PR
p_and_o
=
periodicityAndOffset
->
present
;
switch
(
p_and_o
){
case
NR_CSI_ResourcePeriodicityAndOffset_PR_slots4
:
*
period
=
4
;
*
offset
=
nzpcsi
->
periodicityAndOffset
->
choice
.
slots4
;
*
offset
=
periodicityAndOffset
->
choice
.
slots4
;
break
;
case
NR_CSI_ResourcePeriodicityAndOffset_PR_slots5
:
*
period
=
5
;
*
offset
=
nzpcsi
->
periodicityAndOffset
->
choice
.
slots5
;
*
offset
=
periodicityAndOffset
->
choice
.
slots5
;
break
;
case
NR_CSI_ResourcePeriodicityAndOffset_PR_slots8
:
*
period
=
8
;
*
offset
=
nzpcsi
->
periodicityAndOffset
->
choice
.
slots8
;
*
offset
=
periodicityAndOffset
->
choice
.
slots8
;
break
;
case
NR_CSI_ResourcePeriodicityAndOffset_PR_slots10
:
*
period
=
10
;
*
offset
=
nzpcsi
->
periodicityAndOffset
->
choice
.
slots10
;
*
offset
=
periodicityAndOffset
->
choice
.
slots10
;
break
;
case
NR_CSI_ResourcePeriodicityAndOffset_PR_slots16
:
*
period
=
16
;
*
offset
=
nzpcsi
->
periodicityAndOffset
->
choice
.
slots16
;
*
offset
=
periodicityAndOffset
->
choice
.
slots16
;
break
;
case
NR_CSI_ResourcePeriodicityAndOffset_PR_slots20
:
*
period
=
20
;
*
offset
=
nzpcsi
->
periodicityAndOffset
->
choice
.
slots20
;
*
offset
=
periodicityAndOffset
->
choice
.
slots20
;
break
;
case
NR_CSI_ResourcePeriodicityAndOffset_PR_slots32
:
*
period
=
32
;
*
offset
=
nzpcsi
->
periodicityAndOffset
->
choice
.
slots32
;
*
offset
=
periodicityAndOffset
->
choice
.
slots32
;
break
;
case
NR_CSI_ResourcePeriodicityAndOffset_PR_slots40
:
*
period
=
40
;
*
offset
=
nzpcsi
->
periodicityAndOffset
->
choice
.
slots40
;
*
offset
=
periodicityAndOffset
->
choice
.
slots40
;
break
;
case
NR_CSI_ResourcePeriodicityAndOffset_PR_slots64
:
*
period
=
64
;
*
offset
=
nzpcsi
->
periodicityAndOffset
->
choice
.
slots64
;
*
offset
=
periodicityAndOffset
->
choice
.
slots64
;
break
;
case
NR_CSI_ResourcePeriodicityAndOffset_PR_slots80
:
*
period
=
80
;
*
offset
=
nzpcsi
->
periodicityAndOffset
->
choice
.
slots80
;
*
offset
=
periodicityAndOffset
->
choice
.
slots80
;
break
;
case
NR_CSI_ResourcePeriodicityAndOffset_PR_slots160
:
*
period
=
160
;
*
offset
=
nzpcsi
->
periodicityAndOffset
->
choice
.
slots160
;
*
offset
=
periodicityAndOffset
->
choice
.
slots160
;
break
;
case
NR_CSI_ResourcePeriodicityAndOffset_PR_slots320
:
*
period
=
320
;
*
offset
=
nzpcsi
->
periodicityAndOffset
->
choice
.
slots320
;
*
offset
=
periodicityAndOffset
->
choice
.
slots320
;
break
;
case
NR_CSI_ResourcePeriodicityAndOffset_PR_slots640
:
*
period
=
640
;
*
offset
=
nzpcsi
->
periodicityAndOffset
->
choice
.
slots640
;
*
offset
=
periodicityAndOffset
->
choice
.
slots640
;
break
;
default:
AssertFatal
(
1
==
0
,
"No periodicity and offset found in CSI resource"
);
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
View file @
d6dc2794
...
...
@@ -161,7 +161,7 @@ int16_t get_N_RA_RB (int delta_f_RA_PRACH,int delta_f_PUSCH);
void
find_period_offest_SR
(
NR_SchedulingRequestResourceConfig_t
*
SchedulingReqRec
,
int
*
period
,
int
*
offset
);
void
csi_period_offset
(
NR_CSI_ReportConfig_t
*
csirep
,
NR_NZP_CSI_RS_Resource_t
*
nzpcsi
,
struct
NR_CSI_ResourcePeriodicityAndOffset
*
periodicityAndOffset
,
int
*
period
,
int
*
offset
);
void
reverse_n_bits
(
uint8_t
*
value
,
uint16_t
bitlen
);
...
...
openair2/LAYER2/NR_MAC_UE/mac_proto.h
View file @
d6dc2794
...
...
@@ -214,6 +214,7 @@ uint8_t get_ssb_rsrp_payload(NR_UE_MAC_INST_t *mac,
uint8_t
nr_get_csi_payload
(
NR_UE_MAC_INST_t
*
mac
,
PUCCH_sched_t
*
pucch
,
int
csi_report_id
,
NR_CSI_MeasConfig_t
*
csi_MeasConfig
);
uint8_t
get_rsrp_index
(
int
rsrp
);
...
...
@@ -351,6 +352,8 @@ and fills the PRACH PDU per each FD occasion.
*/
void
nr_ue_prach_scheduler
(
module_id_t
module_idP
,
frame_t
frameP
,
sub_frame_t
slotP
,
int
thread_id
);
void
nr_ue_pucch_scheduler
(
module_id_t
module_idP
,
frame_t
frameP
,
int
slotP
,
int
thread_id
);
void
nr_schedule_csirs_reception
(
NR_UE_MAC_INST_t
*
mac
,
int
frame
,
int
slot
);
void
nr_schedule_csi_for_im
(
NR_UE_MAC_INST_t
*
mac
,
int
frame
,
int
slot
);
/* \brief This function schedules the Msg3 transmission
@param
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
d6dc2794
...
...
@@ -2403,7 +2403,7 @@ uint8_t nr_get_csi_measurements(NR_UE_MAC_INST_t *mac,
"CSI resource not found among PUCCH resources
\n
"
);
pucch
->
resource_indicator
=
found
;
csi_bits
=
nr_get_csi_payload
(
mac
,
pucch
,
csi_measconfig
);
csi_bits
+=
nr_get_csi_payload
(
mac
,
pucch
,
csi_report_id
,
csi_measconfig
);
}
}
else
...
...
@@ -2417,31 +2417,30 @@ uint8_t nr_get_csi_measurements(NR_UE_MAC_INST_t *mac,
uint8_t
nr_get_csi_payload
(
NR_UE_MAC_INST_t
*
mac
,
PUCCH_sched_t
*
pucch
,
int
csi_report_id
,
NR_CSI_MeasConfig_t
*
csi_MeasConfig
)
{
int
n_csi_bits
=
0
;
AssertFatal
(
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
count
>
0
,
"No CSI Report configuration available
\n
"
);
for
(
int
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
];
NR_CSI_ResourceConfigId_t
csi_ResourceConfigId
=
csi_reportconfig
->
resourcesForChannelMeasurement
;
switch
(
csi_reportconfig
->
reportQuantity
.
present
)
{
case
NR_CSI_ReportConfig__reportQuantity_PR_none
:
break
;
case
NR_CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP
:
n_csi_bits
+=
get_ssb_rsrp_payload
(
mac
,
pucch
,
csi_reportconfig
,
csi_ResourceConfigId
,
csi_MeasConfig
);
break
;
case
NR_CSI_ReportConfig__reportQuantity_PR_cri_RSRP
:
case
NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_PMI_CQI
:
case
NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_i1
:
case
NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_i1_CQI
:
case
NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_CQI
:
case
NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_LI_PMI_CQI
:
AssertFatal
(
1
==
0
,
"Measurement report based on CSI-RS not availalble
\n
"
);
default:
AssertFatal
(
1
==
0
,
"Invalid CSI report quantity type %d
\n
"
,
csi_reportconfig
->
reportQuantity
.
present
);
}
struct
NR_CSI_ReportConfig
*
csi_reportconfig
=
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
array
[
csi_report_id
];
NR_CSI_ResourceConfigId_t
csi_ResourceConfigId
=
csi_reportconfig
->
resourcesForChannelMeasurement
;
switch
(
csi_reportconfig
->
reportQuantity
.
present
)
{
case
NR_CSI_ReportConfig__reportQuantity_PR_none
:
break
;
case
NR_CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP
:
n_csi_bits
=
get_ssb_rsrp_payload
(
mac
,
pucch
,
csi_reportconfig
,
csi_ResourceConfigId
,
csi_MeasConfig
);
break
;
case
NR_CSI_ReportConfig__reportQuantity_PR_cri_RSRP
:
case
NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_PMI_CQI
:
case
NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_i1
:
case
NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_i1_CQI
:
case
NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_CQI
:
case
NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_LI_PMI_CQI
:
AssertFatal
(
1
==
0
,
"Measurement report based on CSI-RS not availalble
\n
"
);
default:
AssertFatal
(
1
==
0
,
"Invalid CSI report quantity type %d
\n
"
,
csi_reportconfig
->
reportQuantity
.
present
);
}
return
(
n_csi_bits
);
}
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
View file @
d6dc2794
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
d6dc2794
...
...
@@ -2491,11 +2491,11 @@ void nr_csirs_scheduling(int Mod_idP,
for
(
int
id
=
0
;
id
<
csi_measconfig
->
nzp_CSI_RS_ResourceToAddModList
->
list
.
count
;
id
++
){
nzpcsi
=
csi_measconfig
->
nzp_CSI_RS_ResourceToAddModList
->
list
.
array
[
id
];
NR_CSI_RS_ResourceMapping_t
resourceMapping
=
nzpcsi
->
resourceMapping
;
csi_period_offset
(
NULL
,
nzpcsi
,
&
period
,
&
offset
);
csi_period_offset
(
NULL
,
nzpcsi
->
periodicityAndOffset
,
&
period
,
&
offset
);
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
(
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
));
...
...
@@ -2539,7 +2539,7 @@ void nr_csirs_scheduling(int Mod_idP,
case
NR_CSI_RS_ResourceMapping__frequencyDomainAllocation_PR_row2
:
csirs_pdu_rel15
->
row
=
2
;
csirs_pdu_rel15
->
freq_domain
=
(((
resourceMapping
.
frequencyDomainAllocation
.
choice
.
row2
.
buf
[
1
]
>>
4
)
&
0x0f
)
|
((
resourceMapping
.
frequencyDomainAllocation
.
choice
.
row2
.
buf
[
0
]
<<
8
)
&
0xff0
));
((
resourceMapping
.
frequencyDomainAllocation
.
choice
.
row2
.
buf
[
0
]
<<
4
)
&
0xff0
));
for
(
int
rb
=
csirs_pdu_rel15
->
start_rb
;
rb
<
(
csirs_pdu_rel15
->
start_rb
+
csirs_pdu_rel15
->
nr_of_rbs
);
rb
++
)
vrb_map
[
rb
+
csirs_pdu_rel15
->
bwp_start
]
|=
SL_to_bitmap
(
csirs_pdu_rel15
->
symb_l0
,
1
);
break
;
...
...
@@ -2554,6 +2554,7 @@ void nr_csirs_scheduling(int Mod_idP,
// determining the row of table 7.4.1.5.3-1 in 38.211
switch
(
resourceMapping
.
nrofPorts
){
case
NR_CSI_RS_ResourceMapping__nrofPorts_p1
:
AssertFatal
(
1
==
0
,
"Resource with 1 CSI port shouldn't be within other rows
\n
"
);
break
;
case
NR_CSI_RS_ResourceMapping__nrofPorts_p2
:
csirs_pdu_rel15
->
row
=
3
;
...
...
openair2/RRC/NR/rrc_gNB_reconfig.c
View file @
d6dc2794
...
...
@@ -1335,17 +1335,17 @@ void config_csirs(NR_ServingCellConfigCommon_t *servingcellconfigcommon,
resourceMapping
.
frequencyDomainAllocation
.
choice
.
row2
.
buf
=
calloc
(
2
,
sizeof
(
uint8_t
));
resourceMapping
.
frequencyDomainAllocation
.
choice
.
row2
.
size
=
2
;
resourceMapping
.
frequencyDomainAllocation
.
choice
.
row2
.
bits_unused
=
4
;
resourceMapping
.
frequencyDomainAllocation
.
choice
.
row2
.
buf
[
0
]
=
0
;
resourceMapping
.
frequencyDomainAllocation
.
choice
.
row2
.
buf
[
1
]
=
16
;
resourceMapping
.
frequencyDomainAllocation
.
choice
.
row2
.
buf
[
0
]
=
0
;
resourceMapping
.
frequencyDomainAllocation
.
choice
.
row2
.
buf
[
1
]
=
16
;
resourceMapping
.
nrofPorts
=
NR_CSI_RS_ResourceMapping__nrofPorts_p1
;
resourceMapping
.
cdm_Type
=
NR_CSI_RS_ResourceMapping__cdm_Type_noCDM
;
break
;
case
2
:
resourceMapping
.
frequencyDomainAllocation
.
present
=
NR_CSI_RS_ResourceMapping__frequencyDomainAllocation_PR_other
;
resourceMapping
.
frequencyDomainAllocation
.
choice
.
row2
.
buf
=
calloc
(
2
,
sizeof
(
uint8_t
));
resourceMapping
.
frequencyDomainAllocation
.
choice
.
row2
.
size
=
1
;
resourceMapping
.
frequencyDomainAllocation
.
choice
.
row2
.
bits_unused
=
2
;
resourceMapping
.
frequencyDomainAllocation
.
choice
.
row2
.
buf
[
0
]
=
4
;
resourceMapping
.
frequencyDomainAllocation
.
choice
.
other
.
buf
=
calloc
(
2
,
sizeof
(
uint8_t
));
resourceMapping
.
frequencyDomainAllocation
.
choice
.
other
.
size
=
1
;
resourceMapping
.
frequencyDomainAllocation
.
choice
.
other
.
bits_unused
=
2
;
resourceMapping
.
frequencyDomainAllocation
.
choice
.
other
.
buf
[
0
]
=
4
;
resourceMapping
.
nrofPorts
=
NR_CSI_RS_ResourceMapping__nrofPorts_p2
;
resourceMapping
.
cdm_Type
=
NR_CSI_RS_ResourceMapping__cdm_Type_fd_CDM2
;
break
;
...
...
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