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
8013d5d8
Commit
8013d5d8
authored
1 year ago
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
removing CellGroup dependance from MAC common functions
parent
0accb601
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
99 additions
and
50 deletions
+99
-50
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
+3
-0
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
+12
-14
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
+3
-3
openair2/LAYER2/NR_MAC_UE/config_ue.c
openair2/LAYER2/NR_MAC_UE/config_ue.c
+8
-2
openair2/LAYER2/NR_MAC_UE/mac_defs.h
openair2/LAYER2/NR_MAC_UE/mac_defs.h
+1
-4
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
+23
-3
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+4
-7
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+1
-2
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
+2
-4
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+1
-3
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+40
-5
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+1
-3
No files found.
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
View file @
8013d5d8
...
...
@@ -573,6 +573,7 @@ typedef struct NR_UE_DL_BWP {
long
*
pdsch_HARQ_ACK_Codebook
;
uint8_t
mcsTableIdx
;
nr_dci_format_t
dci_format
;
int
bw_tbslbrm
;
}
NR_UE_DL_BWP_t
;
typedef
struct
NR_UE_UL_BWP
{
...
...
@@ -591,6 +592,7 @@ typedef struct NR_UE_UL_BWP {
NR_PUSCH_Config_t
*
pusch_Config
;
NR_PUCCH_Config_t
*
pucch_Config
;
NR_PUCCH_ConfigCommon_t
*
pucch_ConfigCommon
;
NR_UplinkConfig_t
*
supplementaryUplink
;
long
*
harq_ACK_SpatialBundlingPUCCH
;
NR_CSI_MeasConfig_t
*
csi_MeasConfig
;
NR_SRS_Config_t
*
srs_Config
;
...
...
@@ -598,6 +600,7 @@ typedef struct NR_UE_UL_BWP {
long
transform_precoding
;
uint8_t
mcs_table
;
nr_dci_format_t
dci_format
;
int
bw_tbslbrm
;
int
max_fb_time
;
}
NR_UE_UL_BWP_t
;
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
View file @
8013d5d8
...
...
@@ -3278,7 +3278,7 @@ uint16_t get_rb_bwp_dci(nr_dci_format_t format,
uint16_t
nr_dci_size
(
const
NR_UE_DL_BWP_t
*
DL_BWP
,
const
NR_UE_UL_BWP_t
*
UL_BWP
,
const
NR_CellGroupConfig_t
*
c
g
,
NR_CrossCarrierSchedulingConfig_t
*
crossCarrierSchedulingConfi
g
,
dci_pdu_rel15_t
*
dci_pdu
,
nr_dci_format_t
format
,
nr_rnti_type_t
rnti_type
,
...
...
@@ -3328,12 +3328,12 @@ uint16_t nr_dci_size(const NR_UE_DL_BWP_t *DL_BWP,
/// fixed: Format identifier 1, MCS 5, NDI 1, RV 2, HARQ PID 4, PUSCH TPC 2, ULSCH indicator 1 --16
size
+=
16
;
// Carrier indicator
if
(
c
g
->
spCellConfig
->
spCellConfigDedicated
->
c
rossCarrierSchedulingConfig
!=
NULL
)
{
if
(
crossCarrierSchedulingConfig
!=
NULL
)
{
dci_pdu
->
carrier_indicator
.
nbits
=
3
;
size
+=
dci_pdu
->
carrier_indicator
.
nbits
;
}
// UL/SUL indicator
if
(
cg
->
spCellConfig
->
spCellConfigDedicated
->
supplementaryUplink
!=
NULL
)
{
if
(
UL_BWP
->
supplementaryUplink
!=
NULL
)
{
dci_pdu
->
carrier_indicator
.
nbits
=
1
;
size
+=
dci_pdu
->
ul_sul_indicator
.
nbits
;
}
...
...
@@ -3416,7 +3416,7 @@ uint16_t nr_dci_size(const NR_UE_DL_BWP_t *DL_BWP,
size
+=
dci_pdu
->
antenna_ports
.
nbits
;
LOG_D
(
NR_MAC
,
"dci_pdu->antenna_ports.nbits = %d
\n
"
,
dci_pdu
->
antenna_ports
.
nbits
);
// SRS request
if
(
cg
->
spCellConfig
->
spCellConfigDedicated
->
supplementaryUplink
==
NULL
)
if
(
UL_BWP
->
supplementaryUplink
==
NULL
)
dci_pdu
->
srs_request
.
nbits
=
2
;
else
dci_pdu
->
srs_request
.
nbits
=
3
;
...
...
@@ -3481,7 +3481,7 @@ uint16_t nr_dci_size(const NR_UE_DL_BWP_t *DL_BWP,
// Format identifier
size
=
1
;
// Carrier indicator
if
(
c
g
->
spCellConfig
->
spCellConfigDedicated
->
c
rossCarrierSchedulingConfig
!=
NULL
)
{
if
(
crossCarrierSchedulingConfig
!=
NULL
)
{
dci_pdu
->
carrier_indicator
.
nbits
=
3
;
size
+=
dci_pdu
->
carrier_indicator
.
nbits
;
}
...
...
@@ -3575,7 +3575,7 @@ uint16_t nr_dci_size(const NR_UE_DL_BWP_t *DL_BWP,
size
+=
dci_pdu
->
transmission_configuration_indication
.
nbits
;
}
// SRS request
if
(
cg
->
spCellConfig
->
spCellConfigDedicated
->
supplementaryUplink
==
NULL
)
if
(
UL_BWP
->
supplementaryUplink
==
NULL
)
dci_pdu
->
srs_request
.
nbits
=
2
;
else
dci_pdu
->
srs_request
.
nbits
=
3
;
...
...
@@ -4734,11 +4734,10 @@ uint16_t compute_pucch_prb_size(uint8_t format,
}
int
get_dlbw_tbslbrm
(
int
scc_bwpsize
,
NR_
CellGroupConfig_t
*
cg
)
{
NR_
ServingCellConfig_t
*
servingCellConfig
)
{
int
bw
=
scc_bwpsize
;
if
(
cg
&&
cg
->
spCellConfig
&&
cg
->
spCellConfig
->
spCellConfigDedicated
)
{
const
NR_ServingCellConfig_t
*
servingCellConfig
=
cg
->
spCellConfig
->
spCellConfigDedicated
;
if
(
servingCellConfig
)
{
if
(
servingCellConfig
->
downlinkBWP_ToAddModList
)
{
const
struct
NR_ServingCellConfig__downlinkBWP_ToAddModList
*
BWP_list
=
servingCellConfig
->
downlinkBWP_ToAddModList
;
for
(
int
i
=
0
;
i
<
BWP_list
->
list
.
count
;
i
++
)
{
...
...
@@ -4753,11 +4752,10 @@ int get_dlbw_tbslbrm(int scc_bwpsize,
}
int
get_ulbw_tbslbrm
(
int
scc_bwpsize
,
NR_
CellGroupConfig_t
*
cg
)
{
NR_
ServingCellConfig_t
*
servingCellConfig
)
{
int
bw
=
scc_bwpsize
;
if
(
cg
&&
cg
->
spCellConfig
&&
cg
->
spCellConfig
->
spCellConfigDedicated
)
{
const
NR_ServingCellConfig_t
*
servingCellConfig
=
cg
->
spCellConfig
->
spCellConfigDedicated
;
if
(
servingCellConfig
)
{
if
(
servingCellConfig
->
uplinkConfig
&&
servingCellConfig
->
uplinkConfig
->
uplinkBWP_ToAddModList
)
{
const
struct
NR_UplinkConfig__uplinkBWP_ToAddModList
*
BWP_list
=
servingCellConfig
->
uplinkConfig
->
uplinkBWP_ToAddModList
;
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
View file @
8013d5d8
...
...
@@ -95,7 +95,7 @@ NR_tda_info_t get_dl_tda_info(const NR_UE_DL_BWP_t *dl_BWP, int ss_type, int tda
uint16_t
nr_dci_size
(
const
NR_UE_DL_BWP_t
*
DL_BWP
,
const
NR_UE_UL_BWP_t
*
UL_BWP
,
const
NR_CellGroupConfig_t
*
c
g
,
NR_CrossCarrierSchedulingConfig_t
*
crossCarrierSchedulingConfi
g
,
dci_pdu_rel15_t
*
dci_pdu
,
nr_dci_format_t
format
,
nr_rnti_type_t
rnti_type
,
...
...
@@ -196,10 +196,10 @@ uint32_t nr_get_code_rate_ul(uint8_t Imcs, uint8_t table_idx);
uint16_t
get_nr_srs_offset
(
NR_SRS_PeriodicityAndOffset_t
periodicityAndOffset
);
int
get_dlbw_tbslbrm
(
int
scc_bwpsize
,
NR_
CellGroupConfig_t
*
c
g
);
NR_
ServingCellConfig_t
*
servingCellConfi
g
);
int
get_ulbw_tbslbrm
(
int
scc_bwpsize
,
NR_
CellGroupConfig_t
*
c
g
);
NR_
ServingCellConfig_t
*
servingCellConfi
g
);
uint32_t
nr_compute_tbslbrm
(
uint16_t
table
,
uint16_t
nb_rb
,
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_UE/config_ue.c
View file @
8013d5d8
...
...
@@ -570,6 +570,8 @@ void configure_current_BWP(NR_UE_MAC_INST_t *mac,
configure_ss_coreset
(
mac
,
mac
->
bwp_dlcommon
->
pdcch_ConfigCommon
->
choice
.
setup
,
NULL
);
}
NR_ServingCellConfig_t
*
spCellConfigDedicated
=
NULL
;
if
(
cell_group_config
)
{
if
(
cell_group_config
->
physicalCellGroupConfig
)
{
DL_BWP
->
pdsch_HARQ_ACK_Codebook
=
&
cell_group_config
->
physicalCellGroupConfig
->
pdsch_HARQ_ACK_Codebook
;
...
...
@@ -577,7 +579,8 @@ void configure_current_BWP(NR_UE_MAC_INST_t *mac,
}
if
(
cell_group_config
->
spCellConfig
&&
cell_group_config
->
spCellConfig
->
spCellConfigDedicated
)
{
struct
NR_ServingCellConfig
*
spCellConfigDedicated
=
cell_group_config
->
spCellConfig
->
spCellConfigDedicated
;
spCellConfigDedicated
=
cell_group_config
->
spCellConfig
->
spCellConfigDedicated
;
UL_BWP
->
supplementaryUplink
=
spCellConfigDedicated
->
supplementaryUplink
;
UL_BWP
->
csi_MeasConfig
=
spCellConfigDedicated
->
csi_MeasConfig
?
spCellConfigDedicated
->
csi_MeasConfig
->
choice
.
setup
:
NULL
;
UL_BWP
->
pusch_servingcellconfig
=
spCellConfigDedicated
->
uplinkConfig
&&
spCellConfigDedicated
->
uplinkConfig
->
pusch_ServingCellConfig
?
spCellConfigDedicated
->
uplinkConfig
->
pusch_ServingCellConfig
->
choice
.
setup
:
NULL
;
...
...
@@ -673,6 +676,8 @@ void configure_current_BWP(NR_UE_MAC_INST_t *mac,
DL_BWP
->
initial_BWPStart
=
NRRIV2PRBOFFSET
(
mac
->
bwp_dlcommon
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
);
UL_BWP
->
initial_BWPStart
=
NRRIV2PRBOFFSET
(
mac
->
bwp_ulcommon
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
);
DL_BWP
->
bw_tbslbrm
=
get_dlbw_tbslbrm
(
DL_BWP
->
initial_BWPSize
,
spCellConfigDedicated
);
UL_BWP
->
bw_tbslbrm
=
get_ulbw_tbslbrm
(
UL_BWP
->
initial_BWPSize
,
spCellConfigDedicated
);
}
void
ue_init_config_request
(
NR_UE_MAC_INST_t
*
mac
,
int
scs
)
...
...
@@ -762,7 +767,7 @@ void nr_rrc_mac_config_req_mcg(module_id_t module_id,
mac
->
servCellIndex
=
cell_group_config
->
spCellConfig
->
servCellIndex
?
*
cell_group_config
->
spCellConfig
->
servCellIndex
:
0
;
else
mac
->
servCellIndex
=
0
;
mac
->
crossCarrierSchedulingConfig
=
cell_group_config
->
spCellConfig
->
spCellConfigDedicated
->
crossCarrierSchedulingConfig
;
mac
->
scheduling_info
.
periodicBSR_SF
=
MAC_UE_BSR_TIMER_NOT_RUNNING
;
mac
->
scheduling_info
.
retxBSR_SF
=
MAC_UE_BSR_TIMER_NOT_RUNNING
;
mac
->
BSR_reporting_active
=
NR_BSR_TRIGGER_NONE
;
...
...
@@ -803,6 +808,7 @@ void nr_rrc_mac_config_req_scg(module_id_t module_id,
mac
->
cg
=
scell_group_config
;
mac
->
servCellIndex
=
*
scell_group_config
->
spCellConfig
->
servCellIndex
;
mac
->
crossCarrierSchedulingConfig
=
scell_group_config
->
spCellConfig
->
spCellConfigDedicated
->
crossCarrierSchedulingConfig
;
if
(
scell_group_config
->
spCellConfig
->
reconfigurationWithSync
)
handle_reconfiguration_with_sync
(
mac
,
module_id
,
cc_idP
,
scell_group_config
->
spCellConfig
->
reconfigurationWithSync
);
configure_current_BWP
(
mac
,
NULL
,
scell_group_config
);
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_UE/mac_defs.h
View file @
8013d5d8
...
...
@@ -429,7 +429,6 @@ typedef struct {
NR_UE_L2_STATE_t
state
;
NR_CellGroupConfig_t
*
cg
;
int
servCellIndex
;
NR_CSI_ReportConfig_t
*
csirc
;
long
physCellId
;
//// MAC config
int
first_sync_frame
;
...
...
@@ -437,9 +436,6 @@ typedef struct {
bool
get_otherSI
;
NR_DRX_Config_t
*
drx_Config
;
NR_SchedulingRequestConfig_t
*
schedulingRequestConfig
;
NR_BSR_Config_t
*
bsr_Config
;
NR_TAG_Config_t
*
tag_Config
;
NR_PHR_Config_t
*
phr_Config
;
NR_RNTI_Value_t
*
cs_RNTI
;
NR_MIB_t
*
mib
;
struct
NR_SI_SchedulingInfo
*
si_SchedulingInfo
;
...
...
@@ -462,6 +458,7 @@ typedef struct {
NR_SearchSpace_t
*
search_space_zero
;
NR_TDD_UL_DL_ConfigCommon_t
*
tdd_UL_DL_ConfigurationCommon
;
NR_CrossCarrierSchedulingConfig_t
*
crossCarrierSchedulingConfig
;
bool
phy_config_request_sent
;
frame_type_t
frame_type
;
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
View file @
8013d5d8
...
...
@@ -186,15 +186,35 @@ void config_dci_pdu(NR_UE_MAC_INST_t *mac,
dci_pdu_rel15_t
temp_pdu
;
if
(
dci_format
==
NR_DL_DCI_FORMAT_1_0
)
alt_size
=
nr_dci_size
(
current_DL_BWP
,
current_UL_BWP
,
mac
->
cg
,
&
temp_pdu
,
NR_UL_DCI_FORMAT_0_0
,
rnti_type
,
coreset
,
dl_bwp_id
,
ss
->
searchSpaceType
->
present
,
mac
->
type0_PDCCH_CSS_config
.
num_rbs
,
0
);
nr_dci_size
(
current_DL_BWP
,
current_UL_BWP
,
mac
->
crossCarrierSchedulingConfig
,
&
temp_pdu
,
NR_UL_DCI_FORMAT_0_0
,
rnti_type
,
coreset
,
dl_bwp_id
,
ss
->
searchSpaceType
->
present
,
mac
->
type0_PDCCH_CSS_config
.
num_rbs
,
0
);
if
(
dci_format
==
NR_UL_DCI_FORMAT_0_0
)
alt_size
=
nr_dci_size
(
current_DL_BWP
,
current_UL_BWP
,
mac
->
cg
,
&
temp_pdu
,
NR_DL_DCI_FORMAT_1_0
,
rnti_type
,
coreset
,
dl_bwp_id
,
ss
->
searchSpaceType
->
present
,
mac
->
type0_PDCCH_CSS_config
.
num_rbs
,
0
);
nr_dci_size
(
current_DL_BWP
,
current_UL_BWP
,
mac
->
crossCarrierSchedulingConfig
,
&
temp_pdu
,
NR_DL_DCI_FORMAT_1_0
,
rnti_type
,
coreset
,
dl_bwp_id
,
ss
->
searchSpaceType
->
present
,
mac
->
type0_PDCCH_CSS_config
.
num_rbs
,
0
);
}
rel15
->
dci_length_options
[
i
]
=
nr_dci_size
(
current_DL_BWP
,
current_UL_BWP
,
mac
->
cg
,
mac
->
c
rossCarrierSchedulingConfi
g
,
&
mac
->
def_dci_pdu_rel15
[
dl_config
->
slot
][
dci_format
],
dci_format
,
rnti_type
,
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
8013d5d8
...
...
@@ -735,11 +735,9 @@ static int nr_ue_process_dci_dl_10(module_id_t module_id,
dlsch_pdu
->
TBS
=
current_harq
->
TBS
;
}
int
bw_tbslbrm
;
if
(
current_DL_BWP
->
initial_BWPSize
>
0
)
bw_tbslbrm
=
get_dlbw_tbslbrm
(
current_DL_BWP
->
initial_BWPSize
,
mac
->
cg
);
else
bw_tbslbrm
=
dlsch_pdu
->
BWPSize
;
int
bw_tbslbrm
=
current_DL_BWP
->
initial_BWPSize
>
0
?
current_DL_BWP
->
bw_tbslbrm
:
dlsch_pdu
->
BWPSize
;
dlsch_pdu
->
tbslbrm
=
nr_compute_tbslbrm
(
dlsch_pdu
->
mcs_table
,
bw_tbslbrm
,
1
);
/* NDI (only if CRC scrambled by C-RNTI or CS-RNTI or new-RNTI or TC-RNTI)*/
...
...
@@ -1164,8 +1162,7 @@ static int nr_ue_process_dci_dl_11(module_id_t module_id,
long
*
maxMIMO_Layers
=
current_DL_BWP
->
pdsch_servingcellconfig
->
ext1
->
maxMIMO_Layers
;
AssertFatal
(
maxMIMO_Layers
!=
NULL
,
"Option with max MIMO layers not configured is not supported
\n
"
);
int
nl_tbslbrm
=
*
maxMIMO_Layers
<
4
?
*
maxMIMO_Layers
:
4
;
int
bw_tbslbrm
=
get_dlbw_tbslbrm
(
current_DL_BWP
->
initial_BWPSize
,
mac
->
cg
);
dlsch_pdu
->
tbslbrm
=
nr_compute_tbslbrm
(
dlsch_pdu
->
mcs_table
,
bw_tbslbrm
,
nl_tbslbrm
);
dlsch_pdu
->
tbslbrm
=
nr_compute_tbslbrm
(
dlsch_pdu
->
mcs_table
,
current_DL_BWP
->
bw_tbslbrm
,
nl_tbslbrm
);
/*PTRS configuration */
dlsch_pdu
->
pduBitmap
=
0
;
if
(
pdsch_Config
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
!=
NULL
)
{
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
View file @
8013d5d8
...
...
@@ -667,9 +667,8 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
if
(
!
maxMIMO_Layers
)
maxMIMO_Layers
=
pusch_Config
?
pusch_Config
->
maxRank
:
NULL
;
AssertFatal
(
maxMIMO_Layers
!=
NULL
,
"Option with max MIMO layers not configured is not supported
\n
"
);
int
bw_tbslbrm
=
get_ulbw_tbslbrm
(
current_UL_BWP
->
initial_BWPSize
,
mac
->
cg
);
pusch_config_pdu
->
tbslbrm
=
nr_compute_tbslbrm
(
pusch_config_pdu
->
mcs_table
,
bw_tbslbrm
,
current_UL_BWP
->
bw_tbslbrm
,
*
maxMIMO_Layers
);
}
else
pusch_config_pdu
->
tbslbrm
=
0
;
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
View file @
8013d5d8
...
...
@@ -1312,9 +1312,8 @@ static void nr_generate_Msg2(module_id_t module_idP,
pdsch_pdu_rel15
->
TBSize
[
0
]
=
TBS
;
}
int
bw_tbslbrm
=
get_dlbw_tbslbrm
(
dl_bwp
->
initial_BWPSize
,
ra
->
CellGroup
);
pdsch_pdu_rel15
->
maintenance_parms_v3
.
tbSizeLbrmBytes
=
nr_compute_tbslbrm
(
mcsTableIdx
,
bw_tbslbrm
,
dl_bwp
->
bw_tbslbrm
,
1
);
pdsch_pdu_rel15
->
maintenance_parms_v3
.
ldpcBaseGraph
=
get_BG
(
TBS
<<
3
,
R
);
...
...
@@ -1522,9 +1521,8 @@ static void prepare_dl_pdus(gNB_MAC_INST *nr_mac,
int
x_Overhead
=
0
;
nr_get_tbs_dl
(
&
dl_tti_pdsch_pdu
->
pdsch_pdu
,
x_Overhead
,
pdsch_pdu_rel15
->
numDmrsCdmGrpsNoData
,
tb_scaling
);
int
bw_tbslbrm
=
get_dlbw_tbslbrm
(
dl_bwp
->
initial_BWPSize
,
ra
->
CellGroup
);
pdsch_pdu_rel15
->
maintenance_parms_v3
.
tbSizeLbrmBytes
=
nr_compute_tbslbrm
(
mcsTableIdx
,
bw_tbslbrm
,
dl_bwp
->
bw_tbslbrm
,
1
);
pdsch_pdu_rel15
->
maintenance_parms_v3
.
ldpcBaseGraph
=
get_BG
(
tb_size
<<
3
,
R
);
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
8013d5d8
...
...
@@ -1086,10 +1086,8 @@ void nr_schedule_ue_spec(module_id_t module_id,
long
maxMIMO_Layers
=
current_BWP
->
pdsch_servingcellconfig
?
*
current_BWP
->
pdsch_servingcellconfig
->
ext1
->
maxMIMO_Layers
:
1
;
const
int
nl_tbslbrm
=
min
(
maxMIMO_Layers
,
4
);
// Maximum number of PRBs across all configured DL BWPs
int
scc_bwpsize
=
current_BWP
->
initial_BWPSize
;
int
bw_tbslbrm
=
get_dlbw_tbslbrm
(
scc_bwpsize
,
cg
);
pdsch_pdu
->
maintenance_parms_v3
.
tbSizeLbrmBytes
=
nr_compute_tbslbrm
(
current_BWP
->
mcsTableIdx
,
bw_tbslbrm
,
current_BWP
->
bw_tbslbrm
,
nl_tbslbrm
);
pdsch_pdu
->
maintenance_parms_v3
.
ldpcBaseGraph
=
get_BG
(
TBS
<<
3
,
R
);
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
8013d5d8
...
...
@@ -1140,7 +1140,7 @@ void fill_dci_pdu_rel15(const NR_ServingCellConfigCommon_t *scc,
NR_ControlResourceSet_t
*
coreset
,
uint16_t
cset0_bwp_size
)
{
NR_CrossCarrierSchedulingConfig_t
*
crossCarrierSchedulingConfig
=
NULL
;
// TODO configure
uint8_t
fsize
=
0
,
pos
=
0
;
uint64_t
*
dci_pdu
=
(
uint64_t
*
)
pdcch_dci_pdu
->
Payload
;
*
dci_pdu
=
0
;
...
...
@@ -1158,16 +1158,46 @@ void fill_dci_pdu_rel15(const NR_ServingCellConfigCommon_t *scc,
// computing alternative size for padding
dci_pdu_rel15_t
temp_pdu
;
if
(
dci_format
==
NR_DL_DCI_FORMAT_1_0
)
alt_size
=
nr_dci_size
(
current_DL_BWP
,
current_UL_BWP
,
CellGroup
,
&
temp_pdu
,
NR_UL_DCI_FORMAT_0_0
,
rnti_type
,
coreset
,
bwp_id
,
ss
->
searchSpaceType
->
present
,
cset0_bwp_size
,
0
);
alt_size
=
nr_dci_size
(
current_DL_BWP
,
current_UL_BWP
,
crossCarrierSchedulingConfig
,
&
temp_pdu
,
NR_UL_DCI_FORMAT_0_0
,
rnti_type
,
coreset
,
bwp_id
,
ss
->
searchSpaceType
->
present
,
cset0_bwp_size
,
0
);
if
(
dci_format
==
NR_UL_DCI_FORMAT_0_0
)
alt_size
=
nr_dci_size
(
current_DL_BWP
,
current_UL_BWP
,
CellGroup
,
&
temp_pdu
,
NR_DL_DCI_FORMAT_1_0
,
rnti_type
,
coreset
,
bwp_id
,
ss
->
searchSpaceType
->
present
,
cset0_bwp_size
,
0
);
alt_size
=
nr_dci_size
(
current_DL_BWP
,
current_UL_BWP
,
crossCarrierSchedulingConfig
,
&
temp_pdu
,
NR_DL_DCI_FORMAT_1_0
,
rnti_type
,
coreset
,
bwp_id
,
ss
->
searchSpaceType
->
present
,
cset0_bwp_size
,
0
);
}
else
N_RB
=
cset0_bwp_size
;
int
dci_size
=
nr_dci_size
(
current_DL_BWP
,
current_UL_BWP
,
CellGroup
,
dci_pdu_rel15
,
dci_format
,
rnti_type
,
coreset
,
bwp_id
,
ss
->
searchSpaceType
->
present
,
cset0_bwp_size
,
alt_size
);
int
dci_size
=
nr_dci_size
(
current_DL_BWP
,
current_UL_BWP
,
crossCarrierSchedulingConfig
,
dci_pdu_rel15
,
dci_format
,
rnti_type
,
coreset
,
bwp_id
,
ss
->
searchSpaceType
->
present
,
cset0_bwp_size
,
alt_size
);
pdcch_dci_pdu
->
PayloadSizeBits
=
dci_size
;
AssertFatal
(
dci_size
<=
64
,
"DCI sizes above 64 bits not yet supported"
);
if
(
dci_format
==
NR_DL_DCI_FORMAT_1_1
||
dci_format
==
NR_UL_DCI_FORMAT_0_1
)
...
...
@@ -2027,11 +2057,13 @@ void configure_UE_BWP(gNB_MAC_INST *nr_mac,
if
(
CellGroup
&&
CellGroup
->
physicalCellGroupConfig
)
DL_BWP
->
pdsch_HARQ_ACK_Codebook
=
&
CellGroup
->
physicalCellGroupConfig
->
pdsch_HARQ_ACK_Codebook
;
NR_ServingCellConfig_t
*
servingCellConfig
=
NULL
;
if
(
CellGroup
&&
CellGroup
->
spCellConfig
&&
CellGroup
->
spCellConfig
->
spCellConfigDedicated
)
{
const
NR_ServingCellConfig_t
*
servingCellConfig
=
CellGroup
->
spCellConfig
->
spCellConfigDedicated
;
servingCellConfig
=
CellGroup
->
spCellConfig
->
spCellConfigDedicated
;
UL_BWP
->
supplementaryUplink
=
servingCellConfig
->
supplementaryUplink
;
DL_BWP
->
pdsch_servingcellconfig
=
servingCellConfig
->
pdsch_ServingCellConfig
?
servingCellConfig
->
pdsch_ServingCellConfig
->
choice
.
setup
:
NULL
;
UL_BWP
->
pusch_servingcellconfig
=
servingCellConfig
->
uplinkConfig
&&
servingCellConfig
->
uplinkConfig
->
pusch_ServingCellConfig
?
servingCellConfig
->
uplinkConfig
->
pusch_ServingCellConfig
->
choice
.
setup
:
NULL
;
...
...
@@ -2144,6 +2176,9 @@ 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
);
DL_BWP
->
bw_tbslbrm
=
get_dlbw_tbslbrm
(
DL_BWP
->
initial_BWPSize
,
servingCellConfig
);
UL_BWP
->
bw_tbslbrm
=
get_ulbw_tbslbrm
(
UL_BWP
->
initial_BWPSize
,
servingCellConfig
);
if
(
UL_BWP
->
bwp_id
>
0
)
{
UL_BWP
->
pucch_ConfigCommon
=
ul_bwp
->
bwp_Common
->
pucch_ConfigCommon
?
ul_bwp
->
bwp_Common
->
pucch_ConfigCommon
->
choice
.
setup
:
NULL
;
UL_BWP
->
rach_ConfigCommon
=
ul_bwp
->
bwp_Common
->
rach_ConfigCommon
?
ul_bwp
->
bwp_Common
->
rach_ConfigCommon
->
choice
.
setup
:
NULL
;
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
8013d5d8
...
...
@@ -2288,10 +2288,8 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot, n
if
(
!
maxMIMO_Layers
)
maxMIMO_Layers
=
current_BWP
->
pusch_Config
->
maxRank
;
AssertFatal
(
maxMIMO_Layers
!=
NULL
,
"Option with max MIMO layers not configured is not supported
\n
"
);
const
int
scc_bwpsize
=
current_BWP
->
initial_BWPSize
;
int
bw_tbslbrm
=
get_ulbw_tbslbrm
(
scc_bwpsize
,
cg
);
pusch_pdu
->
maintenance_parms_v3
.
tbSizeLbrmBytes
=
nr_compute_tbslbrm
(
current_BWP
->
mcs_table
,
bw_tbslbrm
,
current_BWP
->
bw_tbslbrm
,
*
maxMIMO_Layers
);
}
else
...
...
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