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
16c82f25
Commit
16c82f25
authored
Feb 15, 2024
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
set cset0 and ss0 independently from BWP in generic MAC structure at UE
parent
3f3a9869
Changes
4
Show 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 @
16c82f25
...
@@ -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 @
16c82f25
...
@@ -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 @
16c82f25
...
@@ -220,6 +220,9 @@ void release_mac_configuration(NR_UE_MAC_INST_t *mac)
...
@@ -220,6 +220,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 @
16c82f25
...
@@ -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