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
46fc321a
Commit
46fc321a
authored
Nov 22, 2022
by
Sakthivel Velumani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
DL config as array in MAC
parent
7975b90d
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
98 additions
and
45 deletions
+98
-45
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
+0
-2
openair2/LAYER2/NR_MAC_UE/config_ue.c
openair2/LAYER2/NR_MAC_UE/config_ue.c
+16
-1
openair2/LAYER2/NR_MAC_UE/mac_defs.h
openair2/LAYER2/NR_MAC_UE/mac_defs.h
+1
-1
openair2/LAYER2/NR_MAC_UE/mac_proto.h
openair2/LAYER2/NR_MAC_UE/mac_proto.h
+1
-0
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+9
-10
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+66
-27
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
+5
-4
No files found.
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
View file @
46fc321a
...
...
@@ -390,8 +390,6 @@ typedef struct {
}
fapi_nr_ul_config_request_pdu_t
;
typedef
struct
{
//uint16_t sfn;
//uint16_t slot;
uint16_t
sfn
;
uint16_t
slot
;
uint8_t
number_pdus
;
...
...
openair2/LAYER2/NR_MAC_UE/config_ue.c
View file @
46fc321a
...
...
@@ -700,6 +700,9 @@ int nr_rrc_mac_config_req_ue(module_id_t module_id,
RA_config_t
*
ra
=
&
mac
->
ra
;
fapi_nr_config_request_t
*
cfg
=
&
mac
->
phy_config
.
config_req
;
if
(
mac
->
dl_config_request
==
NULL
)
// for SIB1 reception
mac
->
dl_config_request
=
calloc
(
NR_MAX_SLOTS_PER_FRAME
,
sizeof
(
*
mac
->
dl_config_request
));
// TODO do something FAPI-like P5 L1/L2 config interface in config_si, config_mib, etc.
if
(
mibP
!=
NULL
){
...
...
@@ -725,9 +728,21 @@ int nr_rrc_mac_config_req_ue(module_id_t module_id,
}
}
LOG_I
(
NR_MAC
,
"Initializing ul_config_request. num_slots_ul = %d
\n
"
,
num_slots_ul
);
mac
->
ul_config_request
=
(
fapi_nr_ul_config_request_t
*
)
calloc
(
num_slots_ul
,
sizeof
(
fapi_nr_ul_config_request_
t
));
mac
->
ul_config_request
=
calloc
(
num_slots_ul
,
sizeof
(
*
mac
->
ul_config_reques
t
));
for
(
int
i
=
0
;
i
<
num_slots_ul
;
i
++
)
pthread_mutex_init
(
&
(
mac
->
ul_config_request
[
i
].
mutex_ul_config
),
NULL
);
int
num_slots_dl
=
nr_slots_per_frame
[
mac
->
mib
->
subCarrierSpacingCommon
];
if
(
cfg
->
cell_config
.
frame_duplex_type
==
TDD
)
{
num_slots_dl
=
mac
->
scc_SIB
->
tdd_UL_DL_ConfigurationCommon
->
pattern1
.
nrofDownlinkSlots
;
if
(
mac
->
scc_SIB
->
tdd_UL_DL_ConfigurationCommon
->
pattern1
.
nrofDownlinkSymbols
>
0
)
{
num_slots_dl
++
;
}
}
LOG_I
(
NR_MAC
,
"Initializing dl_config_request. num_slots_dl = %d
\n
"
,
num_slots_dl
);
mac
->
dl_config_request
=
realloc
(
mac
->
dl_config_request
,
num_slots_dl
*
sizeof
(
*
mac
->
dl_config_request
));
memset
(
mac
->
dl_config_request
,
0
,
num_slots_dl
*
sizeof
(
fapi_nr_dl_config_request_t
));
// Setup the SSB to Rach Occasionsif (cell_group_config->spCellConfig) { mapping according to the config
build_ssb_to_ro_map
(
mac
);
//->scc, mac->phy_config.config_req.cell_config.frame_duplex_type);
if
(
!
get_softmodem_params
()
->
emulate_l1
)
...
...
openair2/LAYER2/NR_MAC_UE/mac_defs.h
View file @
46fc321a
...
...
@@ -439,7 +439,7 @@ typedef struct {
int
first_ul_tx
[
NR_MAX_HARQ_PROCESSES
];
//// FAPI-like interface message
fapi_nr_ul_config_request_t
*
ul_config_request
;
fapi_nr_dl_config_request_t
dl_config_request
;
fapi_nr_dl_config_request_t
*
dl_config_request
;
/// Interface module instances
nr_ue_if_module_t
*
if_module
;
...
...
openair2/LAYER2/NR_MAC_UE/mac_proto.h
View file @
46fc321a
...
...
@@ -443,6 +443,7 @@ static uint8_t nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
dci_pdu_rel15_t
*
dci_pdu_rel15
);
fapi_nr_ul_config_request_t
*
get_ul_config_request
(
NR_UE_MAC_INST_t
*
mac
,
int
slot
);
fapi_nr_dl_config_request_t
*
get_dl_config_request
(
NR_UE_MAC_INST_t
*
mac
,
int
slot
);
void
fill_ul_config
(
fapi_nr_ul_config_request_t
*
ul_config
,
frame_t
frame_tx
,
int
slot_tx
,
uint8_t
pdu_type
);
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
46fc321a
...
...
@@ -316,9 +316,6 @@ int8_t nr_ue_decode_mib(module_id_t module_id,
mac
->
first_sync_frame
=
frame
;
}
mac
->
dl_config_request
.
sfn
=
frame
;
mac
->
dl_config_request
.
slot
=
ssb_start_symbol
/
14
;
return
0
;
}
...
...
@@ -440,7 +437,7 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
bool
valid_ptrs_setup
=
0
;
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
module_id
);
RA_config_t
*
ra
=
&
mac
->
ra
;
fapi_nr_dl_config_request_t
*
dl_config
=
&
mac
->
dl_config_request
;
fapi_nr_dl_config_request_t
*
dl_config
=
get_dl_config_request
(
mac
,
slot
)
;
uint8_t
is_Msg3
=
0
;
NR_UE_DL_BWP_t
*
current_DL_BWP
=
&
mac
->
current_DL_BWP
;
NR_UE_UL_BWP_t
*
current_UL_BWP
=
&
mac
->
current_UL_BWP
;
...
...
@@ -1066,7 +1063,7 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
dlsch_config_pdu_1_1
->
n_front_load_symb
);
/* TCI */
if
(
mac
->
dl_config_request
.
dl_config_list
[
0
].
dci_config_pdu
.
dci_config_rel15
.
coreset
.
tci_present_in_dci
==
1
){
if
(
dl_config
->
dl_config_list
[
dl_config
->
number_pdus
].
dci_config_pdu
.
dci_config_rel15
.
coreset
.
tci_present_in_dci
==
1
){
// 0 bit if higher layer parameter tci-PresentInDCI is not enabled
// otherwise 3 bits as defined in Subclause 5.1.5 of [6, TS38.214]
dlsch_config_pdu_1_1
->
tci_state
=
dci
->
transmission_configuration_indication
.
val
;
...
...
@@ -1813,10 +1810,14 @@ uint8_t get_downlink_ack(NR_UE_MAC_INST_t *mac,
}
number_harq_feedback
++
;
if
(
current_harq
->
ack_received
)
if
(
current_harq
->
ack_received
)
{
ack_data
[
code_word
][
dai_current
-
1
]
=
current_harq
->
ack
;
else
current_harq
->
active
=
false
;
current_harq
->
ack_received
=
false
;
}
else
{
LOG_W
(
NR_MAC
,
"DLSCH ACK/NACK reporting initiated for harq pid %d before DLSCH decoding completed
\n
"
,
dl_harq_pid
);
ack_data
[
code_word
][
dai_current
-
1
]
=
0
;
}
dai
[
code_word
][
dai_current
-
1
]
=
dai_current
;
pucch
->
resource_indicator
=
current_harq
->
pucch_resource_indicator
;
...
...
@@ -1824,9 +1825,7 @@ uint8_t get_downlink_ack(NR_UE_MAC_INST_t *mac,
pucch
->
N_CCE
=
current_harq
->
N_CCE
;
pucch
->
delta_pucch
=
current_harq
->
delta_pucch
;
pucch
->
is_common
=
current_harq
->
is_common
;
current_harq
->
active
=
false
;
current_harq
->
ack_received
=
false
;
LOG_D
(
PHY
,
"%4d.%2d Sent %d ack on harq pid %d
\n
"
,
frame
,
slot
,
current_harq
->
ack
,
dl_harq_pid
);
LOG_D
(
PHY
,
"%4d.%2d Sent %d ack on harq pid %d
\n
"
,
frame
,
slot
,
current_harq
->
ack
,
dl_harq_pid
);
}
}
}
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
View file @
46fc321a
...
...
@@ -112,11 +112,8 @@ fapi_nr_ul_config_request_t *get_ul_config_request(NR_UE_MAC_INST_t *mac, int sl
NR_TDD_UL_DL_ConfigCommon_t
*
tdd_config
=
mac
->
scc
==
NULL
?
mac
->
scc_SIB
->
tdd_UL_DL_ConfigurationCommon
:
mac
->
scc
->
tdd_UL_DL_ConfigurationCommon
;
//Check if request to access ul_config is for a UL slot
if
(
is_nr_UL_slot
(
tdd_config
,
slot
,
mac
->
frame_type
)
==
0
)
{
LOG_W
(
NR_MAC
,
"Slot %d is not a UL slot. %s called for wrong slot!!!
\n
"
,
slot
,
__FUNCTION__
);
return
NULL
;
}
//Check if requested on the right slot
AssertFatal
(
is_nr_UL_slot
(
tdd_config
,
slot
,
mac
->
frame_type
)
!=
0
,
"%s called at wrong slot %d
\n
"
,
__func__
,
slot
);
// Calculate the index of the UL slot in mac->ul_config_request list. This is
// based on the TDD pattern (slot configuration period) and number of UL+mixed
...
...
@@ -127,16 +124,57 @@ fapi_nr_ul_config_request_t *get_ul_config_request(NR_UE_MAC_INST_t *mac, int sl
const
int
num_slots_ul
=
tdd_config
?
(
tdd_config
->
pattern1
.
nrofUplinkSlots
+
(
tdd_config
->
pattern1
.
nrofUplinkSymbols
!=
0
))
:
n
;
int
index
=
slot
%
num_slots_ul
;
LOG_D
(
NR_MAC
,
"In %s slots per %s: %d, num_slots
_ul
%d, index %d
\n
"
,
LOG_D
(
NR_MAC
,
"In %s slots per %s: %d, num_slots %d, index %d
\n
"
,
__FUNCTION__
,
tdd_config
?
"TDD"
:
"FDD"
,
num_slots_per_tdd
,
num_slots_ul
,
index
);
if
(
!
mac
->
ul_config_request
)
if
(
mac
->
ul_config_request
)
return
&
mac
->
ul_config_request
[
index
];
else
{
LOG_E
(
NR_MAC
,
"mac->ul_config_request not set
\n
"
);
return
NULL
;
}
}
/*
* This function returns the DL config corresponding to a given DL slot
* from MAC instance .
*/
fapi_nr_dl_config_request_t
*
get_dl_config_request
(
NR_UE_MAC_INST_t
*
mac
,
int
slot
)
{
int
index
;
if
(
!
mac
->
scc
&&
!
mac
->
scc_SIB
)
index
=
0
;
else
{
NR_TDD_UL_DL_ConfigCommon_t
*
tdd_config
=
mac
->
scc
==
NULL
?
mac
->
scc_SIB
->
tdd_UL_DL_ConfigurationCommon
:
mac
->
scc
->
tdd_UL_DL_ConfigurationCommon
;
//Check if requested on the right slot
AssertFatal
(
is_nr_DL_slot
(
tdd_config
,
slot
)
!=
0
,
"%s called at wrong slot %d
\n
"
,
__func__
,
slot
);
// Calculate the index of the DL slot in mac->ul_config_request list. This is
// based on the TDD pattern (slot configuration period) and number of DL+mixed
// slots in the period. TS 38.213 Sec 11.1
int
mu
=
mac
->
current_UL_BWP
.
scs
;
const
int
n
=
nr_slots_per_frame
[
mu
];
const
int
num_slots_per_tdd
=
tdd_config
?
(
n
>>
(
7
-
tdd_config
->
pattern1
.
dl_UL_TransmissionPeriodicity
))
:
n
;
const
int
num_slots_dl
=
tdd_config
?
(
tdd_config
->
pattern1
.
nrofDownlinkSlots
+
(
tdd_config
->
pattern1
.
nrofDownlinkSymbols
!=
0
))
:
n
;
index
=
slot
%
num_slots_dl
;
LOG_D
(
NR_MAC
,
"In %s slots per %s: %d, num_slots %d, index %d
\n
"
,
__FUNCTION__
,
tdd_config
?
"TDD"
:
"FDD"
,
num_slots_per_tdd
,
num_slots_dl
,
index
);
}
if
(
mac
->
dl_config_request
)
return
&
mac
->
dl_config_request
[
index
];
else
{
LOG_E
(
NR_MAC
,
"mac->dl_config_request not set
\n
"
);
return
NULL
;
return
&
mac
->
ul_config_request
[
index
];
}
}
void
ul_layers_config
(
NR_UE_MAC_INST_t
*
mac
,
nfapi_nr_ue_pusch_pdu_t
*
pusch_config_pdu
,
dci_pdu_rel15_t
*
dci
,
nr_dci_format_t
dci_format
)
...
...
@@ -924,7 +962,7 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
slot_t
rx_slot
=
dl_info
->
slot
;
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
mod_id
);
fapi_nr_dl_config_request_t
*
dl_config
=
&
mac
->
dl_config_request
;
fapi_nr_dl_config_request_t
*
dl_config
=
get_dl_config_request
(
mac
,
rx_slot
)
;
nr_scheduled_response_t
scheduled_response
;
nr_dcireq_t
dcireq
;
...
...
@@ -938,11 +976,11 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
dcireq
.
slot
=
rx_slot
;
dcireq
.
dl_config_req
.
number_pdus
=
0
;
nr_ue_dcireq
(
&
dcireq
);
//to be replaced with function pointer later
mac
->
dl_config_request
=
dcireq
.
dl_config_req
;
*
dl_config
=
dcireq
.
dl_config_req
;
nr_schedule_csirs_reception
(
mac
,
rx_frame
,
rx_slot
);
nr_schedule_csi_for_im
(
mac
,
rx_frame
,
rx_slot
);
dcireq
.
dl_config_req
=
mac
->
dl_config_request
;
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
);
if
(
mac
->
if_module
!=
NULL
&&
mac
->
if_module
->
scheduled_response
!=
NULL
)
{
...
...
@@ -2216,7 +2254,7 @@ void nr_schedule_csi_for_im(NR_UE_MAC_INST_t *mac, int frame, int slot) {
if
(
csi_measconfig
->
csi_IM_ResourceToAddModList
==
NULL
)
return
;
fapi_nr_dl_config_request_t
*
dl_config
=
&
mac
->
dl_config_request
;
fapi_nr_dl_config_request_t
*
dl_config
=
get_dl_config_request
(
mac
,
slot
)
;
NR_CSI_IM_Resource_t
*
imcsi
;
int
period
,
offset
;
...
...
@@ -2273,7 +2311,7 @@ void nr_schedule_csirs_reception(NR_UE_MAC_INST_t *mac, int frame, int slot) {
if
(
csi_measconfig
->
nzp_CSI_RS_ResourceToAddModList
==
NULL
)
return
;
fapi_nr_dl_config_request_t
*
dl_config
=
&
mac
->
dl_config_request
;
fapi_nr_dl_config_request_t
*
dl_config
=
get_dl_config_request
(
mac
,
slot
)
;
NR_NZP_CSI_RS_Resource_t
*
nzpcsi
;
int
period
,
offset
;
NR_UE_DL_BWP_t
*
current_DL_BWP
=
&
mac
->
current_DL_BWP
;
...
...
@@ -2595,9 +2633,6 @@ void nr_ue_sib1_scheduler(module_id_t module_idP,
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
module_idP
);
nr_scheduled_response_t
scheduled_response
;
int
frame_s
,
slot_s
;
fapi_nr_dl_config_request_t
*
dl_config
=
&
mac
->
dl_config_request
;
fapi_nr_dl_config_dci_dl_pdu_rel15_t
*
rel15
;
uint8_t
scs_ssb
=
get_softmodem_params
()
->
numerology
;
uint16_t
ssb_offset_point_a
=
(
ssb_start_subcarrier
-
ssb_subcarrier_offset
)
/
12
;
...
...
@@ -2615,17 +2650,7 @@ void nr_ue_sib1_scheduler(module_id_t module_idP,
1
,
// If the UE is not configured with a periodicity, the UE assumes a periodicity of a half frame
ssb_offset_point_a
);
if
(
mac
->
search_space_zero
==
NULL
)
mac
->
search_space_zero
=
calloc
(
1
,
sizeof
(
*
mac
->
search_space_zero
));
if
(
mac
->
coreset0
==
NULL
)
mac
->
coreset0
=
calloc
(
1
,
sizeof
(
*
mac
->
coreset0
));
fill_coresetZero
(
mac
->
coreset0
,
&
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
frame_s
,
slot_s
;
if
(
mac
->
type0_PDCCH_CSS_config
.
type0_pdcch_ss_mux_pattern
==
1
){
// same frame as ssb
if
((
mac
->
type0_PDCCH_CSS_config
.
frame
&
0x1
)
==
mac
->
type0_PDCCH_CSS_config
.
sfn_c
)
...
...
@@ -2638,6 +2663,20 @@ void nr_ue_sib1_scheduler(module_id_t module_idP,
frame_s
=
0
;
// same frame as ssb
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
->
coreset0
==
NULL
)
mac
->
coreset0
=
calloc
(
1
,
sizeof
(
*
mac
->
coreset0
));
fill_coresetZero
(
mac
->
coreset0
,
&
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
);
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
);
...
...
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
View file @
46fc321a
...
...
@@ -735,7 +735,8 @@ void check_and_process_dci(nfapi_nr_dl_tti_request_t *dl_tti_request,
NR_UL_TIME_ALIGNMENT_t
ul_time_alignment
;
memset
(
&
ul_time_alignment
,
0
,
sizeof
(
ul_time_alignment
));
fill_dci_from_dl_config
(
&
mac
->
dl_info
,
&
mac
->
dl_config_request
);
fapi_nr_dl_config_request_t
*
dl_config
=
get_dl_config_request
(
mac
,
slot
);
fill_dci_from_dl_config
(
&
mac
->
dl_info
,
dl_config
);
nr_ue_scheduler
(
&
mac
->
dl_info
,
NULL
);
nr_ue_dl_indication
(
&
mac
->
dl_info
,
&
ul_time_alignment
);
...
...
@@ -1153,7 +1154,7 @@ int nr_ue_dl_indication(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_
uint32_t
ret_mask
=
0x0
;
module_id_t
module_id
=
dl_info
->
module_id
;
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
module_id
);
fapi_nr_dl_config_request_t
*
dl_config
=
&
mac
->
dl_config_request
;
fapi_nr_dl_config_request_t
*
dl_config
=
get_dl_config_request
(
mac
,
dl_info
->
slot
)
;
if
((
!
dl_info
->
dci_ind
&&
!
dl_info
->
rx_ind
))
{
// UL indication to schedule DCI reception
...
...
@@ -1282,8 +1283,8 @@ int nr_ue_dcireq(nr_dcireq_t *dcireq) {
fapi_nr_dl_config_request_t
*
dl_config
=
&
dcireq
->
dl_config_req
;
NR_UE_MAC_INST_t
*
UE_mac
=
get_mac_inst
(
0
);
dl_config
->
sfn
=
UE_mac
->
dl_config_request
.
sfn
;
dl_config
->
slot
=
UE_mac
->
dl_config_request
.
slot
;
dl_config
->
sfn
=
dcireq
->
frame
;
dl_config
->
slot
=
dcireq
->
slot
;
LOG_T
(
PHY
,
"Entering UE DCI configuration frame %d slot %d
\n
"
,
dcireq
->
frame
,
dcireq
->
slot
);
...
...
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