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
d2053ec3
Commit
d2053ec3
authored
Apr 09, 2022
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/nr_csirs_rrc_harmonization' into integration_2022_wk15
parents
9547cb4f
33d153f1
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
157 additions
and
92 deletions
+157
-92
ci-scripts/conf_files/gNB_SA_CU.conf
ci-scripts/conf_files/gNB_SA_CU.conf
+0
-1
ci-scripts/conf_files/gNB_SA_DU.conf
ci-scripts/conf_files/gNB_SA_DU.conf
+0
-1
ci-scripts/conf_files/gnb.sa.band66.fr1.106PRB.usrpn300.conf
ci-scripts/conf_files/gnb.sa.band66.fr1.106PRB.usrpn300.conf
+0
-1
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+1
-0
openair2/GNB_APP/gnb_paramdef.h
openair2/GNB_APP/gnb_paramdef.h
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
+2
-0
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+6
-6
openair2/RRC/NR/MESSAGES/asn1_msg.h
openair2/RRC/NR/MESSAGES/asn1_msg.h
+0
-1
openair2/RRC/NR/nr_rrc_config.c
openair2/RRC/NR/nr_rrc_config.c
+139
-0
openair2/RRC/NR/nr_rrc_config.h
openair2/RRC/NR/nr_rrc_config.h
+6
-0
openair2/RRC/NR/nr_rrc_proto.h
openair2/RRC/NR/nr_rrc_proto.h
+0
-6
openair2/RRC/NR/rrc_gNB_reconfig.c
openair2/RRC/NR/rrc_gNB_reconfig.c
+2
-75
No files found.
ci-scripts/conf_files/gNB_SA_CU.conf
View file @
d2053ec3
...
...
@@ -48,7 +48,6 @@ gNBs =
pdsch_AntennaPorts
=
1
;
pusch_AntennaPorts
=
1
;
min_rxtxtime
=
6
;
sib1_tda
=
0
;
pdcch_ConfigSIB1
= (
{
...
...
ci-scripts/conf_files/gNB_SA_DU.conf
View file @
d2053ec3
...
...
@@ -38,7 +38,6 @@ gNBs =
ssb_SubcarrierOffset
=
0
;
min_rxtxtime
=
6
;
sib1_tda
=
0
;
pdcch_ConfigSIB1
= (
{
...
...
ci-scripts/conf_files/gnb.sa.band66.fr1.106PRB.usrpn300.conf
View file @
d2053ec3
...
...
@@ -36,7 +36,6 @@ gNBs =
pdsch_AntennaPorts
=
1
;
pusch_AntennaPorts
=
1
;
min_rxtxtime
=
6
;
sib1_tda
=
0
;
pdcch_ConfigSIB1
= (
{
...
...
cmake_targets/CMakeLists.txt
View file @
d2053ec3
...
...
@@ -1868,6 +1868,7 @@ set(NR_L2_SRC_UE
${
NR_RRC_DIR
}
/nr_rrc_config.c
${
NR_UE_RRC_DIR
}
/rrc_UE.c
${
NR_UE_RRC_DIR
}
/rrc_nsa.c
${
NR_RRC_DIR
}
/nr_rrc_config.c
)
set
(
MAC_SRC
...
...
openair2/GNB_APP/gnb_paramdef.h
View file @
d2053ec3
...
...
@@ -154,7 +154,7 @@ typedef enum {
{GNB_CONFIG_STRING_PDSCHANTENNAPORTS_N2, "vert. log. antenna ports", 0, iptr:NULL, defintval:1, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_PDSCHANTENNAPORTS_XP, "XP log. antenna ports", 0, iptr:NULL, defintval:1, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_PUSCHANTENNAPORTS, NULL, 0, iptr:NULL, defintval:1, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_SIB1TDA, NULL, 0, iptr:NULL, defintval:
0
, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_SIB1TDA, NULL, 0, iptr:NULL, defintval:
1
, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_DOCSIRS, NULL, 0, iptr:NULL, defintval:0, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_DOSRS, NULL, 0, iptr:NULL, defintval:0, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_NRCELLID, NULL, 0, u64ptr:NULL, defint64val:1, TYPE_UINT64, 0}, \
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
View file @
d2053ec3
...
...
@@ -621,6 +621,8 @@ void schedule_nr_sib1(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
1
,
&
is_typeA
,
&
startSymbolIndex
,
&
nrOfSymbols
);
AssertFatal
((
startSymbolIndex
+
nrOfSymbols
)
<
14
,
"SIB1 TDA %d would cause overlap with CSI-RS. Please select a different SIB1 TDA.
\n
"
,
time_domain_allocation
);
int
mappingtype
=
is_typeA
?
typeA
:
typeB
;
uint16_t
dlDmrsSymbPos
=
fill_dmrs_mask
(
NULL
,
gNB_mac
->
common_channels
->
ServingCellConfigCommon
->
dmrs_TypeA_Position
,
nrOfSymbols
,
startSymbolIndex
,
mappingtype
,
1
);
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
d2053ec3
...
...
@@ -1452,15 +1452,15 @@ void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGr
ASN_SEQUENCE_ADD
(
&
ue_context_mastercellGroup
->
rlc_BearerToAddModList
->
list
,
rlc_BearerConfig_drb
);
}
void
update_cellGroupConfig
(
NR_CellGroupConfig_t
*
cellGroupConfig
,
rrc_gNB_carrier_data_t
*
carrier
,
NR_UE_NR_Capability_t
*
uecap
,
const
gNB_RrcConfigurationReq
*
configuration
)
{
const
gNB_RrcConfigurationReq
*
configuration
)
{
NR_SpCellConfig_t
*
SpCellConfig
=
cellGroupConfig
->
spCellConfig
;
if
(
SpCellConfig
==
NULL
)
return
;
NR_ServingCellConfigCommon_t
*
scc
=
c
arrier
->
servingcellconfigcommon
;
NR_ServingCellConfigCommon_t
*
scc
=
c
onfiguration
->
scc
;
NR_BWP_DownlinkDedicated_t
*
bwp_Dedicated
=
SpCellConfig
->
spCellConfigDedicated
->
initialDownlinkBWP
;
set_dl_mcs_table
(
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
genericParameters
.
subcarrierSpacing
,
...
...
@@ -1471,7 +1471,7 @@ void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
for
(
int
i
=
0
;
i
<
DL_BWP_list
->
list
.
count
;
i
++
){
NR_BWP_Downlink_t
*
bwp
=
DL_BWP_list
->
list
.
array
[
i
];
int
scs
=
bwp
->
bwp_Common
->
genericParameters
.
subcarrierSpacing
;
set_dl_mcs_table
(
scs
,
configuration
->
force_256qam_off
?
NULL
:
uecap
,
bwp
->
bwp_Dedicated
,
carrier
->
servingcellconfigcommon
);
set_dl_mcs_table
(
scs
,
configuration
->
force_256qam_off
?
NULL
:
uecap
,
bwp
->
bwp_Dedicated
,
scc
);
}
}
}
...
...
@@ -1951,9 +1951,9 @@ int16_t do_RRCReconfiguration(
if
(
cellGroupConfig
!=
NULL
){
update_cellGroupConfig
(
cellGroupConfig
,
carrier
,
ue_context_pP
->
ue_context
.
UE_Capability_nr
,
configuration
);
enc_rval
=
uper_encode_to_buffer
(
&
asn_DEF_NR_CellGroupConfig
,
NULL
,
(
void
*
)
cellGroupConfig
,
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.h
View file @
d2053ec3
...
...
@@ -112,7 +112,6 @@ void fill_initial_cellGroupConfig(int uid,
const
gNB_RrcConfigurationReq
*
configuration
);
void
update_cellGroupConfig
(
NR_CellGroupConfig_t
*
cellGroupConfig
,
rrc_gNB_carrier_data_t
*
carrier
,
NR_UE_NR_Capability_t
*
uecap
,
const
gNB_RrcConfigurationReq
*
configuration
);
...
...
openair2/RRC/NR/nr_rrc_config.c
View file @
d2053ec3
...
...
@@ -31,6 +31,145 @@
#include "nr_rrc_config.h"
#include "common/utils/nr/nr_common.h"
const
uint8_t
slotsperframe
[
5
]
=
{
10
,
20
,
40
,
80
,
160
};
void
set_csirs_periodicity
(
NR_NZP_CSI_RS_Resource_t
*
nzpcsi0
,
int
uid
,
int
nb_slots_per_period
)
{
nzpcsi0
->
periodicityAndOffset
=
calloc
(
1
,
sizeof
(
*
nzpcsi0
->
periodicityAndOffset
));
int
ideal_period
=
nb_slots_per_period
*
MAX_MOBILES_PER_GNB
;
if
(
ideal_period
<
5
)
{
nzpcsi0
->
periodicityAndOffset
->
present
=
NR_CSI_ResourcePeriodicityAndOffset_PR_slots4
;
nzpcsi0
->
periodicityAndOffset
->
choice
.
slots4
=
nb_slots_per_period
*
uid
;
}
else
if
(
ideal_period
<
6
)
{
nzpcsi0
->
periodicityAndOffset
->
present
=
NR_CSI_ResourcePeriodicityAndOffset_PR_slots5
;
nzpcsi0
->
periodicityAndOffset
->
choice
.
slots5
=
nb_slots_per_period
*
uid
;
}
else
if
(
ideal_period
<
9
)
{
nzpcsi0
->
periodicityAndOffset
->
present
=
NR_CSI_ResourcePeriodicityAndOffset_PR_slots8
;
nzpcsi0
->
periodicityAndOffset
->
choice
.
slots8
=
nb_slots_per_period
*
uid
;
}
else
if
(
ideal_period
<
11
)
{
nzpcsi0
->
periodicityAndOffset
->
present
=
NR_CSI_ResourcePeriodicityAndOffset_PR_slots10
;
nzpcsi0
->
periodicityAndOffset
->
choice
.
slots10
=
nb_slots_per_period
*
uid
;
}
else
if
(
ideal_period
<
17
)
{
nzpcsi0
->
periodicityAndOffset
->
present
=
NR_CSI_ResourcePeriodicityAndOffset_PR_slots16
;
nzpcsi0
->
periodicityAndOffset
->
choice
.
slots16
=
nb_slots_per_period
*
uid
;
}
else
if
(
ideal_period
<
21
)
{
nzpcsi0
->
periodicityAndOffset
->
present
=
NR_CSI_ResourcePeriodicityAndOffset_PR_slots20
;
nzpcsi0
->
periodicityAndOffset
->
choice
.
slots20
=
nb_slots_per_period
*
uid
;
}
else
if
(
ideal_period
<
41
)
{
nzpcsi0
->
periodicityAndOffset
->
present
=
NR_CSI_ResourcePeriodicityAndOffset_PR_slots40
;
nzpcsi0
->
periodicityAndOffset
->
choice
.
slots40
=
nb_slots_per_period
*
uid
;
}
else
if
(
ideal_period
<
81
)
{
nzpcsi0
->
periodicityAndOffset
->
present
=
NR_CSI_ResourcePeriodicityAndOffset_PR_slots80
;
nzpcsi0
->
periodicityAndOffset
->
choice
.
slots80
=
nb_slots_per_period
*
uid
;
}
else
if
(
ideal_period
<
161
)
{
nzpcsi0
->
periodicityAndOffset
->
present
=
NR_CSI_ResourcePeriodicityAndOffset_PR_slots160
;
nzpcsi0
->
periodicityAndOffset
->
choice
.
slots160
=
nb_slots_per_period
*
uid
;
}
else
{
nzpcsi0
->
periodicityAndOffset
->
present
=
NR_CSI_ResourcePeriodicityAndOffset_PR_slots320
;
nzpcsi0
->
periodicityAndOffset
->
choice
.
slots320
=
(
nb_slots_per_period
*
uid
)
%
320
+
(
nb_slots_per_period
*
uid
)
/
320
;
}
}
void
config_csirs
(
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
,
NR_CSI_MeasConfig_t
*
csi_MeasConfig
,
int
uid
,
int
num_dl_antenna_ports
,
int
curr_bwp
,
int
do_csirs
)
{
if
(
do_csirs
)
{
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
=
calloc
(
1
,
sizeof
(
*
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
));
NR_NZP_CSI_RS_ResourceSet_t
*
nzpcsirs0
=
calloc
(
1
,
sizeof
(
*
nzpcsirs0
));
nzpcsirs0
->
nzp_CSI_ResourceSetId
=
0
;
NR_NZP_CSI_RS_ResourceId_t
*
nzpid0
=
calloc
(
1
,
sizeof
(
*
nzpid0
));
*
nzpid0
=
0
;
ASN_SEQUENCE_ADD
(
&
nzpcsirs0
->
nzp_CSI_RS_Resources
,
nzpid0
);
nzpcsirs0
->
repetition
=
NULL
;
nzpcsirs0
->
aperiodicTriggeringOffset
=
NULL
;
nzpcsirs0
->
trs_Info
=
NULL
;
ASN_SEQUENCE_ADD
(
&
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
->
list
,
nzpcsirs0
);
const
NR_TDD_UL_DL_Pattern_t
*
tdd
=
servingcellconfigcommon
->
tdd_UL_DL_ConfigurationCommon
?
&
servingcellconfigcommon
->
tdd_UL_DL_ConfigurationCommon
->
pattern1
:
NULL
;
const
int
n_slots_frame
=
slotsperframe
[
*
servingcellconfigcommon
->
ssbSubcarrierSpacing
];
int
nb_slots_per_period
=
n_slots_frame
;
if
(
tdd
)
nb_slots_per_period
=
n_slots_frame
/
get_nb_periods_per_frame
(
tdd
->
dl_UL_TransmissionPeriodicity
);
csi_MeasConfig
->
nzp_CSI_RS_ResourceToAddModList
=
calloc
(
1
,
sizeof
(
*
csi_MeasConfig
->
nzp_CSI_RS_ResourceToAddModList
));
NR_NZP_CSI_RS_Resource_t
*
nzpcsi0
=
calloc
(
1
,
sizeof
(
*
nzpcsi0
));
nzpcsi0
->
nzp_CSI_RS_ResourceId
=
0
;
NR_CSI_RS_ResourceMapping_t
resourceMapping
;
switch
(
num_dl_antenna_ports
)
{
case
1
:
resourceMapping
.
frequencyDomainAllocation
.
present
=
NR_CSI_RS_ResourceMapping__frequencyDomainAllocation_PR_row2
;
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
.
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
.
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
;
case
4
:
resourceMapping
.
frequencyDomainAllocation
.
present
=
NR_CSI_RS_ResourceMapping__frequencyDomainAllocation_PR_row4
;
resourceMapping
.
frequencyDomainAllocation
.
choice
.
row4
.
buf
=
calloc
(
2
,
sizeof
(
uint8_t
));
resourceMapping
.
frequencyDomainAllocation
.
choice
.
row4
.
size
=
1
;
resourceMapping
.
frequencyDomainAllocation
.
choice
.
row4
.
bits_unused
=
5
;
resourceMapping
.
frequencyDomainAllocation
.
choice
.
row4
.
buf
[
0
]
=
32
;
resourceMapping
.
nrofPorts
=
NR_CSI_RS_ResourceMapping__nrofPorts_p4
;
resourceMapping
.
cdm_Type
=
NR_CSI_RS_ResourceMapping__cdm_Type_fd_CDM2
;
break
;
default:
AssertFatal
(
1
==
0
,
"Number of ports not yet supported
\n
"
);
}
resourceMapping
.
firstOFDMSymbolInTimeDomain
=
13
;
// last symbol of slot
resourceMapping
.
firstOFDMSymbolInTimeDomain2
=
NULL
;
resourceMapping
.
density
.
present
=
NR_CSI_RS_ResourceMapping__density_PR_one
;
resourceMapping
.
density
.
choice
.
one
=
(
NULL_t
)
0
;
resourceMapping
.
freqBand
.
startingRB
=
0
;
resourceMapping
.
freqBand
.
nrofRBs
=
((
curr_bwp
>>
2
)
+
(
curr_bwp
%
4
>
0
))
<<
2
;
nzpcsi0
->
resourceMapping
=
resourceMapping
;
nzpcsi0
->
powerControlOffset
=
0
;
nzpcsi0
->
powerControlOffsetSS
=
calloc
(
1
,
sizeof
(
*
nzpcsi0
->
powerControlOffsetSS
));
*
nzpcsi0
->
powerControlOffsetSS
=
NR_NZP_CSI_RS_Resource__powerControlOffsetSS_db0
;
nzpcsi0
->
scramblingID
=
*
servingcellconfigcommon
->
physCellId
;
set_csirs_periodicity
(
nzpcsi0
,
uid
,
nb_slots_per_period
);
nzpcsi0
->
qcl_InfoPeriodicCSI_RS
=
NULL
;
ASN_SEQUENCE_ADD
(
&
csi_MeasConfig
->
nzp_CSI_RS_ResourceToAddModList
->
list
,
nzpcsi0
);
}
else
{
csi_MeasConfig
->
nzp_CSI_RS_ResourceToAddModList
=
NULL
;
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
=
NULL
;
}
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToReleaseList
=
NULL
;
csi_MeasConfig
->
nzp_CSI_RS_ResourceToReleaseList
=
NULL
;
}
void
prepare_sim_uecap
(
NR_UE_NR_Capability_t
*
cap
,
NR_ServingCellConfigCommon_t
*
scc
,
int
numerology
,
...
...
openair2/RRC/NR/nr_rrc_config.h
View file @
d2053ec3
...
...
@@ -113,6 +113,12 @@ typedef struct physicalcellgroup_s{
void
nr_rrc_config_dl_tda
(
NR_ServingCellConfigCommon_t
*
scc
);
void
nr_rrc_config_ul_tda
(
NR_ServingCellConfigCommon_t
*
scc
,
int
min_fb_delay
);
void
config_csirs
(
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
,
NR_CSI_MeasConfig_t
*
csi_MeasConfig
,
int
uid
,
int
num_dl_antenna_ports
,
int
curr_bwp
,
int
do_csirs
);
void
set_dl_mcs_table
(
int
scs
,
NR_UE_NR_Capability_t
*
cap
,
NR_BWP_DownlinkDedicated_t
*
bwp_Dedicated
,
NR_ServingCellConfigCommon_t
*
scc
);
...
...
openair2/RRC/NR/nr_rrc_proto.h
View file @
d2053ec3
...
...
@@ -82,12 +82,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
const
gNB_RrcConfigurationReq
*
configuration
,
int
uid
);
void
config_csirs
(
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
,
NR_CSI_MeasConfig_t
*
csi_MeasConfig
,
int
dl_antenna_ports
,
int
curr_bwp
,
int
do_csirs
);
void
fill_default_reconfig
(
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
,
NR_ServingCellConfig_t
*
servingcellconfigdedicated
,
NR_RRCReconfiguration_IEs_t
*
reconfig
,
...
...
openair2/RRC/NR/rrc_gNB_reconfig.c
View file @
d2053ec3
...
...
@@ -1066,24 +1066,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
csi_MeasConfig
->
csi_IM_ResourceToReleaseList
=
NULL
;
csi_MeasConfig
->
csi_IM_ResourceSetToReleaseList
=
NULL
;
if
(
do_csirs
)
{
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
=
calloc
(
1
,
sizeof
(
*
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
));
NR_NZP_CSI_RS_ResourceSet_t
*
nzpcsirs0
=
calloc
(
1
,
sizeof
(
*
nzpcsirs0
));
nzpcsirs0
->
nzp_CSI_ResourceSetId
=
0
;
NR_NZP_CSI_RS_ResourceId_t
*
nzpid0
=
calloc
(
1
,
sizeof
(
*
nzpid0
));
*
nzpid0
=
0
;
ASN_SEQUENCE_ADD
(
&
nzpcsirs0
->
nzp_CSI_RS_Resources
,
nzpid0
);
nzpcsirs0
->
repetition
=
NULL
;
nzpcsirs0
->
aperiodicTriggeringOffset
=
NULL
;
nzpcsirs0
->
trs_Info
=
NULL
;
ASN_SEQUENCE_ADD
(
&
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
->
list
,
nzpcsirs0
);
}
else
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
=
NULL
;
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToReleaseList
=
NULL
;
config_csirs
(
servingcellconfigcommon
,
csi_MeasConfig
,
dl_antenna_ports
,
curr_bwp
,
do_csirs
);
config_csirs
(
servingcellconfigcommon
,
csi_MeasConfig
,
uid
,
dl_antenna_ports
,
curr_bwp
,
do_csirs
);
csi_MeasConfig
->
csi_SSB_ResourceSetToAddModList
=
calloc
(
1
,
sizeof
(
*
csi_MeasConfig
->
csi_SSB_ResourceSetToAddModList
));
csi_MeasConfig
->
csi_SSB_ResourceSetToReleaseList
=
NULL
;
...
...
@@ -1102,9 +1085,9 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
ASN_SEQUENCE_ADD
(
&
csi_MeasConfig
->
csi_SSB_ResourceSetToAddModList
->
list
,
ssbresset0
);
csi_MeasConfig
->
csi_ResourceConfigToAddModList
=
calloc
(
1
,
sizeof
(
*
csi_MeasConfig
->
csi_ResourceConfigToAddModList
));
csi_MeasConfig
->
csi_ResourceConfigToReleaseList
=
NULL
;
if
(
do_csirs
)
{
csi_MeasConfig
->
csi_ResourceConfigToReleaseList
=
NULL
;
NR_CSI_ResourceConfig_t
*
csires0
=
calloc
(
1
,
sizeof
(
*
csires0
));
csires0
->
csi_ResourceConfigId
=
0
;
csires0
->
csi_RS_ResourceSetList
.
present
=
NR_CSI_ResourceConfig__csi_RS_ResourceSetList_PR_nzp_CSI_RS_SSB
;
...
...
@@ -1315,62 +1298,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
}
void
config_csirs
(
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
,
NR_CSI_MeasConfig_t
*
csi_MeasConfig
,
int
dl_antenna_ports
,
int
curr_bwp
,
int
do_csirs
)
{
if
(
do_csirs
)
{
csi_MeasConfig
->
nzp_CSI_RS_ResourceToAddModList
=
calloc
(
1
,
sizeof
(
*
csi_MeasConfig
->
nzp_CSI_RS_ResourceToAddModList
));
NR_NZP_CSI_RS_Resource_t
*
nzpcsi0
=
calloc
(
1
,
sizeof
(
*
nzpcsi0
));
nzpcsi0
->
nzp_CSI_RS_ResourceId
=
0
;
NR_CSI_RS_ResourceMapping_t
resourceMapping
;
switch
(
dl_antenna_ports
)
{
case
1
:
resourceMapping
.
frequencyDomainAllocation
.
present
=
NR_CSI_RS_ResourceMapping__frequencyDomainAllocation_PR_row2
;
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
.
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
.
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
;
default:
AssertFatal
(
1
==
0
,
"Number of ports not yet supported
\n
"
);
}
resourceMapping
.
firstOFDMSymbolInTimeDomain
=
6
;
resourceMapping
.
firstOFDMSymbolInTimeDomain2
=
NULL
;
resourceMapping
.
density
.
present
=
NR_CSI_RS_ResourceMapping__density_PR_one
;
resourceMapping
.
density
.
choice
.
one
=
(
NULL_t
)
0
;
resourceMapping
.
freqBand
.
startingRB
=
0
;
resourceMapping
.
freqBand
.
nrofRBs
=
((
curr_bwp
>>
2
)
+
(
curr_bwp
%
4
>
0
))
<<
2
;
nzpcsi0
->
resourceMapping
=
resourceMapping
;
nzpcsi0
->
powerControlOffset
=
0
;
nzpcsi0
->
powerControlOffsetSS
=
calloc
(
1
,
sizeof
(
*
nzpcsi0
->
powerControlOffsetSS
));
*
nzpcsi0
->
powerControlOffsetSS
=
NR_NZP_CSI_RS_Resource__powerControlOffsetSS_db0
;
nzpcsi0
->
scramblingID
=
*
servingcellconfigcommon
->
physCellId
;
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
;
ASN_SEQUENCE_ADD
(
&
csi_MeasConfig
->
nzp_CSI_RS_ResourceToAddModList
->
list
,
nzpcsi0
);
}
else
csi_MeasConfig
->
nzp_CSI_RS_ResourceToAddModList
=
NULL
;
}
void
fill_default_reconfig
(
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
,
NR_ServingCellConfig_t
*
servingcellconfigdedicated
,
NR_RRCReconfiguration_IEs_t
*
reconfig
,
...
...
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