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
aec3cad8
Commit
aec3cad8
authored
Aug 21, 2017
by
kogo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rearranged enb_config.c
parent
d45b6c1f
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
274 additions
and
295 deletions
+274
-295
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+274
-295
No files found.
openair2/ENB_APP/enb_config.c
View file @
aec3cad8
...
@@ -1198,7 +1198,34 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
...
@@ -1198,7 +1198,34 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
libconfig_int
pusch_maxNumRepetitionCEmodeB_r13
=
0
;
libconfig_int
pusch_maxNumRepetitionCEmodeB_r13
=
0
;
libconfig_int
pusch_HoppingOffset_v1310
=
0
;
libconfig_int
pusch_HoppingOffset_v1310
=
0
;
libconfig_int
hyperSFN_r13
=
0
;
libconfig_int
eDRX_Allowed_r13
=
0
;
libconfig_int
q_RxLevMinCE_r13
=
0
;
libconfig_int
q_QualMinRSRQ_CE_r13
=
0
;
libconfig_int
si_WindowLength_BR_r13
=
0
;
libconfig_int
si_RepetitionPattern_r13
=
0
;
libconfig_int
startSymbolBR_r13
=
0
;
libconfig_int
si_HoppingConfigCommon_r13
=
0
;
libconfig_int
si_ValidityTime_r13
=
0
;
libconfig_int
mpdcch_pdsch_HoppingNB_r13
=
0
;
libconfig_int
interval_DLHoppingConfigCommonModeA_r13_val
=
0
;
libconfig_int
interval_DLHoppingConfigCommonModeB_r13_val
=
0
;
libconfig_int
mpdcch_pdsch_HoppingOffset_r13
=
0
;
libconfig_int
preambleTransMax_CE_r13
=
0
;
libconfig_int
mpdcch_startSF_CSS_RA_r13_val
=
0
;
libconfig_int
prach_HoppingOffset_r13
=
0
;
libconfig_int
schedulingInfoSIB1_BR_r13
=
0
;
uint64_t
fdd_DownlinkOrTddSubframeBitmapBR_val_r13
=
0
;
char
*
cellSelectionInfoCE_r13
=
NULL
;
char
*
bandwidthReducedAccessRelatedInfo_r13
=
NULL
;
char
*
fdd_DownlinkOrTddSubframeBitmapBR_r13
=
NULL
;
char
*
fdd_UplinkSubframeBitmapBR_r13
=
NULL
;
char
*
freqHoppingParametersDL_r13
=
NULL
;
char
*
interval_DLHoppingConfigCommonModeA_r13
=
NULL
;
char
*
interval_DLHoppingConfigCommonModeB_r13
=
NULL
;
char
*
prach_ConfigCommon_v1310
=
NULL
;
char
*
mpdcch_startSF_CSS_RA_r13
=
NULL
;
libconfig_int
srb1_timer_poll_retransmit
=
0
;
libconfig_int
srb1_timer_poll_retransmit
=
0
;
...
@@ -2035,7 +2062,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
...
@@ -2035,7 +2062,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
rach_numberOfRA_Preambles
=
(
rach_numberOfRA_Preambles
/
4
)
-
1
;
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
rach_numberOfRA_Preambles
=
(
rach_numberOfRA_Preambles
/
4
)
-
1
;
if
((
rach_numberOfRA_Preambles
<
4
)
||
(
rach_numberOfRA_Preambles
>
64
)
||
((
rach_numberOfRA_Preambles
&
3
)
!=
0
))
if
((
rach_numberOfRA_Preambles
<
4
)
||
(
rach_numberOfRA_Preambles
>
64
)
||
((
rach_numberOfRA_Preambles
&
3
)
!=
0
))
AssertFatal
(
0
,
AssertFatal
(
0
,
...
@@ -2619,56 +2646,78 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
...
@@ -2619,56 +2646,78 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
#ifdef Rel14
#ifdef Rel14
setting_br13
=
config_setting_get_member
(
component_carrier
,
ENB_CONFIG_STRING_BR
);
setting_br13
=
config_setting_get_member
(
component_carrier
,
ENB_CONFIG_STRING_BR
);
if
(
setting_br13
==
NULL
)
{
puts
(
"setting BR is NULL"
);
}
else
{
puts
(
"setting BR is NOT NULL"
);
}
if
(
setting_br13
!=
NULL
)
{
if
(
setting_br13
!=
NULL
)
{
int
cnt
=
0
;
int
cnt
=
0
;
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0
,
&
pucch_NumRepetitionCE_Msg4_Level0_r13
))
if
(
!
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_schedulingInfoSIB1
,
&
schedulingInfoSIB1_BR_r13
))
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d schedulingInfoSIB1_BR_r13!
\n
"
,
RC
.
config_file_name
,
i
);
}
else
{
RRC_CONFIGURATION_REQ
(
msg_p
).
schedulingInfoSIB1_BR_r13
[
j
]
=
schedulingInfoSIB1_BR_r13
;
}
system_info_value_tag_SI_list
=
config_setting_get_member
(
setting_br13
,
ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST
);
int
num_system_info
;
if
(
system_info_value_tag_SI_list
!=
NULL
)
{
{
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level0_r13
[
j
]
=
CALLOC
(
1
,
sizeof
(
long
));
num_system_info
=
config_setting_length
(
system_info_value_tag_SI_list
);
*
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level0_r13
[
j
]
=
pucch_NumRepetitionCE_Msg4_Level0_r13
;
for
(
sys_info_idx
=
0
;
sys_info_idx
<
num_system_info
;
++
sys_info_idx
)
++
cnt
;
{
system_info_value_tag_SI
=
config_setting_get_elem
(
system_info_value_tag_SI_list
,
sys_info_idx
);
if
(
!
(
config_setting_lookup_int
(
system_info_value_tag_SI
,
ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_SI_R13
,
&
systemInfoValueTagSi_r13
))
)
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, system info value tag %d!
\n
"
,
RC
.
config_file_name
,
nb_cc
++
);
}
RRC_CONFIGURATION_REQ
(
msg_p
).
systemInfoValueTagSi_r13
[
j
][
sys_info_idx
]
=
systemInfoValueTagSi_r13
;
}
}
}
else
else
{
{
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level0_r13
[
j
]
=
NULL
;
;
num_system_info
=
0
;
}
}
RRC_CONFIGURATION_REQ
(
msg_p
).
system_info_value_tag_SI_size
[
j
]
=
num_system_info
;
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1
,
&
pucch_NumRepetitionCE_Msg4_Level1_r13
))
if
(
config_setting_lookup_string
(
setting_br13
,
ENB_CONFIG_STRING_CELLSELECTIONINFOCE
,
&
cellSelectionInfoCE_r13
)
&&
!
strcmp
(
cellSelectionInfoCE_r13
,
"ENABLE"
))
{
{
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level1_r13
[
j
]
=
CALLOC
(
1
,
sizeof
(
long
));
RRC_CONFIGURATION_REQ
(
msg_p
).
cellSelectionInfoCE_r13
[
j
]
=
TRUE
;
*
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level1_r13
[
j
]
=
pucch_NumRepetitionCE_Msg4_Level1_r13
;
if
(
!
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_Q_RXLEVMINCE
,
&
q_RxLevMinCE_r13
))
++
cnt
;
}
else
{
{
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level1_r13
[
j
]
=
NULL
;;
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d q_RxLevMinCE_r13!
\n
"
,
RC
.
config_file_name
,
i
);
}
}
RRC_CONFIGURATION_REQ
(
msg_p
).
q_RxLevMinCE_r13
[
j
]
=
q_RxLevMinCE_r13
;
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2
,
&
pucch_NumRepetitionCE_Msg4_Level2
_r13
))
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE
,
&
q_QualMinRSRQ_CE
_r13
))
{
{
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level2_r13
[
j
]
=
CALLOC
(
1
,
sizeof
(
long
));
RRC_CONFIGURATION_REQ
(
msg_p
).
q_QualMinRSRQ_CE_r13
[
j
]
=
calloc
(
1
,
sizeof
(
long
));
*
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level2_r13
[
j
]
=
pucch_NumRepetitionCE_Msg4_Level2
_r13
;
*
RRC_CONFIGURATION_REQ
(
msg_p
).
q_QualMinRSRQ_CE_r13
[
j
]
=
q_QualMinRSRQ_CE
_r13
;
++
cnt
;
}
}
else
else
{
RRC_CONFIGURATION_REQ
(
msg_p
).
q_QualMinRSRQ_CE_r13
[
j
]
=
NULL
;
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level2_r13
[
j
]
=
NULL
;
}
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3
,
&
pucch_NumRepetitionCE_Msg4_Level3_r13
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level3_r13
[
j
]
=
CALLOC
(
1
,
sizeof
(
long
));
*
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level3_r13
[
j
]
=
pucch_NumRepetitionCE_Msg4_Level3_r13
;
++
cnt
;
}
}
else
else
RRC_CONFIGURATION_REQ
(
msg_p
).
cellSelectionInfoCE_r13
[
j
]
=
FALSE
;
if
(
config_setting_lookup_string
(
setting_br13
,
ENB_CONFIG_STRING_BRAccessRelatedInfo
,
&
bandwidthReducedAccessRelatedInfo_r13
)
&&
!
strcmp
(
bandwidthReducedAccessRelatedInfo_r13
,
"ENABLE"
))
{
{
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level3_r13
[
j
]
=
NULL
;;
printf
(
"Enabling BR access SI scheduling parameters
\n
"
);
RRC_CONFIGURATION_REQ
(
msg_p
).
bandwidthReducedAccessRelatedInfo_r13
[
j
]
=
TRUE
;
if
(
!
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR
,
&
si_WindowLength_BR_r13
)
||
!
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_SI_REPETITIONPATTERN
,
&
si_RepetitionPattern_r13
)
||
!
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_STARTSYMBOLBR
,
&
startSymbolBR_r13
)
||
!
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON
,
&
si_HoppingConfigCommon_r13
))
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!
\n
"
,
RC
.
config_file_name
,
i
);
}
}
scheduling_info_br_list
=
config_setting_get_member
(
setting_br13
,
ENB_CONFIG_STRING_SCHEDULING_INFO_LIST
);
scheduling_info_br_list
=
config_setting_get_member
(
setting_br13
,
ENB_CONFIG_STRING_SCHEDULING_INFO_LIST
);
...
@@ -2689,28 +2738,96 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
...
@@ -2689,28 +2738,96 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
RRC_CONFIGURATION_REQ
(
msg_p
).
si_TBS_r13
[
j
][
sched_info_idx
]
=
si_TBS_r13
;
RRC_CONFIGURATION_REQ
(
msg_p
).
si_TBS_r13
[
j
][
sched_info_idx
]
=
si_TBS_r13
;
}
}
system_info_value_tag_SI_list
=
config_setting_get_member
(
setting_br13
,
ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST
);
bool
fdd_downlink_exist
=
config_setting_lookup_string
(
setting_br13
,
ENB_CONFIG_STRING_FDD_DLORTDD_SFB_BR
,
&
fdd_DownlinkOrTddSubframeBitmapBR_r13
);
int
num_system_info
;
if
(
fdd_downlink_exist
)
if
(
system_info_value_tag_SI_list
!=
NULL
)
{
{
num_system_info
=
config_setting_length
(
system_info_value_tag_SI_list
);
RRC_CONFIGURATION_REQ
(
msg_p
).
fdd_DownlinkOrTddSubframeBitmapBR_r13
[
j
]
=
CALLOC
(
1
,
sizeof
(
BOOLEAN_t
));
for
(
sys_info_idx
=
0
;
sys_info_idx
<
num_system_info
;
++
sys_info_idx
)
if
(
!
strcmp
(
fdd_DownlinkOrTddSubframeBitmapBR_r13
,
"subframePattern40-r13"
))
*
RRC_CONFIGURATION_REQ
(
msg_p
).
fdd_DownlinkOrTddSubframeBitmapBR_r13
[
j
]
=
FALSE
;
else
*
RRC_CONFIGURATION_REQ
(
msg_p
).
fdd_DownlinkOrTddSubframeBitmapBR_r13
[
j
]
=
TRUE
;
config_setting_lookup_int64
(
setting_br13
,
ENB_CONFIG_STRING_FDD_DLORTDDSFB_BR_VAL
,
&
fdd_DownlinkOrTddSubframeBitmapBR_val_r13
);
RRC_CONFIGURATION_REQ
(
msg_p
).
fdd_DownlinkOrTddSubframeBitmapBR_val_r13
[
j
]
=
fdd_DownlinkOrTddSubframeBitmapBR_val_r13
;
}
else
{
{
system_info_value_tag_SI
=
config_setting_get_elem
(
system_info_value_tag_SI_list
,
sys_info_idx
);
RRC_CONFIGURATION_REQ
(
msg_p
).
fdd_DownlinkOrTddSubframeBitmapBR_r13
[
j
]
=
NULL
;
if
(
!
(
config_setting_lookup_int
(
system_info_value_tag_SI
,
ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_SI_R13
,
&
systemInfoValueTagSi_r13
))
)
}
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_SI_VALIDITYTIME
,
&
si_ValidityTime_r13
))
{
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, system info value tag %d!
\n
"
,
RC
.
config_file_name
,
nb_cc
++
);
RRC_CONFIGURATION_REQ
(
msg_p
).
si_ValidityTime_r13
[
j
]
=
calloc
(
1
,
sizeof
(
long
));
*
RRC_CONFIGURATION_REQ
(
msg_p
).
si_ValidityTime_r13
[
j
]
=
si_ValidityTime_r13
;
}
}
RRC_CONFIGURATION_REQ
(
msg_p
).
systemInfoValueTagSi_r13
[
j
][
sys_info_idx
]
=
systemInfoValueTagSi_r13
;
else
{
RRC_CONFIGURATION_REQ
(
msg_p
).
si_ValidityTime_r13
[
j
]
=
NULL
;
}
}
if
(
config_setting_lookup_string
(
setting_br13
,
ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL
,
&
freqHoppingParametersDL_r13
)
&&
!
strcmp
(
freqHoppingParametersDL_r13
,
"ENABLE"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
freqHoppingParametersDL_r13
[
j
]
=
TRUE
;
if
(
!
config_setting_lookup_string
(
setting_br13
,
ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB
,
&
interval_DLHoppingConfigCommonModeA_r13
)
||
!
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL
,
&
interval_DLHoppingConfigCommonModeA_r13_val
)
||
!
config_setting_lookup_string
(
setting_br13
,
ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB
,
&
interval_DLHoppingConfigCommonModeB_r13
)
||
!
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL
,
&
interval_DLHoppingConfigCommonModeB_r13_val
))
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!
\n
"
,
RC
.
config_file_name
,
i
);
}
}
if
(
!
strcmp
(
interval_DLHoppingConfigCommonModeA_r13
,
"interval-TDD-r13"
))
RRC_CONFIGURATION_REQ
(
msg_p
).
interval_DLHoppingConfigCommonModeA_r13
[
j
]
=
FALSE
;
else
else
RRC_CONFIGURATION_REQ
(
msg_p
).
interval_DLHoppingConfigCommonModeA_r13
[
j
]
=
TRUE
;
RRC_CONFIGURATION_REQ
(
msg_p
).
interval_DLHoppingConfigCommonModeA_r13_val
[
j
]
=
interval_DLHoppingConfigCommonModeA_r13_val
;
if
(
!
strcmp
(
interval_DLHoppingConfigCommonModeB_r13
,
"interval-TDD-r13"
))
RRC_CONFIGURATION_REQ
(
msg_p
).
interval_DLHoppingConfigCommonModeB_r13
[
j
]
=
FALSE
;
else
RRC_CONFIGURATION_REQ
(
msg_p
).
interval_DLHoppingConfigCommonModeB_r13
[
j
]
=
TRUE
;
RRC_CONFIGURATION_REQ
(
msg_p
).
interval_DLHoppingConfigCommonModeB_r13_val
[
j
]
=
interval_DLHoppingConfigCommonModeB_r13_val
;
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGNB
,
&
mpdcch_pdsch_HoppingNB_r13
))
{
{
num_system_info
=
0
;
RRC_CONFIGURATION_REQ
(
msg_p
).
mpdcch_pdsch_HoppingNB_r13
[
j
]
=
calloc
(
1
,
sizeof
(
long
));
*
RRC_CONFIGURATION_REQ
(
msg_p
).
mpdcch_pdsch_HoppingNB_r13
[
j
]
=
mpdcch_pdsch_HoppingNB_r13
;
}
}
RRC_CONFIGURATION_REQ
(
msg_p
).
system_info_value_tag_SI_size
[
j
]
=
num_system_info
;
else
RRC_CONFIGURATION_REQ
(
msg_p
).
mpdcch_pdsch_HoppingNB_r13
[
j
]
=
NULL
;
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGOFFSET
,
&
mpdcch_pdsch_HoppingOffset_r13
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
mpdcch_pdsch_HoppingOffset_r13
[
j
]
=
calloc
(
1
,
sizeof
(
long
));
*
RRC_CONFIGURATION_REQ
(
msg_p
).
mpdcch_pdsch_HoppingOffset_r13
[
j
]
=
mpdcch_pdsch_HoppingOffset_r13
;
}
else
RRC_CONFIGURATION_REQ
(
msg_p
).
mpdcch_pdsch_HoppingOffset_r13
[
j
]
=
NULL
;
}
else
{
RRC_CONFIGURATION_REQ
(
msg_p
).
freqHoppingParametersDL_r13
[
j
]
=
FALSE
;
}
// SIB23 parameters ---------------------------------------------------------------------------------------------------------------------------
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_PREAMBLETRANSMAX_CE_R13
,
&
preambleTransMax_CE_r13
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
preambleTransMax_CE_r13
=
calloc
(
1
,
sizeof
(
long
));
*
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
preambleTransMax_CE_r13
=
preambleTransMax_CE_r13
;
}
else
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
preambleTransMax_CE_r13
=
NULL
;
}
rach_ce_level_info_r13_list
=
config_setting_get_member
(
setting_br13
,
ENB_CONFIG_STRING_RACH_CE_LEVEL_INFO_LIST
);
rach_ce_level_info_r13_list
=
config_setting_get_member
(
setting_br13
,
ENB_CONFIG_STRING_RACH_CE_LEVEL_INFO_LIST
);
...
@@ -2740,35 +2857,54 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
...
@@ -2740,35 +2857,54 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
}
}
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13
,
&
pdsch_maxNumRepetitionCEmodeA_r13
))
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0
,
&
pucch_NumRepetitionCE_Msg4_Level0_r13
))
{
{
RRC_CONFIGURATION_REQ
(
msg_p
).
pdsch_maxNumRepetitionCEmodeA_r13
[
j
]
=
CALLOC
(
1
,
sizeof
(
long
));
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level0_r13
[
j
]
=
CALLOC
(
1
,
sizeof
(
long
));
*
RRC_CONFIGURATION_REQ
(
msg_p
).
pdsch_maxNumRepetitionCEmodeA_r13
[
j
]
=
pdsch_maxNumRepetitionCEmodeA_r13
;
*
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level0_r13
[
j
]
=
pucch_NumRepetitionCE_Msg4_Level0_r13
;
++
cnt
;
}
}
else
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_B_R13
,
&
pdsch_maxNumRepetitionCEmodeB_r13
))
{
{
RRC_CONFIGURATION_REQ
(
msg_p
).
pdsch_maxNumRepetitionCEmodeB_r13
[
j
]
=
CALLOC
(
1
,
sizeof
(
long
));
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level0_r13
[
j
]
=
NULL
;;
*
RRC_CONFIGURATION_REQ
(
msg_p
).
pdsch_maxNumRepetitionCEmodeB_r13
[
j
]
=
pdsch_maxNumRepetitionCEmodeB_r13
;
}
}
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13
,
&
pusch_maxNumRepetitionCEmodeA
_r13
))
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1
,
&
pucch_NumRepetitionCE_Msg4_Level1
_r13
))
{
{
RRC_CONFIGURATION_REQ
(
msg_p
).
pusch_maxNumRepetitionCEmodeA_r13
[
j
]
=
CALLOC
(
1
,
sizeof
(
long
));
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level1_r13
[
j
]
=
CALLOC
(
1
,
sizeof
(
long
));
*
RRC_CONFIGURATION_REQ
(
msg_p
).
pusch_maxNumRepetitionCEmodeA_r13
[
j
]
=
pusch_maxNumRepetitionCEmodeA_r13
;
*
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level1_r13
[
j
]
=
pucch_NumRepetitionCE_Msg4_Level1_r13
;
++
cnt
;
}
else
{
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level1_r13
[
j
]
=
NULL
;;
}
}
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_B_R13
,
&
pusch_maxNumRepetitionCEmodeB
_r13
))
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2
,
&
pucch_NumRepetitionCE_Msg4_Level2
_r13
))
{
{
RRC_CONFIGURATION_REQ
(
msg_p
).
pusch_maxNumRepetitionCEmodeB_r13
[
j
]
=
CALLOC
(
1
,
sizeof
(
long
));
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level2_r13
[
j
]
=
CALLOC
(
1
,
sizeof
(
long
));
*
RRC_CONFIGURATION_REQ
(
msg_p
).
pusch_maxNumRepetitionCEmodeB_r13
[
j
]
=
pusch_maxNumRepetitionCEmodeB_r13
;
*
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level2_r13
[
j
]
=
pucch_NumRepetitionCE_Msg4_Level2_r13
;
++
cnt
;
}
else
{
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level2_r13
[
j
]
=
NULL
;
}
}
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_PUSCH_HOPPING_OFFSET_V1310
,
&
pusch_HoppingOffset_v1310
))
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3
,
&
pucch_NumRepetitionCE_Msg4_Level3_r13
))
{
{
RRC_CONFIGURATION_REQ
(
msg_p
).
pusch_HoppingOffset_v1310
[
j
]
=
CALLOC
(
1
,
sizeof
(
long
));
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level3_r13
[
j
]
=
CALLOC
(
1
,
sizeof
(
long
));
*
RRC_CONFIGURATION_REQ
(
msg_p
).
pusch_HoppingOffset_v1310
[
j
]
=
pusch_HoppingOffset_v1310
;
*
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level3_r13
[
j
]
=
pucch_NumRepetitionCE_Msg4_Level3_r13
;
++
cnt
;
}
}
else
{
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_NumRepetitionCE_Msg4_Level3_r13
[
j
]
=
NULL
;;
}
rsrp_range_list
=
config_setting_get_member
(
setting_br13
,
ENB_CONFIG_STRING_RSRP_RANGE_LIST
);
rsrp_range_list
=
config_setting_get_member
(
setting_br13
,
ENB_CONFIG_STRING_RSRP_RANGE_LIST
);
int
num_rsrp_list
=
config_setting_length
(
rsrp_range_list
);
int
num_rsrp_list
=
config_setting_length
(
rsrp_range_list
);
...
@@ -3947,34 +4083,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
...
@@ -3947,34 +4083,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
break
;
break
;
}
}
int
hyperSFN_r13
;
int
eDRX_Allowed_r13
;
int
q_RxLevMinCE_r13
;
int
q_QualMinRSRQ_CE_r13
;
int
si_WindowLength_BR_r13
;
int
si_RepetitionPattern_r13
;
uint64_t
fdd_DownlinkOrTddSubframeBitmapBR_val_r13
;
int
startSymbolBR_r13
;
int
si_HoppingConfigCommon_r13
;
int
si_ValidityTime_r13
;
int
mpdcch_pdsch_HoppingNB_r13
;
int
interval_DLHoppingConfigCommonModeA_r13_val
;
int
interval_DLHoppingConfigCommonModeB_r13_val
;
int
mpdcch_pdsch_HoppingOffset_r13
;
int
preambleTransMax_CE_r13
;
int
mpdcch_startSF_CSS_RA_r13_val
;
int
prach_HoppingOffset_r13
;
int
schedulingInfoSIB1_BR_r13
;
char
*
cellSelectionInfoCE_r13
=
NULL
;
char
*
bandwidthReducedAccessRelatedInfo_r13
=
NULL
;
char
*
fdd_DownlinkOrTddSubframeBitmapBR_r13
=
NULL
;
char
*
fdd_UplinkSubframeBitmapBR_r13
=
NULL
;
char
*
freqHoppingParametersDL_r13
=
NULL
;
char
*
interval_DLHoppingConfigCommonModeA_r13
=
NULL
;
char
*
interval_DLHoppingConfigCommonModeB_r13
=
NULL
;
char
*
prach_ConfigCommon_v1310
=
NULL
;
char
*
mpdcch_startSF_CSS_RA_r13
;
setting_pcch_config_v1310
=
config_setting_get_member
(
setting_br13
,
ENB_CONFIG_STRING_PCCH_CONFIG_V1310
);
setting_pcch_config_v1310
=
config_setting_get_member
(
setting_br13
,
ENB_CONFIG_STRING_PCCH_CONFIG_V1310
);
if
(
setting_pcch_config_v1310
!=
NULL
)
if
(
setting_pcch_config_v1310
!=
NULL
)
{
{
...
@@ -3994,7 +4102,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
...
@@ -3994,7 +4102,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
RRC_CONFIGURATION_REQ
(
msg_p
).
nb_v1310
[
j
]
=
CALLOC
(
1
,
sizeof
(
long
));
RRC_CONFIGURATION_REQ
(
msg_p
).
nb_v1310
[
j
]
=
CALLOC
(
1
,
sizeof
(
long
));
*
RRC_CONFIGURATION_REQ
(
msg_p
).
nb_v1310
[
j
]
=
nb_v1310
;
*
RRC_CONFIGURATION_REQ
(
msg_p
).
nb_v1310
[
j
]
=
nb_v1310
;
printf
(
"[DEBUGGING][KOGO] : nb_v1310 = %d
\n
"
,
nb_v1310
);
}
}
else
else
{
{
...
@@ -4008,13 +4115,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
...
@@ -4008,13 +4115,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
RRC_CONFIGURATION_REQ
(
msg_p
).
pcch_config_v1310
[
j
]
=
FALSE
;
RRC_CONFIGURATION_REQ
(
msg_p
).
pcch_config_v1310
[
j
]
=
FALSE
;
}
}
if
(
!
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_schedulingInfoSIB1
,
&
schedulingInfoSIB1_BR_r13
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d schedulingInfoSIB1_BR_r13!
\n
"
,
RC
.
config_file_name
,
i
);
RRC_CONFIGURATION_REQ
(
msg_p
).
schedulingInfoSIB1_BR_r13
[
j
]
=
schedulingInfoSIB1_BR_r13
;
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_HYPERSFN
,
&
hyperSFN_r13
))
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_HYPERSFN
,
&
hyperSFN_r13
))
{
{
RRC_CONFIGURATION_REQ
(
msg_p
).
hyperSFN_r13
[
j
]
=
calloc
(
1
,
sizeof
(
uint16_t
));
RRC_CONFIGURATION_REQ
(
msg_p
).
hyperSFN_r13
[
j
]
=
calloc
(
1
,
sizeof
(
uint16_t
));
...
@@ -4031,64 +4131,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
...
@@ -4031,64 +4131,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
else
else
RRC_CONFIGURATION_REQ
(
msg_p
).
eDRX_Allowed_r13
[
j
]
=
NULL
;
RRC_CONFIGURATION_REQ
(
msg_p
).
eDRX_Allowed_r13
[
j
]
=
NULL
;
if
(
config_setting_lookup_string
(
setting_br13
,
ENB_CONFIG_STRING_CELLSELECTIONINFOCE
,
&
cellSelectionInfoCE_r13
)
&&
!
strcmp
(
cellSelectionInfoCE_r13
,
"ENABLE"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
cellSelectionInfoCE_r13
[
j
]
=
TRUE
;
if
(
!
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_Q_RXLEVMINCE
,
&
q_RxLevMinCE_r13
))
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d q_RxLevMinCE_r13!
\n
"
,
RC
.
config_file_name
,
i
);
}
RRC_CONFIGURATION_REQ
(
msg_p
).
q_RxLevMinCE_r13
[
j
]
=
q_RxLevMinCE_r13
;
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE
,
&
q_QualMinRSRQ_CE_r13
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
q_QualMinRSRQ_CE_r13
[
j
]
=
calloc
(
1
,
sizeof
(
long
));
*
RRC_CONFIGURATION_REQ
(
msg_p
).
q_QualMinRSRQ_CE_r13
[
j
]
=
q_QualMinRSRQ_CE_r13
;
}
else
RRC_CONFIGURATION_REQ
(
msg_p
).
q_QualMinRSRQ_CE_r13
[
j
]
=
NULL
;
}
else
RRC_CONFIGURATION_REQ
(
msg_p
).
cellSelectionInfoCE_r13
[
j
]
=
FALSE
;
if
(
config_setting_lookup_string
(
setting_br13
,
ENB_CONFIG_STRING_BRAccessRelatedInfo
,
&
bandwidthReducedAccessRelatedInfo_r13
)
&&
!
strcmp
(
bandwidthReducedAccessRelatedInfo_r13
,
"ENABLE"
))
{
printf
(
"Enabling BR access SI scheduling parameters
\n
"
);
RRC_CONFIGURATION_REQ
(
msg_p
).
bandwidthReducedAccessRelatedInfo_r13
[
j
]
=
TRUE
;
if
(
!
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR
,
&
si_WindowLength_BR_r13
)
||
!
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_SI_REPETITIONPATTERN
,
&
si_RepetitionPattern_r13
)
||
!
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_STARTSYMBOLBR
,
&
startSymbolBR_r13
)
||
!
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON
,
&
si_HoppingConfigCommon_r13
))
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!
\n
"
,
RC
.
config_file_name
,
i
);
}
bool
fdd_downlink_exist
=
config_setting_lookup_string
(
setting_br13
,
ENB_CONFIG_STRING_FDD_DLORTDD_SFB_BR
,
&
fdd_DownlinkOrTddSubframeBitmapBR_r13
);
if
(
fdd_downlink_exist
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
fdd_DownlinkOrTddSubframeBitmapBR_r13
[
j
]
=
CALLOC
(
1
,
sizeof
(
BOOLEAN_t
));
if
(
!
strcmp
(
fdd_DownlinkOrTddSubframeBitmapBR_r13
,
"subframePattern40-r13"
))
*
RRC_CONFIGURATION_REQ
(
msg_p
).
fdd_DownlinkOrTddSubframeBitmapBR_r13
[
j
]
=
FALSE
;
else
*
RRC_CONFIGURATION_REQ
(
msg_p
).
fdd_DownlinkOrTddSubframeBitmapBR_r13
[
j
]
=
TRUE
;
config_setting_lookup_int64
(
setting_br13
,
ENB_CONFIG_STRING_FDD_DLORTDDSFB_BR_VAL
,
&
fdd_DownlinkOrTddSubframeBitmapBR_val_r13
);
RRC_CONFIGURATION_REQ
(
msg_p
).
fdd_DownlinkOrTddSubframeBitmapBR_val_r13
[
j
]
=
fdd_DownlinkOrTddSubframeBitmapBR_val_r13
;
}
else
{
RRC_CONFIGURATION_REQ
(
msg_p
).
fdd_DownlinkOrTddSubframeBitmapBR_r13
[
j
]
=
NULL
;
}
bool
fdd_uplink_exist
=
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR
,
&
fdd_UplinkSubframeBitmapBR_r13
);
bool
fdd_uplink_exist
=
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR
,
&
fdd_UplinkSubframeBitmapBR_r13
);
if
(
fdd_uplink_exist
)
if
(
fdd_uplink_exist
)
...
@@ -4106,78 +4148,15 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
...
@@ -4106,78 +4148,15 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
RRC_CONFIGURATION_REQ
(
msg_p
).
si_HoppingConfigCommon_r13
[
j
]
=
si_HoppingConfigCommon_r13
;
RRC_CONFIGURATION_REQ
(
msg_p
).
si_HoppingConfigCommon_r13
[
j
]
=
si_HoppingConfigCommon_r13
;
RRC_CONFIGURATION_REQ
(
msg_p
).
startSymbolBR_r13
[
j
]
=
startSymbolBR_r13
;
RRC_CONFIGURATION_REQ
(
msg_p
).
startSymbolBR_r13
[
j
]
=
startSymbolBR_r13
;
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_SI_VALIDITYTIME
,
&
si_ValidityTime_r13
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
si_ValidityTime_r13
[
j
]
=
calloc
(
1
,
sizeof
(
long
));
*
RRC_CONFIGURATION_REQ
(
msg_p
).
si_ValidityTime_r13
[
j
]
=
si_ValidityTime_r13
;
}
else
RRC_CONFIGURATION_REQ
(
msg_p
).
si_ValidityTime_r13
[
j
]
=
NULL
;
}
}
else
else
RRC_CONFIGURATION_REQ
(
msg_p
).
bandwidthReducedAccessRelatedInfo_r13
[
j
]
=
FALSE
;
RRC_CONFIGURATION_REQ
(
msg_p
).
bandwidthReducedAccessRelatedInfo_r13
[
j
]
=
FALSE
;
if
(
config_setting_lookup_string
(
setting_br13
,
ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL
,
&
freqHoppingParametersDL_r13
)
&&
!
strcmp
(
freqHoppingParametersDL_r13
,
"ENABLE"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
freqHoppingParametersDL_r13
[
j
]
=
TRUE
;
if
(
!
config_setting_lookup_string
(
setting_br13
,
ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB
,
&
interval_DLHoppingConfigCommonModeA_r13
)
||
!
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL
,
&
interval_DLHoppingConfigCommonModeA_r13_val
)
||
!
config_setting_lookup_string
(
setting_br13
,
ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB
,
&
interval_DLHoppingConfigCommonModeB_r13
)
||
!
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL
,
&
interval_DLHoppingConfigCommonModeB_r13_val
))
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!
\n
"
,
RC
.
config_file_name
,
i
);
}
if
(
!
strcmp
(
interval_DLHoppingConfigCommonModeA_r13
,
"interval-TDD-r13"
))
RRC_CONFIGURATION_REQ
(
msg_p
).
interval_DLHoppingConfigCommonModeA_r13
[
j
]
=
FALSE
;
else
RRC_CONFIGURATION_REQ
(
msg_p
).
interval_DLHoppingConfigCommonModeA_r13
[
j
]
=
TRUE
;
RRC_CONFIGURATION_REQ
(
msg_p
).
interval_DLHoppingConfigCommonModeA_r13_val
[
j
]
=
interval_DLHoppingConfigCommonModeA_r13_val
;
if
(
!
strcmp
(
interval_DLHoppingConfigCommonModeB_r13
,
"interval-TDD-r13"
))
RRC_CONFIGURATION_REQ
(
msg_p
).
interval_DLHoppingConfigCommonModeB_r13
[
j
]
=
FALSE
;
else
RRC_CONFIGURATION_REQ
(
msg_p
).
interval_DLHoppingConfigCommonModeB_r13
[
j
]
=
TRUE
;
RRC_CONFIGURATION_REQ
(
msg_p
).
interval_DLHoppingConfigCommonModeB_r13_val
[
j
]
=
interval_DLHoppingConfigCommonModeB_r13_val
;
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGNB
,
&
mpdcch_pdsch_HoppingNB_r13
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
mpdcch_pdsch_HoppingNB_r13
[
j
]
=
calloc
(
1
,
sizeof
(
long
));
*
RRC_CONFIGURATION_REQ
(
msg_p
).
mpdcch_pdsch_HoppingNB_r13
[
j
]
=
mpdcch_pdsch_HoppingNB_r13
;
}
else
RRC_CONFIGURATION_REQ
(
msg_p
).
mpdcch_pdsch_HoppingNB_r13
[
j
]
=
NULL
;
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGOFFSET
,
&
mpdcch_pdsch_HoppingOffset_r13
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
mpdcch_pdsch_HoppingOffset_r13
[
j
]
=
calloc
(
1
,
sizeof
(
long
));
*
RRC_CONFIGURATION_REQ
(
msg_p
).
mpdcch_pdsch_HoppingOffset_r13
[
j
]
=
mpdcch_pdsch_HoppingOffset_r13
;
}
else
RRC_CONFIGURATION_REQ
(
msg_p
).
mpdcch_pdsch_HoppingOffset_r13
[
j
]
=
NULL
;
}
else
RRC_CONFIGURATION_REQ
(
msg_p
).
freqHoppingParametersDL_r13
[
j
]
=
FALSE
;
/////SIB2 Parameters
/////SIB2 Parameters
if
(
config_setting_lookup_int
(
setting_br13
,
ENB_CONFIG_STRING_PREAMBLETRANSMAX_CE_R13
,
&
preambleTransMax_CE_r13
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
preambleTransMax_CE_r13
=
calloc
(
1
,
sizeof
(
long
));
*
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
preambleTransMax_CE_r13
=
preambleTransMax_CE_r13
;
}
else
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
preambleTransMax_CE_r13
=
NULL
;
if
(
config_setting_lookup_string
(
setting_br13
,
ENB_CONFIG_STRING_PRACH_CONFIGCOMMON_V1310
,
&
prach_ConfigCommon_v1310
)
&&
!
strcmp
(
prach_ConfigCommon_v1310
,
"ENABLE"
))
if
(
config_setting_lookup_string
(
setting_br13
,
ENB_CONFIG_STRING_PRACH_CONFIGCOMMON_V1310
,
&
prach_ConfigCommon_v1310
)
&&
!
strcmp
(
prach_ConfigCommon_v1310
,
"ENABLE"
))
{
{
...
...
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