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
zzha zzha
OpenXG-RAN
Commits
4af3d76d
Commit
4af3d76d
authored
May 21, 2023
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dci options inside config_dci_pdu function
parent
d9dfd732
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
51 additions
and
38 deletions
+51
-38
openair2/LAYER2/NR_MAC_UE/mac_proto.h
openair2/LAYER2/NR_MAC_UE/mac_proto.h
+6
-3
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
+43
-24
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+2
-11
No files found.
openair2/LAYER2/NR_MAC_UE/mac_proto.h
View file @
4af3d76d
...
...
@@ -249,7 +249,12 @@ 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_dci_dl_pdu_rel15_t
*
rel15
,
fapi_nr_dl_config_request_t
*
dl_config
,
int
rnti_type
,
int
slot
,
int
ss_id
);
void
ue_dci_configuration
(
NR_UE_MAC_INST_t
*
mac
,
fapi_nr_dl_config_request_t
*
dl_config
,
frame_t
frame
,
int
slot
);
...
...
@@ -420,8 +425,6 @@ 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
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
);
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
View file @
4af3d76d
...
...
@@ -51,23 +51,19 @@
void
fill_dci_search_candidates
(
NR_SearchSpace_t
*
ss
,
fapi_nr_dl_config_dci_dl_pdu_rel15_t
*
rel15
,
int
slot
,
int
rnti
)
uint32_t
Y
)
{
LOG_D
(
NR_MAC
,
"Filling search candidates for DCI
\n
"
);
uint8_t
aggregation
;
uint8_t
number_of_candidates
=
0
;
rel15
->
number_of_candidates
=
0
;
uint32_t
Y
=
0
;
int
i
=
0
;
if
(
slot
>=
0
)
Y
=
get_Y
(
ss
,
slot
,
rnti
);
for
(
int
maxL
=
16
;
maxL
>
0
;
maxL
>>=
1
)
{
uint8_t
aggregation
,
number_of_candidates
;
find_aggregation_candidates
(
&
aggregation
,
&
number_of_candidates
,
ss
,
maxL
);
if
(
number_of_candidates
>
0
)
{
ss
,
maxL
);
if
(
number_of_candidates
>
0
)
{
LOG_D
(
NR_MAC
,
"L %d, number of candidates %d, aggregation %d
\n
"
,
maxL
,
number_of_candidates
,
aggregation
);
rel15
->
number_of_candidates
+=
number_of_candidates
;
int
N_cce_sym
=
0
;
// nb of rbs of coreset per symbol
...
...
@@ -87,7 +83,12 @@ void fill_dci_search_candidates(NR_SearchSpace_t *ss,
}
}
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_dci_dl_pdu_rel15_t
*
rel15
,
fapi_nr_dl_config_request_t
*
dl_config
,
int
rnti_type
,
int
slot
,
int
ss_id
)
{
uint16_t
monitoringSymbolsWithinSlot
=
0
;
...
...
@@ -153,6 +154,29 @@ void config_dci_pdu(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_dci_dl_pdu_rel15_t
rel15
->
coreset
.
pdcch_dmrs_scrambling_id
=
mac
->
physCellId
;
rel15
->
coreset
.
scrambling_rnti
=
0
;
}
rel15
->
num_dci_options
=
(
mac
->
ra
.
ra_state
==
WAIT_RAR
||
rnti_type
==
NR_RNTI_SI
)
?
1
:
2
;
if
(
ss
->
searchSpaceType
->
present
==
NR_SearchSpace__searchSpaceType_PR_ue_Specific
)
{
if
(
ss
->
searchSpaceType
->
choice
.
ue_Specific
->
dci_Formats
==
NR_SearchSpace__searchSpaceType__ue_Specific__dci_Formats_formats0_0_And_1_0
)
{
rel15
->
dci_format_options
[
0
]
=
NR_DL_DCI_FORMAT_1_0
;
rel15
->
dci_format_options
[
1
]
=
NR_UL_DCI_FORMAT_0_0
;
}
else
{
rel15
->
dci_format_options
[
0
]
=
NR_DL_DCI_FORMAT_1_1
;
rel15
->
dci_format_options
[
1
]
=
NR_UL_DCI_FORMAT_0_1
;
}
}
else
{
// common
AssertFatal
(
ss
->
searchSpaceType
->
choice
.
common
->
dci_Format0_0_AndFormat1_0
,
"Only supporting format 10 and 00 for common SS
\n
"
);
rel15
->
dci_format_options
[
0
]
=
NR_DL_DCI_FORMAT_1_0
;
rel15
->
dci_format_options
[
1
]
=
NR_UL_DCI_FORMAT_0_0
;
}
// loop over RNTI type and configure resource allocation for DCI
for
(
int
i
=
0
;
i
<
rel15
->
num_dci_options
;
i
++
)
{
rel15
->
dci_type_options
[
i
]
=
ss
->
searchSpaceType
->
present
;
...
...
@@ -245,6 +269,11 @@ void config_dci_pdu(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_dci_dl_pdu_rel15_t
break
;
}
}
uint32_t
Y
=
0
;
if
(
ss
->
searchSpaceType
->
present
==
NR_SearchSpace__searchSpaceType_PR_ue_Specific
)
Y
=
get_Y
(
ss
,
slot
,
rel15
->
rnti
);
fill_dci_search_candidates
(
ss
,
rel15
,
Y
);
#ifdef DEBUG_DCI
LOG_D
(
MAC
,
"[DCI_CONFIG] Configure DCI PDU: rnti_type %d BWPSize %d BWPStart %d rel15->SubcarrierSpacing %d rel15->dci_format %d rel15->dci_length %d sps %d monitoringSymbolsWithinSlot %d
\n
"
,
rnti_type
,
...
...
@@ -299,21 +328,15 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
switch
(
ra
->
ra_state
){
case
WAIT_RAR
:
LOG_D
(
NR_MAC
,
"[DCI_CONFIG] Configure monitoring of PDCCH candidates in Type1-PDCCH common random access search space (RA-Msg2)
\n
"
);
rel15
->
num_dci_options
=
1
;
rel15
->
dci_format_options
[
0
]
=
NR_DL_DCI_FORMAT_1_0
;
if
(
get_softmodem_params
()
->
sa
)
{
config_dci_pdu
(
mac
,
rel15
,
dl_config
,
NR_RNTI_RA
,
-
1
);
config_dci_pdu
(
mac
,
rel15
,
dl_config
,
NR_RNTI_RA
,
slot
,
-
1
);
}
else
{
config_dci_pdu
(
mac
,
rel15
,
dl_config
,
NR_RNTI_RA
,
ss_id
);
config_dci_pdu
(
mac
,
rel15
,
dl_config
,
NR_RNTI_RA
,
s
lot
,
s
s_id
);
}
fill_dci_search_candidates
(
ss
,
rel15
,
-
1
,
-
1
);
break
;
case
WAIT_CONTENTION_RESOLUTION
:
LOG_D
(
NR_MAC
,
"[DCI_CONFIG] Configure monitoring of PDCCH candidates in Type1-PDCCH common random access search space (RA-Msg4)
\n
"
);
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_TC
,
-
1
);
fill_dci_search_candidates
(
ss
,
rel15
,
-
1
,
-
1
);
config_dci_pdu
(
mac
,
rel15
,
dl_config
,
NR_RNTI_TC
,
slot
,
-
1
);
break
;
default:
break
;
...
...
@@ -381,11 +404,7 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
mac
->
crnti
>
0
)
{
// Monitors DCI 01 and 11 scrambled with C-RNTI, or CS-RNTI(s), or SP-CSI-RNTI
LOG_D
(
NR_MAC
,
"[DCI_CONFIG] Configure monitoring of PDCCH candidates in the user specific search space
\n
"
);
rel15
->
num_dci_options
=
2
;
rel15
->
dci_format_options
[
0
]
=
NR_DL_DCI_FORMAT_1_1
;
rel15
->
dci_format_options
[
1
]
=
NR_UL_DCI_FORMAT_0_1
;
config_dci_pdu
(
mac
,
rel15
,
dl_config
,
NR_RNTI_C
,
ss_id
);
fill_dci_search_candidates
(
ss
,
rel15
,
slot
,
mac
->
crnti
);
config_dci_pdu
(
mac
,
rel15
,
dl_config
,
NR_RNTI_C
,
slot
,
ss_id
);
//#ifdef DEBUG_DCI
LOG_D
(
NR_MAC
,
"[DCI_CONFIG] ss %d ue_Specific %p searchSpaceType->present %d dci_Formats %d
\n
"
,
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
View file @
4af3d76d
...
...
@@ -979,13 +979,7 @@ void nr_ue_dl_scheduler(nr_downlink_indication_t *dl_info)
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
;
config_dci_pdu
(
mac
,
rel15
,
dl_config
,
mac
->
ra
.
ra_state
==
WAIT_RAR
?
NR_RNTI_RA
:
NR_RNTI_TC
,
rx_slot
,
mac
->
ra_SS
->
searchSpaceId
);
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
)
...
...
@@ -2637,10 +2631,7 @@ void nr_ue_sib1_scheduler(module_id_t module_idP,
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
);
config_dci_pdu
(
mac
,
rel15
,
dl_config
,
NR_RNTI_SI
,
slot_s
,
-
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
);
...
...
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