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
e881ffca
Commit
e881ffca
authored
Jan 04, 2023
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
improvements in selecting DL MCS table
parent
214aa505
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
36 additions
and
18 deletions
+36
-18
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
+25
-1
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
+2
-0
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+9
-17
No files found.
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
View file @
e881ffca
...
...
@@ -3727,12 +3727,36 @@ int16_t fill_dmrs_mask(const NR_PDSCH_Config_t *pdsch_Config,int dmrs_TypeA_Posi
return
l_prime
;
}
uint8_t
get_pdsch_mcs_table
(
long
*
mcs_Table
,
int
dci_format
,
int
rnti_type
,
int
ss_type
)
{
// Set downlink MCS table (Semi-persistend scheduling ignored for now)
uint8_t
mcsTableIdx
=
0
;
// default value
if
(
mcs_Table
&&
*
mcs_Table
==
NR_PDSCH_Config__mcs_Table_qam256
&&
dci_format
==
NR_DL_DCI_FORMAT_1_1
&&
rnti_type
==
NR_RNTI_C
)
mcsTableIdx
=
1
;
else
if
(
rnti_type
!=
NR_RNTI_MCS_C
&&
mcs_Table
&&
*
mcs_Table
==
NR_PDSCH_Config__mcs_Table_qam64LowSE
&&
ss_type
==
NR_SearchSpace__searchSpaceType_PR_ue_Specific
)
mcsTableIdx
=
2
;
else
if
(
rnti_type
==
NR_RNTI_MCS_C
)
mcsTableIdx
=
2
;
LOG_D
(
NR_MAC
,
"DL MCS Table Index: %d
\n
"
,
mcsTableIdx
);
return
mcsTableIdx
;
}
uint8_t
get_pusch_mcs_table
(
long
*
mcs_Table
,
int
is_tp
,
int
dci_format
,
int
rnti_type
,
int
target_ss
,
bool
config_grant
)
{
bool
config_grant
)
{
// implementing 6.1.4.1 in 38.214
if
(
mcs_Table
!=
NULL
)
{
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
View file @
e881ffca
...
...
@@ -151,6 +151,8 @@ uint8_t compute_nr_root_seq(NR_RACH_ConfigCommon_t *rach_config,
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
);
int
get_format0
(
uint8_t
index
,
uint8_t
unpaired
,
frequency_range_t
);
int64_t
*
get_prach_config_info
(
frequency_range_t
freq_range
,
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
e881ffca
...
...
@@ -2445,17 +2445,6 @@ void configure_UE_BWP(gNB_MAC_INST *nr_mac,
UL_BWP
->
initial_BWPSize
=
NRRIV2BW
(
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
);
UL_BWP
->
initial_BWPStart
=
NRRIV2PRBOFFSET
(
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
);
// Set downlink MCS table
if
(
DL_BWP
->
pdsch_Config
&&
DL_BWP
->
pdsch_Config
->
mcs_Table
)
{
if
(
*
DL_BWP
->
pdsch_Config
->
mcs_Table
==
0
)
DL_BWP
->
mcsTableIdx
=
1
;
else
DL_BWP
->
mcsTableIdx
=
2
;
}
else
DL_BWP
->
mcsTableIdx
=
0
;
LOG_D
(
NR_MAC
,
"DL MCS Table Index: %d
\n
"
,
DL_BWP
->
mcsTableIdx
);
if
(
UL_BWP
->
pusch_Config
==
NULL
||
!
UL_BWP
->
pusch_Config
->
transformPrecoder
)
UL_BWP
->
transform_precoding
=
!
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
msg3_transformPrecoder
;
else
...
...
@@ -2539,14 +2528,17 @@ void configure_UE_BWP(gNB_MAC_INST *nr_mac,
DL_BWP
->
dci_format
=
NR_DL_DCI_FORMAT_1_0
;
}
// Set uplink MCS table
long
*
mcs_Table
=
NULL
;
// Set MCS tables
long
*
dl_mcs_Table
=
DL_BWP
->
pdsch_Config
?
DL_BWP
->
pdsch_Config
->
mcs_Table
:
NULL
;
DL_BWP
->
mcsTableIdx
=
get_pdsch_mcs_table
(
dl_mcs_Table
,
DL_BWP
->
dci_format
,
NR_RNTI_C
,
target_ss
);
long
*
ul_mcs_Table
=
NULL
;
if
(
UL_BWP
->
pusch_Config
)
mcs_Table
=
UL_BWP
->
transform_precoding
?
UL_BWP
->
pusch_Config
->
mcs_Table
:
UL_BWP
->
pusch_Config
->
mcs_TableTransformPrecoder
;
ul_
mcs_Table
=
UL_BWP
->
transform_precoding
?
UL_BWP
->
pusch_Config
->
mcs_Table
:
UL_BWP
->
pusch_Config
->
mcs_TableTransformPrecoder
;
UL_BWP
->
mcs_table
=
get_pusch_mcs_table
(
mcs_Table
,
UL_BWP
->
mcs_table
=
get_pusch_mcs_table
(
ul_
mcs_Table
,
UL_BWP
->
transform_precoding
?
0
:
1
,
UL_BWP
->
dci_format
,
NR_RNTI_C
,
...
...
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