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
spbro
OpenXG-RAN
Commits
fe99f633
Commit
fe99f633
authored
Jul 25, 2023
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
harmonize reconfiguration with sync reception
parent
40b07ec4
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
32 additions
and
45 deletions
+32
-45
openair2/LAYER2/NR_MAC_UE/config_ue.c
openair2/LAYER2/NR_MAC_UE/config_ue.c
+30
-43
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
+2
-2
No files found.
openair2/LAYER2/NR_MAC_UE/config_ue.c
View file @
fe99f633
...
...
@@ -720,6 +720,28 @@ void nr_rrc_mac_config_req_sib1(module_id_t module_id,
mac
->
phy_config_request_sent
=
true
;
}
void
handle_reconfiguration_with_sync
(
NR_UE_MAC_INST_t
*
mac
,
module_id_t
module_id
,
int
cc_idP
,
struct
NR_ReconfigurationWithSync
*
reconfigurationWithSync
)
{
RA_config_t
*
ra
=
&
mac
->
ra
;
if
(
reconfigurationWithSync
->
rach_ConfigDedicated
)
{
ra
->
rach_ConfigDedicated
=
reconfigurationWithSync
->
rach_ConfigDedicated
->
choice
.
uplink
;
}
NR_ServingCellConfigCommon_t
*
scc
=
reconfigurationWithSync
->
spCellConfigCommon
;
mac
->
bwp_dlcommon
=
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
;
mac
->
bwp_ulcommon
=
scc
->
uplinkConfigCommon
->
initialUplinkBWP
;
mac
->
dmrs_TypeA_Position
=
scc
->
dmrs_TypeA_Position
;
mac
->
tdd_UL_DL_ConfigurationCommon
=
scc
->
tdd_UL_DL_ConfigurationCommon
;
mac
->
p_Max
=
scc
->
uplinkConfigCommon
->
frequencyInfoUL
->
p_Max
;
mac
->
nr_band
=
*
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
0
];
mac
->
physCellId
=
*
scc
->
physCellId
;
mac
->
crnti
=
reconfigurationWithSync
->
newUE_Identity
;
LOG_I
(
NR_MAC
,
"Configuring CRNTI %x
\n
"
,
mac
->
crnti
);
config_common_ue
(
mac
,
scc
,
module_id
,
cc_idP
);
}
void
nr_rrc_mac_config_req_mcg
(
module_id_t
module_id
,
int
cc_idP
,
NR_CellGroupConfig_t
*
cell_group_config
)
...
...
@@ -741,75 +763,40 @@ void nr_rrc_mac_config_req_mcg(module_id_t module_id,
mac
->
scheduling_info
.
periodicBSR_SF
,
mac
->
scheduling_info
.
retxBSR_SF
);
RA_config_t
*
ra
=
&
mac
->
ra
;
if
(
cell_group_config
->
spCellConfig
&&
cell_group_config
->
spCellConfig
->
reconfigurationWithSync
)
{
LOG_A
(
NR_MAC
,
"Received the reconfigurationWithSync in %s
\n
"
,
__FUNCTION__
);
if
(
cell_group_config
->
spCellConfig
->
reconfigurationWithSync
->
rach_ConfigDedicated
)
{
ra
->
rach_ConfigDedicated
=
cell_group_config
->
spCellConfig
->
reconfigurationWithSync
->
rach_ConfigDedicated
->
choice
.
uplink
;
}
NR_ServingCellConfigCommon_t
*
scc
=
cell_group_config
->
spCellConfig
->
reconfigurationWithSync
->
spCellConfigCommon
;
mac
->
bwp_dlcommon
=
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
;
mac
->
bwp_ulcommon
=
scc
->
uplinkConfigCommon
->
initialUplinkBWP
;
mac
->
dmrs_TypeA_Position
=
scc
->
dmrs_TypeA_Position
;
mac
->
tdd_UL_DL_ConfigurationCommon
=
scc
->
tdd_UL_DL_ConfigurationCommon
;
mac
->
p_Max
=
scc
->
uplinkConfigCommon
->
frequencyInfoUL
->
p_Max
;
mac
->
nr_band
=
*
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
0
];
handle_reconfiguration_with_sync
(
mac
,
module_id
,
cc_idP
,
cell_group_config
->
spCellConfig
->
reconfigurationWithSync
);
mac
->
state
=
UE_NOT_SYNC
;
mac
->
ra
.
ra_state
=
RA_UE_IDLE
;
mac
->
physCellId
=
*
scc
->
physCellId
;
nr_ue_mac_default_configs
(
mac
);
if
(
!
get_softmodem_params
()
->
emulate_l1
)
{
mac
->
synch_request
.
Mod_id
=
module_id
;
mac
->
synch_request
.
CC_id
=
cc_idP
;
mac
->
synch_request
.
synch_req
.
target_Nid_cell
=
mac
->
physCellId
;
mac
->
if_module
->
synch_request
(
&
mac
->
synch_request
);
}
mac
->
crnti
=
cell_group_config
->
spCellConfig
->
reconfigurationWithSync
->
newUE_Identity
;
LOG_I
(
NR_MAC
,
"Configuring CRNTI %x
\n
"
,
mac
->
crnti
);
configure_current_BWP
(
mac
,
NULL
,
cell_group_config
);
config_common_ue
(
mac
,
scc
,
module_id
,
cc_idP
);
nr_ue_mac_default_configs
(
mac
);
if
(
!
get_softmodem_params
()
->
emulate_l1
)
{
mac
->
if_module
->
phy_config_request
(
&
mac
->
phy_config
);
mac
->
phy_config_request_sent
=
true
;
}
// Setup the SSB to Rach Occasions mapping according to the config
build_ssb_to_ro_map
(
mac
);
}
else
{
configure_current_BWP
(
mac
,
NULL
,
cell_group_config
);
}
configure_current_BWP
(
mac
,
NULL
,
cell_group_config
);
}
void
nr_rrc_mac_config_req_scg
(
module_id_t
module_id
,
int
cc_idP
,
NR_CellGroupConfig_t
*
scell_group_config
)
{
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
module_id
);
RA_config_t
*
ra
=
&
mac
->
ra
;
AssertFatal
(
scell_group_config
,
"scell_group_config cannot be NULL
\n
"
);
mac
->
cg
=
scell_group_config
;
mac
->
servCellIndex
=
*
scell_group_config
->
spCellConfig
->
servCellIndex
;
if
(
scell_group_config
->
spCellConfig
->
reconfigurationWithSync
)
{
if
(
scell_group_config
->
spCellConfig
->
reconfigurationWithSync
->
rach_ConfigDedicated
)
{
ra
->
rach_ConfigDedicated
=
scell_group_config
->
spCellConfig
->
reconfigurationWithSync
->
rach_ConfigDedicated
->
choice
.
uplink
;
}
NR_ServingCellConfigCommon_t
*
scc
=
scell_group_config
->
spCellConfig
->
reconfigurationWithSync
->
spCellConfigCommon
;
mac
->
bwp_dlcommon
=
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
;
mac
->
bwp_ulcommon
=
scc
->
uplinkConfigCommon
->
initialUplinkBWP
;
mac
->
dmrs_TypeA_Position
=
scc
->
dmrs_TypeA_Position
;
mac
->
tdd_UL_DL_ConfigurationCommon
=
scc
->
tdd_UL_DL_ConfigurationCommon
;
mac
->
p_Max
=
scc
->
uplinkConfigCommon
->
frequencyInfoUL
->
p_Max
;
mac
->
nr_band
=
*
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
0
];
mac
->
physCellId
=
*
scc
->
physCellId
;
config_common_ue
(
mac
,
scc
,
module_id
,
cc_idP
);
mac
->
crnti
=
scell_group_config
->
spCellConfig
->
reconfigurationWithSync
->
newUE_Identity
;
LOG_I
(
MAC
,
"Configuring CRNTI %x
\n
"
,
mac
->
crnti
);
}
if
(
scell_group_config
->
spCellConfig
->
reconfigurationWithSync
)
handle_reconfiguration_with_sync
(
mac
,
module_id
,
cc_idP
,
scell_group_config
->
spCellConfig
->
reconfigurationWithSync
);
configure_current_BWP
(
mac
,
NULL
,
scell_group_config
);
// Setup the SSB to Rach Occasions mapping according to the config
build_ssb_to_ro_map
(
mac
);
...
...
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
View file @
fe99f633
...
...
@@ -1248,8 +1248,8 @@ int nr_ue_dl_indication(nr_downlink_indication_t *dl_info)
return
ret_mask
;
}
nr_ue_if_module_t
*
nr_ue_if_module_init
(
uint32_t
module_id
)
{
nr_ue_if_module_t
*
nr_ue_if_module_init
(
uint32_t
module_id
)
{
if
(
nr_ue_if_module_inst
[
module_id
]
==
NULL
)
{
nr_ue_if_module_inst
[
module_id
]
=
(
nr_ue_if_module_t
*
)
malloc
(
sizeof
(
nr_ue_if_module_t
));
memset
((
void
*
)
nr_ue_if_module_inst
[
module_id
],
0
,
sizeof
(
nr_ue_if_module_t
));
...
...
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