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
lizhongxiao
OpenXG-RAN
Commits
ca2b0693
Commit
ca2b0693
authored
Feb 23, 2024
by
Raphael Defosseux
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/NR_UE_fix_cset0_ss0' into integration_2024_w08
parents
9e3163db
16c82f25
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
26 additions
and
21 deletions
+26
-21
openair2/LAYER2/NR_MAC_UE/config_ue.c
openair2/LAYER2/NR_MAC_UE/config_ue.c
+11
-9
openair2/LAYER2/NR_MAC_UE/mac_defs.h
openair2/LAYER2/NR_MAC_UE/mac_defs.h
+2
-2
openair2/LAYER2/NR_MAC_UE/main_ue_nr.c
openair2/LAYER2/NR_MAC_UE/main_ue_nr.c
+3
-0
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
+10
-10
No files found.
openair2/LAYER2/NR_MAC_UE/config_ue.c
View file @
ca2b0693
...
@@ -420,9 +420,7 @@ void release_common_ss_cset(NR_BWP_PDCCH_t *pdcch)
...
@@ -420,9 +420,7 @@ void release_common_ss_cset(NR_BWP_PDCCH_t *pdcch)
asn1cFreeStruc
(
asn_DEF_NR_SearchSpace
,
pdcch
->
otherSI_SS
);
asn1cFreeStruc
(
asn_DEF_NR_SearchSpace
,
pdcch
->
otherSI_SS
);
asn1cFreeStruc
(
asn_DEF_NR_SearchSpace
,
pdcch
->
ra_SS
);
asn1cFreeStruc
(
asn_DEF_NR_SearchSpace
,
pdcch
->
ra_SS
);
asn1cFreeStruc
(
asn_DEF_NR_SearchSpace
,
pdcch
->
paging_SS
);
asn1cFreeStruc
(
asn_DEF_NR_SearchSpace
,
pdcch
->
paging_SS
);
asn1cFreeStruc
(
asn_DEF_NR_SearchSpace
,
pdcch
->
search_space_zero
);
asn1cFreeStruc
(
asn_DEF_NR_ControlResourceSet
,
pdcch
->
commonControlResourceSet
);
asn1cFreeStruc
(
asn_DEF_NR_ControlResourceSet
,
pdcch
->
commonControlResourceSet
);
asn1cFreeStruc
(
asn_DEF_NR_ControlResourceSet
,
pdcch
->
coreset0
);
}
}
static
void
modlist_ss
(
NR_SearchSpace_t
*
source
,
NR_SearchSpace_t
*
target
)
static
void
modlist_ss
(
NR_SearchSpace_t
*
source
,
NR_SearchSpace_t
*
target
)
...
@@ -443,12 +441,13 @@ static void modlist_ss(NR_SearchSpace_t *source, NR_SearchSpace_t *target)
...
@@ -443,12 +441,13 @@ static void modlist_ss(NR_SearchSpace_t *source, NR_SearchSpace_t *target)
UPDATE_MAC_IE
(
target
->
searchSpaceType
,
source
->
searchSpaceType
,
struct
NR_SearchSpace__searchSpaceType
);
UPDATE_MAC_IE
(
target
->
searchSpaceType
,
source
->
searchSpaceType
,
struct
NR_SearchSpace__searchSpaceType
);
}
}
static
NR_SearchSpace_t
*
get_common_search_space
(
const
struct
NR_PDCCH_ConfigCommon__commonSearchSpaceList
*
commonSearchSpaceList
,
static
NR_SearchSpace_t
*
get_common_search_space
(
const
NR_UE_MAC_INST_t
*
mac
,
const
struct
NR_PDCCH_ConfigCommon__commonSearchSpaceList
*
commonSearchSpaceList
,
const
NR_BWP_PDCCH_t
*
pdcch
,
const
NR_BWP_PDCCH_t
*
pdcch
,
const
NR_SearchSpaceId_t
ss_id
)
const
NR_SearchSpaceId_t
ss_id
)
{
{
if
(
ss_id
==
0
)
if
(
ss_id
==
0
)
return
pdcch
->
search_space_zero
;
return
mac
->
search_space_zero
;
NR_SearchSpace_t
*
css
=
NULL
;
NR_SearchSpace_t
*
css
=
NULL
;
for
(
int
i
=
0
;
i
<
commonSearchSpaceList
->
list
.
count
;
i
++
)
{
for
(
int
i
=
0
;
i
<
commonSearchSpaceList
->
list
.
count
;
i
++
)
{
...
@@ -462,12 +461,15 @@ static NR_SearchSpace_t *get_common_search_space(const struct NR_PDCCH_ConfigCom
...
@@ -462,12 +461,15 @@ static NR_SearchSpace_t *get_common_search_space(const struct NR_PDCCH_ConfigCom
return
css
;
return
css
;
}
}
static
void
configure_common_ss_coreset
(
NR_BWP_PDCCH_t
*
pdcch
,
NR_PDCCH_ConfigCommon_t
*
pdcch_ConfigCommon
)
static
void
configure_common_ss_coreset
(
const
NR_UE_MAC_INST_t
*
mac
,
NR_BWP_PDCCH_t
*
pdcch
,
NR_PDCCH_ConfigCommon_t
*
pdcch_ConfigCommon
)
{
{
if
(
pdcch_ConfigCommon
)
{
if
(
pdcch_ConfigCommon
)
{
asn1cFreeStruc
(
asn_DEF_NR_SearchSpace
,
pdcch
->
otherSI_SS
);
asn1cFreeStruc
(
asn_DEF_NR_SearchSpace
,
pdcch
->
otherSI_SS
);
if
(
pdcch_ConfigCommon
->
searchSpaceOtherSystemInformation
)
if
(
pdcch_ConfigCommon
->
searchSpaceOtherSystemInformation
)
pdcch
->
otherSI_SS
=
get_common_search_space
(
pdcch_ConfigCommon
->
commonSearchSpaceList
,
pdcch
->
otherSI_SS
=
get_common_search_space
(
mac
,
pdcch_ConfigCommon
->
commonSearchSpaceList
,
pdcch
,
pdcch
,
*
pdcch_ConfigCommon
->
searchSpaceOtherSystemInformation
);
*
pdcch_ConfigCommon
->
searchSpaceOtherSystemInformation
);
...
@@ -477,7 +479,7 @@ static void configure_common_ss_coreset(NR_BWP_PDCCH_t *pdcch, NR_PDCCH_ConfigCo
...
@@ -477,7 +479,7 @@ static void configure_common_ss_coreset(NR_BWP_PDCCH_t *pdcch, NR_PDCCH_ConfigCo
pdcch
->
ra_SS
=
pdcch
->
otherSI_SS
;
pdcch
->
ra_SS
=
pdcch
->
otherSI_SS
;
else
else
pdcch
->
ra_SS
=
pdcch
->
ra_SS
=
get_common_search_space
(
pdcch_ConfigCommon
->
commonSearchSpaceList
,
pdcch
,
*
pdcch_ConfigCommon
->
ra_SearchSpace
);
get_common_search_space
(
mac
,
pdcch_ConfigCommon
->
commonSearchSpaceList
,
pdcch
,
*
pdcch_ConfigCommon
->
ra_SearchSpace
);
}
}
asn1cFreeStruc
(
asn_DEF_NR_SearchSpace
,
pdcch
->
paging_SS
);
asn1cFreeStruc
(
asn_DEF_NR_SearchSpace
,
pdcch
->
paging_SS
);
...
@@ -488,7 +490,7 @@ static void configure_common_ss_coreset(NR_BWP_PDCCH_t *pdcch, NR_PDCCH_ConfigCo
...
@@ -488,7 +490,7 @@ static void configure_common_ss_coreset(NR_BWP_PDCCH_t *pdcch, NR_PDCCH_ConfigCo
pdcch
->
paging_SS
=
pdcch
->
ra_SS
;
pdcch
->
paging_SS
=
pdcch
->
ra_SS
;
if
(
!
pdcch
->
paging_SS
)
if
(
!
pdcch
->
paging_SS
)
pdcch
->
paging_SS
=
pdcch
->
paging_SS
=
get_common_search_space
(
pdcch_ConfigCommon
->
commonSearchSpaceList
,
pdcch
,
*
pdcch_ConfigCommon
->
pagingSearchSpace
);
get_common_search_space
(
mac
,
pdcch_ConfigCommon
->
commonSearchSpaceList
,
pdcch
,
*
pdcch_ConfigCommon
->
pagingSearchSpace
);
}
}
UPDATE_MAC_IE
(
pdcch
->
commonControlResourceSet
,
pdcch_ConfigCommon
->
commonControlResourceSet
,
NR_ControlResourceSet_t
);
UPDATE_MAC_IE
(
pdcch
->
commonControlResourceSet
,
pdcch_ConfigCommon
->
commonControlResourceSet
,
NR_ControlResourceSet_t
);
...
@@ -1304,7 +1306,7 @@ static void configure_common_BWP_dl(NR_UE_MAC_INST_t *mac, int bwp_id, NR_BWP_Do
...
@@ -1304,7 +1306,7 @@ static void configure_common_BWP_dl(NR_UE_MAC_INST_t *mac, int bwp_id, NR_BWP_Do
NR_BWP_PDCCH_t
*
pdcch
=
&
mac
->
config_BWP_PDCCH
[
bwp_id
];
NR_BWP_PDCCH_t
*
pdcch
=
&
mac
->
config_BWP_PDCCH
[
bwp_id
];
if
(
dl_common
->
pdcch_ConfigCommon
)
{
if
(
dl_common
->
pdcch_ConfigCommon
)
{
if
(
dl_common
->
pdcch_ConfigCommon
->
present
==
NR_SetupRelease_PDCCH_ConfigCommon_PR_setup
)
if
(
dl_common
->
pdcch_ConfigCommon
->
present
==
NR_SetupRelease_PDCCH_ConfigCommon_PR_setup
)
configure_common_ss_coreset
(
pdcch
,
dl_common
->
pdcch_ConfigCommon
->
choice
.
setup
);
configure_common_ss_coreset
(
mac
,
pdcch
,
dl_common
->
pdcch_ConfigCommon
->
choice
.
setup
);
if
(
dl_common
->
pdcch_ConfigCommon
->
present
==
NR_SetupRelease_PDCCH_ConfigCommon_PR_release
)
if
(
dl_common
->
pdcch_ConfigCommon
->
present
==
NR_SetupRelease_PDCCH_ConfigCommon_PR_release
)
release_common_ss_cset
(
pdcch
);
release_common_ss_cset
(
pdcch
);
}
}
...
...
openair2/LAYER2/NR_MAC_UE/mac_defs.h
View file @
ca2b0693
...
@@ -446,9 +446,7 @@ typedef struct {
...
@@ -446,9 +446,7 @@ typedef struct {
NR_SearchSpace_t
*
otherSI_SS
;
NR_SearchSpace_t
*
otherSI_SS
;
NR_SearchSpace_t
*
ra_SS
;
NR_SearchSpace_t
*
ra_SS
;
NR_SearchSpace_t
*
paging_SS
;
NR_SearchSpace_t
*
paging_SS
;
NR_ControlResourceSet_t
*
coreset0
;
NR_ControlResourceSet_t
*
commonControlResourceSet
;
NR_ControlResourceSet_t
*
commonControlResourceSet
;
NR_SearchSpace_t
*
search_space_zero
;
A_SEQUENCE_OF
(
NR_ControlResourceSet_t
)
list_Coreset
;
A_SEQUENCE_OF
(
NR_ControlResourceSet_t
)
list_Coreset
;
A_SEQUENCE_OF
(
NR_SearchSpace_t
)
list_SS
;
A_SEQUENCE_OF
(
NR_SearchSpace_t
)
list_SS
;
}
NR_BWP_PDCCH_t
;
}
NR_BWP_PDCCH_t
;
...
@@ -472,6 +470,8 @@ typedef struct NR_UE_MAC_INST_s {
...
@@ -472,6 +470,8 @@ typedef struct NR_UE_MAC_INST_s {
A_SEQUENCE_OF
(
NR_UE_DL_BWP_t
)
dl_BWPs
;
A_SEQUENCE_OF
(
NR_UE_DL_BWP_t
)
dl_BWPs
;
A_SEQUENCE_OF
(
NR_UE_UL_BWP_t
)
ul_BWPs
;
A_SEQUENCE_OF
(
NR_UE_UL_BWP_t
)
ul_BWPs
;
NR_BWP_PDCCH_t
config_BWP_PDCCH
[
MAX_NUM_BWP_UE
];
NR_BWP_PDCCH_t
config_BWP_PDCCH
[
MAX_NUM_BWP_UE
];
NR_ControlResourceSet_t
*
coreset0
;
NR_SearchSpace_t
*
search_space_zero
;
NR_UE_DL_BWP_t
*
current_DL_BWP
;
NR_UE_DL_BWP_t
*
current_DL_BWP
;
NR_UE_UL_BWP_t
*
current_UL_BWP
;
NR_UE_UL_BWP_t
*
current_UL_BWP
;
...
...
openair2/LAYER2/NR_MAC_UE/main_ue_nr.c
View file @
ca2b0693
...
@@ -223,6 +223,9 @@ void release_mac_configuration(NR_UE_MAC_INST_t *mac)
...
@@ -223,6 +223,9 @@ void release_mac_configuration(NR_UE_MAC_INST_t *mac)
for
(
int
i
=
0
;
i
<
mac
->
ul_BWPs
.
count
;
i
++
)
for
(
int
i
=
0
;
i
<
mac
->
ul_BWPs
.
count
;
i
++
)
release_ul_BWP
(
mac
,
i
);
release_ul_BWP
(
mac
,
i
);
asn1cFreeStruc
(
asn_DEF_NR_SearchSpace
,
mac
->
search_space_zero
);
asn1cFreeStruc
(
asn_DEF_NR_ControlResourceSet
,
mac
->
coreset0
);
for
(
int
i
=
0
;
i
<
mac
->
lc_ordered_list
.
count
;
i
++
)
{
for
(
int
i
=
0
;
i
<
mac
->
lc_ordered_list
.
count
;
i
++
)
{
nr_lcordered_info_t
*
lc_info
=
mac
->
lc_ordered_list
.
array
[
i
];
nr_lcordered_info_t
*
lc_info
=
mac
->
lc_ordered_list
.
array
[
i
];
asn_sequence_del
(
&
mac
->
lc_ordered_list
,
i
,
0
);
asn_sequence_del
(
&
mac
->
lc_ordered_list
,
i
,
0
);
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
View file @
ca2b0693
...
@@ -121,7 +121,7 @@ void config_dci_pdu(NR_UE_MAC_INST_t *mac,
...
@@ -121,7 +121,7 @@ void config_dci_pdu(NR_UE_MAC_INST_t *mac,
coreset
=
ue_get_coreset
(
pdcch_config
,
coreset_id
);
coreset
=
ue_get_coreset
(
pdcch_config
,
coreset_id
);
rel15
->
coreset
.
CoreSetType
=
NFAPI_NR_CSET_CONFIG_PDCCH_CONFIG
;
rel15
->
coreset
.
CoreSetType
=
NFAPI_NR_CSET_CONFIG_PDCCH_CONFIG
;
}
else
{
}
else
{
coreset
=
pdcch_config
->
coreset0
;
coreset
=
mac
->
coreset0
;
rel15
->
coreset
.
CoreSetType
=
NFAPI_NR_CSET_CONFIG_MIB_SIB1
;
rel15
->
coreset
.
CoreSetType
=
NFAPI_NR_CSET_CONFIG_MIB_SIB1
;
}
}
...
@@ -483,22 +483,22 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
...
@@ -483,22 +483,22 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
mac
->
mib_ssb
,
mac
->
mib_ssb
,
1
,
// If the UE is not configured with a periodicity, the UE assumes a periodicity of a half frame
1
,
// If the UE is not configured with a periodicity, the UE assumes a periodicity of a half frame
ssb_offset_point_a
);
ssb_offset_point_a
);
if
(
pdcch_config
->
search_space_zero
==
NULL
)
if
(
mac
->
search_space_zero
==
NULL
)
pdcch_config
->
search_space_zero
=
calloc
(
1
,
sizeof
(
*
pdcch_config
->
search_space_zero
));
mac
->
search_space_zero
=
calloc
(
1
,
sizeof
(
*
mac
->
search_space_zero
));
if
(
pdcch_config
->
coreset0
==
NULL
)
if
(
mac
->
coreset0
==
NULL
)
pdcch_config
->
coreset0
=
calloc
(
1
,
sizeof
(
*
pdcch_config
->
coreset0
));
mac
->
coreset0
=
calloc
(
1
,
sizeof
(
*
mac
->
coreset0
));
fill_coresetZero
(
pdcch_config
->
coreset0
,
&
mac
->
type0_PDCCH_CSS_config
);
fill_coresetZero
(
mac
->
coreset0
,
&
mac
->
type0_PDCCH_CSS_config
);
fill_searchSpaceZero
(
pdcch_config
->
search_space_zero
,
slots_per_frame
,
&
mac
->
type0_PDCCH_CSS_config
);
fill_searchSpaceZero
(
mac
->
search_space_zero
,
slots_per_frame
,
&
mac
->
type0_PDCCH_CSS_config
);
if
(
is_ss_monitor_occasion
(
frame
,
slot
,
slots_per_frame
,
pdcch_config
->
search_space_zero
))
{
if
(
is_ss_monitor_occasion
(
frame
,
slot
,
slots_per_frame
,
mac
->
search_space_zero
))
{
LOG_D
(
NR_MAC
,
"Monitoring DCI for SIB1 in frame %d slot %d
\n
"
,
frame
,
slot
);
LOG_D
(
NR_MAC
,
"Monitoring DCI for SIB1 in frame %d slot %d
\n
"
,
frame
,
slot
);
config_dci_pdu
(
mac
,
dl_config
,
TYPE_SI_RNTI_
,
slot
,
pdcch_config
->
search_space_zero
);
config_dci_pdu
(
mac
,
dl_config
,
TYPE_SI_RNTI_
,
slot
,
mac
->
search_space_zero
);
}
}
}
}
if
(
mac
->
get_otherSI
)
{
if
(
mac
->
get_otherSI
)
{
// If searchSpaceOtherSystemInformation is set to zero,
// If searchSpaceOtherSystemInformation is set to zero,
// PDCCH monitoring occasions for SI message reception in SI-window
// PDCCH monitoring occasions for SI message reception in SI-window
// are same as PDCCH monitoring occasions for SIB1
// are same as PDCCH monitoring occasions for SIB1
const
NR_SearchSpace_t
*
ss
=
pdcch_config
->
otherSI_SS
?
pdcch_config
->
otherSI_SS
:
pdcch_config
->
search_space_zero
;
const
NR_SearchSpace_t
*
ss
=
pdcch_config
->
otherSI_SS
?
pdcch_config
->
otherSI_SS
:
mac
->
search_space_zero
;
// TODO configure SI-window
// TODO configure SI-window
if
(
monitior_dci_for_other_SI
(
mac
,
ss
,
slots_per_frame
,
frame
,
slot
))
{
if
(
monitior_dci_for_other_SI
(
mac
,
ss
,
slots_per_frame
,
frame
,
slot
))
{
LOG_D
(
NR_MAC
,
"Monitoring DCI for other SIs in frame %d slot %d
\n
"
,
frame
,
slot
);
LOG_D
(
NR_MAC
,
"Monitoring DCI for other SIs in frame %d slot %d
\n
"
,
frame
,
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