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
spbro
OpenXG-RAN
Commits
0f62f51f
Commit
0f62f51f
authored
Jan 04, 2023
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
adding a check for dci format in fill_dmrs_mask
parent
e881ffca
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
25 additions
and
10 deletions
+25
-10
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
+15
-8
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
+7
-1
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+2
-0
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+1
-1
No files found.
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
View file @
0f62f51f
...
...
@@ -3645,7 +3645,14 @@ int is_nr_UL_slot(NR_TDD_UL_DL_ConfigCommon_t *tdd_UL_DL_ConfigurationCommon, sl
else
return
(
slot_in_period
>=
slots1
+
tdd_UL_DL_ConfigurationCommon
->
pattern2
->
nrofDownlinkSlots
?
1
:
0
);
}
int16_t
fill_dmrs_mask
(
const
NR_PDSCH_Config_t
*
pdsch_Config
,
int
dmrs_TypeA_Position
,
int
NrOfSymbols
,
int
startSymbol
,
mappingType_t
mappingtype
,
int
length
)
{
int16_t
fill_dmrs_mask
(
const
NR_PDSCH_Config_t
*
pdsch_Config
,
int
dci_format
,
int
dmrs_TypeA_Position
,
int
NrOfSymbols
,
int
startSymbol
,
mappingType_t
mappingtype
,
int
length
)
{
int
dmrs_AdditionalPosition
=
0
;
NR_DMRS_DownlinkConfig_t
*
dmrs_config
=
NULL
;
...
...
@@ -3654,8 +3661,8 @@ int16_t fill_dmrs_mask(const NR_PDSCH_Config_t *pdsch_Config,int dmrs_TypeA_Posi
int
l0
=
0
;
// type B
if
(
mappingtype
==
typeA
)
{
if
(
dmrs_TypeA_Position
==
NR_ServingCellConfigCommon__dmrs_TypeA_Position_pos2
)
l0
=
2
;
else
if
(
dmrs_TypeA_Position
==
NR_ServingCellConfigCommon__dmrs_TypeA_Position_pos3
)
l0
=
3
;
if
(
dmrs_TypeA_Position
==
NR_ServingCellConfigCommon__dmrs_TypeA_Position_pos2
)
l0
=
2
;
else
if
(
dmrs_TypeA_Position
==
NR_ServingCellConfigCommon__dmrs_TypeA_Position_pos3
)
l0
=
3
;
else
AssertFatal
(
1
==
0
,
"Illegal dmrs_TypeA_Position %d
\n
"
,(
int
)
dmrs_TypeA_Position
);
}
// in case of DCI FORMAT 1_0 or dedicated pdsch config not received additionposition = pos2, len1 should be used
...
...
@@ -3664,7 +3671,8 @@ int16_t fill_dmrs_mask(const NR_PDSCH_Config_t *pdsch_Config,int dmrs_TypeA_Posi
if
(
pdsch_Config
!=
NULL
)
{
if
(
mappingtype
==
typeA
)
{
// Type A
if
(
pdsch_Config
->
dmrs_DownlinkForPDSCH_MappingTypeA
&&
pdsch_Config
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
present
==
NR_SetupRelease_DMRS_DownlinkConfig_PR_setup
)
if
(
dci_format
!=
NR_DL_DCI_FORMAT_1_0
&&
pdsch_Config
->
dmrs_DownlinkForPDSCH_MappingTypeA
&&
pdsch_Config
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
present
==
NR_SetupRelease_DMRS_DownlinkConfig_PR_setup
)
dmrs_config
=
(
NR_DMRS_DownlinkConfig_t
*
)
pdsch_Config
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
;
}
else
if
(
mappingtype
==
typeB
)
{
if
(
pdsch_Config
->
dmrs_DownlinkForPDSCH_MappingTypeB
&&
pdsch_Config
->
dmrs_DownlinkForPDSCH_MappingTypeB
->
present
==
NR_SetupRelease_DMRS_DownlinkConfig_PR_setup
)
...
...
@@ -3673,10 +3681,9 @@ int16_t fill_dmrs_mask(const NR_PDSCH_Config_t *pdsch_Config,int dmrs_TypeA_Posi
AssertFatal
(
1
==
0
,
"Incorrect Mappingtype
\n
"
);
}
AssertFatal
(
dmrs_config
!=
NULL
,
" DMRS configs not present in PDSCH DMRS Downlink config
\n
"
);
// default values of additionalposition is pos2
if
(
dmrs_config
->
dmrs_AdditionalPosition
!=
NULL
)
dmrs_AdditionalPosition
=
*
dmrs_config
->
dmrs_AdditionalPosition
;
if
(
dmrs_config
&&
dmrs_config
->
dmrs_AdditionalPosition
!=
NULL
)
dmrs_AdditionalPosition
=
*
dmrs_config
->
dmrs_AdditionalPosition
;
}
uint8_t
ld
,
row
,
column
;
...
...
@@ -3730,7 +3737,7 @@ int16_t fill_dmrs_mask(const NR_PDSCH_Config_t *pdsch_Config,int dmrs_TypeA_Posi
uint8_t
get_pdsch_mcs_table
(
long
*
mcs_Table
,
int
dci_format
,
int
rnti_type
,
int
ss_type
)
{
// Set downlink MCS table (Semi-persisten
d
scheduling ignored for now)
// Set downlink MCS table (Semi-persisten
t
scheduling ignored for now)
uint8_t
mcsTableIdx
=
0
;
// default value
if
(
mcs_Table
&&
*
mcs_Table
==
NR_PDSCH_Config__mcs_Table_qam256
&&
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
View file @
0f62f51f
...
...
@@ -61,7 +61,13 @@ uint64_t from_nrarfcn(int nr_bandP, uint8_t scs_index, uint32_t dl_nrarfcn);
uint32_t
to_nrarfcn
(
int
nr_bandP
,
uint64_t
dl_CarrierFreq
,
uint8_t
scs_index
,
uint32_t
bw
);
int16_t
fill_dmrs_mask
(
const
NR_PDSCH_Config_t
*
pdsch_Config
,
int
dmrs_TypeA_Position
,
int
NrOfSymbols
,
int
startSymbol
,
mappingType_t
mappingtype
,
int
length
);
int16_t
fill_dmrs_mask
(
const
NR_PDSCH_Config_t
*
pdsch_Config
,
int
dci_format
,
int
dmrs_TypeA_Position
,
int
NrOfSymbols
,
int
startSymbol
,
mappingType_t
mappingtype
,
int
length
);
int
is_nr_DL_slot
(
NR_TDD_UL_DL_ConfigCommon_t
*
tdd_UL_DL_ConfigurationCommon
,
slot_t
slotP
);
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
0f62f51f
...
...
@@ -897,6 +897,7 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
/* dmrs symbol positions*/
dlsch_config_pdu_1_0
->
dlDmrsSymbPos
=
fill_dmrs_mask
(
pdsch_config
,
NR_DL_DCI_FORMAT_1_0
,
(
get_softmodem_params
()
->
nsa
)
?
mac
->
scc
->
dmrs_TypeA_Position
:
mac
->
mib
->
dmrs_TypeA_Position
,
dlsch_config_pdu_1_0
->
number_symbols
,
dlsch_config_pdu_1_0
->
start_symbol
,
...
...
@@ -1306,6 +1307,7 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
/* dmrs symbol positions*/
dlsch_config_pdu_1_1
->
dlDmrsSymbPos
=
fill_dmrs_mask
(
pdsch_Config
,
NR_DL_DCI_FORMAT_1_1
,
mac
->
scc
?
mac
->
scc
->
dmrs_TypeA_Position
:
mac
->
mib
->
dmrs_TypeA_Position
,
dlsch_config_pdu_1_1
->
number_symbols
,
dlsch_config_pdu_1_1
->
start_symbol
,
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
0f62f51f
...
...
@@ -268,7 +268,7 @@ NR_pdsch_dmrs_t get_dl_dmrs_params(const NR_ServingCellConfigCommon_t *scc,
dmrs
.
dmrsConfigType
=
NFAPI_NR_DMRS_TYPE1
;
dmrs
.
N_PRB_DMRS
=
dmrs
.
numDmrsCdmGrpsNoData
*
(
dmrs
.
dmrsConfigType
==
NFAPI_NR_DMRS_TYPE1
?
6
:
4
);
dmrs
.
dl_dmrs_symb_pos
=
fill_dmrs_mask
(
pdsch_Config
,
scc
->
dmrs_TypeA_Position
,
tda_info
->
nrOfSymbols
,
tda_info
->
startSymbolIndex
,
tda_info
->
mapping_type
,
frontloaded_symb
);
dmrs
.
dl_dmrs_symb_pos
=
fill_dmrs_mask
(
pdsch_Config
,
dci_format
,
scc
->
dmrs_TypeA_Position
,
tda_info
->
nrOfSymbols
,
tda_info
->
startSymbolIndex
,
tda_info
->
mapping_type
,
frontloaded_symb
);
dmrs
.
N_DMRS_SLOT
=
get_num_dmrs
(
dmrs
.
dl_dmrs_symb_pos
);
LOG_D
(
NR_MAC
,
"Filling dmrs info, ps->N_PRB_DMRS %d, ps->dl_dmrs_symb_pos %x, ps->N_DMRS_SLOT %d
\n
"
,
dmrs
.
N_PRB_DMRS
,
dmrs
.
dl_dmrs_symb_pos
,
dmrs
.
N_DMRS_SLOT
);
return
dmrs
;
...
...
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