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
lizhongxiao
OpenXG-RAN
Commits
4214f397
Commit
4214f397
authored
Nov 03, 2022
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/NR_RRC_PDSCH_config_harmonization' into integration_2022_wk44
parents
4940146f
99a22ba9
Changes
4
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
52 additions
and
227 deletions
+52
-227
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+2
-34
openair2/RRC/NR/nr_rrc_config.c
openair2/RRC/NR/nr_rrc_config.c
+46
-44
openair2/RRC/NR/nr_rrc_config.h
openair2/RRC/NR/nr_rrc_config.h
+1
-0
openair2/RRC/NR/rrc_gNB_reconfig.c
openair2/RRC/NR/rrc_gNB_reconfig.c
+3
-149
No files found.
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
4214f397
...
...
@@ -994,6 +994,7 @@ void fill_initial_SpCellConfig(int uid,
// where the startPosition = 2 or 3 and sl160 = 17, 17, 27 ... 157 only give us 30 different allocations.
AssertFatal
(
uid
>=
0
&&
uid
<
30
,
"gNB cannot allocate the SRS resources
\n
"
);
const
int
pdsch_AntennaPorts
=
configuration
->
pdsch_AntennaPorts
.
N1
*
configuration
->
pdsch_AntennaPorts
.
N2
*
configuration
->
pdsch_AntennaPorts
.
XP
;
int
curr_bwp
=
NRRIV2BW
(
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
);
SpCellConfig
->
servCellIndex
=
NULL
;
SpCellConfig
->
reconfigurationWithSync
=
NULL
;
...
...
@@ -1082,38 +1083,7 @@ void fill_initial_SpCellConfig(int uid,
ASN_SEQUENCE_ADD
(
&
bwp_Dedicated
->
pdcch_Config
->
choice
.
setup
->
searchSpacesToAddModList
->
list
,
ss2
);
bwp_Dedicated
->
pdsch_Config
=
calloc
(
1
,
sizeof
(
*
bwp_Dedicated
->
pdsch_Config
));
bwp_Dedicated
->
pdsch_Config
->
present
=
NR_SetupRelease_PDSCH_Config_PR_setup
;
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
=
calloc
(
1
,
sizeof
(
*
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
));
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dataScramblingIdentityPDSCH
=
NULL
;
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
=
calloc
(
1
,
sizeof
(
*
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
));
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
present
=
NR_SetupRelease_DMRS_DownlinkConfig_PR_setup
;
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
=
calloc
(
1
,
sizeof
(
*
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
));
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
dmrs_Type
=
NULL
;
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
maxLength
=
NULL
;
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
dmrs_AdditionalPosition
=
calloc
(
1
,
sizeof
(
*
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
dmrs_AdditionalPosition
));
*
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
dmrs_AdditionalPosition
=
NR_DMRS_DownlinkConfig__dmrs_AdditionalPosition_pos1
;
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
resourceAllocation
=
NR_PDSCH_Config__resourceAllocation_resourceAllocationType1
;
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
prb_BundlingType
.
present
=
NR_PDSCH_Config__prb_BundlingType_PR_staticBundling
;
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
prb_BundlingType
.
choice
.
staticBundling
=
calloc
(
1
,
sizeof
(
*
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
prb_BundlingType
.
choice
.
staticBundling
));
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
prb_BundlingType
.
choice
.
staticBundling
->
bundleSize
=
calloc
(
1
,
sizeof
(
*
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
prb_BundlingType
.
choice
.
staticBundling
->
bundleSize
));
*
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
prb_BundlingType
.
choice
.
staticBundling
->
bundleSize
=
NR_PDSCH_Config__prb_BundlingType__staticBundling__bundleSize_wideband
;
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
tci_StatesToAddModList
=
calloc
(
1
,
sizeof
(
*
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
tci_StatesToAddModList
));
NR_TCI_State_t
*
tcic
;
tcic
=
calloc
(
1
,
sizeof
(
*
tcic
));
tcic
->
tci_StateId
=
0
;
tcic
->
qcl_Type1
.
cell
=
NULL
;
tcic
->
qcl_Type1
.
bwp_Id
=
NULL
;
tcic
->
qcl_Type1
.
referenceSignal
.
present
=
NR_QCL_Info__referenceSignal_PR_ssb
;
tcic
->
qcl_Type1
.
referenceSignal
.
choice
.
ssb
=
0
;
tcic
->
qcl_Type1
.
qcl_Type
=
NR_QCL_Info__qcl_Type_typeD
;
ASN_SEQUENCE_ADD
(
&
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
tci_StatesToAddModList
->
list
,
tcic
);
bwp_Dedicated
->
pdsch_Config
=
config_pdsch
(
bitmap
,
0
,
pdsch_AntennaPorts
);
SpCellConfig
->
spCellConfigDedicated
->
tag_Id
=
0
;
SpCellConfig
->
spCellConfigDedicated
->
pdsch_ServingCellConfig
=
calloc
(
1
,
sizeof
(
*
SpCellConfig
->
spCellConfigDedicated
->
pdsch_ServingCellConfig
));
...
...
@@ -1191,8 +1161,6 @@ void fill_initial_SpCellConfig(int uid,
}
ASN_SEQUENCE_ADD
(
&
csi_MeasConfig
->
csi_SSB_ResourceSetToAddModList
->
list
,
ssbresset0
);
int
pdsch_AntennaPorts
=
configuration
->
pdsch_AntennaPorts
.
N1
*
configuration
->
pdsch_AntennaPorts
.
N2
*
configuration
->
pdsch_AntennaPorts
.
XP
;
int
bwp_loop_end
=
n_dl_bwp
>
0
?
n_dl_bwp
:
1
;
for
(
int
bwp_loop
=
0
;
bwp_loop
<
bwp_loop_end
;
bwp_loop
++
)
{
...
...
openair2/RRC/NR/nr_rrc_config.c
View file @
4214f397
...
...
@@ -941,6 +941,51 @@ struct NR_SetupRelease_PUSCH_Config *config_pusch(NR_PUSCH_Config_t *pusch_Confi
return
setup_puschconfig
;
}
struct
NR_SetupRelease_PDSCH_Config
*
config_pdsch
(
uint64_t
ssb_bitmap
,
int
bwp_Id
,
int
dl_antenna_ports
)
{
struct
NR_SetupRelease_PDSCH_Config
*
setup_pdsch_Config
=
calloc
(
1
,
sizeof
(
*
setup_pdsch_Config
));
setup_pdsch_Config
->
present
=
NR_SetupRelease_PDSCH_Config_PR_setup
;
NR_PDSCH_Config_t
*
pdsch_Config
=
calloc
(
1
,
sizeof
(
*
pdsch_Config
));
setup_pdsch_Config
->
choice
.
setup
=
pdsch_Config
;
pdsch_Config
->
dmrs_DownlinkForPDSCH_MappingTypeA
=
calloc
(
1
,
sizeof
(
*
pdsch_Config
->
dmrs_DownlinkForPDSCH_MappingTypeA
));
pdsch_Config
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
present
=
NR_SetupRelease_DMRS_DownlinkConfig_PR_setup
;
pdsch_Config
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
=
calloc
(
1
,
sizeof
(
*
pdsch_Config
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
));
NR_DMRS_DownlinkConfig_t
*
dmrs_DownlinkForPDSCH_MappingTypeA
=
pdsch_Config
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
;
if
((
get_softmodem_params
()
->
do_ra
||
get_softmodem_params
()
->
phy_test
)
&&
dl_antenna_ports
>
1
)
// for MIMO, we use DMRS Config Type 2 but only with OAI UE
dmrs_DownlinkForPDSCH_MappingTypeA
->
dmrs_Type
=
calloc
(
1
,
sizeof
(
*
dmrs_DownlinkForPDSCH_MappingTypeA
->
dmrs_Type
));
else
dmrs_DownlinkForPDSCH_MappingTypeA
->
dmrs_Type
=
NULL
;
dmrs_DownlinkForPDSCH_MappingTypeA
->
maxLength
=
NULL
;
dmrs_DownlinkForPDSCH_MappingTypeA
->
scramblingID0
=
NULL
;
dmrs_DownlinkForPDSCH_MappingTypeA
->
scramblingID1
=
NULL
;
dmrs_DownlinkForPDSCH_MappingTypeA
->
dmrs_AdditionalPosition
=
calloc
(
1
,
sizeof
(
*
dmrs_DownlinkForPDSCH_MappingTypeA
->
dmrs_AdditionalPosition
));
// TODO possible improvement is to select based on some input additional position
*
dmrs_DownlinkForPDSCH_MappingTypeA
->
dmrs_AdditionalPosition
=
NR_DMRS_DownlinkConfig__dmrs_AdditionalPosition_pos1
;
pdsch_Config
->
dataScramblingIdentityPDSCH
=
NULL
;
pdsch_Config
->
resourceAllocation
=
NR_PDSCH_Config__resourceAllocation_resourceAllocationType1
;
pdsch_Config
->
prb_BundlingType
.
present
=
NR_PDSCH_Config__prb_BundlingType_PR_staticBundling
;
pdsch_Config
->
prb_BundlingType
.
choice
.
staticBundling
=
calloc
(
1
,
sizeof
(
*
pdsch_Config
->
prb_BundlingType
.
choice
.
staticBundling
));
pdsch_Config
->
prb_BundlingType
.
choice
.
staticBundling
->
bundleSize
=
calloc
(
1
,
sizeof
(
*
pdsch_Config
->
prb_BundlingType
.
choice
.
staticBundling
->
bundleSize
));
*
pdsch_Config
->
prb_BundlingType
.
choice
.
staticBundling
->
bundleSize
=
NR_PDSCH_Config__prb_BundlingType__staticBundling__bundleSize_wideband
;
int
n_ssb
=
0
;
for
(
int
i
=
0
;
i
<
64
;
i
++
)
{
if
(((
ssb_bitmap
>>
(
63
-
i
))
&
0x01
)
==
0
)
continue
;
NR_TCI_State_t
*
tcid
=
calloc
(
1
,
sizeof
(
*
tcid
));
tcid
->
tci_StateId
=
n_ssb
++
;
tcid
->
qcl_Type1
.
cell
=
NULL
;
asn1cCallocOne
(
tcid
->
qcl_Type1
.
bwp_Id
,
bwp_Id
);
tcid
->
qcl_Type1
.
referenceSignal
.
present
=
NR_QCL_Info__referenceSignal_PR_ssb
;
tcid
->
qcl_Type1
.
referenceSignal
.
choice
.
ssb
=
i
;
tcid
->
qcl_Type1
.
qcl_Type
=
NR_QCL_Info__qcl_Type_typeC
;
ASN_SEQUENCE_ADD
(
&
pdsch_Config
->
tci_StatesToAddModList
->
list
,
tcid
);
}
return
setup_pdsch_Config
;
}
void
config_downlinkBWP
(
NR_BWP_Downlink_t
*
bwp
,
const
NR_ServingCellConfigCommon_t
*
scc
,
const
NR_ServingCellConfig_t
*
servingcellconfigdedicated
,
...
...
@@ -1066,55 +1111,12 @@ void config_downlinkBWP(NR_BWP_Downlink_t *bwp,
ASN_SEQUENCE_ADD
(
&
bwp
->
bwp_Dedicated
->
pdcch_Config
->
choice
.
setup
->
searchSpacesToAddModList
->
list
,
ss2
);
bwp
->
bwp_Dedicated
->
pdcch_Config
->
choice
.
setup
->
searchSpacesToReleaseList
=
NULL
;
bwp
->
bwp_Dedicated
->
pdsch_Config
=
config_pdsch
(
ssb_bitmap
,
bwp
->
bwp_Id
,
dl_antenna_ports
);
struct
NR_SetupRelease_PDSCH_Config
*
pdsch_Config
=
NULL
;
pdsch_Config
=
calloc
(
1
,
sizeof
(
*
pdsch_Config
));
pdsch_Config
->
present
=
NR_SetupRelease_PDSCH_Config_PR_setup
;
pdsch_Config
->
choice
.
setup
=
calloc
(
1
,
sizeof
(
*
pdsch_Config
->
choice
.
setup
));
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
=
calloc
(
1
,
sizeof
(
*
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
));
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
present
=
NR_SetupRelease_DMRS_DownlinkConfig_PR_setup
;
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
=
calloc
(
1
,
sizeof
(
*
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
));
pdsch_Config
->
choice
.
setup
->
dataScramblingIdentityPDSCH
=
NULL
;
struct
NR_SetupRelease_DMRS_DownlinkConfig
*
dmrs_DownlinkForPDSCH_MappingTypeA
=
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
;
if
((
get_softmodem_params
()
->
do_ra
||
get_softmodem_params
()
->
phy_test
)
&&
dl_antenna_ports
>
1
)
// for MIMO, we use DMRS Config Type 2 but only with OAI UE
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
dmrs_Type
=
calloc
(
1
,
sizeof
(
*
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
dmrs_Type
));
else
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
dmrs_Type
=
NULL
;
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
maxLength
=
NULL
;
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
scramblingID0
=
NULL
;
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
scramblingID1
=
NULL
;
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
dmrs_AdditionalPosition
=
calloc
(
1
,
sizeof
(
*
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
dmrs_AdditionalPosition
));
*
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
dmrs_AdditionalPosition
=
NR_DMRS_DownlinkConfig__dmrs_AdditionalPosition_pos1
;
pdsch_Config
->
choice
.
setup
->
resourceAllocation
=
NR_PDSCH_Config__resourceAllocation_resourceAllocationType1
;
pdsch_Config
->
choice
.
setup
->
prb_BundlingType
.
present
=
NR_PDSCH_Config__prb_BundlingType_PR_staticBundling
;
pdsch_Config
->
choice
.
setup
->
prb_BundlingType
.
choice
.
staticBundling
=
calloc
(
1
,
sizeof
(
*
pdsch_Config
->
choice
.
setup
->
prb_BundlingType
.
choice
.
staticBundling
));
pdsch_Config
->
choice
.
setup
->
prb_BundlingType
.
choice
.
staticBundling
->
bundleSize
=
calloc
(
1
,
sizeof
(
*
pdsch_Config
->
choice
.
setup
->
prb_BundlingType
.
choice
.
staticBundling
->
bundleSize
));
*
pdsch_Config
->
choice
.
setup
->
prb_BundlingType
.
choice
.
staticBundling
->
bundleSize
=
NR_PDSCH_Config__prb_BundlingType__staticBundling__bundleSize_wideband
;
bwp
->
bwp_Dedicated
->
pdsch_Config
=
pdsch_Config
;
set_dl_mcs_table
(
bwp
->
bwp_Common
->
genericParameters
.
subcarrierSpacing
,
force_256qam_off
?
NULL
:
uecap
,
bwp
->
bwp_Dedicated
,
scc
);
int
n_ssb
=
0
;
NR_TCI_State_t
*
tcid
[
64
];
for
(
int
i
=
0
;
i
<
64
;
i
++
)
{
if
((
ssb_bitmap
>>
(
63
-
i
))
&
0x01
){
tcid
[
i
]
=
calloc
(
1
,
sizeof
(
*
tcid
[
i
]));
tcid
[
i
]
->
tci_StateId
=
n_ssb
;
tcid
[
i
]
->
qcl_Type1
.
cell
=
NULL
;
tcid
[
i
]
->
qcl_Type1
.
bwp_Id
=
calloc
(
1
,
sizeof
(
*
tcid
[
i
]
->
qcl_Type1
.
bwp_Id
));
*
tcid
[
i
]
->
qcl_Type1
.
bwp_Id
=
bwp
->
bwp_Id
;
tcid
[
i
]
->
qcl_Type1
.
referenceSignal
.
present
=
NR_QCL_Info__referenceSignal_PR_ssb
;
tcid
[
i
]
->
qcl_Type1
.
referenceSignal
.
choice
.
ssb
=
i
;
tcid
[
i
]
->
qcl_Type1
.
qcl_Type
=
NR_QCL_Info__qcl_Type_typeC
;
ASN_SEQUENCE_ADD
(
&
bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
tci_StatesToAddModList
->
list
,
tcid
[
i
]);
n_ssb
++
;
}
}
}
void
config_uplinkBWP
(
NR_BWP_Uplink_t
*
ubwp
,
...
...
openair2/RRC/NR/nr_rrc_config.h
View file @
4214f397
...
...
@@ -152,6 +152,7 @@ void config_srs(NR_SetupRelease_SRS_Config_t *setup_release_srs_Config,
const
int
res_id
,
const
long
maxMIMO_Layers
,
const
int
do_srs
);
struct
NR_SetupRelease_PDSCH_Config
*
config_pdsch
(
uint64_t
ssb_bitmap
,
int
bwp_Id
,
int
dl_antenna_ports
);
void
set_dl_mcs_table
(
int
scs
,
NR_UE_NR_Capability_t
*
cap
,
NR_BWP_DownlinkDedicated_t
*
bwp_Dedicated
,
...
...
openair2/RRC/NR/rrc_gNB_reconfig.c
View file @
4214f397
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