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
Michael Black
OpenXG-RAN
Commits
296d930f
Commit
296d930f
authored
Mar 31, 2023
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make most functions in nr_rrc_config.c static
parent
b62474bd
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
111 additions
and
166 deletions
+111
-166
openair2/RRC/NR/nr_rrc_config.c
openair2/RRC/NR/nr_rrc_config.c
+110
-107
openair2/RRC/NR/nr_rrc_config.h
openair2/RRC/NR/nr_rrc_config.h
+1
-59
No files found.
openair2/RRC/NR/nr_rrc_config.c
View file @
296d930f
...
@@ -36,39 +36,7 @@
...
@@ -36,39 +36,7 @@
const
uint8_t
slotsperframe
[
5
]
=
{
10
,
20
,
40
,
80
,
160
};
const
uint8_t
slotsperframe
[
5
]
=
{
10
,
20
,
40
,
80
,
160
};
NR_MAC_CellGroupConfig_t
*
configure_mac_cellgroup
(
void
)
static
NR_SearchSpace_t
*
rrc_searchspace_config
(
bool
is_common
,
int
searchspaceid
,
int
coresetid
)
{
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
));
mac_CellGroupConfig
->
bsr_Config
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
bsr_Config
));
mac_CellGroupConfig
->
bsr_Config
->
periodicBSR_Timer
=
NR_BSR_Config__periodicBSR_Timer_sf10
;
mac_CellGroupConfig
->
bsr_Config
->
retxBSR_Timer
=
NR_BSR_Config__retxBSR_Timer_sf80
;
mac_CellGroupConfig
->
tag_Config
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
tag_Config
));
mac_CellGroupConfig
->
tag_Config
->
tag_ToReleaseList
=
NULL
;
mac_CellGroupConfig
->
tag_Config
->
tag_ToAddModList
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
tag_Config
->
tag_ToAddModList
));
struct
NR_TAG
*
tag
=
calloc
(
1
,
sizeof
(
*
tag
));
tag
->
tag_Id
=
0
;
tag
->
timeAlignmentTimer
=
NR_TimeAlignmentTimer_infinity
;
asn1cSeqAdd
(
&
mac_CellGroupConfig
->
tag_Config
->
tag_ToAddModList
->
list
,
tag
);
set_phr_config
(
mac_CellGroupConfig
);
mac_CellGroupConfig
->
schedulingRequestConfig
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
schedulingRequestConfig
));
mac_CellGroupConfig
->
schedulingRequestConfig
->
schedulingRequestToAddModList
=
CALLOC
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
schedulingRequestConfig
->
schedulingRequestToAddModList
));
struct
NR_SchedulingRequestToAddMod
*
schedulingrequestlist
=
CALLOC
(
1
,
sizeof
(
*
schedulingrequestlist
));
schedulingrequestlist
->
schedulingRequestId
=
0
;
schedulingrequestlist
->
sr_ProhibitTimer
=
NULL
;
schedulingrequestlist
->
sr_TransMax
=
NR_SchedulingRequestToAddMod__sr_TransMax_n64
;
asn1cSeqAdd
(
&
(
mac_CellGroupConfig
->
schedulingRequestConfig
->
schedulingRequestToAddModList
->
list
),
schedulingrequestlist
);
mac_CellGroupConfig
->
skipUplinkTxDynamic
=
false
;
mac_CellGroupConfig
->
ext1
=
NULL
;
return
mac_CellGroupConfig
;
}
NR_SearchSpace_t
*
rrc_searchspace_config
(
bool
is_common
,
int
searchspaceid
,
int
coresetid
)
{
{
NR_SearchSpace_t
*
ss
=
calloc
(
1
,
sizeof
(
*
ss
));
NR_SearchSpace_t
*
ss
=
calloc
(
1
,
sizeof
(
*
ss
));
...
@@ -112,7 +80,7 @@ NR_SearchSpace_t *rrc_searchspace_config(bool is_common,
...
@@ -112,7 +80,7 @@ NR_SearchSpace_t *rrc_searchspace_config(bool is_common,
return
ss
;
return
ss
;
}
}
NR_ControlResourceSet_t
*
get_coreset_config
(
int
bwp_id
,
int
curr_bwp
,
uint64_t
ssb_bitmap
)
static
NR_ControlResourceSet_t
*
get_coreset_config
(
int
bwp_id
,
int
curr_bwp
,
uint64_t
ssb_bitmap
)
{
{
NR_ControlResourceSet_t
*
coreset
=
calloc
(
1
,
sizeof
(
*
coreset
));
NR_ControlResourceSet_t
*
coreset
=
calloc
(
1
,
sizeof
(
*
coreset
));
AssertFatal
(
coreset
!=
NULL
,
"out of memory
\n
"
);
AssertFatal
(
coreset
!=
NULL
,
"out of memory
\n
"
);
...
@@ -148,7 +116,8 @@ NR_ControlResourceSet_t *get_coreset_config(int bwp_id, int curr_bwp, uint64_t s
...
@@ -148,7 +116,8 @@ NR_ControlResourceSet_t *get_coreset_config(int bwp_id, int curr_bwp, uint64_t s
return
coreset
;
return
coreset
;
}
}
uint64_t
get_ssb_bitmap
(
const
NR_ServingCellConfigCommon_t
*
scc
)
{
static
uint64_t
get_ssb_bitmap
(
const
NR_ServingCellConfigCommon_t
*
scc
)
{
uint64_t
bitmap
=
0
;
uint64_t
bitmap
=
0
;
switch
(
scc
->
ssb_PositionsInBurst
->
present
)
{
switch
(
scc
->
ssb_PositionsInBurst
->
present
)
{
case
1
:
case
1
:
...
@@ -168,8 +137,8 @@ uint64_t get_ssb_bitmap(const NR_ServingCellConfigCommon_t *scc) {
...
@@ -168,8 +137,8 @@ uint64_t get_ssb_bitmap(const NR_ServingCellConfigCommon_t *scc) {
return
bitmap
;
return
bitmap
;
}
}
void
set_csirs_periodicity
(
NR_NZP_CSI_RS_Resource_t
*
nzpcsi0
,
int
uid
,
int
nb_slots_per_period
)
{
static
void
set_csirs_periodicity
(
NR_NZP_CSI_RS_Resource_t
*
nzpcsi0
,
int
uid
,
int
nb_slots_per_period
)
{
nzpcsi0
->
periodicityAndOffset
=
calloc
(
1
,
sizeof
(
*
nzpcsi0
->
periodicityAndOffset
));
nzpcsi0
->
periodicityAndOffset
=
calloc
(
1
,
sizeof
(
*
nzpcsi0
->
periodicityAndOffset
));
int
ideal_period
=
nb_slots_per_period
*
MAX_MOBILES_PER_GNB
;
int
ideal_period
=
nb_slots_per_period
*
MAX_MOBILES_PER_GNB
;
...
@@ -215,14 +184,14 @@ void set_csirs_periodicity(NR_NZP_CSI_RS_Resource_t *nzpcsi0, int uid, int nb_sl
...
@@ -215,14 +184,14 @@ void set_csirs_periodicity(NR_NZP_CSI_RS_Resource_t *nzpcsi0, int uid, int nb_sl
}
}
}
}
void
config_csirs
(
const
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
,
static
void
config_csirs
(
const
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
,
NR_CSI_MeasConfig_t
*
csi_MeasConfig
,
NR_CSI_MeasConfig_t
*
csi_MeasConfig
,
int
uid
,
int
uid
,
int
num_dl_antenna_ports
,
int
num_dl_antenna_ports
,
int
curr_bwp
,
int
curr_bwp
,
int
do_csirs
,
int
do_csirs
,
int
id
)
{
int
id
)
{
if
(
do_csirs
)
{
if
(
do_csirs
)
{
if
(
!
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
)
if
(
!
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
)
...
@@ -307,9 +276,9 @@ void config_csirs(const NR_ServingCellConfigCommon_t *servingcellconfigcommon,
...
@@ -307,9 +276,9 @@ void config_csirs(const NR_ServingCellConfigCommon_t *servingcellconfigcommon,
csi_MeasConfig
->
nzp_CSI_RS_ResourceToReleaseList
=
NULL
;
csi_MeasConfig
->
nzp_CSI_RS_ResourceToReleaseList
=
NULL
;
}
}
void
set_csiim_offset
(
struct
NR_CSI_ResourcePeriodicityAndOffset
*
periodicityAndOffset
,
static
void
set_csiim_offset
(
struct
NR_CSI_ResourcePeriodicityAndOffset
*
periodicityAndOffset
,
struct
NR_CSI_ResourcePeriodicityAndOffset
*
target_periodicityAndOffset
)
{
struct
NR_CSI_ResourcePeriodicityAndOffset
*
target_periodicityAndOffset
)
{
switch
(
periodicityAndOffset
->
present
)
{
switch
(
periodicityAndOffset
->
present
)
{
case
NR_CSI_ResourcePeriodicityAndOffset_PR_slots4
:
case
NR_CSI_ResourcePeriodicityAndOffset_PR_slots4
:
periodicityAndOffset
->
choice
.
slots4
=
target_periodicityAndOffset
->
choice
.
slots4
;
periodicityAndOffset
->
choice
.
slots4
=
target_periodicityAndOffset
->
choice
.
slots4
;
...
@@ -356,9 +325,12 @@ void set_csiim_offset(struct NR_CSI_ResourcePeriodicityAndOffset *periodicityAnd
...
@@ -356,9 +325,12 @@ void set_csiim_offset(struct NR_CSI_ResourcePeriodicityAndOffset *periodicityAnd
}
}
void
config_csiim
(
int
do_csirs
,
int
dl_antenna_ports
,
int
curr_bwp
,
static
void
config_csiim
(
int
do_csirs
,
NR_CSI_MeasConfig_t
*
csi_MeasConfig
,
int
id
)
{
int
dl_antenna_ports
,
int
curr_bwp
,
NR_CSI_MeasConfig_t
*
csi_MeasConfig
,
int
id
)
{
if
(
do_csirs
&&
dl_antenna_ports
>
1
)
{
if
(
do_csirs
&&
dl_antenna_ports
>
1
)
{
if
(
!
csi_MeasConfig
->
csi_IM_ResourceToAddModList
)
if
(
!
csi_MeasConfig
->
csi_IM_ResourceToAddModList
)
csi_MeasConfig
->
csi_IM_ResourceToAddModList
=
calloc
(
1
,
sizeof
(
*
csi_MeasConfig
->
csi_IM_ResourceToAddModList
));
csi_MeasConfig
->
csi_IM_ResourceToAddModList
=
calloc
(
1
,
sizeof
(
*
csi_MeasConfig
->
csi_IM_ResourceToAddModList
));
...
@@ -430,7 +402,7 @@ long rrc_get_max_nr_csrs(const int max_rbs, const long b_SRS) {
...
@@ -430,7 +402,7 @@ long rrc_get_max_nr_csrs(const int max_rbs, const long b_SRS) {
return
c_srs
;
return
c_srs
;
}
}
struct
NR_SRS_Resource__resourceType__periodic
*
configure_periodic_srs
(
const
NR_ServingCellConfigCommon_t
*
scc
,
st
atic
st
ruct
NR_SRS_Resource__resourceType__periodic
*
configure_periodic_srs
(
const
NR_ServingCellConfigCommon_t
*
scc
,
const
int
uid
)
const
int
uid
)
{
{
...
@@ -504,7 +476,7 @@ struct NR_SRS_Resource__resourceType__periodic *configure_periodic_srs(const NR_
...
@@ -504,7 +476,7 @@ struct NR_SRS_Resource__resourceType__periodic *configure_periodic_srs(const NR_
return
periodic_srs
;
return
periodic_srs
;
}
}
void
config_srs
(
const
NR_ServingCellConfigCommon_t
*
scc
,
static
void
config_srs
(
const
NR_ServingCellConfigCommon_t
*
scc
,
NR_SetupRelease_SRS_Config_t
*
setup_release_srs_Config
,
NR_SetupRelease_SRS_Config_t
*
setup_release_srs_Config
,
const
NR_UE_NR_Capability_t
*
uecap
,
const
NR_UE_NR_Capability_t
*
uecap
,
const
int
curr_bwp
,
const
int
curr_bwp
,
...
@@ -787,7 +759,7 @@ void nr_rrc_config_ul_tda(NR_ServingCellConfigCommon_t *scc, int min_fb_delay){
...
@@ -787,7 +759,7 @@ void nr_rrc_config_ul_tda(NR_ServingCellConfigCommon_t *scc, int min_fb_delay){
}
}
}
}
void
set_dl_DataToUL_ACK
(
NR_PUCCH_Config_t
*
pucch_Config
,
int
min_feedback_time
,
NR_SubcarrierSpacing_t
subcarrierSpacing
)
static
void
set_dl_DataToUL_ACK
(
NR_PUCCH_Config_t
*
pucch_Config
,
int
min_feedback_time
,
NR_SubcarrierSpacing_t
subcarrierSpacing
)
{
{
pucch_Config
->
dl_DataToUL_ACK
=
calloc
(
1
,
sizeof
(
*
pucch_Config
->
dl_DataToUL_ACK
));
pucch_Config
->
dl_DataToUL_ACK
=
calloc
(
1
,
sizeof
(
*
pucch_Config
->
dl_DataToUL_ACK
));
long
*
delay
[
8
];
long
*
delay
[
8
];
...
@@ -800,7 +772,7 @@ void set_dl_DataToUL_ACK(NR_PUCCH_Config_t *pucch_Config, int min_feedback_time,
...
@@ -800,7 +772,7 @@ void set_dl_DataToUL_ACK(NR_PUCCH_Config_t *pucch_Config, int min_feedback_time,
}
}
// PUCCH resource set 0 for configuration with O_uci <= 2 bits and/or a positive or negative SR (section 9.2.1 of 38.213)
// PUCCH resource set 0 for configuration with O_uci <= 2 bits and/or a positive or negative SR (section 9.2.1 of 38.213)
void
config_pucch_resset0
(
NR_PUCCH_Config_t
*
pucch_Config
,
int
uid
,
int
curr_bwp
,
const
NR_UE_NR_Capability_t
*
uecap
)
static
void
config_pucch_resset0
(
NR_PUCCH_Config_t
*
pucch_Config
,
int
uid
,
int
curr_bwp
,
const
NR_UE_NR_Capability_t
*
uecap
)
{
{
NR_PUCCH_ResourceSet_t
*
pucchresset
=
calloc
(
1
,
sizeof
(
*
pucchresset
));
NR_PUCCH_ResourceSet_t
*
pucchresset
=
calloc
(
1
,
sizeof
(
*
pucchresset
));
pucchresset
->
pucch_ResourceSetId
=
0
;
pucchresset
->
pucch_ResourceSetId
=
0
;
...
@@ -831,7 +803,7 @@ void config_pucch_resset0(NR_PUCCH_Config_t *pucch_Config, int uid, int curr_bwp
...
@@ -831,7 +803,7 @@ void config_pucch_resset0(NR_PUCCH_Config_t *pucch_Config, int uid, int curr_bwp
// PUCCH resource set 1 for configuration with O_uci > 2 bits (currently format2)
// PUCCH resource set 1 for configuration with O_uci > 2 bits (currently format2)
void
config_pucch_resset1
(
NR_PUCCH_Config_t
*
pucch_Config
,
const
NR_UE_NR_Capability_t
*
uecap
)
static
void
config_pucch_resset1
(
NR_PUCCH_Config_t
*
pucch_Config
,
const
NR_UE_NR_Capability_t
*
uecap
)
{
{
NR_PUCCH_ResourceSet_t
*
pucchresset
=
calloc
(
1
,
sizeof
(
*
pucchresset
));
NR_PUCCH_ResourceSet_t
*
pucchresset
=
calloc
(
1
,
sizeof
(
*
pucchresset
));
pucchresset
->
pucch_ResourceSetId
=
1
;
pucchresset
->
pucch_ResourceSetId
=
1
;
...
@@ -958,9 +930,7 @@ static void set_SR_periodandoffset(NR_SchedulingRequestResourceConfig_t *schedul
...
@@ -958,9 +930,7 @@ static void set_SR_periodandoffset(NR_SchedulingRequestResourceConfig_t *schedul
}
}
}
}
void
scheduling_request_config
(
const
NR_ServingCellConfigCommon_t
*
scc
,
static
void
scheduling_request_config
(
const
NR_ServingCellConfigCommon_t
*
scc
,
NR_PUCCH_Config_t
*
pucch_Config
,
int
scs
)
NR_PUCCH_Config_t
*
pucch_Config
,
int
scs
)
{
{
// format with <=2 bits in pucch resource set 0
// format with <=2 bits in pucch resource set 0
NR_PUCCH_ResourceSet_t
*
pucchresset
=
pucch_Config
->
resourceSetToAddModList
->
list
.
array
[
0
];
NR_PUCCH_ResourceSet_t
*
pucchresset
=
pucch_Config
->
resourceSetToAddModList
->
list
.
array
[
0
];
...
@@ -979,11 +949,11 @@ void scheduling_request_config(const NR_ServingCellConfigCommon_t *scc,
...
@@ -979,11 +949,11 @@ void scheduling_request_config(const NR_ServingCellConfigCommon_t *scc,
asn1cSeqAdd
(
&
pucch_Config
->
schedulingRequestResourceToAddModList
->
list
,
schedulingRequestResourceConfig
);
asn1cSeqAdd
(
&
pucch_Config
->
schedulingRequestResourceToAddModList
->
list
,
schedulingRequestResourceConfig
);
}
}
void
set_dl_mcs_table
(
int
scs
,
static
void
set_dl_mcs_table
(
int
scs
,
const
NR_UE_NR_Capability_t
*
cap
,
const
NR_UE_NR_Capability_t
*
cap
,
NR_BWP_DownlinkDedicated_t
*
bwp_Dedicated
,
NR_BWP_DownlinkDedicated_t
*
bwp_Dedicated
,
const
NR_ServingCellConfigCommon_t
*
scc
)
{
const
NR_ServingCellConfigCommon_t
*
scc
)
{
if
(
cap
==
NULL
){
if
(
cap
==
NULL
){
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
mcs_Table
=
NULL
;
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
mcs_Table
=
NULL
;
return
;
return
;
...
@@ -1024,7 +994,7 @@ void set_dl_mcs_table(int scs,
...
@@ -1024,7 +994,7 @@ void set_dl_mcs_table(int scs,
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
mcs_Table
=
NULL
;
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
mcs_Table
=
NULL
;
}
}
struct
NR_SetupRelease_PUSCH_Config
*
config_pusch
(
NR_PUSCH_Config_t
*
pusch_Config
)
st
atic
st
ruct
NR_SetupRelease_PUSCH_Config
*
config_pusch
(
NR_PUSCH_Config_t
*
pusch_Config
)
{
{
struct
NR_SetupRelease_PUSCH_Config
*
setup_puschconfig
=
calloc
(
1
,
sizeof
(
*
setup_puschconfig
));
struct
NR_SetupRelease_PUSCH_Config
*
setup_puschconfig
=
calloc
(
1
,
sizeof
(
*
setup_puschconfig
));
setup_puschconfig
->
present
=
NR_SetupRelease_PUSCH_Config_PR_setup
;
setup_puschconfig
->
present
=
NR_SetupRelease_PUSCH_Config_PR_setup
;
...
@@ -1105,7 +1075,7 @@ struct NR_SetupRelease_PUSCH_Config *config_pusch(NR_PUSCH_Config_t *pusch_Confi
...
@@ -1105,7 +1075,7 @@ struct NR_SetupRelease_PUSCH_Config *config_pusch(NR_PUSCH_Config_t *pusch_Confi
return
setup_puschconfig
;
return
setup_puschconfig
;
}
}
struct
NR_SetupRelease_PDSCH_Config
*
config_pdsch
(
uint64_t
ssb_bitmap
,
int
bwp_Id
,
int
dl_antenna_ports
)
st
atic
st
ruct
NR_SetupRelease_PDSCH_Config
*
config_pdsch
(
uint64_t
ssb_bitmap
,
int
bwp_Id
,
int
dl_antenna_ports
)
{
{
struct
NR_SetupRelease_PDSCH_Config
*
setup_pdsch_Config
=
calloc
(
1
,
sizeof
(
*
setup_pdsch_Config
));
struct
NR_SetupRelease_PDSCH_Config
*
setup_pdsch_Config
=
calloc
(
1
,
sizeof
(
*
setup_pdsch_Config
));
setup_pdsch_Config
->
present
=
NR_SetupRelease_PDSCH_Config_PR_setup
;
setup_pdsch_Config
->
present
=
NR_SetupRelease_PDSCH_Config_PR_setup
;
...
@@ -1148,7 +1118,7 @@ struct NR_SetupRelease_PDSCH_Config *config_pdsch(uint64_t ssb_bitmap, int bwp_I
...
@@ -1148,7 +1118,7 @@ struct NR_SetupRelease_PDSCH_Config *config_pdsch(uint64_t ssb_bitmap, int bwp_I
return
setup_pdsch_Config
;
return
setup_pdsch_Config
;
}
}
void
config_downlinkBWP
(
NR_BWP_Downlink_t
*
bwp
,
static
void
config_downlinkBWP
(
NR_BWP_Downlink_t
*
bwp
,
const
NR_ServingCellConfigCommon_t
*
scc
,
const
NR_ServingCellConfigCommon_t
*
scc
,
const
NR_ServingCellConfig_t
*
servingcellconfigdedicated
,
const
NR_ServingCellConfig_t
*
servingcellconfigdedicated
,
const
NR_UE_NR_Capability_t
*
uecap
,
const
NR_UE_NR_Capability_t
*
uecap
,
...
@@ -1234,7 +1204,7 @@ void config_downlinkBWP(NR_BWP_Downlink_t *bwp,
...
@@ -1234,7 +1204,7 @@ void config_downlinkBWP(NR_BWP_Downlink_t *bwp,
scc
);
scc
);
}
}
void
config_uplinkBWP
(
NR_BWP_Uplink_t
*
ubwp
,
static
void
config_uplinkBWP
(
NR_BWP_Uplink_t
*
ubwp
,
long
bwp_loop
,
long
bwp_loop
,
bool
is_SA
,
bool
is_SA
,
int
uid
,
int
uid
,
...
@@ -1316,7 +1286,7 @@ void config_uplinkBWP(NR_BWP_Uplink_t *ubwp,
...
@@ -1316,7 +1286,7 @@ void config_uplinkBWP(NR_BWP_Uplink_t *ubwp,
ubwp
->
bwp_Dedicated
->
beamFailureRecoveryConfig
=
NULL
;
ubwp
->
bwp_Dedicated
->
beamFailureRecoveryConfig
=
NULL
;
}
}
void
set_phr_config
(
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
)
static
void
set_phr_config
(
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
)
{
{
mac_CellGroupConfig
->
phr_Config
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
phr_Config
));
mac_CellGroupConfig
->
phr_Config
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
phr_Config
));
mac_CellGroupConfig
->
phr_Config
->
present
=
NR_SetupRelease_PHR_Config_PR_setup
;
mac_CellGroupConfig
->
phr_Config
->
present
=
NR_SetupRelease_PHR_Config_PR_setup
;
...
@@ -1326,7 +1296,7 @@ void set_phr_config(NR_MAC_CellGroupConfig_t *mac_CellGroupConfig)
...
@@ -1326,7 +1296,7 @@ void set_phr_config(NR_MAC_CellGroupConfig_t *mac_CellGroupConfig)
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
phr_Tx_PowerFactorChange
=
NR_PHR_Config__phr_Tx_PowerFactorChange_dB1
;
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
phr_Tx_PowerFactorChange
=
NR_PHR_Config__phr_Tx_PowerFactorChange_dB1
;
}
}
void
set_csi_meas_periodicity
(
const
NR_ServingCellConfigCommon_t
*
scc
,
NR_CSI_ReportConfig_t
*
csirep
,
int
uid
,
bool
is_rsrp
)
static
void
set_csi_meas_periodicity
(
const
NR_ServingCellConfigCommon_t
*
scc
,
NR_CSI_ReportConfig_t
*
csirep
,
int
uid
,
bool
is_rsrp
)
{
{
const
NR_TDD_UL_DL_Pattern_t
*
tdd
=
scc
->
tdd_UL_DL_ConfigurationCommon
?
&
scc
->
tdd_UL_DL_ConfigurationCommon
->
pattern1
:
NULL
;
const
NR_TDD_UL_DL_Pattern_t
*
tdd
=
scc
->
tdd_UL_DL_ConfigurationCommon
?
&
scc
->
tdd_UL_DL_ConfigurationCommon
->
pattern1
:
NULL
;
const
int
n_slots_frame
=
slotsperframe
[
*
scc
->
ssbSubcarrierSpacing
];
const
int
n_slots_frame
=
slotsperframe
[
*
scc
->
ssbSubcarrierSpacing
];
...
@@ -1371,7 +1341,9 @@ void set_csi_meas_periodicity(const NR_ServingCellConfigCommon_t *scc, NR_CSI_Re
...
@@ -1371,7 +1341,9 @@ void set_csi_meas_periodicity(const NR_ServingCellConfigCommon_t *scc, NR_CSI_Re
}
}
}
}
void
config_csi_codebook
(
const
rrc_pdsch_AntennaPorts_t
*
antennaports
,
const
int
max_layers
,
struct
NR_CodebookConfig
*
codebookConfig
)
static
void
config_csi_codebook
(
const
rrc_pdsch_AntennaPorts_t
*
antennaports
,
const
int
max_layers
,
struct
NR_CodebookConfig
*
codebookConfig
)
{
{
const
int
num_ant_ports
=
antennaports
->
N1
*
antennaports
->
N2
*
antennaports
->
XP
;
const
int
num_ant_ports
=
antennaports
->
N1
*
antennaports
->
N2
*
antennaports
->
XP
;
codebookConfig
->
codebookType
.
present
=
NR_CodebookConfig__codebookType_PR_type1
;
codebookConfig
->
codebookType
.
present
=
NR_CodebookConfig__codebookType_PR_type1
;
...
@@ -1470,7 +1442,7 @@ void config_csi_codebook(const rrc_pdsch_AntennaPorts_t *antennaports, const int
...
@@ -1470,7 +1442,7 @@ void config_csi_codebook(const rrc_pdsch_AntennaPorts_t *antennaports, const int
codebookConfig
->
codebookType
.
choice
.
type1
->
codebookMode
=
1
;
codebookConfig
->
codebookType
.
choice
.
type1
->
codebookMode
=
1
;
}
}
void
config_csi_meas_report
(
NR_CSI_MeasConfig_t
*
csi_MeasConfig
,
static
void
config_csi_meas_report
(
NR_CSI_MeasConfig_t
*
csi_MeasConfig
,
const
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
,
const
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
,
NR_PUCCH_CSI_Resource_t
*
pucchcsires
,
NR_PUCCH_CSI_Resource_t
*
pucchcsires
,
struct
NR_SetupRelease_PDSCH_Config
*
pdsch_Config
,
struct
NR_SetupRelease_PDSCH_Config
*
pdsch_Config
,
...
@@ -1535,7 +1507,7 @@ void config_csi_meas_report(NR_CSI_MeasConfig_t *csi_MeasConfig,
...
@@ -1535,7 +1507,7 @@ void config_csi_meas_report(NR_CSI_MeasConfig_t *csi_MeasConfig,
asn1cSeqAdd
(
&
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
,
csirep
);
asn1cSeqAdd
(
&
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
,
csirep
);
}
}
void
config_rsrp_meas_report
(
NR_CSI_MeasConfig_t
*
csi_MeasConfig
,
static
void
config_rsrp_meas_report
(
NR_CSI_MeasConfig_t
*
csi_MeasConfig
,
const
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
,
const
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
,
NR_PUCCH_CSI_Resource_t
*
pucchcsires
,
NR_PUCCH_CSI_Resource_t
*
pucchcsires
,
int
do_csi
,
// if rsrp is based on CSI or SSB
int
do_csi
,
// if rsrp is based on CSI or SSB
...
@@ -2019,6 +1991,37 @@ int encode_SIB1_NR(NR_BCCH_DL_SCH_Message_t *sib1, uint8_t *buffer, int max_buff
...
@@ -2019,6 +1991,37 @@ int encode_SIB1_NR(NR_BCCH_DL_SCH_Message_t *sib1, uint8_t *buffer, int max_buff
return
(
enc_rval
.
encoded
+
7
)
/
8
;
return
(
enc_rval
.
encoded
+
7
)
/
8
;
}
}
static
NR_MAC_CellGroupConfig_t
*
configure_mac_cellgroup
(
void
)
{
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
));
mac_CellGroupConfig
->
bsr_Config
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
bsr_Config
));
mac_CellGroupConfig
->
bsr_Config
->
periodicBSR_Timer
=
NR_BSR_Config__periodicBSR_Timer_sf10
;
mac_CellGroupConfig
->
bsr_Config
->
retxBSR_Timer
=
NR_BSR_Config__retxBSR_Timer_sf80
;
mac_CellGroupConfig
->
tag_Config
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
tag_Config
));
mac_CellGroupConfig
->
tag_Config
->
tag_ToReleaseList
=
NULL
;
mac_CellGroupConfig
->
tag_Config
->
tag_ToAddModList
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
tag_Config
->
tag_ToAddModList
));
struct
NR_TAG
*
tag
=
calloc
(
1
,
sizeof
(
*
tag
));
tag
->
tag_Id
=
0
;
tag
->
timeAlignmentTimer
=
NR_TimeAlignmentTimer_infinity
;
asn1cSeqAdd
(
&
mac_CellGroupConfig
->
tag_Config
->
tag_ToAddModList
->
list
,
tag
);
set_phr_config
(
mac_CellGroupConfig
);
mac_CellGroupConfig
->
schedulingRequestConfig
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
schedulingRequestConfig
));
mac_CellGroupConfig
->
schedulingRequestConfig
->
schedulingRequestToAddModList
=
CALLOC
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
schedulingRequestConfig
->
schedulingRequestToAddModList
));
struct
NR_SchedulingRequestToAddMod
*
schedulingrequestlist
=
CALLOC
(
1
,
sizeof
(
*
schedulingrequestlist
));
schedulingrequestlist
->
schedulingRequestId
=
0
;
schedulingrequestlist
->
sr_ProhibitTimer
=
NULL
;
schedulingrequestlist
->
sr_TransMax
=
NR_SchedulingRequestToAddMod__sr_TransMax_n64
;
asn1cSeqAdd
(
&
(
mac_CellGroupConfig
->
schedulingRequestConfig
->
schedulingRequestToAddModList
->
list
),
schedulingrequestlist
);
mac_CellGroupConfig
->
skipUplinkTxDynamic
=
false
;
mac_CellGroupConfig
->
ext1
=
NULL
;
return
mac_CellGroupConfig
;
}
static
NR_SpCellConfig_t
*
get_initial_SpCellConfig
(
int
uid
,
static
NR_SpCellConfig_t
*
get_initial_SpCellConfig
(
int
uid
,
const
NR_ServingCellConfigCommon_t
*
scc
,
const
NR_ServingCellConfigCommon_t
*
scc
,
const
NR_ServingCellConfig_t
*
servingcellconfigdedicated
,
const
NR_ServingCellConfig_t
*
servingcellconfigdedicated
,
...
...
openair2/RRC/NR/nr_rrc_config.h
View file @
296d930f
...
@@ -34,75 +34,17 @@
...
@@ -34,75 +34,17 @@
#include "nr_rrc_defs.h"
#include "nr_rrc_defs.h"
#include "openair2/RRC/NR/MESSAGES/asn1_msg.h"
#include "openair2/RRC/NR/MESSAGES/asn1_msg.h"
void
set_phr_config
(
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
);
uint64_t
get_ssb_bitmap
(
const
NR_ServingCellConfigCommon_t
*
scc
);
NR_ControlResourceSet_t
*
get_coreset_config
(
int
bwp_id
,
int
curr_bwp
,
uint64_t
ssb_bitmap
);
NR_SearchSpace_t
*
rrc_searchspace_config
(
bool
is_common
,
int
searchspaceid
,
int
coresetid
);
void
nr_rrc_config_dl_tda
(
struct
NR_PDSCH_TimeDomainResourceAllocationList
*
pdsch_TimeDomainAllocationList
,
void
nr_rrc_config_dl_tda
(
struct
NR_PDSCH_TimeDomainResourceAllocationList
*
pdsch_TimeDomainAllocationList
,
frame_type_t
frame_type
,
frame_type_t
frame_type
,
NR_TDD_UL_DL_ConfigCommon_t
*
tdd_UL_DL_ConfigurationCommon
,
NR_TDD_UL_DL_ConfigCommon_t
*
tdd_UL_DL_ConfigurationCommon
,
int
curr_bwp
);
int
curr_bwp
);
void
nr_rrc_config_ul_tda
(
NR_ServingCellConfigCommon_t
*
scc
,
int
min_fb_delay
);
void
nr_rrc_config_ul_tda
(
NR_ServingCellConfigCommon_t
*
scc
,
int
min_fb_delay
);
void
config_pucch_resset0
(
NR_PUCCH_Config_t
*
pucch_Config
,
int
uid
,
int
curr_bwp
,
const
NR_UE_NR_Capability_t
*
uecap
);
void
config_pucch_resset1
(
NR_PUCCH_Config_t
*
pucch_Config
,
const
NR_UE_NR_Capability_t
*
uecap
);
void
set_dl_DataToUL_ACK
(
NR_PUCCH_Config_t
*
pucch_Config
,
int
min_feedback_time
,
NR_SubcarrierSpacing_t
subcarrierSpacing
);
void
set_pucch_power_config
(
NR_PUCCH_Config_t
*
pucch_Config
,
int
do_csirs
);
void
scheduling_request_config
(
const
NR_ServingCellConfigCommon_t
*
scc
,
NR_PUCCH_Config_t
*
pucch_Config
,
int
scs
);
void
config_rsrp_meas_report
(
NR_CSI_MeasConfig_t
*
csi_MeasConfig
,
const
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
,
NR_PUCCH_CSI_Resource_t
*
pucchcsires
,
int
do_csi
,
int
rep_id
,
int
uid
);
void
config_csi_meas_report
(
NR_CSI_MeasConfig_t
*
csi_MeasConfig
,
const
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
,
NR_PUCCH_CSI_Resource_t
*
pucchcsires
,
struct
NR_SetupRelease_PDSCH_Config
*
pdsch_Config
,
const
rrc_pdsch_AntennaPorts_t
*
antennaports
,
const
int
max_layers
,
int
rep_id
,
int
uid
);
void
config_csirs
(
const
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
,
NR_CSI_MeasConfig_t
*
csi_MeasConfig
,
int
uid
,
int
num_dl_antenna_ports
,
int
curr_bwp
,
int
do_csirs
,
int
id
);
void
config_csiim
(
int
do_csirs
,
int
dl_antenna_ports
,
int
curr_bwp
,
NR_CSI_MeasConfig_t
*
csi_MeasConfig
,
int
id
);
void
config_srs
(
const
NR_ServingCellConfigCommon_t
*
scc
,
NR_SetupRelease_SRS_Config_t
*
setup_release_srs_Config
,
const
NR_UE_NR_Capability_t
*
uecap
,
const
int
curr_bwp
,
const
int
uid
,
const
int
res_id
,
const
long
maxMIMO_Layers
,
const
int
do_srs
);
struct
NR_SetupRelease_PDSCH_Config
*
config_pdsch
(
uint64_t
ssb_bitmap
,
int
bwp_Id
,
int
dl_antenna_ports
);
void
set_dl_mcs_table
(
int
scs
,
const
NR_UE_NR_Capability_t
*
cap
,
NR_BWP_DownlinkDedicated_t
*
bwp_Dedicated
,
const
NR_ServingCellConfigCommon_t
*
scc
);
void
prepare_sim_uecap
(
NR_UE_NR_Capability_t
*
cap
,
void
prepare_sim_uecap
(
NR_UE_NR_Capability_t
*
cap
,
NR_ServingCellConfigCommon_t
*
scc
,
NR_ServingCellConfigCommon_t
*
scc
,
int
numerology
,
int
numerology
,
int
rbsize
,
int
rbsize
,
int
mcs_table
);
int
mcs_table
);
struct
NR_SetupRelease_PUSCH_Config
*
config_pusch
(
NR_PUSCH_Config_t
*
pusch_Config
);
void
config_downlinkBWP
(
NR_BWP_Downlink_t
*
bwp
,
const
NR_ServingCellConfigCommon_t
*
scc
,
const
NR_ServingCellConfig_t
*
servingcellconfigdedicated
,
const
NR_UE_NR_Capability_t
*
uecap
,
int
dl_antenna_ports
,
bool
force_256qam_off
,
int
bwp_loop
,
bool
is_SA
);
void
config_uplinkBWP
(
NR_BWP_Uplink_t
*
ubwp
,
long
bwp_loop
,
bool
is_SA
,
int
uid
,
const
gNB_RrcConfigurationReq
*
configuration
,
const
NR_ServingCellConfig_t
*
servingcellconfigdedicated
,
const
NR_ServingCellConfigCommon_t
*
scc
,
const
NR_UE_NR_Capability_t
*
uecap
);
NR_MAC_CellGroupConfig_t
*
configure_mac_cellgroup
(
void
);
NR_BCCH_BCH_Message_t
*
get_new_MIB_NR
(
const
NR_ServingCellConfigCommon_t
*
scc
);
NR_BCCH_BCH_Message_t
*
get_new_MIB_NR
(
const
NR_ServingCellConfigCommon_t
*
scc
);
...
...
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