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
e2521153
Commit
e2521153
authored
Oct 20, 2022
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/NR_RRC_PUSCH_config_harmonization' into integration_2022_wk42b
parents
b100ec85
8f0579fc
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
75 additions
and
229 deletions
+75
-229
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+1
-72
openair2/RRC/NR/nr_rrc_config.c
openair2/RRC/NR/nr_rrc_config.c
+72
-62
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
+1
-95
No files found.
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
e2521153
...
...
@@ -1018,78 +1018,7 @@ void fill_initial_SpCellConfig(int uid,
config_pucch_resset1
(
pucch_Config
,
NULL
);
set_pucch_power_config
(
pucch_Config
,
configuration
->
do_CSIRS
);
initialUplinkBWP
->
pusch_Config
=
calloc
(
1
,
sizeof
(
*
initialUplinkBWP
->
pusch_Config
));
initialUplinkBWP
->
pusch_Config
->
present
=
NR_SetupRelease_PUSCH_Config_PR_setup
;
NR_PUSCH_Config_t
*
pusch_Config
=
calloc
(
1
,
sizeof
(
*
pusch_Config
));
initialUplinkBWP
->
pusch_Config
->
choice
.
setup
=
pusch_Config
;
pusch_Config
->
dataScramblingIdentityPUSCH
=
NULL
;
pusch_Config
->
txConfig
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
txConfig
));
*
pusch_Config
->
txConfig
=
NR_PUSCH_Config__txConfig_codebook
;
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeA
=
NULL
;
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
));
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
->
present
=
NR_SetupRelease_DMRS_UplinkConfig_PR_setup
;
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
));
NR_DMRS_UplinkConfig_t
*
NR_DMRS_UplinkConfig
=
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
;
NR_DMRS_UplinkConfig
->
dmrs_Type
=
NULL
;
NR_DMRS_UplinkConfig
->
dmrs_AdditionalPosition
=
NULL
;
/*calloc(1,sizeof(*NR_DMRS_UplinkConfig->dmrs_AdditionalPosition));
*NR_DMRS_UplinkConfig->dmrs_AdditionalPosition = NR_DMRS_UplinkConfig__dmrs_AdditionalPosition_pos0;*/
NR_DMRS_UplinkConfig
->
phaseTrackingRS
=
NULL
;
NR_DMRS_UplinkConfig
->
maxLength
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingDisabled
=
calloc
(
1
,
sizeof
(
*
NR_DMRS_UplinkConfig
->
transformPrecodingDisabled
));
NR_DMRS_UplinkConfig
->
transformPrecodingDisabled
->
scramblingID0
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingDisabled
->
scramblingID1
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingEnabled
=
NULL
;
pusch_Config
->
pusch_PowerControl
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
));
pusch_Config
->
pusch_PowerControl
->
tpc_Accumulation
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
msg3_Alpha
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
->
msg3_Alpha
));
*
pusch_Config
->
pusch_PowerControl
->
msg3_Alpha
=
NR_Alpha_alpha1
;
pusch_Config
->
pusch_PowerControl
->
p0_NominalWithoutGrant
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
->
p0_NominalWithoutGrant
));
*
pusch_Config
->
pusch_PowerControl
->
p0_NominalWithoutGrant
=
-
76
;
pusch_Config
->
pusch_PowerControl
->
p0_AlphaSets
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
->
p0_AlphaSets
));
NR_P0_PUSCH_AlphaSet_t
*
aset
=
calloc
(
1
,
sizeof
(
*
aset
));
aset
->
p0_PUSCH_AlphaSetId
=
0
;
aset
->
p0
=
calloc
(
1
,
sizeof
(
*
aset
->
p0
));
*
aset
->
p0
=
0
;
aset
->
alpha
=
calloc
(
1
,
sizeof
(
*
aset
->
alpha
));
*
aset
->
alpha
=
NR_Alpha_alpha1
;
ASN_SEQUENCE_ADD
(
&
pusch_Config
->
pusch_PowerControl
->
p0_AlphaSets
->
list
,
aset
);
pusch_Config
->
pusch_PowerControl
->
pathlossReferenceRSToAddModList
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
->
pathlossReferenceRSToAddModList
));
NR_PUSCH_PathlossReferenceRS_t
*
plrefRS
=
calloc
(
1
,
sizeof
(
*
plrefRS
));
plrefRS
->
pusch_PathlossReferenceRS_Id
=
0
;
plrefRS
->
referenceSignal
.
present
=
NR_PUSCH_PathlossReferenceRS__referenceSignal_PR_ssb_Index
;
plrefRS
->
referenceSignal
.
choice
.
ssb_Index
=
0
;
ASN_SEQUENCE_ADD
(
&
pusch_Config
->
pusch_PowerControl
->
pathlossReferenceRSToAddModList
->
list
,
plrefRS
);
pusch_Config
->
pusch_PowerControl
->
pathlossReferenceRSToReleaseList
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
twoPUSCH_PC_AdjustmentStates
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
deltaMCS
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
->
deltaMCS
));
*
pusch_Config
->
pusch_PowerControl
->
deltaMCS
=
NR_PUSCH_PowerControl__deltaMCS_enabled
;
pusch_Config
->
pusch_PowerControl
->
sri_PUSCH_MappingToAddModList
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
->
sri_PUSCH_MappingToAddModList
));
NR_SRI_PUSCH_PowerControl_t
*
sriPUSCHPC
=
calloc
(
1
,
sizeof
(
*
sriPUSCHPC
));
sriPUSCHPC
->
sri_PUSCH_PowerControlId
=
0
;
sriPUSCHPC
->
sri_PUSCH_PathlossReferenceRS_Id
=
0
;
sriPUSCHPC
->
sri_P0_PUSCH_AlphaSetId
=
0
;
sriPUSCHPC
->
sri_PUSCH_ClosedLoopIndex
=
NR_SRI_PUSCH_PowerControl__sri_PUSCH_ClosedLoopIndex_i0
;
ASN_SEQUENCE_ADD
(
&
pusch_Config
->
pusch_PowerControl
->
sri_PUSCH_MappingToAddModList
->
list
,
sriPUSCHPC
);
pusch_Config
->
pusch_PowerControl
->
sri_PUSCH_MappingToReleaseList
=
NULL
;
pusch_Config
->
frequencyHopping
=
NULL
;
pusch_Config
->
frequencyHoppingOffsetLists
=
NULL
;
pusch_Config
->
resourceAllocation
=
NR_PUSCH_Config__resourceAllocation_resourceAllocationType1
;
pusch_Config
->
pusch_TimeDomainAllocationList
=
NULL
;
pusch_Config
->
pusch_AggregationFactor
=
NULL
;
pusch_Config
->
mcs_Table
=
NULL
;
pusch_Config
->
mcs_TableTransformPrecoder
=
NULL
;
pusch_Config
->
transformPrecoder
=
NULL
;
if
(
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
msg3_transformPrecoder
==
NULL
)
{
pusch_Config
->
transformPrecoder
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
transformPrecoder
));
*
pusch_Config
->
transformPrecoder
=
NR_PUSCH_Config__transformPrecoder_disabled
;
}
pusch_Config
->
codebookSubset
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
codebookSubset
));
*
pusch_Config
->
codebookSubset
=
NR_PUSCH_Config__codebookSubset_nonCoherent
;
pusch_Config
->
maxRank
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
maxRank
));
*
pusch_Config
->
maxRank
=
1
;
pusch_Config
->
rbg_Size
=
NULL
;
pusch_Config
->
uci_OnPUSCH
=
NULL
;
pusch_Config
->
tp_pi2BPSK
=
NULL
;
initialUplinkBWP
->
pusch_Config
=
config_pusch
(
NULL
,
scc
);
long
maxMIMO_Layers
=
uplinkConfig
&&
uplinkConfig
->
pusch_ServingCellConfig
&&
...
...
openair2/RRC/NR/nr_rrc_config.c
View file @
e2521153
...
...
@@ -870,6 +870,77 @@ void set_dl_mcs_table(int scs,
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
mcs_Table
=
NULL
;
}
struct
NR_SetupRelease_PUSCH_Config
*
config_pusch
(
NR_PUSCH_Config_t
*
pusch_Config
,
const
NR_ServingCellConfigCommon_t
*
scc
)
{
struct
NR_SetupRelease_PUSCH_Config
*
setup_puschconfig
=
calloc
(
1
,
sizeof
(
*
setup_puschconfig
));
setup_puschconfig
->
present
=
NR_SetupRelease_PUSCH_Config_PR_setup
;
if
(
!
pusch_Config
)
pusch_Config
=
calloc
(
1
,
sizeof
(
*
pusch_Config
));
setup_puschconfig
->
choice
.
setup
=
pusch_Config
;
pusch_Config
->
dataScramblingIdentityPUSCH
=
NULL
;
pusch_Config
->
txConfig
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
txConfig
));
*
pusch_Config
->
txConfig
=
NR_PUSCH_Config__txConfig_codebook
;
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeA
=
NULL
;
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
));
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
->
present
=
NR_SetupRelease_DMRS_UplinkConfig_PR_setup
;
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
));
NR_DMRS_UplinkConfig_t
*
NR_DMRS_UplinkConfig
=
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
;
NR_DMRS_UplinkConfig
->
dmrs_Type
=
NULL
;
NR_DMRS_UplinkConfig
->
dmrs_AdditionalPosition
=
NULL
;
NR_DMRS_UplinkConfig
->
phaseTrackingRS
=
NULL
;
NR_DMRS_UplinkConfig
->
maxLength
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingDisabled
=
calloc
(
1
,
sizeof
(
*
NR_DMRS_UplinkConfig
->
transformPrecodingDisabled
));
NR_DMRS_UplinkConfig
->
transformPrecodingDisabled
->
scramblingID0
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingDisabled
->
scramblingID1
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingEnabled
=
NULL
;
pusch_Config
->
pusch_PowerControl
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
));
pusch_Config
->
pusch_PowerControl
->
tpc_Accumulation
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
msg3_Alpha
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
->
msg3_Alpha
));
*
pusch_Config
->
pusch_PowerControl
->
msg3_Alpha
=
NR_Alpha_alpha1
;
pusch_Config
->
pusch_PowerControl
->
p0_NominalWithoutGrant
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
p0_AlphaSets
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
->
p0_AlphaSets
));
NR_P0_PUSCH_AlphaSet_t
*
aset
=
calloc
(
1
,
sizeof
(
*
aset
));
aset
->
p0_PUSCH_AlphaSetId
=
0
;
aset
->
p0
=
calloc
(
1
,
sizeof
(
*
aset
->
p0
));
*
aset
->
p0
=
0
;
aset
->
alpha
=
calloc
(
1
,
sizeof
(
*
aset
->
alpha
));
*
aset
->
alpha
=
NR_Alpha_alpha1
;
ASN_SEQUENCE_ADD
(
&
pusch_Config
->
pusch_PowerControl
->
p0_AlphaSets
->
list
,
aset
);
pusch_Config
->
pusch_PowerControl
->
pathlossReferenceRSToAddModList
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
->
pathlossReferenceRSToAddModList
));
NR_PUSCH_PathlossReferenceRS_t
*
plrefRS
=
calloc
(
1
,
sizeof
(
*
plrefRS
));
plrefRS
->
pusch_PathlossReferenceRS_Id
=
0
;
plrefRS
->
referenceSignal
.
present
=
NR_PUSCH_PathlossReferenceRS__referenceSignal_PR_ssb_Index
;
plrefRS
->
referenceSignal
.
choice
.
ssb_Index
=
0
;
ASN_SEQUENCE_ADD
(
&
pusch_Config
->
pusch_PowerControl
->
pathlossReferenceRSToAddModList
->
list
,
plrefRS
);
pusch_Config
->
pusch_PowerControl
->
pathlossReferenceRSToReleaseList
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
twoPUSCH_PC_AdjustmentStates
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
deltaMCS
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
->
deltaMCS
));
*
pusch_Config
->
pusch_PowerControl
->
deltaMCS
=
NR_PUSCH_PowerControl__deltaMCS_enabled
;
pusch_Config
->
pusch_PowerControl
->
sri_PUSCH_MappingToAddModList
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
sri_PUSCH_MappingToReleaseList
=
NULL
;
pusch_Config
->
frequencyHopping
=
NULL
;
pusch_Config
->
frequencyHoppingOffsetLists
=
NULL
;
pusch_Config
->
resourceAllocation
=
NR_PUSCH_Config__resourceAllocation_resourceAllocationType1
;
pusch_Config
->
pusch_TimeDomainAllocationList
=
NULL
;
pusch_Config
->
pusch_AggregationFactor
=
NULL
;
pusch_Config
->
mcs_Table
=
NULL
;
pusch_Config
->
mcs_TableTransformPrecoder
=
NULL
;
pusch_Config
->
transformPrecoder
=
NULL
;
if
(
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
msg3_transformPrecoder
==
NULL
)
{
pusch_Config
->
transformPrecoder
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
transformPrecoder
));
*
pusch_Config
->
transformPrecoder
=
NR_PUSCH_Config__transformPrecoder_disabled
;
}
pusch_Config
->
codebookSubset
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
codebookSubset
));
*
pusch_Config
->
codebookSubset
=
NR_PUSCH_Config__codebookSubset_nonCoherent
;
asn1cCallocOne
(
pusch_Config
->
maxRank
,
1
);
pusch_Config
->
rbg_Size
=
NULL
;
pusch_Config
->
uci_OnPUSCH
=
NULL
;
pusch_Config
->
tp_pi2BPSK
=
NULL
;
return
setup_puschconfig
;
}
void
config_downlinkBWP
(
NR_BWP_Downlink_t
*
bwp
,
const
NR_ServingCellConfigCommon_t
*
scc
,
const
NR_ServingCellConfig_t
*
servingcellconfigdedicated
,
...
...
@@ -1098,73 +1169,12 @@ void config_uplinkBWP(NR_BWP_Uplink_t *ubwp,
scheduling_request_config
(
scc
,
pucch_Config
);
set_dl_DataToUL_ACK
(
pucch_Config
,
configuration
->
minRXTXTIME
);
ubwp
->
bwp_Dedicated
->
pusch_Config
=
calloc
(
1
,
sizeof
(
*
ubwp
->
bwp_Dedicated
->
pusch_Config
));
ubwp
->
bwp_Dedicated
->
pusch_Config
->
present
=
NR_SetupRelease_PUSCH_Config_PR_setup
;
NR_PUSCH_Config_t
*
pusch_Config
=
NULL
;
if
(
servingcellconfigdedicated
->
uplinkConfig
->
uplinkBWP_ToAddModList
&&
bwp_loop
<
servingcellconfigdedicated
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
count
)
{
pusch_Config
=
servingcellconfigdedicated
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_loop
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
;
}
else
{
pusch_Config
=
calloc
(
1
,
sizeof
(
*
pusch_Config
));
}
ubwp
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
=
pusch_Config
;
pusch_Config
->
txConfig
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
txConfig
));
*
pusch_Config
->
txConfig
=
NR_PUSCH_Config__txConfig_codebook
;
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeA
=
NULL
;
if
(
!
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
)
{
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
));
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
->
present
=
NR_SetupRelease_DMRS_UplinkConfig_PR_setup
;
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
));
}
NR_DMRS_UplinkConfig_t
*
NR_DMRS_UplinkConfig
=
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
;
NR_DMRS_UplinkConfig
->
dmrs_Type
=
NULL
;
NR_DMRS_UplinkConfig
->
dmrs_AdditionalPosition
=
calloc
(
1
,
sizeof
(
*
NR_DMRS_UplinkConfig
->
dmrs_AdditionalPosition
));
*
NR_DMRS_UplinkConfig
->
dmrs_AdditionalPosition
=
NR_DMRS_UplinkConfig__dmrs_AdditionalPosition_pos0
;
NR_DMRS_UplinkConfig
->
phaseTrackingRS
=
NULL
;
NR_DMRS_UplinkConfig
->
maxLength
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingDisabled
=
calloc
(
1
,
sizeof
(
*
NR_DMRS_UplinkConfig
->
transformPrecodingDisabled
));
NR_DMRS_UplinkConfig
->
transformPrecodingDisabled
->
scramblingID0
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingDisabled
->
scramblingID1
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingEnabled
=
NULL
;
pusch_Config
->
pusch_PowerControl
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
));
pusch_Config
->
pusch_PowerControl
->
tpc_Accumulation
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
msg3_Alpha
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
->
msg3_Alpha
));
*
pusch_Config
->
pusch_PowerControl
->
msg3_Alpha
=
NR_Alpha_alpha1
;
pusch_Config
->
pusch_PowerControl
->
p0_NominalWithoutGrant
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
p0_AlphaSets
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
->
p0_AlphaSets
));
NR_P0_PUSCH_AlphaSet_t
*
aset
=
calloc
(
1
,
sizeof
(
*
aset
));
aset
->
p0_PUSCH_AlphaSetId
=
0
;
aset
->
p0
=
calloc
(
1
,
sizeof
(
*
aset
->
p0
));
*
aset
->
p0
=
0
;
aset
->
alpha
=
calloc
(
1
,
sizeof
(
*
aset
->
alpha
));
*
aset
->
alpha
=
NR_Alpha_alpha1
;
ASN_SEQUENCE_ADD
(
&
pusch_Config
->
pusch_PowerControl
->
p0_AlphaSets
->
list
,
aset
);
pusch_Config
->
pusch_PowerControl
->
pathlossReferenceRSToAddModList
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
pathlossReferenceRSToReleaseList
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
twoPUSCH_PC_AdjustmentStates
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
deltaMCS
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
->
deltaMCS
));
*
pusch_Config
->
pusch_PowerControl
->
deltaMCS
=
NR_PUSCH_PowerControl__deltaMCS_enabled
;
pusch_Config
->
pusch_PowerControl
->
sri_PUSCH_MappingToAddModList
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
sri_PUSCH_MappingToReleaseList
=
NULL
;
pusch_Config
->
frequencyHopping
=
NULL
;
pusch_Config
->
frequencyHoppingOffsetLists
=
NULL
;
pusch_Config
->
resourceAllocation
=
NR_PUSCH_Config__resourceAllocation_resourceAllocationType1
;
pusch_Config
->
pusch_TimeDomainAllocationList
=
NULL
;
pusch_Config
->
pusch_AggregationFactor
=
NULL
;
pusch_Config
->
mcs_Table
=
NULL
;
pusch_Config
->
mcs_TableTransformPrecoder
=
NULL
;
pusch_Config
->
transformPrecoder
=
NULL
;
if
(
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
msg3_transformPrecoder
==
NULL
)
{
pusch_Config
->
transformPrecoder
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
transformPrecoder
));
*
pusch_Config
->
transformPrecoder
=
NR_PUSCH_Config__transformPrecoder_disabled
;
}
pusch_Config
->
codebookSubset
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
codebookSubset
));
*
pusch_Config
->
codebookSubset
=
NR_PUSCH_Config__codebookSubset_nonCoherent
;
pusch_Config
->
maxRank
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
maxRank
));
*
pusch_Config
->
maxRank
=
1
;
pusch_Config
->
rbg_Size
=
NULL
;
pusch_Config
->
uci_OnPUSCH
=
NULL
;
pusch_Config
->
tp_pi2BPSK
=
NULL
;
ubwp
->
bwp_Dedicated
->
pusch_Config
=
config_pusch
(
pusch_Config
,
scc
);
long
maxMIMO_Layers
=
servingcellconfigdedicated
&&
servingcellconfigdedicated
->
uplinkConfig
...
...
openair2/RRC/NR/nr_rrc_config.h
View file @
e2521153
...
...
@@ -161,6 +161,7 @@ void prepare_sim_uecap(NR_UE_NR_Capability_t *cap,
int
numerology
,
int
rbsize
,
int
mcs_table
);
struct
NR_SetupRelease_PUSCH_Config
*
config_pusch
(
NR_PUSCH_Config_t
*
pusch_Config
,
const
NR_ServingCellConfigCommon_t
*
scc
);
void
config_downlinkBWP
(
NR_BWP_Downlink_t
*
bwp
,
const
NR_ServingCellConfigCommon_t
*
scc
,
const
NR_ServingCellConfig_t
*
servingcellconfigdedicated
,
...
...
openair2/RRC/NR/rrc_gNB_reconfig.c
View file @
e2521153
...
...
@@ -378,106 +378,12 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
NR_BWP_UplinkDedicated_t
*
initialUplinkBWP
=
calloc
(
1
,
sizeof
(
*
initialUplinkBWP
));
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
initialUplinkBWP
=
initialUplinkBWP
;
initialUplinkBWP
->
pucch_Config
=
NULL
;
initialUplinkBWP
->
pusch_Config
=
calloc
(
1
,
sizeof
(
*
initialUplinkBWP
->
pusch_Config
));
initialUplinkBWP
->
pusch_Config
->
present
=
NR_SetupRelease_PUSCH_Config_PR_setup
;
NR_PUSCH_Config_t
*
pusch_Config
=
NULL
;
if
(
servingcellconfigdedicated
->
uplinkConfig
->
uplinkBWP_ToAddModList
)
{
pusch_Config
=
servingcellconfigdedicated
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
;
}
else
{
pusch_Config
=
calloc
(
1
,
sizeof
(
*
pusch_Config
));
}
initialUplinkBWP
->
pusch_Config
->
choice
.
setup
=
pusch_Config
;
pusch_Config
->
txConfig
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
txConfig
));
*
pusch_Config
->
txConfig
=
NR_PUSCH_Config__txConfig_codebook
;
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeA
=
NULL
;
if
(
!
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
)
{
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
));
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
->
present
=
NR_SetupRelease_DMRS_UplinkConfig_PR_setup
;
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
));
}
NR_DMRS_UplinkConfig_t
*
NR_DMRS_UplinkConfig
=
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
;
NR_DMRS_UplinkConfig
->
dmrs_Type
=
NULL
;
NR_DMRS_UplinkConfig
->
dmrs_AdditionalPosition
=
calloc
(
1
,
sizeof
(
*
NR_DMRS_UplinkConfig
->
dmrs_AdditionalPosition
));
*
NR_DMRS_UplinkConfig
->
dmrs_AdditionalPosition
=
NR_DMRS_UplinkConfig__dmrs_AdditionalPosition_pos0
;
if
(
!
servingcellconfigdedicated
)
{
NR_DMRS_UplinkConfig
->
phaseTrackingRS
=
NULL
;
}
NR_DMRS_UplinkConfig
->
maxLength
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingDisabled
=
calloc
(
1
,
sizeof
(
*
NR_DMRS_UplinkConfig
->
transformPrecodingDisabled
));
NR_DMRS_UplinkConfig
->
transformPrecodingDisabled
->
scramblingID0
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingDisabled
->
scramblingID1
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingEnabled
=
NULL
;
pusch_Config
->
pusch_PowerControl
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
));
pusch_Config
->
pusch_PowerControl
->
tpc_Accumulation
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
msg3_Alpha
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
->
msg3_Alpha
));
*
pusch_Config
->
pusch_PowerControl
->
msg3_Alpha
=
NR_Alpha_alpha1
;
pusch_Config
->
pusch_PowerControl
->
p0_NominalWithoutGrant
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
p0_AlphaSets
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
->
p0_AlphaSets
));
NR_P0_PUSCH_AlphaSet_t
*
aset
=
calloc
(
1
,
sizeof
(
*
aset
));
aset
->
p0_PUSCH_AlphaSetId
=
0
;
aset
->
p0
=
calloc
(
1
,
sizeof
(
*
aset
->
p0
));
*
aset
->
p0
=
0
;
aset
->
alpha
=
calloc
(
1
,
sizeof
(
*
aset
->
alpha
));
*
aset
->
alpha
=
NR_Alpha_alpha1
;
ASN_SEQUENCE_ADD
(
&
pusch_Config
->
pusch_PowerControl
->
p0_AlphaSets
->
list
,
aset
);
pusch_Config
->
pusch_PowerControl
->
pathlossReferenceRSToAddModList
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
pathlossReferenceRSToReleaseList
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
twoPUSCH_PC_AdjustmentStates
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
deltaMCS
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
->
deltaMCS
));
*
pusch_Config
->
pusch_PowerControl
->
deltaMCS
=
NR_PUSCH_PowerControl__deltaMCS_enabled
;
pusch_Config
->
pusch_PowerControl
->
sri_PUSCH_MappingToAddModList
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
sri_PUSCH_MappingToReleaseList
=
NULL
;
pusch_Config
->
frequencyHopping
=
NULL
;
pusch_Config
->
frequencyHoppingOffsetLists
=
NULL
;
pusch_Config
->
resourceAllocation
=
NR_PUSCH_Config__resourceAllocation_resourceAllocationType1
;
pusch_Config
->
pusch_TimeDomainAllocationList
=
NULL
;
pusch_Config
->
pusch_AggregationFactor
=
NULL
;
pusch_Config
->
mcs_Table
=
NULL
;
pusch_Config
->
transformPrecoder
=
NULL
;
pusch_Config
->
mcs_TableTransformPrecoder
=
NULL
;
/* if msg3_transformprecoding is set in conf file - pusch config should not disable it */
if
(
servingcellconfigcommon
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
msg3_transformPrecoder
==
NULL
)
{
pusch_Config
->
transformPrecoder
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
transformPrecoder
));
*
pusch_Config
->
transformPrecoder
=
NR_PUSCH_Config__transformPrecoder_disabled
;
}
pusch_Config
->
codebookSubset
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
codebookSubset
));
*
pusch_Config
->
codebookSubset
=
NR_PUSCH_Config__codebookSubset_nonCoherent
;
pusch_Config
->
maxRank
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
maxRank
));
*
pusch_Config
->
maxRank
=
configuration
->
pusch_AntennaPorts
;
pusch_Config
->
rbg_Size
=
NULL
;
pusch_Config
->
uci_OnPUSCH
=
NULL
;
pusch_Config
->
tp_pi2BPSK
=
NULL
;
/*------------------------------TRANSFORM PRECODING- -----------------------------------------------------------------------*/
uint8_t
transformPrecoder
=
NR_PUSCH_Config__transformPrecoder_disabled
;
// TBD: configure this from .conf file, Dedicated params cannot yet be configured in .conf file.
// Enable this to test transform precoding enabled from dedicated config.
/*if (pusch_Config->transformPrecoder == NULL)
pusch_Config->transformPrecoder=calloc(1,sizeof(*pusch_Config->transformPrecoder));
*pusch_Config->transformPrecoder = NR_PUSCH_Config__transformPrecoder_enabled; */
// END -------
if
(
pusch_Config
->
transformPrecoder
==
NULL
)
{
if
(
servingcellconfigcommon
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
msg3_transformPrecoder
!=
NULL
)
transformPrecoder
=
NR_PUSCH_Config__transformPrecoder_enabled
;
}
else
transformPrecoder
=
*
pusch_Config
->
transformPrecoder
;
if
(
transformPrecoder
==
NR_PUSCH_Config__transformPrecoder_enabled
)
{
/* Enable DMRS uplink config for transform precoding enabled */
NR_DMRS_UplinkConfig
->
transformPrecodingEnabled
=
calloc
(
1
,
sizeof
(
*
NR_DMRS_UplinkConfig
->
transformPrecodingEnabled
));
NR_DMRS_UplinkConfig
->
transformPrecodingEnabled
->
nPUSCH_Identity
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingEnabled
->
sequenceGroupHopping
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingEnabled
->
sequenceHopping
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingEnabled
->
ext1
=
NULL
;
LOG_I
(
RRC
,
"TRANSFORM PRECODING ENABLED......
\n
"
);
}
initialUplinkBWP
->
pusch_Config
=
config_pusch
(
pusch_Config
,
servingcellconfigcommon
);
long
maxMIMO_Layers
=
servingcellconfigdedicated
->
uplinkConfig
&&
servingcellconfigdedicated
->
uplinkConfig
->
pusch_ServingCellConfig
&&
...
...
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