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
cd0dc8c9
Commit
cd0dc8c9
authored
Apr 27, 2023
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
reworking MAC UE handling of SS and CSET
parent
1268b27c
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
384 additions
and
464 deletions
+384
-464
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
+2
-3
openair2/LAYER2/NR_MAC_UE/config_ue.c
openair2/LAYER2/NR_MAC_UE/config_ue.c
+78
-88
openair2/LAYER2/NR_MAC_UE/mac_defs.h
openair2/LAYER2/NR_MAC_UE/mac_defs.h
+7
-11
openair2/LAYER2/NR_MAC_UE/mac_proto.h
openair2/LAYER2/NR_MAC_UE/mac_proto.h
+7
-8
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
+0
-37
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
+260
-254
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+12
-12
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+18
-51
No files found.
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
View file @
cd0dc8c9
...
...
@@ -842,9 +842,8 @@ static uint16_t nr_dci_false_detection(uint64_t *dci,
int
rnti
,
int8_t
messageType
,
uint16_t
messageLength
,
uint8_t
aggregation_level
)
{
uint8_t
aggregation_level
)
{
uint32_t
encoder_output
[
NR_MAX_DCI_SIZE_DWORD
];
polar_encoder_fast
(
dci
,
(
void
*
)
encoder_output
,
rnti
,
1
,
messageType
,
messageLength
,
aggregation_level
);
...
...
openair2/LAYER2/NR_MAC_UE/config_ue.c
View file @
cd0dc8c9
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_UE/mac_defs.h
View file @
cd0dc8c9
...
...
@@ -325,9 +325,6 @@ typedef struct {
/// BeamfailurerecoveryConfig
NR_BeamFailureRecoveryConfig_t
RA_BeamFailureRecoveryConfig
;
/// RA SearchSpace
NR_SearchSpace_t
*
ss
;
NR_PRACH_RESOURCES_t
prach_resources
;
}
RA_config_t
;
...
...
@@ -412,10 +409,13 @@ typedef struct {
NR_UE_UL_BWP_t
current_UL_BWP
;
NR_UL_TIME_ALIGNMENT_t
ul_time_alignment
;
NR_BWP_Downlink_t
*
DLbwp
[
MAX_NUM_BWP_UE
];
NR_BWP_Uplink_t
*
ULbwp
[
MAX_NUM_BWP_UE
];
NR_ControlResourceSet_t
*
coreset
[
MAX_NUM_BWP_UE
][
FAPI_NR_MAX_CORESET_PER_BWP
];
NR_SearchSpace_t
*
SSpace
[
MAX_NUM_BWP_UE
][
FAPI_NR_MAX_SS
];
NR_ControlResourceSet_t
*
coreset_zero
;
NR_ControlResourceSet_t
*
BWP_coresets
[
FAPI_NR_MAX_CORESET_PER_BWP
];
NR_SearchSpace_t
*
search_space_zero
;
NR_SearchSpace_t
*
otherSI_SS
;
NR_SearchSpace_t
*
ra_SS
;
NR_SearchSpace_t
*
paging_SS
;
NR_SearchSpace_t
*
BWP_searchspaces
[
FAPI_NR_MAX_SS
];
bool
phy_config_request_sent
;
frame_type_t
frame_type
;
...
...
@@ -469,8 +469,6 @@ typedef struct {
uint8_t
PHR_reporting_active
;
NR_Type0_PDCCH_CSS_config_t
type0_PDCCH_CSS_config
;
NR_SearchSpace_t
*
search_space_zero
;
NR_ControlResourceSet_t
*
coreset0
;
frequency_range_t
frequency_range
;
uint16_t
nr_band
;
uint8_t
ssb_subcarrier_offset
;
...
...
@@ -527,7 +525,5 @@ typedef struct ssb_list_info {
uint8_t
nb_tx_ssb
;
}
ssb_list_info_t
;
void
config_dci_pdu
(
NR_UE_MAC_INST_t
*
mac
,
fapi_nr_dl_config_dci_dl_pdu_rel15_t
*
rel15
,
fapi_nr_dl_config_request_t
*
dl_config
,
int
rnti_type
,
int
ss_id
);
/*@}*/
#endif
/*__LAYER2_MAC_DEFS_H__ */
openair2/LAYER2/NR_MAC_UE/mac_proto.h
View file @
cd0dc8c9
...
...
@@ -249,7 +249,13 @@ int nr_write_ce_ulsch_pdu(uint8_t *mac_ce,
NR_BSR_SHORT
*
short_bsr
,
NR_BSR_LONG
*
long_bsr
);
void
config_dci_pdu
(
NR_UE_MAC_INST_t
*
mac
,
fapi_nr_dl_config_dci_dl_pdu_rel15_t
*
rel15
,
fapi_nr_dl_config_request_t
*
dl_config
,
int
rnti_type
,
int
ss_id
);
void
config_dci_pdu
(
NR_UE_MAC_INST_t
*
mac
,
fapi_nr_dl_config_request_t
*
dl_config
,
int
slot
,
int
rnti_type
,
int
num_dci_options
,
int
*
format_options
,
NR_SearchSpace_t
*
ss
);
void
ue_dci_configuration
(
NR_UE_MAC_INST_t
*
mac
,
fapi_nr_dl_config_request_t
*
dl_config
,
frame_t
frame
,
int
slot
);
...
...
@@ -420,17 +426,10 @@ int8_t nr_ue_process_dci_freq_dom_resource_assignment(nfapi_nr_ue_pusch_pdu_t *p
uint16_t
n_RB_DLBWP
,
uint16_t
riv
);
void
config_dci_pdu
(
NR_UE_MAC_INST_t
*
mac
,
fapi_nr_dl_config_dci_dl_pdu_rel15_t
*
rel15
,
fapi_nr_dl_config_request_t
*
dl_config
,
int
rnti_type
,
int
ss_id
);
void
fill_dci_search_candidates
(
NR_SearchSpace_t
*
ss
,
fapi_nr_dl_config_dci_dl_pdu_rel15_t
*
rel15
,
int
slot
,
int
rnti
);
void
build_ssb_to_ro_map
(
NR_UE_MAC_INST_t
*
mac
);
void
ue_init_config_request
(
NR_UE_MAC_INST_t
*
mac
,
int
scs
);
void
configure_ss_coreset
(
NR_UE_MAC_INST_t
*
mac
,
NR_ServingCellConfig_t
*
scd
,
NR_BWP_Id_t
dl_bwp_id
);
static
uint8_t
nr_extract_dci_info
(
NR_UE_MAC_INST_t
*
mac
,
nr_dci_format_t
dci_format
,
uint8_t
dci_size
,
...
...
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
View file @
cd0dc8c9
...
...
@@ -85,43 +85,6 @@ void init_RA(module_id_t mod_id,
prach_resources
->
POWER_OFFSET_2STEP_RA
=
0
;
prach_resources
->
RA_SCALING_FACTOR_BI
=
1
;
struct
NR_PDCCH_ConfigCommon__commonSearchSpaceList
*
commonSearchSpaceList
;
NR_SearchSpaceId_t
*
ra_ss
;
NR_SearchSpaceId_t
ss_id
=
-
1
;
NR_SearchSpace_t
*
ss
=
NULL
;
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
;
}
}
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
=
*
ra_ss
;
}
}
}
AssertFatal
(
ss_id
>-
1
,
"Didn't find ra-SearchSpace
\n
"
);
AssertFatal
(
commonSearchSpaceList
->
list
.
count
>
0
,
"common SearchSpace list has 0 elements
\n
"
);
// Common searchspace list
for
(
int
i
=
0
;
i
<
commonSearchSpaceList
->
list
.
count
;
i
++
)
{
ss
=
commonSearchSpaceList
->
list
.
array
[
i
];
if
(
ss
->
searchSpaceId
==
ss_id
)
ra
->
ss
=
ss
;
}
if
(
rach_ConfigDedicated
)
{
if
(
rach_ConfigDedicated
->
cfra
){
LOG_I
(
MAC
,
"Initialization of 2-step contention-free random access procedure
\n
"
);
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
View file @
cd0dc8c9
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
cd0dc8c9
...
...
@@ -258,19 +258,19 @@ int8_t nr_ue_decode_mib(module_id_t module_id,
mac
->
physCellId
=
cell_id
;
nr_mac_rrc_data_ind_ue
(
module_id
,
cc_id
,
gNB_index
,
0
,
0
,
0
,
NR_BCCH_BCH
,
(
uint8_t
*
)
pduP
,
3
);
// fixed 3 bytes MIB PDU
AssertFatal
(
m
ac
->
m
ib
!=
NULL
,
"nr_ue_decode_mib() mac->mib == NULL
\n
"
);
NR_MIB_t
*
mib
=
mac
->
mib
;
AssertFatal
(
mib
!=
NULL
,
"nr_ue_decode_mib() mac->mib == NULL
\n
"
);
mac
->
ssb_measurements
.
consecutive_bch_failures
=
0
;
// resetting decoding failures
uint16_t
frame
=
(
m
ac
->
mib
->
systemFrameNumber
.
buf
[
0
]
>>
mac
->
mib
->
systemFrameNumber
.
bits_unused
);
uint16_t
frame
=
(
m
ib
->
systemFrameNumber
.
buf
[
0
]
>>
mib
->
systemFrameNumber
.
bits_unused
);
uint16_t
frame_number_4lsb
=
0
;
for
(
int
i
=
0
;
i
<
4
;
i
++
)
frame_number_4lsb
|=
((
extra_bits
>>
i
)
&
1
)
<<
(
3
-
i
);
uint8_t
ssb_subcarrier_offset_msb
=
(
extra_bits
>>
5
)
&
0x1
;
// extra bits[5]
uint8_t
ssb_subcarrier_offset
=
(
uint8_t
)
m
ac
->
m
ib
->
ssb_SubcarrierOffset
;
uint8_t
ssb_subcarrier_offset
=
(
uint8_t
)
mib
->
ssb_SubcarrierOffset
;
frame
=
frame
<<
4
;
frame
=
frame
|
frame_number_4lsb
;
...
...
@@ -287,15 +287,15 @@ int8_t nr_ue_decode_mib(module_id_t module_id,
#ifdef DEBUG_MIB
uint8_t
half_frame_bit
=
(
extra_bits
>>
4
)
&
0x1
;
// extra bits[4]
LOG_I
(
MAC
,
"system frame number(6 MSB bits): %d
\n
"
,
m
ac
->
m
ib
->
systemFrameNumber
.
buf
[
0
]);
LOG_I
(
MAC
,
"system frame number(6 MSB bits): %d
\n
"
,
mib
->
systemFrameNumber
.
buf
[
0
]);
LOG_I
(
MAC
,
"system frame number(with LSB): %d
\n
"
,
(
int
)
frame
);
LOG_I
(
MAC
,
"subcarrier spacing (0=15or60, 1=30or120): %d
\n
"
,
(
int
)
m
ac
->
m
ib
->
subCarrierSpacingCommon
);
LOG_I
(
MAC
,
"subcarrier spacing (0=15or60, 1=30or120): %d
\n
"
,
(
int
)
mib
->
subCarrierSpacingCommon
);
LOG_I
(
MAC
,
"ssb carrier offset(with MSB): %d
\n
"
,
(
int
)
ssb_subcarrier_offset
);
LOG_I
(
MAC
,
"dmrs type A position (0=pos2,1=pos3): %d
\n
"
,
(
int
)
m
ac
->
m
ib
->
dmrs_TypeA_Position
);
LOG_I
(
MAC
,
"controlResourceSetZero: %d
\n
"
,
(
int
)
m
ac
->
m
ib
->
pdcch_ConfigSIB1
.
controlResourceSetZero
);
LOG_I
(
MAC
,
"searchSpaceZero: %d
\n
"
,
(
int
)
m
ac
->
m
ib
->
pdcch_ConfigSIB1
.
searchSpaceZero
);
LOG_I
(
MAC
,
"cell barred (0=barred,1=notBarred): %d
\n
"
,
(
int
)
m
ac
->
m
ib
->
cellBarred
);
LOG_I
(
MAC
,
"intra frequency reselection (0=allowed,1=notAllowed): %d
\n
"
,
(
int
)
m
ac
->
m
ib
->
intraFreqReselection
);
LOG_I
(
MAC
,
"dmrs type A position (0=pos2,1=pos3): %d
\n
"
,
(
int
)
mib
->
dmrs_TypeA_Position
);
LOG_I
(
MAC
,
"controlResourceSetZero: %d
\n
"
,
(
int
)
mib
->
pdcch_ConfigSIB1
.
controlResourceSetZero
);
LOG_I
(
MAC
,
"searchSpaceZero: %d
\n
"
,
(
int
)
mib
->
pdcch_ConfigSIB1
.
searchSpaceZero
);
LOG_I
(
MAC
,
"cell barred (0=barred,1=notBarred): %d
\n
"
,
(
int
)
mib
->
cellBarred
);
LOG_I
(
MAC
,
"intra frequency reselection (0=allowed,1=notAllowed): %d
\n
"
,
(
int
)
mib
->
intraFreqReselection
);
LOG_I
(
MAC
,
"half frame bit(extra bits): %d
\n
"
,
(
int
)
half_frame_bit
);
LOG_I
(
MAC
,
"ssb index(extra bits): %d
\n
"
,
(
int
)
ssb_index
);
#endif
...
...
@@ -4119,7 +4119,7 @@ int nr_ue_process_rar(nr_downlink_indication_t *dl_info, int pdu_id)
// Schedule Msg3
NR_UE_UL_BWP_t
*
current_UL_BWP
=
&
mac
->
current_UL_BWP
;
NR_tda_info_t
tda_info
=
get_ul_tda_info
(
current_UL_BWP
,
*
ra
->
ss
->
controlResourceSetId
,
ra
->
ss
->
searchSpaceType
->
present
,
NR_RNTI_RA
,
rar_grant
.
Msg3_t_alloc
);
NR_tda_info_t
tda_info
=
get_ul_tda_info
(
current_UL_BWP
,
*
mac
->
ra_SS
->
controlResourceSetId
,
mac
->
ra_SS
->
searchSpaceType
->
present
,
NR_RNTI_RA
,
rar_grant
.
Msg3_t_alloc
);
if
(
tda_info
.
nrOfSymbols
==
0
)
{
LOG_E
(
MAC
,
"Cannot schedule Msg3. Something wrong in TDA information
\n
"
);
return
-
1
;
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
View file @
cd0dc8c9
...
...
@@ -526,8 +526,6 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
pusch_config_pdu
->
tbslbrm
=
0
;
}
else
if
(
dci
)
{
NR_BWP_Id_t
ul_bwp_id
=
mac
->
current_UL_BWP
.
bwp_id
;
int
target_ss
;
bool
valid_ptrs_setup
=
0
;
...
...
@@ -545,9 +543,12 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
/*DCI format-related configuration*/
if
(
*
dci_format
==
NR_UL_DCI_FORMAT_0_0
)
{
target_ss
=
NR_SearchSpace__searchSpaceType_PR_common
;
if
((
pusch_config_pdu
->
transform_precoding
==
NR_PUSCH_Config__transformPrecoder_disabled
)
&&
pusch_config_pdu
->
nr_of_symbols
<
3
)
pusch_config_pdu
->
num_dmrs_cdm_grps_no_data
=
1
;
else
pusch_config_pdu
->
num_dmrs_cdm_grps_no_data
=
2
;
}
else
if
(
*
dci_format
==
NR_UL_DCI_FORMAT_0_1
)
{
target_ss
=
NR_SearchSpace__searchSpaceType_PR_ue_Specific
;
...
...
@@ -577,8 +578,6 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
/* TRANSFORM PRECODING ------------------------------------------------------------------------------------------*/
if
(
pusch_config_pdu
->
transform_precoding
==
NR_PUSCH_Config__transformPrecoder_enabled
)
{
pusch_config_pdu
->
num_dmrs_cdm_grps_no_data
=
2
;
uint32_t
n_RS_Id
=
0
;
if
(
NR_DMRS_ulconfig
->
transformPrecodingEnabled
&&
NR_DMRS_ulconfig
->
transformPrecodingEnabled
->
nPUSCH_Identity
!=
NULL
)
...
...
@@ -664,18 +663,6 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
pusch_config_pdu
->
start_symbol_index
,
mac
->
scc
?
mac
->
scc
->
dmrs_TypeA_Position
:
mac
->
mib
->
dmrs_TypeA_Position
);
if
(
ul_bwp_id
>
0
&&
mac
->
ULbwp
[
ul_bwp_id
-
1
]
&&
pusch_config_pdu
->
transform_precoding
==
NR_PUSCH_Config__transformPrecoder_disabled
&&
*
dci_format
!=
NR_UL_DCI_FORMAT_0_1
)
{
pusch_config_pdu
->
num_dmrs_cdm_grps_no_data
=
1
;
}
else
if
(
*
dci_format
==
NR_UL_DCI_FORMAT_0_0
||
(
ul_bwp_id
>
0
&&
mac
->
ULbwp
[
ul_bwp_id
-
1
]
&&
pusch_config_pdu
->
transform_precoding
==
NR_PUSCH_Config__transformPrecoder_enabled
))
{
pusch_config_pdu
->
num_dmrs_cdm_grps_no_data
=
2
;
}
// Num PRB Overhead from PUSCH-ServingCellConfig
if
(
current_UL_BWP
->
pusch_servingcellconfig
&&
current_UL_BWP
->
pusch_servingcellconfig
->
xOverhead
)
N_PRB_oh
=
*
current_UL_BWP
->
pusch_servingcellconfig
->
xOverhead
;
...
...
@@ -969,7 +956,11 @@ void nr_ue_dl_scheduler(nr_downlink_indication_t *dl_info)
nr_scheduled_response_t
scheduled_response
;
nr_dcireq_t
dcireq
;
if
(
mac
->
state
==
UE_CONNECTED
)
{
if
(
mac
->
state
>
UE_NOT_SYNC
)
{
if
(
mac
->
state
>=
UE_PERFORMING_RA
&&
mac
->
ul_time_alignment
.
ta_apply
)
schedule_ta_command
(
dl_config
,
&
mac
->
ul_time_alignment
);
dcireq
.
module_id
=
mod_id
;
dcireq
.
gNB_index
=
gNB_index
;
...
...
@@ -979,11 +970,10 @@ void nr_ue_dl_scheduler(nr_downlink_indication_t *dl_info)
dcireq
.
dl_config_req
.
number_pdus
=
0
;
nr_ue_dcireq
(
&
dcireq
);
//to be replaced with function pointer later
*
dl_config
=
dcireq
.
dl_config_req
;
if
(
mac
->
ul_time_alignment
.
ta_apply
)
schedule_ta_command
(
dl_config
,
&
mac
->
ul_time_alignment
);
nr_schedule_csirs_reception
(
mac
,
rx_frame
,
rx_slot
);
nr_schedule_csi_for_im
(
mac
,
rx_frame
,
rx_slot
);
if
(
mac
->
state
==
UE_CONNECTED
)
{
nr_schedule_csirs_reception
(
mac
,
rx_frame
,
rx_slot
);
nr_schedule_csi_for_im
(
mac
,
rx_frame
,
rx_slot
);
}
dcireq
.
dl_config_req
=
*
dl_config
;
fill_scheduled_response
(
&
scheduled_response
,
&
dcireq
.
dl_config_req
,
NULL
,
NULL
,
mod_id
,
cc_id
,
rx_frame
,
rx_slot
,
dl_info
->
phy_data
);
...
...
@@ -992,25 +982,6 @@ void nr_ue_dl_scheduler(nr_downlink_indication_t *dl_info)
mac
->
if_module
->
scheduled_response
(
&
scheduled_response
);
}
}
else
if
(
mac
->
state
==
UE_PERFORMING_RA
)
{
// this is for Msg2/Msg4
if
(
mac
->
ra
.
ra_state
>=
WAIT_RAR
)
{
if
(
mac
->
ul_time_alignment
.
ta_apply
)
schedule_ta_command
(
dl_config
,
&
mac
->
ul_time_alignment
);
fapi_nr_dl_config_dci_dl_pdu_rel15_t
*
rel15
=
&
dl_config
->
dl_config_list
[
dl_config
->
number_pdus
].
dci_config_pdu
.
dci_config_rel15
;
rel15
->
num_dci_options
=
mac
->
ra
.
ra_state
==
WAIT_RAR
?
1
:
2
;
rel15
->
dci_format_options
[
0
]
=
NR_DL_DCI_FORMAT_1_0
;
if
(
mac
->
ra
.
ra_state
==
WAIT_CONTENTION_RESOLUTION
)
rel15
->
dci_format_options
[
1
]
=
NR_UL_DCI_FORMAT_0_0
;
// msg3 retransmission
config_dci_pdu
(
mac
,
rel15
,
dl_config
,
mac
->
ra
.
ra_state
==
WAIT_RAR
?
NR_RNTI_RA
:
NR_RNTI_TC
,
mac
->
ra
.
ss
->
searchSpaceId
);
fill_dci_search_candidates
(
mac
->
ra
.
ss
,
rel15
,
-
1
,
-
1
);
dl_config
->
number_pdus
=
1
;
LOG_D
(
MAC
,
"mac->cg %p: Calling fill_scheduled_response rnti %x, type0_pdcch, num_pdus %d
\n
"
,
mac
->
cg
,
rel15
->
rnti
,
dl_config
->
number_pdus
);
fill_scheduled_response
(
&
scheduled_response
,
dl_config
,
NULL
,
NULL
,
mod_id
,
cc_id
,
rx_frame
,
rx_slot
,
dl_info
->
phy_data
);
if
(
mac
->
if_module
!=
NULL
&&
mac
->
if_module
->
scheduled_response
!=
NULL
)
mac
->
if_module
->
scheduled_response
(
&
scheduled_response
);
}
}
else
dl_config
->
number_pdus
=
0
;
}
...
...
@@ -2648,18 +2619,14 @@ void nr_ue_sib1_scheduler(module_id_t module_idP,
slot_s
=
mac
->
type0_PDCCH_CSS_config
.
n_c
;
}
fapi_nr_dl_config_request_t
*
dl_config
=
&
mac
->
dl_config_request
[
0
];
// Take the first dl_config_request for SIB1
fapi_nr_dl_config_dci_dl_pdu_rel15_t
*
rel15
;
if
(
mac
->
search_space_zero
==
NULL
)
mac
->
search_space_zero
=
calloc
(
1
,
sizeof
(
*
mac
->
search_space_zero
));
if
(
mac
->
coreset
0
==
NULL
)
mac
->
coreset0
=
calloc
(
1
,
sizeof
(
*
mac
->
coreset0
));
if
(
mac
->
coreset
_zero
==
NULL
)
mac
->
coreset_zero
=
calloc
(
1
,
sizeof
(
*
mac
->
coreset_zero
));
fill_coresetZero
(
mac
->
coreset
0
,
&
mac
->
type0_PDCCH_CSS_config
);
fill_coresetZero
(
mac
->
coreset
_zero
,
&
mac
->
type0_PDCCH_CSS_config
);
fill_searchSpaceZero
(
mac
->
search_space_zero
,
&
mac
->
type0_PDCCH_CSS_config
);
rel15
=
&
dl_config
->
dl_config_list
[
dl_config
->
number_pdus
].
dci_config_pdu
.
dci_config_rel15
;
rel15
->
num_dci_options
=
1
;
rel15
->
dci_format_options
[
0
]
=
NR_DL_DCI_FORMAT_1_0
;
config_dci_pdu
(
mac
,
rel15
,
dl_config
,
NR_RNTI_SI
,
-
1
);
fill_dci_search_candidates
(
mac
->
search_space_zero
,
rel15
,
-
1
,
-
1
);
int
dci_format
=
NR_DL_DCI_FORMAT_1_0
;
config_dci_pdu
(
mac
,
dl_config
,
-
1
,
NR_RNTI_SI
,
1
,
&
dci_format
,
mac
->
search_space_zero
);
LOG_D
(
MAC
,
"Calling fill_scheduled_response, type0_pdcch, num_pdus %d
\n
"
,
dl_config
->
number_pdus
);
fill_scheduled_response
(
&
scheduled_response
,
dl_config
,
NULL
,
NULL
,
module_idP
,
cc_id
,
frame_s
,
slot_s
,
phy_data
);
...
...
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