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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG
OpenXG-RAN
Commits
6cee30ba
Commit
6cee30ba
authored
Mar 03, 2023
by
Thomas Schlichter
Committed by
francescomani
Mar 15, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
review comments and further transform precoding cleanup
parent
b64185e8
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
92 additions
and
121 deletions
+92
-121
openair2/GNB_APP/RRC_nr_paramsvalues.h
openair2/GNB_APP/RRC_nr_paramsvalues.h
+2
-4
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+1
-1
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
+1
-1
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
+4
-4
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
+4
-6
openair2/LAYER2/NR_MAC_UE/mac_proto.h
openair2/LAYER2/NR_MAC_UE/mac_proto.h
+8
-2
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
+17
-17
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+10
-7
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+12
-36
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+2
-10
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
+1
-1
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+0
-2
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+1
-1
openair2/RRC/NR/nr_rrc_config.c
openair2/RRC/NR/nr_rrc_config.c
+27
-26
openair2/RRC/NR/nr_rrc_config.h
openair2/RRC/NR/nr_rrc_config.h
+1
-1
openair2/RRC/NR/rrc_gNB_reconfig.c
openair2/RRC/NR/rrc_gNB_reconfig.c
+1
-2
No files found.
openair2/GNB_APP/RRC_nr_paramsvalues.h
View file @
6cee30ba
...
...
@@ -83,8 +83,7 @@
#define GNB_CONFIG_STRING_PRACHROOTSEQUENCEINDEX "prach_RootSequenceIndex"
#define GNB_CONFIG_STRING_MSG1SUBCARRIERSPACING "msg1_SubcarrierSpacing"
#define GNB_CONFIG_STRING_RESTRICTEDSETCONFIG "restrictedSetConfig"
#define GNB_CONFIG_STRING_TRANSFPREC "transformPrecoder"
#define GNB_CONFIG_STRING_PUSCHTIMEDOMAINALLOCATIONLIST "puschTimeDomainAllocationList"
#define GNB_CONFIG_STRING_MSG3TRANSFPREC "msg3_transformPrecoder"
#define GNB_CONFIG_STRING_MSG3DELTAPREABMLE "msg3_DeltaPreamble"
#define GNB_CONFIG_STRING_P0NOMINALWITHGRANT "p0_NominalWithGrant"
#define GNB_CONFIG_STRING_PUCCHGROUPHOPPING "pucchGroupHopping"
...
...
@@ -212,7 +211,7 @@
{GNB_CONFIG_STRING_PRACHROOTSEQUENCEINDEXPR,NULL,0,.uptr=&scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->prach_RootSequenceIndex.present,.defuintval=NR_RACH_ConfigCommon__prach_RootSequenceIndex_PR_l139,TYPE_UINT,0
/*83*/
},\
{GNB_CONFIG_STRING_PRACHROOTSEQUENCEINDEX,NULL,0,.i64ptr=&scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->prach_RootSequenceIndex.choice.l139,.defint64val=0,TYPE_INT64,0
/*84*/
},\
{GNB_CONFIG_STRING_RESTRICTEDSETCONFIG,NULL,0,.i64ptr=&scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->restrictedSetConfig,.defintval=NR_RACH_ConfigCommon__restrictedSetConfig_unrestrictedSet,TYPE_INT64,0
/*85*/
}, \
{GNB_CONFIG_STRING_TRANSFPREC,NULL,0,.i64ptr=scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg3_transformPrecoder,.defintval=1,TYPE_INT64,0
/*86*/
}, \
{GNB_CONFIG_STRING_
MSG3
TRANSFPREC,NULL,0,.i64ptr=scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg3_transformPrecoder,.defintval=1,TYPE_INT64,0
/*86*/
}, \
{GNB_CONFIG_STRING_MSG3DELTAPREABMLE, NULL,0,.i64ptr=scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->msg3_DeltaPreamble,.defint64val=1,TYPE_INT64,0},\
{GNB_CONFIG_STRING_P0NOMINALWITHGRANT, NULL,0,.i64ptr=scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->p0_NominalWithGrant,.defint64val=1,TYPE_INT64,0},\
{GNB_CONFIG_STRING_PUCCHGROUPHOPPING, NULL,0,.i64ptr=&scc->uplinkConfigCommon->initialUplinkBWP->pucch_ConfigCommon->choice.setup->pucch_GroupHopping,.defint64val=NR_PUCCH_ConfigCommon__pucch_GroupHopping_neither,TYPE_INT64,0},\
...
...
@@ -235,7 +234,6 @@
{GNB_CONFIG_STRING_SSPBCHBLOCKPOWER,NULL,0,.i64ptr=&scc->ss_PBCH_BlockPower,.defint64val=20,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_MSG1SUBCARRIERSPACING,NULL,0,.i64ptr=scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg1_SubcarrierSpacing,.defintval=-1,TYPE_INT64,0}}
/*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* Serving Cell Config Dedicated configuration parameters */
/*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
...
...
openair2/GNB_APP/gnb_config.c
View file @
6cee30ba
...
...
@@ -173,7 +173,7 @@ void prepare_scc(NR_ServingCellConfigCommon_t *scc) {
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
pusch_ConfigCommon
->
present
=
NR_SetupRelease_PUSCH_ConfigCommon_PR_setup
;
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
pusch_ConfigCommon
->
choice
.
setup
=
CALLOC
(
1
,
sizeof
(
struct
NR_PUSCH_ConfigCommon
));
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
pusch_ConfigCommon
->
choice
.
setup
->
groupHoppingEnabledTransformPrecoding
=
CALLOC
(
1
,
sizeof
(
long
))
;
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
pusch_ConfigCommon
->
choice
.
setup
->
groupHoppingEnabledTransformPrecoding
=
NULL
;
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
pusch_ConfigCommon
->
choice
.
setup
->
pusch_TimeDomainAllocationList
=
CALLOC
(
1
,
sizeof
(
struct
NR_PUSCH_TimeDomainResourceAllocationList
));
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
pusch_ConfigCommon
->
choice
.
setup
->
msg3_DeltaPreamble
=
CALLOC
(
1
,
sizeof
(
long
));
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
View file @
6cee30ba
...
...
@@ -602,7 +602,7 @@ typedef struct NR_UE_UL_BWP {
NR_CSI_MeasConfig_t
*
csi_MeasConfig
;
NR_SRS_Config_t
*
srs_Config
;
long
*
msg3_DeltaPreamble
;
int
transform_precoding
;
long
transform_precoding
;
uint8_t
mcs_table
;
nr_dci_format_t
dci_format
;
int
max_fb_time
;
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
View file @
6cee30ba
...
...
@@ -2832,15 +2832,15 @@ uint16_t get_nr_srs_offset(NR_SRS_PeriodicityAndOffset_t periodicityAndOffset) {
// Set the transform precoding status according to 6.1.3 of 3GPP TS 38.214 version 16.3.0 Release 16:
// - "UE procedure for applying transform precoding on PUSCH"
uint8_t
get_transformPrecoding
(
const
NR_UE_UL_BWP_t
*
current_UL_BWP
,
nr_dci_format_t
dci_format
,
uint8_t
configuredGrant
)
long
get_transformPrecoding
(
const
NR_UE_UL_BWP_t
*
current_UL_BWP
,
nr_dci_format_t
dci_format
,
uint8_t
configuredGrant
)
{
if
(
configuredGrant
&&
current_UL_BWP
->
configuredGrantConfig
&&
current_UL_BWP
->
configuredGrantConfig
->
transformPrecoder
)
return
*
current_UL_BWP
->
configuredGrantConfig
->
transformPrecoder
;
if
(
dci_format
==
NR_UL_DCI_FORMAT_0_1
&&
current_UL_BWP
&&
current_UL_BWP
->
pusch_Config
&&
current_UL_BWP
->
pusch_Config
->
transformPrecoder
)
return
*
current_UL_BWP
->
pusch_Config
->
transformPrecoder
;
else
return
current_UL_BWP
->
rach_ConfigCommon
->
msg3_transformPrecoder
?
0
:
1
;
return
current_UL_BWP
->
rach_ConfigCommon
->
msg3_transformPrecoder
?
0
:
1
;
}
uint8_t
get_pusch_nb_antenna_ports
(
NR_PUSCH_Config_t
*
pusch_Config
,
...
...
@@ -3415,7 +3415,7 @@ uint16_t nr_dci_size(const NR_UE_DL_BWP_t *DL_BWP,
if
(
pusch_Config
&&
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
!=
NULL
){
NR_DMRS_UplinkConfig
=
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
;
xb
=
ul_ant_bits
(
NR_DMRS_UplinkConfig
,
transformPrecoder
);
xb
=
ul_ant_bits
(
NR_DMRS_UplinkConfig
,
transformPrecoder
);
}
if
(
xa
>
xb
)
dci_pdu
->
antenna_ports
.
nbits
=
xa
;
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
View file @
6cee30ba
...
...
@@ -160,7 +160,7 @@ uint8_t compute_nr_root_seq(NR_RACH_ConfigCommon_t *rach_config,
uint8_t
unpaired
,
frequency_range_t
);
int
ul_ant_bits
(
NR_DMRS_UplinkConfig_t
*
NR_DMRS_UplinkConfig
,
long
transformPrecoder
);
int
ul_ant_bits
(
NR_DMRS_UplinkConfig_t
*
NR_DMRS_UplinkConfig
,
long
transformPrecoder
);
uint8_t
get_pdsch_mcs_table
(
long
*
mcs_Table
,
int
dci_format
,
int
rnti_type
,
int
ss_type
);
...
...
@@ -268,13 +268,11 @@ bool set_ul_ptrs_values(NR_PTRS_UplinkConfig_t *ul_ptrs_config,
uint8_t
NrOfSymbols
);
/* \brief Set the transform precoding according to 6.1.3 of 3GPP TS 38.214 version 16.3.0 Release 16
@param *pusch_config, pointer to pusch config
@param *ubwp pointer to uplink bwp
@param *dci_format pointer to dci format
@param rnti_type rnti type
@param *current_UL_BWP pointer to uplink bwp
@param dci_format dci format
@param configuredGrant indicates whether a configured grant was received or not
@returns transformPrecoding value */
uint8_t
get_transformPrecoding
(
const
NR_UE_UL_BWP_t
*
current_UL_BWP
,
nr_dci_format_t
dci_format
,
uint8_t
configuredGrant
);
long
get_transformPrecoding
(
const
NR_UE_UL_BWP_t
*
current_UL_BWP
,
nr_dci_format_t
dci_format
,
uint8_t
configuredGrant
);
void
nr_mac_gNB_rrc_ul_failure
(
const
module_id_t
Mod_instP
,
const
int
CC_idP
,
...
...
openair2/LAYER2/NR_MAC_UE/mac_proto.h
View file @
6cee30ba
...
...
@@ -435,7 +435,7 @@ void configure_ss_coreset(NR_UE_MAC_INST_t *mac,
NR_BWP_Id_t
dl_bwp_id
);
static
uint8_t
nr_extract_dci_info
(
NR_UE_MAC_INST_t
*
mac
,
uint8
_t
dci_format
,
nr_dci_format
_t
dci_format
,
uint8_t
dci_size
,
uint16_t
rnti
,
int
ss_type
,
...
...
@@ -466,6 +466,12 @@ int get_rnti_type(NR_UE_MAC_INST_t *mac, uint16_t rnti);
// - 6.1.4.2 of TS 38.214
// - 6.4.1.1.1 of TS 38.211
// - 6.3.1.7 of 38.211
int
nr_config_pusch_pdu
(
NR_UE_MAC_INST_t
*
mac
,
NR_tda_info_t
*
tda_info
,
nfapi_nr_ue_pusch_pdu_t
*
pusch_config_pdu
,
dci_pdu_rel15_t
*
dci
,
RAR_grant_t
*
rar_grant
,
uint16_t
rnti
,
uint8_t
*
dci_format
);
int
nr_config_pusch_pdu
(
NR_UE_MAC_INST_t
*
mac
,
NR_tda_info_t
*
tda_info
,
nfapi_nr_ue_pusch_pdu_t
*
pusch_config_pdu
,
dci_pdu_rel15_t
*
dci
,
RAR_grant_t
*
rar_grant
,
uint16_t
rnti
,
const
nr_dci_format_t
*
dci_format
);
#endif
/** @}*/
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
View file @
6cee30ba
...
...
@@ -164,25 +164,25 @@ void init_RA(module_id_t mod_id,
NR_SearchSpaceId_t
ss_id
=
-
1
;
NR_SearchSpace_t
*
ss
=
NULL
;
if
(
mac
->
scc_SIB
)
{
commonSearchSpaceList
=
mac
->
scc_SIB
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
;
ss_id
=
*
mac
->
scc_SIB
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
->
choice
.
setup
->
ra_SearchSpace
;
if
(
mac
->
scc
)
{
NR_SearchSpaceId_t
*
ra_ss
=
mac
->
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
ra_SearchSpace
;
if
(
ra_ss
)
{
commonSearchSpaceList
=
mac
->
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
;
ss_id
=
*
ra_ss
;
}
}
else
if
(
mac
->
scc_SIB
)
{
NR_SearchSpaceId_t
*
ra_ss
=
mac
->
scc_SIB
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
->
choice
.
setup
->
ra_SearchSpace
;
if
(
ra_ss
)
{
commonSearchSpaceList
=
mac
->
scc_SIB
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
;
ss_id
=
*
ra_ss
;
}
}
else
{
if
(
mac
->
scc
)
{
NR_SearchSpaceId_t
*
ra_ss
=
mac
->
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
ra_SearchSpace
;
if
(
ss_id
<
0
)
{
if
(
mac
->
current_DL_BWP
.
bwp_id
>
0
)
{
ra_ss
=
mac
->
DLbwp
[
mac
->
current_DL_BWP
.
bwp_id
-
1
]
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
ra_SearchSpace
;
if
(
ra_ss
)
{
commonSearchSpaceList
=
mac
->
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
;
ss_id
=
*
mac
->
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
ra_SearchSpace
;
}
}
if
(
ss_id
<
0
)
{
if
(
mac
->
current_DL_BWP
.
bwp_id
>
0
)
{
ra_ss
=
mac
->
DLbwp
[
mac
->
current_DL_BWP
.
bwp_id
-
1
]
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
ra_SearchSpace
;
if
(
ra_ss
)
{
commonSearchSpaceList
=
mac
->
DLbwp
[
mac
->
current_DL_BWP
.
bwp_id
-
1
]
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
;
ss_id
=
*
mac
->
DLbwp
[
mac
->
current_DL_BWP
.
bwp_id
-
1
]
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
ra_SearchSpace
;
}
commonSearchSpaceList
=
mac
->
DLbwp
[
mac
->
current_DL_BWP
.
bwp_id
-
1
]
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
;
ss_id
=
*
ra_ss
;
}
}
}
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
6cee30ba
...
...
@@ -431,8 +431,8 @@ int nr_ue_process_dci_indication_pdu(module_id_t module_id,int cc_id, int gNB_in
int8_t
nr_ue_process_dci
(
module_id_t
module_id
,
int
cc_id
,
uint8_t
gNB_index
,
frame_t
frame
,
int
slot
,
dci_pdu_rel15_t
*
dci
,
fapi_nr_dci_indication_pdu_t
*
dci_ind
)
{
uint16_t
rnti
=
dci_ind
->
rnti
;
uint8_t
dci_format
=
dci_ind
->
dci_format
;
int
coreset_type
=
dci_ind
->
coreset_type
==
NFAPI_NR_CSET_CONFIG_PDCCH_CONFIG
;
// 0 for coreset0, 1 otherwise
nr_dci_format_t
dci_format
=
dci_ind
->
dci_format
;
int
ret
=
0
;
int
pucch_res_set_cnt
=
0
,
valid
=
0
;
frame_t
frame_tx
=
0
;
...
...
@@ -2388,7 +2388,7 @@ void nr_ue_send_sdu(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_t *u
}
static
uint8_t
nr_extract_dci_info
(
NR_UE_MAC_INST_t
*
mac
,
uint8
_t
dci_format
,
nr_dci_format
_t
dci_format
,
uint8_t
dci_size
,
uint16_t
rnti
,
int
ss_type
,
...
...
@@ -2852,8 +2852,8 @@ static uint8_t nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
break
;
case
NR_DL_DCI_FORMAT_1_1
:
switch
(
rnti_type
)
{
switch
(
rnti_type
)
{
case
NR_RNTI_C
:
//Identifier for DCI formats
pos
++
;
...
...
@@ -3053,9 +3053,12 @@ static uint8_t nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
break
;
}
break
;
}
return
0
;
default:
// other DCI formats
break
;
}
return
0
;
}
///////////////////////////////////
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
View file @
6cee30ba
...
...
@@ -145,7 +145,7 @@ void ul_layers_config(NR_UE_MAC_INST_t *mac, nfapi_nr_ue_pusch_pdu_t *pusch_conf
NR_SRS_Config_t
*
srs_config
=
current_UL_BWP
->
srs_Config
;
NR_PUSCH_Config_t
*
pusch_Config
=
current_UL_BWP
->
pusch_Config
;
int
transformPrecoder
=
pusch_config_pdu
->
transform_precoding
;
long
transformPrecoder
=
pusch_config_pdu
->
transform_precoding
;
/* PRECOD_NBR_LAYERS */
// 0 bits if the higher layer parameter txConfig = nonCodeBook
...
...
@@ -239,34 +239,6 @@ void ul_layers_config(NR_UE_MAC_INST_t *mac, nfapi_nr_ue_pusch_pdu_t *pusch_conf
}
}
}
/*-------------------- Changed to enable Transform precoding in RF SIM------------------------------------------------*/
/*if (pusch_config_pdu->transformPrecoder == transformPrecoder_enabled) {
pusch_config_dedicated->transform_precoder = transformPrecoder_enabled;
if(pusch_Config->dmrs_UplinkForPUSCH_MappingTypeA != NULL) {
NR_DMRS_UplinkConfig_t *NR_DMRS_ulconfig = pusch_Config->dmrs_UplinkForPUSCH_MappingTypeA->choice.setup;
if (NR_DMRS_ulconfig->dmrs_Type == NULL)
pusch_config_dedicated->dmrs_ul_for_pusch_mapping_type_a.dmrs_type = 1;
if (NR_DMRS_ulconfig->maxLength == NULL)
pusch_config_dedicated->dmrs_ul_for_pusch_mapping_type_a.max_length = 1;
} else if(pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB != NULL) {
NR_DMRS_UplinkConfig_t *NR_DMRS_ulconfig = pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup;
if (NR_DMRS_ulconfig->dmrs_Type == NULL)
pusch_config_dedicated->dmrs_ul_for_pusch_mapping_type_b.dmrs_type = 1;
if (NR_DMRS_ulconfig->maxLength == NULL)
pusch_config_dedicated->dmrs_ul_for_pusch_mapping_type_b.max_length = 1;
}
} else
pusch_config_dedicated->transformPrecoder = ttransformPrecoder_disabled;*/
}
// todo: this function shall be reviewed completely because of the many comments left by the author
...
...
@@ -277,11 +249,11 @@ void ul_ports_config(NR_UE_MAC_INST_t *mac, int *n_front_load_symb, nfapi_nr_ue_
NR_PUSCH_Config_t
*
pusch_Config
=
mac
->
current_UL_BWP
.
pusch_Config
;
AssertFatal
(
pusch_Config
!=
NULL
,
"pusch_Config shouldn't be null
\n
"
);
long
transformPrecoder
=
get_transformPrecoding
(
&
mac
->
current_UL_BWP
,
dci_format
,
0
);
long
transformPrecoder
=
pusch_config_pdu
->
transform_precoding
;
LOG_D
(
NR_MAC
,
"transformPrecoder %s
\n
"
,
transformPrecoder
==
NR_PUSCH_Config__transformPrecoder_disabled
?
"disabled"
:
"enabled"
);
long
*
max_length
=
NULL
;
long
*
dmrs_type
=
NULL
;
LOG_D
(
NR_MAC
,
"transformPrecoder %s
\n
"
,
transformPrecoder
==
NR_PUSCH_Config__transformPrecoder_disabled
?
"disabled"
:
"enabled"
);
if
(
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeA
)
{
max_length
=
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeA
->
choice
.
setup
->
maxLength
;
dmrs_type
=
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeA
->
choice
.
setup
->
dmrs_Type
;
...
...
@@ -450,7 +422,13 @@ void ul_ports_config(NR_UE_MAC_INST_t *mac, int *n_front_load_symb, nfapi_nr_ue_
// - 6.1.4.2 of TS 38.214
// - 6.4.1.1.1 of TS 38.211
// - 6.3.1.7 of 38.211
int
nr_config_pusch_pdu
(
NR_UE_MAC_INST_t
*
mac
,
NR_tda_info_t
*
tda_info
,
nfapi_nr_ue_pusch_pdu_t
*
pusch_config_pdu
,
dci_pdu_rel15_t
*
dci
,
RAR_grant_t
*
rar_grant
,
uint16_t
rnti
,
uint8_t
*
dci_format
)
int
nr_config_pusch_pdu
(
NR_UE_MAC_INST_t
*
mac
,
NR_tda_info_t
*
tda_info
,
nfapi_nr_ue_pusch_pdu_t
*
pusch_config_pdu
,
dci_pdu_rel15_t
*
dci
,
RAR_grant_t
*
rar_grant
,
uint16_t
rnti
,
const
nr_dci_format_t
*
dci_format
)
{
int
f_alloc
;
...
...
@@ -569,9 +547,7 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac, NR_tda_info_t *tda_info, nfapi_nr
}
/* Transform precoding */
if
(
rnti_type
!=
NR_RNTI_CS
||
(
rnti_type
==
NR_RNTI_CS
&&
dci
->
ndi
==
1
))
{
pusch_config_pdu
->
transform_precoding
=
get_transformPrecoding
(
current_UL_BWP
,
*
dci_format
,
0
);
}
pusch_config_pdu
->
transform_precoding
=
get_transformPrecoding
(
current_UL_BWP
,
*
dci_format
,
0
);
/*DCI format-related configuration*/
if
(
*
dci_format
==
NR_UL_DCI_FORMAT_0_0
)
{
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
6cee30ba
...
...
@@ -527,7 +527,7 @@ bool multiple_2_3_5(int rb)
bool
nr_find_nb_rb
(
uint16_t
Qm
,
uint16_t
R
,
int
transform_precoding
,
long
transform_precoding
,
uint8_t
nrOfLayers
,
uint16_t
nb_symb_sch
,
uint16_t
nb_dmrs_prb
,
...
...
@@ -2289,15 +2289,7 @@ void configure_UE_BWP(gNB_MAC_INST *nr_mac,
DL_BWP
->
mcsTableIdx
=
get_pdsch_mcs_table
(
dl_mcs_Table
,
DL_BWP
->
dci_format
,
NR_RNTI_C
,
target_ss
);
// 0 precoding enabled 1 precoding disabled
long
*
transform_precoding
;
if
(
UL_BWP
->
dci_format
==
NR_UL_DCI_FORMAT_0_0
||
UL_BWP
->
pusch_Config
==
NULL
||
UL_BWP
->
pusch_Config
->
transformPrecoder
==
NULL
)
transform_precoding
=
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
msg3_transformPrecoder
;
else
transform_precoding
=
UL_BWP
->
pusch_Config
->
transformPrecoder
;
UL_BWP
->
transform_precoding
=
(
transform_precoding
==
NULL
||
*
transform_precoding
==
1
);
UL_BWP
->
transform_precoding
=
get_transformPrecoding
(
UL_BWP
,
UL_BWP
->
dci_format
,
0
);
// Set uplink MCS table
long
*
mcs_Table
=
NULL
;
if
(
UL_BWP
->
pusch_Config
)
...
...
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
View file @
6cee30ba
...
...
@@ -460,7 +460,7 @@ int get_cce_index(const gNB_MAC_INST *nrmac,
bool
nr_find_nb_rb
(
uint16_t
Qm
,
uint16_t
R
,
int
transform_precoding
,
long
transform_precoding
,
uint8_t
nrOfLayers
,
uint16_t
nb_symb_sch
,
uint16_t
nb_dmrs_prb
,
...
...
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
6cee30ba
...
...
@@ -196,8 +196,6 @@ typedef struct {
/*! \brief gNB common channels */
typedef
struct
{
int
physCellId
;
int
p_gNB
;
int
Ncp
;
int
nr_band
;
frame_type_t
frame_type
;
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
6cee30ba
...
...
@@ -723,7 +723,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
=
config_pusch
(
NULL
,
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
msg3_transformPrecoder
);
initialUplinkBWP
->
pusch_Config
=
config_pusch
(
NULL
);
long
maxMIMO_Layers
=
uplinkConfig
&&
uplinkConfig
->
pusch_ServingCellConfig
&&
...
...
openair2/RRC/NR/nr_rrc_config.c
View file @
6cee30ba
...
...
@@ -991,7 +991,7 @@ 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
,
long
*
transformPrecoder
)
struct
NR_SetupRelease_PUSCH_Config
*
config_pusch
(
NR_PUSCH_Config_t
*
pusch_Config
)
{
struct
NR_SetupRelease_PUSCH_Config
*
setup_puschconfig
=
calloc
(
1
,
sizeof
(
*
setup_puschconfig
));
setup_puschconfig
->
present
=
NR_SetupRelease_PUSCH_Config_PR_setup
;
...
...
@@ -1000,33 +1000,34 @@ struct NR_SetupRelease_PUSCH_Config *config_pusch(NR_PUSCH_Config_t *pusch_Confi
setup_puschconfig
->
choice
.
setup
=
pusch_Config
;
pusch_Config
->
dataScramblingIdentityPUSCH
=
NULL
;
pusch_Config
->
txConfig
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
txConfig
));
if
(
!
pusch_Config
->
txConfig
)
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
));
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
));
if
(
!
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
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
;
if
(
transformPrecoder
==
NULL
)
{
if
(
!
NR_DMRS_UplinkConfig
->
transformPrecodingDisabled
)
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
;
}
else
{
NR_DMRS_UplinkConfig
->
transformPrecodingDisabled
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingDisabled
->
scramblingID0
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingDisabled
->
scramblingID1
=
NULL
;
if
(
!
NR_DMRS_UplinkConfig
->
transformPrecodingEnabled
)
NR_DMRS_UplinkConfig
->
transformPrecodingEnabled
=
calloc
(
1
,
sizeof
(
*
NR_DMRS_UplinkConfig
->
transformPrecodingEnabled
));
NR_DMRS_UplinkConfig
->
transformPrecodingEnabled
->
nPUSCH_Identity
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingEnabled
->
sequenceHopping
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingEnabled
->
sequenceGroupHopping
=
NULL
;
}
pusch_Config
->
pusch_PowerControl
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
));
NR_DMRS_UplinkConfig
->
transformPrecodingEnabled
->
nPUSCH_Identity
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingEnabled
->
sequenceHopping
=
NULL
;
NR_DMRS_UplinkConfig
->
transformPrecodingEnabled
->
sequenceGroupHopping
=
NULL
;
if
(
!
pusch_Config
->
pusch_PowerControl
)
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
));
if
(
!
pusch_Config
->
pusch_PowerControl
->
msg3_Alpha
)
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
));
...
...
@@ -1045,7 +1046,8 @@ struct NR_SetupRelease_PUSCH_Config *config_pusch(NR_PUSCH_Config_t *pusch_Confi
asn1cSeqAdd
(
&
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
));
if
(
!
pusch_Config
->
pusch_PowerControl
->
deltaMCS
)
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
;
...
...
@@ -1055,14 +1057,14 @@ struct NR_SetupRelease_PUSCH_Config *config_pusch(NR_PUSCH_Config_t *pusch_Confi
pusch_Config
->
pusch_TimeDomainAllocationList
=
NULL
;
pusch_Config
->
pusch_AggregationFactor
=
NULL
;
pusch_Config
->
mcs_Table
=
NULL
;
if
(
transformPrecoder
!=
NULL
)
{
pusch_Config
->
transformPrecoder
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
transformPrecoder
));
*
pusch_Config
->
transformPrecoder
=
NR_PUSCH_Config__transformPrecoder_enabled
;
}
pusch_Config
->
mcs_TableTransformPrecoder
=
NULL
;
pusch_Config
->
codebookSubset
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
codebookSubset
));
pusch_Config
->
transformPrecoder
=
NULL
;
if
(
!
pusch_Config
->
codebookSubset
)
pusch_Config
->
codebookSubset
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
codebookSubset
));
*
pusch_Config
->
codebookSubset
=
NR_PUSCH_Config__codebookSubset_nonCoherent
;
asn1cCallocOne
(
pusch_Config
->
maxRank
,
1
);
if
(
!
pusch_Config
->
maxRank
)
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
;
...
...
@@ -1256,8 +1258,7 @@ void config_uplinkBWP(NR_BWP_Uplink_t *ubwp,
bwp_loop
<
servingcellconfigdedicated
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
count
)
{
pusch_Config
=
servingcellconfigdedicated
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_loop
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
;
}
ubwp
->
bwp_Dedicated
->
pusch_Config
=
config_pusch
(
pusch_Config
,
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
msg3_transformPrecoder
);
ubwp
->
bwp_Dedicated
->
pusch_Config
=
config_pusch
(
pusch_Config
);
long
maxMIMO_Layers
=
servingcellconfigdedicated
&&
servingcellconfigdedicated
->
uplinkConfig
...
...
openair2/RRC/NR/nr_rrc_config.h
View file @
6cee30ba
...
...
@@ -90,7 +90,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
,
long
*
transformPrecoder
);
struct
NR_SetupRelease_PUSCH_Config
*
config_pusch
(
NR_PUSCH_Config_t
*
pusch_Config
);
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 @
6cee30ba
...
...
@@ -237,8 +237,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
if
(
servingcellconfigdedicated
->
uplinkConfig
->
uplinkBWP_ToAddModList
)
{
pusch_Config
=
servingcellconfigdedicated
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
;
}
initialUplinkBWP
->
pusch_Config
=
config_pusch
(
pusch_Config
,
servingcellconfigcommon
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
msg3_transformPrecoder
);
initialUplinkBWP
->
pusch_Config
=
config_pusch
(
pusch_Config
);
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