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
canghaiwuhen
OpenXG-RAN
Commits
78408cc6
Commit
78408cc6
authored
Oct 15, 2017
by
mohamed.said
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added missing definitions in enb_paramdef.h ,, assigned some br values in enb_config.c
parent
06e9aacc
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
897 additions
and
324 deletions
+897
-324
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+858
-302
openair2/ENB_APP/enb_paramdef.h
openair2/ENB_APP/enb_paramdef.h
+38
-21
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf
...JECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf
+1
-1
No files found.
openair2/ENB_APP/enb_config.c
View file @
78408cc6
...
@@ -355,241 +355,236 @@ void RCconfig_macrlc() {
...
@@ -355,241 +355,236 @@ void RCconfig_macrlc() {
int
RCconfig_RRC
(
MessageDef
*
msg_p
,
uint32_t
i
,
eNB_RRC_INST
*
rrc
)
int
RCconfig_RRC
(
MessageDef
*
msg_p
,
uint32_t
i
,
eNB_RRC_INST
*
rrc
)
{
{
int
num_enbs
=
0
;
int
num_enbs
=
0
;
int
num_component_carriers
=
0
;
int
num_component_carriers
=
0
;
int
k
=
0
;
int
k
=
0
;
int32_t
enb_id
=
0
;
int32_t
enb_id
=
0
;
int
nb_cc
=
0
;
int
nb_cc
=
0
;
int
parse_errors
=
0
;
int
parse_errors
=
0
;
int
num_mme_address
=
0
;
int
num_mme_address
=
0
;
int
num_otg_elements
=
0
;
int
num_otg_elements
=
0
;
int
j
=
0
;
int
j
=
0
;
int
sched_info_idx
=
0
;
int
sched_info_idx
=
0
;
int
sys_info_idx
=
0
;
int
sys_info_idx
=
0
;
char
*
if_name_s
=
NULL
;
char
*
if_name_s
=
NULL
;
char
*
ipv4_s
=
NULL
;
char
*
ipv4_s
=
NULL
;
char
*
ipv4_s_remote
=
NULL
;
char
*
ipv4_s_remote
=
NULL
;
char
*
tr_s_preference
=
NULL
;
char
*
tr_s_preference
=
NULL
;
int
local_s_portc
=
0
;
int
local_s_portc
=
0
;
int
remote_s_portc
=
0
;
int
remote_s_portc
=
0
;
int
local_s_portd
=
0
;
int
local_s_portd
=
0
;
int
remote_s_portd
=
0
;
int
remote_s_portd
=
0
;
const
char
*
cell_type
=
NULL
;
const
char
*
cell_type
=
NULL
;
const
char
*
tac
=
0
;
const
char
*
tac
=
0
;
const
char
*
enb_name
=
NULL
;
const
char
*
enb_name
=
NULL
;
const
char
*
mcc
=
0
;
const
char
*
mcc
=
0
;
const
char
*
mnc
=
0
;
const
char
*
mnc
=
0
;
char
*
frame_type
=
NULL
;
char
*
frame_type
=
NULL
;
int
tdd_config
=
0
;
int
tdd_config
=
0
;
int
tdd_config_s
=
0
;
int
tdd_config_s
=
0
;
const
char
*
prefix_type
=
NULL
;
const
char
*
prefix_type
=
NULL
;
const
char
*
pbch_repetition
=
NULL
;
const
char
*
pbch_repetition
=
NULL
;
int
eutra_band
=
0
;
int
eutra_band
=
0
;
long
long
int
downlink_frequency
=
0
;
long
long
int
downlink_frequency
=
0
;
int
uplink_frequency_offset
=
0
;
int
uplink_frequency_offset
=
0
;
int
Nid_cell
=
0
;
int
Nid_cell
=
0
;
int
Nid_cell_mbsfn
=
0
;
int
Nid_cell_mbsfn
=
0
;
int
N_RB_DL
=
0
;
int
N_RB_DL
=
0
;
int
nb_antenna_ports
=
0
;
int
nb_antenna_ports
=
0
;
int
nb_antennas_tx
=
0
;
int
nb_antennas_tx
=
0
;
int
nb_antennas_rx
=
0
;
int
nb_antennas_rx
=
0
;
int
tx_gain
=
0
;
int
tx_gain
=
0
;
int
rx_gain
=
0
;
int
rx_gain
=
0
;
int
prach_root
=
0
;
int
prach_root
=
0
;
int
prach_config_index
=
0
;
int
prach_config_index
=
0
;
const
char
*
prach_high_speed
=
NULL
;
const
char
*
prach_high_speed
=
NULL
;
int
prach_zero_correlation
=
0
;
int
prach_zero_correlation
=
0
;
int
prach_freq_offset
=
0
;
int
prach_freq_offset
=
0
;
int
pucch_delta_shift
=
0
;
int
pucch_delta_shift
=
0
;
int
pucch_nRB_CQI
=
0
;
int
pucch_nRB_CQI
=
0
;
int
pucch_nCS_AN
=
0
;
int
pucch_nCS_AN
=
0
;
int
pucch_n1_AN
=
0
;
int
pucch_n1_AN
=
0
;
int
pdsch_referenceSignalPower
=
0
;
int
pdsch_p_b
=
0
;
int
pdsch_referenceSignalPower
=
0
;
int
pusch_n_SB
=
0
;
int
pdsch_p_b
=
0
;
const
char
*
pusch_hoppingMode
=
NULL
;
int
pusch_n_SB
=
0
;
int
pusch_hoppingOffset
=
0
;
const
char
*
pusch_hoppingMode
=
NULL
;
const
char
*
pusch_enable64QAM
=
NULL
;
int
pusch_hoppingOffset
=
0
;
const
char
*
pusch_groupHoppingEnabled
=
NULL
;
const
char
*
pusch_enable64QAM
=
NULL
;
int
pusch_groupAssignment
=
0
;
const
char
*
pusch_groupHoppingEnabled
=
NULL
;
const
char
*
pusch_sequenceHoppingEnabled
=
NULL
;
int
pusch_groupAssignment
=
0
;
int
pusch_nDMRS1
=
0
;
const
char
*
pusch_sequenceHoppingEnabled
=
NULL
;
const
char
*
phich_duration
=
NULL
;
int
pusch_nDMRS1
=
0
;
const
char
*
phich_resource
=
NULL
;
const
char
*
phich_duration
=
NULL
;
const
char
*
srs_enable
=
NULL
;
const
char
*
phich_resource
=
NULL
;
int
srs_BandwidthConfig
=
0
;
const
char
*
srs_enable
=
NULL
;
int
srs_SubframeConfig
=
0
;
int
srs_BandwidthConfig
=
0
;
const
char
*
srs_ackNackST
=
NULL
;
int
srs_SubframeConfig
=
0
;
const
char
*
srs_MaxUpPts
=
NULL
;
const
char
*
srs_ackNackST
=
NULL
;
int
pusch_p0_Nominal
=
0
;
const
char
*
srs_MaxUpPts
=
NULL
;
const
char
*
pusch_alpha
=
NULL
;
int
pusch_p0_Nominal
=
0
;
int
pucch_p0_Nominal
=
0
;
const
char
*
pusch_alpha
=
NULL
;
int
msg3_delta_Preamble
=
0
;
int
pucch_p0_Nominal
=
0
;
//int ul_CyclicPrefixLength = 0;
int
msg3_delta_Preamble
=
0
;
const
char
*
pucch_deltaF_Format1
=
NULL
;
//int ul_CyclicPrefixLength = 0;
//const char* pucch_deltaF_Format1a = NULL;
const
char
*
pucch_deltaF_Format1
=
NULL
;
const
char
*
pucch_deltaF_Format1b
=
NULL
;
//const char* pucch_deltaF_Format1a = NULL;
const
char
*
pucch_deltaF_Format2
=
NULL
;
const
char
*
pucch_deltaF_Format1b
=
NULL
;
const
char
*
pucch_deltaF_Format2a
=
NULL
;
const
char
*
pucch_deltaF_Format2
=
NULL
;
const
char
*
pucch_deltaF_Format2b
=
NULL
;
const
char
*
pucch_deltaF_Format2a
=
NULL
;
const
char
*
rach_numberOfRA_Preambles
=
NULL
;
const
char
*
pucch_deltaF_Format2b
=
NULL
;
const
char
*
rach_preamblesGroupAConfig
=
NULL
;
const
char
*
rach_numberOfRA_Preambles
=
NULL
;
int
rach_sizeOfRA_PreamblesGroupA
=
0
;
const
char
*
rach_preamblesGroupAConfig
=
NULL
;
int
rach_messageSizeGroupA
=
0
;
int
rach_sizeOfRA_PreamblesGroupA
=
0
;
const
char
*
rach_messagePowerOffsetGroupB
=
NULL
;
int
rach_messageSizeGroupA
=
0
;
int
rach_powerRampingStep
=
0
;
const
char
*
rach_messagePowerOffsetGroupB
=
NULL
;
int
rach_preambleInitialReceivedTargetPower
=
0
;
int
rach_powerRampingStep
=
0
;
int
rach_preambleTransMax
=
0
;
int
rach_preambleInitialReceivedTargetPower
=
0
;
int
rach_raResponseWindowSize
=
0
;
int
rach_preambleTransMax
=
0
;
int
rach_macContentionResolutionTimer
=
0
;
int
rach_raResponseWindowSize
=
0
;
int
rach_maxHARQ_Msg3Tx
=
0
;
int
rach_macContentionResolutionTimer
=
0
;
const
char
*
pcch_defaultPagingCycle
=
NULL
;
int
rach_maxHARQ_Msg3Tx
=
0
;
const
char
*
pcch_defaultPagingCycle
=
0
;
const
char
*
pcch_nB
=
NULL
;
int
bcch_modificationPeriodCoeff
=
0
;
const
char
*
pcch_nB
=
NULL
;
int
bcch_modificationPeriodCoeff
=
0
;
const
char
*
ue_TimersAndConstants_t300
=
NULL
;
const
char
*
ue_TimersAndConstants_t301
=
NULL
;
const
char
*
ue_TimersAndConstants_t300
=
NULL
;
const
char
*
ue_TimersAndConstants_t310
=
NULL
;
const
char
*
ue_TimersAndConstants_t301
=
NULL
;
const
char
*
ue_TimersAndConstants_t311
=
NULL
;
const
char
*
ue_TimersAndConstants_t310
=
NULL
;
const
char
*
ue_TimersAndConstants_n310
=
NULL
;
const
char
*
ue_TimersAndConstants_t311
=
NULL
;
const
char
*
ue_TimersAndConstants_n311
=
NULL
;
const
char
*
ue_TimersAndConstants_n310
=
NULL
;
const
char
*
ue_TransmissionMode
=
NULL
;
const
char
*
ue_TimersAndConstants_n311
=
NULL
;
const
char
*
ue_TransmissionMode
=
NULL
;
int
si_Narrowband_r13
=
0
;
int
si_TBS_r13
=
0
;
int
si_Narrowband_r13
=
0
;
int
si_TBS_r13
=
0
;
int
systemInfoValueTagSi_r13
=
0
;
int
systemInfoValueTagSi_r13
=
0
;
int
firstPreamble_r13
=
0
;
int
lastPreamble_r13
=
0
;
int
firstPreamble_r13
=
0
;
const
char
*
ra_ResponseWindowSize_r13
=
NULL
;
int
lastPreamble_r13
=
0
;
const
char
*
mac_ContentionResolutionTimer_r13
=
NULL
;
const
char
*
ra_ResponseWindowSize_r13
=
NULL
;
const
char
*
rar_HoppingConfig_r13
=
NULL
;
const
char
*
mac_ContentionResolutionTimer_r13
=
NULL
;
int
rsrp_range_br
=
0
;
const
char
*
rar_HoppingConfig_r13
=
NULL
;
int
prach_config_index_br
=
0
;
int
rsrp_range_br
=
0
;
int
prach_freq_offset_br
=
0
;
int
prach_config_index_br
=
0
;
int
prach_StartingSubframe_r13
=
0
;
int
prach_freq_offset_br
=
0
;
const
char
*
maxNumPreambleAttemptCE_r13
=
NULL
;
int
prach_StartingSubframe_r13
=
0
;
const
char
*
numRepetitionPerPreambleAttempt_r13
=
NULL
;
const
char
*
maxNumPreambleAttemptCE_r13
=
NULL
;
const
char
*
mpdcch_NumRepetition_RA_r13
=
NULL
;
const
char
*
numRepetitionPerPreambleAttempt_r13
=
NULL
;
const
char
*
prach_HoppingConfig_r13
=
NULL
;
const
char
*
mpdcch_NumRepetition_RA_r13
=
NULL
;
int
maxavailablenarrowband
=
0
;
const
char
*
prach_HoppingConfig_r13
=
NULL
;
int
pucch_info_value
=
0
;
int
maxavailablenarrowband
=
0
;
int
pucch_info_value
=
0
;
int
paging_narrowbands_r13
=
0
;
const
char
*
mpdcch_numrepetition_paging_r13
=
NULL
;
int
paging_narrowbands_r13
=
0
;
const
char
*
nb_v1310
=
NULL
;
const
char
*
mpdcch_numrepetition_paging_r13
=
NULL
;
const
char
*
nb_v1310
=
NULL
;
const
char
*
pucch_NumRepetitionCE_Msg4_Level0_r13
=
NULL
;
const
char
*
pucch_NumRepetitionCE_Msg4_Level1_r13
=
NULL
;
const
char
*
pucch_NumRepetitionCE_Msg4_Level0_r13
=
NULL
;
const
char
*
pucch_NumRepetitionCE_Msg4_Level2_r13
=
NULL
;
const
char
*
pucch_NumRepetitionCE_Msg4_Level1_r13
=
NULL
;
const
char
*
pucch_NumRepetitionCE_Msg4_Level3_r13
=
NULL
;
const
char
*
pucch_NumRepetitionCE_Msg4_Level2_r13
=
NULL
;
const
char
*
pucch_NumRepetitionCE_Msg4_Level3_r13
=
NULL
;
const
char
*
sib2_mpdcch_pdsch_hoppingNB_r13
=
NULL
;
const
char
*
sib2_interval_DLHoppingConfigCommonModeA_r13
=
NULL
;
const
char
*
sib2_mpdcch_pdsch_hoppingNB_r13
=
NULL
;
const
char
*
sib2_interval_DLHoppingConfigCommonModeA_r13_val
=
NULL
;
const
char
*
sib2_interval_DLHoppingConfigCommonModeA_r13
=
NULL
;
const
char
*
sib2_interval_DLHoppingConfigCommonModeB_r13
=
NULL
;
const
char
*
sib2_interval_DLHoppingConfigCommonModeA_r13_val
=
NULL
;
const
char
*
sib2_interval_DLHoppingConfigCommonModeB_r13_val
=
NULL
;
const
char
*
sib2_interval_DLHoppingConfigCommonModeB_r13
=
NULL
;
const
char
*
sib2_interval_DLHoppingConfigCommonModeB_r13_val
=
NULL
;
const
char
*
sib2_interval_ULHoppingConfigCommonModeA_r13
=
NULL
;
const
char
*
sib2_interval_ULHoppingConfigCommonModeA_r13_val
=
NULL
;
const
char
*
sib2_interval_ULHoppingConfigCommonModeA_r13
=
NULL
;
const
char
*
sib2_interval_ULHoppingConfigCommonModeB_r13
=
NULL
;
const
char
*
sib2_interval_ULHoppingConfigCommonModeA_r13_val
=
NULL
;
const
char
*
sib2_interval_ULHoppingConfigCommonModeB_r13_val
=
NULL
;
const
char
*
sib2_interval_ULHoppingConfigCommonModeB_r13
=
NULL
;
int
sib2_mpdcch_pdsch_hoppingOffset_r13
=
0
;
const
char
*
sib2_interval_ULHoppingConfigCommonModeB_r13_val
=
NULL
;
int
sib2_mpdcch_pdsch_hoppingOffset_r13
=
0
;
const
char
*
pdsch_maxNumRepetitionCEmodeA_r13
=
NULL
;
const
char
*
pdsch_maxNumRepetitionCEmodeB_r13
=
NULL
;
const
char
*
pdsch_maxNumRepetitionCEmodeA_r13
=
NULL
;
const
char
*
pdsch_maxNumRepetitionCEmodeB_r13
=
NULL
;
const
char
*
pusch_maxNumRepetitionCEmodeA_r13
=
0
;
const
char
*
pusch_maxNumRepetitionCEmodeB_r13
=
0
;
const
char
*
pusch_maxNumRepetitionCEmodeA_r13
=
0
;
int
pusch_HoppingOffset_v1310
=
0
;
const
char
*
pusch_maxNumRepetitionCEmodeB_r13
=
0
;
int
pusch_HoppingOffset_v1310
=
0
;
int
hyperSFN_r13
=
0
;
int
eDRX_Allowed_r13
=
0
;
int
hyperSFN_r13
=
0
;
int
q_RxLevMinCE_r13
=
0
;
int
eDRX_Allowed_r13
=
0
;
int
q_QualMinRSRQ_CE_r13
=
0
;
int
q_RxLevMinCE_r13
=
0
;
const
char
*
si_WindowLength_BR_r13
=
NULL
;
int
q_QualMinRSRQ_CE_r13
=
0
;
const
char
*
si_RepetitionPattern_r13
=
NULL
;
const
char
*
si_WindowLength_BR_r13
=
NULL
;
int
startSymbolBR_r13
=
0
;
const
char
*
si_RepetitionPattern_r13
=
NULL
;
const
char
*
si_HoppingConfigCommon_r13
=
NULL
;
int
startSymbolBR_r13
=
0
;
const
char
*
si_ValidityTime_r13
=
NULL
;
const
char
*
si_HoppingConfigCommon_r13
=
NULL
;
const
char
*
mpdcch_pdsch_HoppingNB_r13
=
NULL
;
const
char
*
si_ValidityTime_r13
=
NULL
;
int
interval_DLHoppingConfigCommonModeA_r13_val
=
0
;
const
char
*
mpdcch_pdsch_HoppingNB_r13
=
NULL
;
int
interval_DLHoppingConfigCommonModeB_r13_val
=
0
;
int
interval_DLHoppingConfigCommonModeA_r13_val
=
0
;
int
mpdcch_pdsch_HoppingOffset_r13
=
0
;
int
interval_DLHoppingConfigCommonModeB_r13_val
=
0
;
const
char
*
preambleTransMax_CE_r13
=
NULL
;
int
mpdcch_pdsch_HoppingOffset_r13
=
0
;
const
char
*
rach_numberOfRA_Preambles_br
=
NULL
;
const
char
*
preambleTransMax_CE_r13
=
NULL
;
const
char
*
mpdcch_startSF_CSS_RA_r13_val
=
NULL
;
const
char
*
rach_numberOfRA_Preambles_br
=
NULL
;
int
prach_HoppingOffset_r13
=
0
;
const
char
*
mpdcch_startSF_CSS_RA_r13_val
=
NULL
;
int
schedulingInfoSIB1_BR_r13
=
0
;
int
prach_HoppingOffset_r13
=
0
;
uint64_t
fdd_DownlinkOrTddSubframeBitmapBR_val_r13
=
0
;
int
schedulingInfoSIB1_BR_r13
=
0
;
uint64_t
fdd_DownlinkOrTddSubframeBitmapBR_val_r13
=
0
;
char
*
cellSelectionInfoCE_r13
=
NULL
;
char
*
bandwidthReducedAccessRelatedInfo_r13
=
NULL
;
char
*
cellSelectionInfoCE_r13
=
NULL
;
char
*
fdd_DownlinkOrTddSubframeBitmapBR_r13
=
NULL
;
char
*
bandwidthReducedAccessRelatedInfo_r13
=
NULL
;
char
*
fdd_UplinkSubframeBitmapBR_r13
=
NULL
;
char
*
fdd_DownlinkOrTddSubframeBitmapBR_r13
=
NULL
;
char
*
freqHoppingParametersDL_r13
=
NULL
;
char
*
fdd_UplinkSubframeBitmapBR_r13
=
NULL
;
char
*
interval_DLHoppingConfigCommonModeA_r13
=
NULL
;
char
*
freqHoppingParametersDL_r13
=
NULL
;
char
*
interval_DLHoppingConfigCommonModeB_r13
=
NULL
;
char
*
interval_DLHoppingConfigCommonModeA_r13
=
NULL
;
char
*
prach_ConfigCommon_v1310
=
NULL
;
char
*
interval_DLHoppingConfigCommonModeB_r13
=
NULL
;
char
*
mpdcch_startSF_CSS_RA_r13
=
NULL
;
char
*
prach_ConfigCommon_v1310
=
NULL
;
char
*
mpdcch_startSF_CSS_RA_r13
=
NULL
;
int
srb1_timer_poll_retransmit
=
0
;
int
srb1_timer_reordering
=
0
;
int
srb1_timer_poll_retransmit
=
0
;
int
srb1_timer_status_prohibit
=
0
;
int
srb1_timer_reordering
=
0
;
int
srb1_poll_pdu
=
0
;
int
srb1_timer_status_prohibit
=
0
;
int
srb1_poll_byte
=
0
;
int
srb1_poll_pdu
=
0
;
int
srb1_max_retx_threshold
=
0
;
int
srb1_poll_byte
=
0
;
int
srb1_max_retx_threshold
=
0
;
int
my_int
;
int
my_int
;
const
char
*
active_enb
[
MAX_ENB
];
char
*
enb_interface_name_for_S1U
=
NULL
;
const
char
*
active_enb
[
MAX_ENB
];
char
*
enb_ipv4_address_for_S1U
=
NULL
;
char
*
enb_interface_name_for_S1U
=
NULL
;
int
enb_port_for_S1U
=
0
;
char
*
enb_ipv4_address_for_S1U
=
NULL
;
char
*
enb_interface_name_for_S1_MME
=
NULL
;
int
enb_port_for_S1U
=
0
;
char
*
enb_ipv4_address_for_S1_MME
=
NULL
;
char
*
enb_interface_name_for_S1_MME
=
NULL
;
char
*
address
=
NULL
;
char
*
enb_ipv4_address_for_S1_MME
=
NULL
;
char
*
cidr
=
NULL
;
char
*
address
=
NULL
;
char
*
astring
=
NULL
;
char
*
cidr
=
NULL
;
char
*
flexran_agent_interface_name
=
NULL
;
char
*
astring
=
NULL
;
char
*
flexran_agent_ipv4_address
=
NULL
;
char
*
flexran_agent_interface_name
=
NULL
;
int
flexran_agent_port
=
0
;
char
*
flexran_agent_ipv4_address
=
NULL
;
char
*
flexran_agent_cache
=
NULL
;
int
flexran_agent_port
=
0
;
int
otg_ue_id
=
0
;
char
*
flexran_agent_cache
=
NULL
;
char
*
otg_app_type
=
NULL
;
int
otg_ue_id
=
0
;
char
*
otg_bg_traffic
=
NULL
;
char
*
otg_app_type
=
NULL
;
char
*
glog_level
=
NULL
;
char
*
otg_bg_traffic
=
NULL
;
char
*
glog_verbosity
=
NULL
;
char
*
glog_level
=
NULL
;
char
*
hw_log_level
=
NULL
;
char
*
glog_verbosity
=
NULL
;
char
*
hw_log_verbosity
=
NULL
;
char
*
hw_log_level
=
NULL
;
char
*
phy_log_level
=
NULL
;
char
*
hw_log_verbosity
=
NULL
;
char
*
phy_log_verbosity
=
NULL
;
char
*
phy_log_level
=
NULL
;
char
*
mac_log_level
=
NULL
;
char
*
phy_log_verbosity
=
NULL
;
char
*
mac_log_verbosity
=
NULL
;
char
*
mac_log_level
=
NULL
;
char
*
rlc_log_level
=
NULL
;
char
*
mac_log_verbosity
=
NULL
;
char
*
rlc_log_verbosity
=
NULL
;
char
*
rlc_log_level
=
NULL
;
char
*
pdcp_log_level
=
NULL
;
char
*
rlc_log_verbosity
=
NULL
;
char
*
pdcp_log_verbosity
=
NULL
;
char
*
pdcp_log_level
=
NULL
;
char
*
rrc_log_level
=
NULL
;
char
*
pdcp_log_verbosity
=
NULL
;
char
*
rrc_log_verbosity
=
NULL
;
char
*
rrc_log_level
=
NULL
;
char
*
udp_log_verbosity
=
NULL
;
char
*
rrc_log_verbosity
=
NULL
;
char
*
osa_log_level
=
NULL
;
char
*
udp_log_verbosity
=
NULL
;
char
*
osa_log_verbosity
=
NULL
;
char
*
osa_log_level
=
NULL
;
char
*
osa_log_verbosity
=
NULL
;
printf
(
"[KOGO][TESTING] Start of RCConfig_RCC"
);
printf
(
"[KOGO][TESTING] Start of RCConfig_RCC"
);
...
@@ -604,9 +599,16 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc)
...
@@ -604,9 +599,16 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc)
paramlist_def_t
CCsParamList
=
{
ENB_CONFIG_STRING_COMPONENT_CARRIERS
,
NULL
,
0
};
paramlist_def_t
CCsParamList
=
{
ENB_CONFIG_STRING_COMPONENT_CARRIERS
,
NULL
,
0
};
paramdef_t
brParams
[]
=
BRPARAMS_DESC
;
paramdef_t
brParams
[]
=
BRPARAMS_DESC
;
//paramdef_t siInfoBRParams[] = SI_INFO_BR_DESC;
paramdef_t
schedulingInfoBrParams
[]
=
SI_INFO_BR_DESC
;
paramlist_def_t
schedulingInfoBrParamList
=
{
ENB_CONFIG_STRING_SCHEDULING_INFO_BR
,
NULL
,
0
};
//paramdef_t rsrprangeParams[] = RSRP_RANGE_LIST_DESC;
//paramdef_t rsrprangeParams[] = RSRP_RANGE_LIST_DESC;
//paramdef_t rachcelevelParams[] = RACH_CE_LEVELINFOLIST_R13_DESC;
paramdef_t
rachcelevelParams
[]
=
RACH_CE_LEVELINFOLIST_R13_DESC
;
paramlist_def_t
rachcelevellist
=
{
ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13
,
NULL
,
0
};
//paramdef_t prachParams[] = PRACH_PARAMS_CE_R13_DESC;
//paramdef_t prachParams[] = PRACH_PARAMS_CE_R13_DESC;
//paramdef_t n1PUCCH_ANR13Params[] = N1PUCCH_AN_INFOLIST_R13_DESC;
//paramdef_t n1PUCCH_ANR13Params[] = N1PUCCH_AN_INFOLIST_R13_DESC;
//paramdef_t pcchv1310Params[] = PCCH_CONFIG_V1310_DESC;
//paramdef_t pcchv1310Params[] = PCCH_CONFIG_V1310_DESC;
...
@@ -699,9 +701,9 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc)
...
@@ -699,9 +701,9 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc)
for
(
k
=
0
;
k
<
num_enbs
;
k
++
)
for
(
k
=
0
;
k
<
num_enbs
;
k
++
)
{
{
if
(
strcmp
(
ENBSParams
[
ENB_ACTIVE_ENBS_IDX
].
strlistptr
[
k
],
*
(
ENBParamList
.
paramarray
[
i
][
ENB_ENB_NAME_IDX
].
strptr
)
)
==
0
)
if
(
strcmp
(
ENBSParams
[
ENB_ACTIVE_ENBS_IDX
].
strlistptr
[
k
],
*
(
ENBParamList
.
paramarray
[
i
][
ENB_ENB_NAME_IDX
].
strptr
)
)
==
0
)
{
{
char
enbpath
[
MAX_OPTNAME_SIZE
+
8
];
char
enbpath
[
MAX_OPTNAME_SIZE
+
8
];
...
@@ -733,7 +735,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc)
...
@@ -733,7 +735,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc)
// Parse optional physical parameters
// Parse optional physical parameters
sprintf
(
enbpath
,
"%s.[%i]"
,
ENB_CONFIG_STRING_ENB_LIST
,
k
);
sprintf
(
enbpath
,
"%s.[%i]"
,
ENB_CONFIG_STRING_ENB_LIST
,
k
);
config_getlist
(
&
CCsParamList
,
NULL
,
0
,
enbpath
);
config_getlist
(
&
CCsParamList
,
NULL
,
0
,
enbpath
);
printf
(
"[KOGO][TESTING]: CC List count: %d
\n
"
,
CCsParamList
.
numelt
);
printf
(
"[KOGO][TESTING]: CC List count: %d
\n
"
,
CCsParamList
.
numelt
);
LOG_I
(
RRC
,
"num component carriers %d
\n
"
,
num_component_carriers
);
LOG_I
(
RRC
,
"num component carriers %d
\n
"
,
num_component_carriers
);
...
@@ -750,7 +752,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc)
...
@@ -750,7 +752,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc)
for
(
j
=
0
;
j
<
CCsParamList
.
numelt
;
j
++
)
{
for
(
j
=
0
;
j
<
CCsParamList
.
numelt
;
j
++
)
{
sprintf
(
ccspath
,
"%s.%s.[%i]"
,
enbpath
,
ENB_CONFIG_STRING_COMPONENT_CARRIERS
,
j
);
sprintf
(
ccspath
,
"%s.%s.[%i]"
,
enbpath
,
ENB_CONFIG_STRING_COMPONENT_CARRIERS
,
j
);
config_get
(
CCsParams
,
sizeof
(
CCsParams
)
/
sizeof
(
paramdef_t
),
ccspath
);
config_get
(
CCsParams
,
sizeof
(
CCsParams
)
/
sizeof
(
paramdef_t
),
ccspath
);
...
@@ -1825,20 +1827,628 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc)
...
@@ -1825,20 +1827,628 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc)
//#ifdef Rel14
//#ifdef Rel14
char
brparamspath
[
MAX_OPTNAME_SIZE
*
2
+
16
];
char
brparamspath
[
MAX_OPTNAME_SIZE
*
2
+
16
];
sprintf
(
brparamspath
,
"%s.%s"
,
ccspath
,
ENB_CONFIG_STRING_COMPONENT_BR_PARAMETERS
);
sprintf
(
brparamspath
,
"%s.%s"
,
ccspath
,
ENB_CONFIG_STRING_COMPONENT_BR_PARAMETERS
);
config_get
(
brParams
,
sizeof
(
brParams
)
/
sizeof
(
paramdef_t
),
brparamspath
);
config_get
(
brParams
,
sizeof
(
brParams
)
/
sizeof
(
paramdef_t
),
brparamspath
);
/*setting_br13 = config_setting_get_member(component_carrier, ENB_CONFIG_STRING_BR);
int
cnt_pucch_NumRepetitionCE
=
0
;
if (setting_br13 != NULL) {*/
int
cnt
=
0
;
/*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
;
RRC_CONFIGURATION_REQ
(
msg_p
).
schedulingInfoSIB1_BR_r13
[
j
]
=
schedulingInfoSIB1_BR_r13
;
//}
if
(
!
strcmp
(
cellSelectionInfoCE_r13
,
"ENABLE"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
cellSelectionInfoCE_r13
[
j
]
=
TRUE
;
RRC_CONFIGURATION_REQ
(
msg_p
).
q_RxLevMinCE_r13
[
j
]
=
q_RxLevMinCE_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
).
cellSelectionInfoCE_r13
[
j
]
=
FALSE
;
}
if
(
!
strcmp
(
bandwidthReducedAccessRelatedInfo_r13
,
"ENABLE"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
bandwidthReducedAccessRelatedInfo_r13
[
j
]
=
TRUE
;
if
(
!
strcmp
(
si_WindowLength_BR_r13
,
"ms20"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
si_WindowLength_BR_r13
[
j
]
=
0
;
}
else
if
(
!
strcmp
(
si_WindowLength_BR_r13
,
"ms40"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
si_WindowLength_BR_r13
[
j
]
=
1
;
}
else
if
(
!
strcmp
(
si_WindowLength_BR_r13
,
"ms60"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
si_WindowLength_BR_r13
[
j
]
=
2
;
}
else
if
(
!
strcmp
(
si_WindowLength_BR_r13
,
"ms80"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
si_WindowLength_BR_r13
[
j
]
=
3
;
}
else
if
(
!
strcmp
(
si_WindowLength_BR_r13
,
"ms120"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
si_WindowLength_BR_r13
[
j
]
=
4
;
}
else
if
(
!
strcmp
(
si_WindowLength_BR_r13
,
"ms160"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
si_WindowLength_BR_r13
[
j
]
=
5
;
}
else
if
(
!
strcmp
(
si_WindowLength_BR_r13
,
"ms200"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
si_WindowLength_BR_r13
[
j
]
=
6
;
}
else
if
(
!
strcmp
(
si_WindowLength_BR_r13
,
"spare"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
si_WindowLength_BR_r13
[
j
]
=
7
;
}
if
(
!
strcmp
(
si_RepetitionPattern_r13
,
"everyRF"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
si_RepetitionPattern_r13
[
j
]
=
0
;
}
else
if
(
!
strcmp
(
si_RepetitionPattern_r13
,
"every2ndRF"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
si_RepetitionPattern_r13
[
j
]
=
1
;
}
else
if
(
!
strcmp
(
si_RepetitionPattern_r13
,
"every4thRF"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
si_RepetitionPattern_r13
[
j
]
=
2
;
}
else
if
(
!
strcmp
(
si_RepetitionPattern_r13
,
"every8thRF"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
si_RepetitionPattern_r13
[
j
]
=
3
;
}
}
else
{
RRC_CONFIGURATION_REQ
(
msg_p
).
bandwidthReducedAccessRelatedInfo_r13
[
j
]
=
FALSE
;
}
char
schedulingInfoBrPath
[
MAX_OPTNAME_SIZE
*
2
];
config_getlist
(
&
schedulingInfoBrParamList
,
NULL
,
0
,
brparamspath
);
int
siInfoindex
;
for
(
siInfoindex
=
0
;
siInfoindex
<
schedulingInfoBrParamList
.
numelt
;
siInfoindex
++
)
{
sprintf
(
schedulingInfoBrPath
,
"%s.%s.[%i]"
,
brparamspath
,
ENB_CONFIG_STRING_SCHEDULING_INFO_LIST
,
siInfoindex
);
config_get
(
schedulingInfoBrParams
,
sizeof
(
schedulingInfoBrParams
)
/
sizeof
(
paramdef_t
),
schedulingInfoBrPath
);
RRC_CONFIGURATION_REQ
(
msg_p
).
si_Narrowband_r13
[
j
][
siInfoindex
]
=
si_Narrowband_r13
;
RRC_CONFIGURATION_REQ
(
msg_p
).
si_TBS_r13
[
j
][
siInfoindex
]
=
si_TBS_r13
;
printf
(
"[DEBUGGING][KOGO] si_narrowband_r13 = %d
\n
"
,
si_Narrowband_r13
);
printf
(
"[DEBUGGING][KOGO] si_TBS_r13 = %d
\n
"
,
si_TBS_r13
);
}
// kogo -- recheck
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
]
=
TRUE
;
RRC_CONFIGURATION_REQ
(
msg_p
).
fdd_DownlinkOrTddSubframeBitmapBR_val_r13
[
j
]
=
fdd_DownlinkOrTddSubframeBitmapBR_val_r13
;
}
else
{
*
RRC_CONFIGURATION_REQ
(
msg_p
).
fdd_DownlinkOrTddSubframeBitmapBR_r13
[
j
]
=
FALSE
;
}
printf
(
"[DEBUGGING][KOGO] fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = %x
\n
"
,
fdd_DownlinkOrTddSubframeBitmapBR_val_r13
);
RRC_CONFIGURATION_REQ
(
msg_p
).
startSymbolBR_r13
[
j
]
=
startSymbolBR_r13
;
printf
(
"[DEBUGGING][KOGO] startSymbolBR_r13 = %d
\n
"
,
startSymbolBR_r13
);
if
(
!
strcmp
(
si_HoppingConfigCommon_r13
,
"off"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
si_HoppingConfigCommon_r13
[
j
]
=
1
;
}
else
if
(
!
strcmp
(
si_HoppingConfigCommon_r13
,
"on"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
si_HoppingConfigCommon_r13
[
j
]
=
0
;
}
RRC_CONFIGURATION_REQ
(
msg_p
).
si_ValidityTime_r13
[
j
]
=
calloc
(
1
,
sizeof
(
long
));
if
(
!
strcmp
(
si_ValidityTime_r13
,
"true"
))
{
*
RRC_CONFIGURATION_REQ
(
msg_p
).
si_ValidityTime_r13
[
j
]
=
0
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d si_ValidityTime_r13 unknown value!
\n
"
,
RC
.
config_file_name
,
i
);
}
printf
(
"DEBUGGING][KOGO][CHAR*]: si_ValidityTime_r13: %s - %d
\n
"
,
si_ValidityTime_r13
,
*
RRC_CONFIGURATION_REQ
(
msg_p
).
si_ValidityTime_r13
[
j
]);
if
(
!
strcmp
(
freqHoppingParametersDL_r13
,
"ENABLE"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
freqHoppingParametersDL_r13
[
j
]
=
TRUE
;
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
;
RRC_CONFIGURATION_REQ
(
msg_p
).
mpdcch_pdsch_HoppingNB_r13
[
j
]
=
calloc
(
1
,
sizeof
(
long
));
if
(
!
strcmp
(
mpdcch_pdsch_HoppingNB_r13
,
"nb2"
))
{
*
RRC_CONFIGURATION_REQ
(
msg_p
).
mpdcch_pdsch_HoppingNB_r13
[
j
]
=
0
;
}
else
if
(
!
strcmp
(
mpdcch_pdsch_HoppingNB_r13
,
"nb4"
))
{
*
RRC_CONFIGURATION_REQ
(
msg_p
).
mpdcch_pdsch_HoppingNB_r13
[
j
]
=
1
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d mpdcch_pdsch_HoppingNB_r13 unknown value!
\n
"
,
RC
.
config_file_name
,
i
);
}
// kogo -- recheck -- optional
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
).
freqHoppingParametersDL_r13
[
j
]
=
FALSE
;
}
/** ------------------------------SIB23------------------------------------------ */
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
preambleTransMax_CE_r13
=
calloc
(
1
,
sizeof
(
long
));
if
(
!
strcmp
(
preambleTransMax_CE_r13
,
"n3"
))
{
*
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
preambleTransMax_CE_r13
=
0
;
}
else
if
(
!
strcmp
(
preambleTransMax_CE_r13
,
"n4"
))
{
*
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
preambleTransMax_CE_r13
=
1
;
}
else
if
(
!
strcmp
(
preambleTransMax_CE_r13
,
"n5"
))
{
*
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
preambleTransMax_CE_r13
=
2
;
}
else
if
(
!
strcmp
(
preambleTransMax_CE_r13
,
"n6"
))
{
*
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
preambleTransMax_CE_r13
=
3
;
}
else
if
(
!
strcmp
(
preambleTransMax_CE_r13
,
"n7"
))
{
*
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
preambleTransMax_CE_r13
=
4
;
}
else
if
(
!
strcmp
(
preambleTransMax_CE_r13
,
"n8"
))
{
*
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
preambleTransMax_CE_r13
=
5
;
}
else
if
(
!
strcmp
(
preambleTransMax_CE_r13
,
"n10"
))
{
*
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
preambleTransMax_CE_r13
=
6
;
}
else
if
(
!
strcmp
(
preambleTransMax_CE_r13
,
"n20"
))
{
*
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
preambleTransMax_CE_r13
=
7
;
}
else
if
(
!
strcmp
(
preambleTransMax_CE_r13
,
"n50"
))
{
*
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
preambleTransMax_CE_r13
=
8
;
}
else
if
(
!
strcmp
(
preambleTransMax_CE_r13
,
"n100"
))
{
*
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
preambleTransMax_CE_r13
=
9
;
}
else
if
(
!
strcmp
(
preambleTransMax_CE_r13
,
"n200"
))
{
*
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
preambleTransMax_CE_r13
=
10
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d preambleTransMax_CE_r13 unknown value!
\n
"
,
RC
.
config_file_name
,
i
);
}
printf
(
"[DEBUGGING][KOGO]: preambleTransMax_CE_r13 = %s
\n
"
,
preambleTransMax_CE_r13
);
if
(
!
strcmp
(
rach_numberOfRA_Preambles
,
"n4"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_numberOfRA_Preambles
=
(
4
/
4
)
-
1
;
}
else
if
(
!
strcmp
(
rach_numberOfRA_Preambles
,
"n8"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_numberOfRA_Preambles
=
(
8
/
4
)
-
1
;
}
else
if
(
!
strcmp
(
rach_numberOfRA_Preambles
,
"n12"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_numberOfRA_Preambles
=
(
12
/
4
)
-
1
;
}
else
if
(
!
strcmp
(
rach_numberOfRA_Preambles
,
"n16"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_numberOfRA_Preambles
=
(
16
/
4
)
-
1
;
}
else
if
(
!
strcmp
(
rach_numberOfRA_Preambles
,
"n20"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_numberOfRA_Preambles
=
(
20
/
4
)
-
1
;
}
else
if
(
!
strcmp
(
rach_numberOfRA_Preambles
,
"n24"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_numberOfRA_Preambles
=
(
24
/
4
)
-
1
;
}
else
if
(
!
strcmp
(
rach_numberOfRA_Preambles
,
"n28"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_numberOfRA_Preambles
=
(
28
/
4
)
-
1
;
}
else
if
(
!
strcmp
(
rach_numberOfRA_Preambles
,
"n32"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_numberOfRA_Preambles
=
(
32
/
4
)
-
1
;
}
else
if
(
!
strcmp
(
rach_numberOfRA_Preambles
,
"n36"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_numberOfRA_Preambles
=
(
36
/
4
)
-
1
;
}
else
if
(
!
strcmp
(
rach_numberOfRA_Preambles
,
"n40"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_numberOfRA_Preambles
=
(
40
/
4
)
-
1
;
}
else
if
(
!
strcmp
(
rach_numberOfRA_Preambles
,
"n44"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_numberOfRA_Preambles
=
(
44
/
4
)
-
1
;
}
else
if
(
!
strcmp
(
rach_numberOfRA_Preambles
,
"n48"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_numberOfRA_Preambles
=
(
48
/
4
)
-
1
;
}
else
if
(
!
strcmp
(
rach_numberOfRA_Preambles
,
"n52"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_numberOfRA_Preambles
=
(
52
/
4
)
-
1
;
}
else
if
(
!
strcmp
(
rach_numberOfRA_Preambles
,
"n56"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_numberOfRA_Preambles
=
(
56
/
4
)
-
1
;
}
else
if
(
!
strcmp
(
rach_numberOfRA_Preambles
,
"n60"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_numberOfRA_Preambles
=
(
60
/
4
)
-
1
;
}
else
if
(
!
strcmp
(
rach_numberOfRA_Preambles
,
"n64"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_numberOfRA_Preambles
=
(
64
/
4
)
-
1
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for rach_numberOfRA_Preambles choice: 4,8,12,...,64!
\n
"
,
RC
.
config_file_name
,
i
,
rach_numberOfRA_Preambles
);
}
printf
(
"[DEBUGGING][KOGO]: rach_numberOfRA_Preambles = %s
\n
"
,
rach_numberOfRA_Preambles
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_powerRampingStep
=
rach_powerRampingStep
/
2
;
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_preambleInitialReceivedTargetPower
=
(
rach_preambleInitialReceivedTargetPower
+
120
)
/
2
;
if
((
rach_preambleInitialReceivedTargetPower
<-
120
)
||
(
rach_preambleInitialReceivedTargetPower
>-
90
)
||
((
rach_preambleInitialReceivedTargetPower
&
1
)
!=
0
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !
\n
"
,
RC
.
config_file_name
,
i
,
rach_preambleInitialReceivedTargetPower
);
switch
(
rach_preambleTransMax
)
{
case
3
:
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_preambleTransMax
=
PreambleTransMax_n3
;
break
;
case
4
:
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_preambleTransMax
=
PreambleTransMax_n4
;
break
;
case
5
:
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_preambleTransMax
=
PreambleTransMax_n5
;
break
;
case
6
:
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_preambleTransMax
=
PreambleTransMax_n6
;
break
;
case
7
:
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_preambleTransMax
=
PreambleTransMax_n7
;
break
;
case
8
:
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_preambleTransMax
=
PreambleTransMax_n8
;
break
;
case
10
:
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_preambleTransMax
=
PreambleTransMax_n10
;
break
;
case
20
:
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_preambleTransMax
=
PreambleTransMax_n20
;
break
;
case
50
:
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_preambleTransMax
=
PreambleTransMax_n50
;
break
;
case
100
:
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_preambleTransMax
=
PreambleTransMax_n100
;
break
;
case
200
:
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_preambleTransMax
=
PreambleTransMax_n200
;
break
;
default:
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!
\n
"
,
RC
.
config_file_name
,
i
,
rach_preambleTransMax
);
break
;
}
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_raResponseWindowSize
=
(
rach_raResponseWindowSize
==
10
)
?
7
:
rach_raResponseWindowSize
-
2
;
if
((
rach_raResponseWindowSize
<
0
)
||
(
rach_raResponseWindowSize
==
9
)
||
(
rach_raResponseWindowSize
>
10
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!
\n
"
,
RC
.
config_file_name
,
i
,
rach_preambleTransMax
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_macContentionResolutionTimer
=
(
rach_macContentionResolutionTimer
/
8
)
-
1
;
if
((
rach_macContentionResolutionTimer
<
8
)
||
(
rach_macContentionResolutionTimer
>
64
)
||
((
rach_macContentionResolutionTimer
&
7
)
!=
0
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for rach_macContentionResolutionTimer choice: 8,16,...,56,64!
\n
"
,
RC
.
config_file_name
,
i
,
rach_preambleTransMax
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
rach_maxHARQ_Msg3Tx
=
rach_maxHARQ_Msg3Tx
;
if
((
rach_maxHARQ_Msg3Tx
<
0
)
||
(
rach_maxHARQ_Msg3Tx
>
8
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for rach_maxHARQ_Msg3Tx choice: 1..8!
\n
"
,
RC
.
config_file_name
,
i
,
rach_preambleTransMax
);
char
rachCELevelInfoListPath
[
MAX_OPTNAME_SIZE
*
2
];
config_getlist
(
&
rachcelevellist
,
NULL
,
0
,
brparamspath
);
int
rachCEInfoIndex
;
for
(
rachCEInfoIndex
=
0
;
rachCEInfoIndex
<
rachcelevellist
.
numelt
;
rachCEInfoIndex
++
)
{
sprintf
(
rachCELevelInfoListPath
,
"%s.%s.[%i]"
,
brparamspath
,
ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13
,
rachCEInfoIndex
);
config_get
(
rachcelevelParams
,
sizeof
(
rachcelevelParams
)
/
sizeof
(
paramdef_t
),
rachCELevelInfoListPath
);
RRC_CONFIGURATION_REQ
(
msg_p
).
firstPreamble_r13
[
j
][
rachCEInfoIndex
]
=
firstPreamble_r13
;
RRC_CONFIGURATION_REQ
(
msg_p
).
lastPreamble_r13
[
j
][
rachCEInfoIndex
]
=
lastPreamble_r13
;
printf
(
"DEBUGGING][KOGO]: firstPreamble_r13: %d
\n
"
,
firstPreamble_r13
);
printf
(
"DEBUGGING][KOGO]: lastPreamble_r13: %d
\n
"
,
lastPreamble_r13
);
if
(
!
strcmp
(
ra_ResponseWindowSize_r13
,
"sf20"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
ra_ResponseWindowSize_r13
[
j
][
rachCEInfoIndex
]
=
0
;
}
else
if
(
!
strcmp
(
ra_ResponseWindowSize_r13
,
"sf50"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
ra_ResponseWindowSize_r13
[
j
][
rachCEInfoIndex
]
=
1
;
}
else
if
(
!
strcmp
(
ra_ResponseWindowSize_r13
,
"sf80"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
ra_ResponseWindowSize_r13
[
j
][
rachCEInfoIndex
]
=
2
;
}
else
if
(
!
strcmp
(
ra_ResponseWindowSize_r13
,
"sf120"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
ra_ResponseWindowSize_r13
[
j
][
rachCEInfoIndex
]
=
3
;
}
else
if
(
!
strcmp
(
ra_ResponseWindowSize_r13
,
"sf180"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
ra_ResponseWindowSize_r13
[
j
][
rachCEInfoIndex
]
=
4
;
}
else
if
(
!
strcmp
(
ra_ResponseWindowSize_r13
,
"sf240"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
ra_ResponseWindowSize_r13
[
j
][
rachCEInfoIndex
]
=
5
;
}
else
if
(
!
strcmp
(
ra_ResponseWindowSize_r13
,
"sf320"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
ra_ResponseWindowSize_r13
[
j
][
rachCEInfoIndex
]
=
6
;
}
else
if
(
!
strcmp
(
ra_ResponseWindowSize_r13
,
"sf400"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
ra_ResponseWindowSize_r13
[
j
][
rachCEInfoIndex
]
=
7
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, ra_ResponseWindowSize_r13 unknown value!
\n
"
,
RC
.
config_file_name
);
}
if
(
!
strcmp
(
mac_ContentionResolutionTimer_r13
,
"sf80"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
mac_ContentionResolutionTimer_r13
[
j
][
rachCEInfoIndex
]
=
0
;
}
else
if
(
!
strcmp
(
mac_ContentionResolutionTimer_r13
,
"sf100"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
mac_ContentionResolutionTimer_r13
[
j
][
rachCEInfoIndex
]
=
1
;
}
else
if
(
!
strcmp
(
mac_ContentionResolutionTimer_r13
,
"sf120"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
mac_ContentionResolutionTimer_r13
[
j
][
rachCEInfoIndex
]
=
2
;
}
else
if
(
!
strcmp
(
mac_ContentionResolutionTimer_r13
,
"sf160"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
mac_ContentionResolutionTimer_r13
[
j
][
rachCEInfoIndex
]
=
3
;
}
else
if
(
!
strcmp
(
mac_ContentionResolutionTimer_r13
,
"sf200"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
mac_ContentionResolutionTimer_r13
[
j
][
rachCEInfoIndex
]
=
4
;
}
else
if
(
!
strcmp
(
mac_ContentionResolutionTimer_r13
,
"sf240"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
mac_ContentionResolutionTimer_r13
[
j
][
rachCEInfoIndex
]
=
5
;
}
else
if
(
!
strcmp
(
mac_ContentionResolutionTimer_r13
,
"sf480"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
mac_ContentionResolutionTimer_r13
[
j
][
rachCEInfoIndex
]
=
6
;
}
else
if
(
!
strcmp
(
mac_ContentionResolutionTimer_r13
,
"sf960"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
mac_ContentionResolutionTimer_r13
[
j
][
rachCEInfoIndex
]
=
7
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, mac_ContentionResolutionTimer_r13 unknown value!
\n
"
,
RC
.
config_file_name
);
}
if
(
!
strcmp
(
rar_HoppingConfig_r13
,
"on"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
rar_HoppingConfig_r13
[
j
][
rachCEInfoIndex
]
=
0
;
}
else
if
(
!
strcmp
(
rar_HoppingConfig_r13
,
"off"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
rar_HoppingConfig_r13
[
j
][
rachCEInfoIndex
]
=
1
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, rar_HoppingConfig_r13 unknown value!
\n
"
,
RC
.
config_file_name
);
}
}
// end for loop (rach ce level info)
printf
(
"DEBUGGING][KOGO]: ra_ResponseWindowSize_r13: %s
\n
"
,
ra_ResponseWindowSize_r13
);
printf
(
"DEBUGGING][KOGO]: mac_ContentionResolutionTimer_r13: %s
\n
"
,
mac_ContentionResolutionTimer_r13
);
printf
(
"DEBUGGING][KOGO]: rar_HoppingConfig_r13: %s
\n
"
,
rar_HoppingConfig_r13
);
/** BCCH CONFIG */
switch
(
bcch_modificationPeriodCoeff
)
{
case
2
:
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
bcch_modificationPeriodCoeff
=
BCCH_Config__modificationPeriodCoeff_n2
;
break
;
case
4
:
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
bcch_modificationPeriodCoeff
=
BCCH_Config__modificationPeriodCoeff_n4
;
break
;
case
8
:
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
bcch_modificationPeriodCoeff
=
BCCH_Config__modificationPeriodCoeff_n8
;
break
;
case
16
:
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
bcch_modificationPeriodCoeff
=
BCCH_Config__modificationPeriodCoeff_n16
;
break
;
default:
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for bcch_modificationPeriodCoeff choice: 2,4,8,16"
,
RC
.
config_file_name
,
i
,
bcch_modificationPeriodCoeff
);
break
;
}
/** PCCH CONFIG */
if
(
!
strcmp
(
pcch_defaultPagingCycle
,
"rf32"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pcch_defaultPagingCycle
=
PCCH_Config__defaultPagingCycle_rf32
;
}
else
if
(
!
strcmp
(
pcch_defaultPagingCycle
,
"rf64"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pcch_defaultPagingCycle
=
PCCH_Config__defaultPagingCycle_rf64
;
}
else
if
(
!
strcmp
(
pcch_defaultPagingCycle
,
"rf128"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pcch_defaultPagingCycle
=
PCCH_Config__defaultPagingCycle_rf128
;
}
else
if
(
!
strcmp
(
pcch_defaultPagingCycle
,
"rf256"
))
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pcch_defaultPagingCycle
=
PCCH_Config__defaultPagingCycle_rf256
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for pcch_defaultPagingCycle choice: 32,64,128,256!
\n
"
,
RC
.
config_file_name
,
i
,
pcch_defaultPagingCycle
);
}
printf
(
"[DEBUGGING][KOGO]: pcch_defaultPagingCycle_br = %d
\n
"
,
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pcch_defaultPagingCycle
);
if
(
strcmp
(
pcch_nB
,
"fourT"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pcch_nB
=
PCCH_Config__nB_fourT
;
}
else
if
(
strcmp
(
pcch_nB
,
"twoT"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pcch_nB
=
PCCH_Config__nB_twoT
;
}
else
if
(
strcmp
(
pcch_nB
,
"oneT"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pcch_nB
=
PCCH_Config__nB_oneT
;
}
else
if
(
strcmp
(
pcch_nB
,
"halfT"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pcch_nB
=
PCCH_Config__nB_halfT
;
}
else
if
(
strcmp
(
pcch_nB
,
"quarterT"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pcch_nB
=
PCCH_Config__nB_quarterT
;
}
else
if
(
strcmp
(
pcch_nB
,
"oneEighthT"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pcch_nB
=
PCCH_Config__nB_oneEighthT
;
}
else
if
(
strcmp
(
pcch_nB
,
"oneSixteenthT"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pcch_nB
=
PCCH_Config__nB_oneSixteenthT
;
}
else
if
(
strcmp
(
pcch_nB
,
"oneThirtySecondT"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pcch_nB
=
PCCH_Config__nB_oneThirtySecondT
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !
\n
"
,
RC
.
config_file_name
,
i
,
pcch_defaultPagingCycle
);
/** PRACH CONFIG */
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
prach_root
=
prach_root
;
if
((
prach_root
<
0
)
||
(
prach_root
>
1023
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for prach_root choice: 0..1023 !
\n
"
,
RC
.
config_file_name
,
i
,
prach_root
);
printf
(
"DEBUGGING][KOGO]: prach_root: %d
\n
"
,
prach_root
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
prach_config_index
=
prach_config_index
;
if
((
prach_config_index
<
0
)
||
(
prach_config_index
>
63
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for prach_config_index choice: 0..1023 !
\n
"
,
RC
.
config_file_name
,
i
,
prach_config_index
);
printf
(
"DEBUGGING][KOGO]: prach_config_index: %d
\n
"
,
prach_config_index
);
if
(
!
prach_high_speed
)
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!
\n
"
,
RC
.
config_file_name
,
i
,
ENB_CONFIG_STRING_PRACH_HIGH_SPEED
);
else
if
(
strcmp
(
prach_high_speed
,
"ENABLE"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
prach_high_speed
=
TRUE
;
}
else
if
(
strcmp
(
prach_high_speed
,
"DISABLE"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
prach_high_speed
=
FALSE
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for prach_config choice: ENABLE,DISABLE !
\n
"
,
RC
.
config_file_name
,
i
,
prach_high_speed
);
printf
(
"DEBUGGING][KOGO]: prach_high_speed: %s
\n
"
,
prach_high_speed
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
prach_zero_correlation
=
prach_zero_correlation
;
if
((
prach_zero_correlation
<
0
)
||
(
prach_zero_correlation
>
15
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for prach_zero_correlation choice: 0..15!
\n
"
,
RC
.
config_file_name
,
i
,
prach_zero_correlation
);
printf
(
"DEBUGGING][KOGO]: prach_zero_correlation: %d
\n
"
,
prach_zero_correlation
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
prach_freq_offset
=
prach_freq_offset
;
if
((
prach_freq_offset
<
0
)
||
(
prach_freq_offset
>
94
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for prach_freq_offset choice: 0..94!
\n
"
,
RC
.
config_file_name
,
i
,
prach_freq_offset
);
printf
(
"DEBUGGING][KOGO]: prach_freq_offset: %d
\n
"
,
prach_freq_offset
);
/** PDSCH Config Common */
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pdsch_referenceSignalPower
=
pdsch_referenceSignalPower
;
if
((
pdsch_referenceSignalPower
<-
60
)
||
(
pdsch_referenceSignalPower
>
50
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for pdsch_referenceSignalPower choice:-60..50!
\n
"
,
RC
.
config_file_name
,
i
,
pdsch_referenceSignalPower
);
printf
(
"DEBUGGING][KOGO]: pdsch_referenceSignalPower: %d
\n
"
,
pdsch_referenceSignalPower
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pdsch_p_b
=
pdsch_p_b
;
if
((
pdsch_p_b
<
0
)
||
(
pdsch_p_b
>
3
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for pdsch_p_b choice: 0..3!
\n
"
,
RC
.
config_file_name
,
i
,
pdsch_p_b
);
printf
(
"DEBUGGING][KOGO]: pdsch_p_b: %d
\n
"
,
pdsch_p_b
);
/** PUSCH Config Common */
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pusch_n_SB
=
pusch_n_SB
;
if
((
pusch_n_SB
<
1
)
||
(
pusch_n_SB
>
4
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for pusch_n_SB choice: 1..4!
\n
"
,
RC
.
config_file_name
,
i
,
pusch_n_SB
);
printf
(
"DEBUGGING][KOGO]: pusch_n_SB: %d
\n
"
,
pusch_n_SB
);
if
(
!
pusch_hoppingMode
)
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!
\n
"
,
RC
.
config_file_name
,
i
,
ENB_CONFIG_STRING_PUSCH_HOPPINGMODE
);
else
if
(
strcmp
(
pusch_hoppingMode
,
"interSubFrame"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pusch_hoppingMode
=
PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame
;
}
else
if
(
strcmp
(
pusch_hoppingMode
,
"intraAndInterSubFrame"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pusch_hoppingMode
=
PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!
\n
"
,
RC
.
config_file_name
,
i
,
pusch_hoppingMode
);
printf
(
"DEBUGGING][KOGO]: pusch_hoppingMode: %s
\n
"
,
pusch_hoppingMode
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pusch_hoppingOffset
=
pusch_hoppingOffset
;
if
((
pusch_hoppingOffset
<
0
)
||
(
pusch_hoppingOffset
>
98
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for pusch_hoppingOffset choice: 0..98!
\n
"
,
RC
.
config_file_name
,
i
,
pusch_hoppingMode
);
printf
(
"DEBUGGING][KOGO]: pusch_hoppingOffset: %d
\n
"
,
pusch_hoppingOffset
);
if
(
!
pusch_enable64QAM
)
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!
\n
"
,
RC
.
config_file_name
,
i
,
ENB_CONFIG_STRING_PUSCH_ENABLE64QAM
);
else
if
(
strcmp
(
pusch_enable64QAM
,
"ENABLE"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pusch_enable64QAM
=
TRUE
;
}
else
if
(
strcmp
(
pusch_enable64QAM
,
"DISABLE"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pusch_enable64QAM
=
FALSE
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for pusch_enable64QAM choice: ENABLE,DISABLE!
\n
"
,
RC
.
config_file_name
,
i
,
pusch_enable64QAM
);
printf
(
"DEBUGGING][KOGO]: pusch_enable64QAM: %s
\n
"
,
pusch_enable64QAM
);
if
(
!
pusch_groupHoppingEnabled
)
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!
\n
"
,
RC
.
config_file_name
,
i
,
ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN
);
else
if
(
strcmp
(
pusch_groupHoppingEnabled
,
"ENABLE"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pusch_groupHoppingEnabled
=
TRUE
;
}
else
if
(
strcmp
(
pusch_groupHoppingEnabled
,
"DISABLE"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pusch_groupHoppingEnabled
=
FALSE
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!
\n
"
,
RC
.
config_file_name
,
i
,
pusch_groupHoppingEnabled
);
printf
(
"DEBUGGING][KOGO]: pusch_groupHoppingEnabled: %s
\n
"
,
pusch_groupHoppingEnabled
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pusch_groupAssignment
=
pusch_groupAssignment
;
if
((
pusch_groupAssignment
<
0
)
||
(
pusch_groupAssignment
>
29
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for pusch_groupAssignment choice: 0..29!
\n
"
,
RC
.
config_file_name
,
i
,
pusch_groupAssignment
);
printf
(
"DEBUGGING][KOGO]: pusch_groupAssignment: %d
\n
"
,
pusch_groupAssignment
);
if
(
!
pusch_sequenceHoppingEnabled
)
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!
\n
"
,
RC
.
config_file_name
,
i
,
ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN
);
else
if
(
strcmp
(
pusch_sequenceHoppingEnabled
,
"ENABLE"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pusch_sequenceHoppingEnabled
=
TRUE
;
}
else
if
(
strcmp
(
pusch_sequenceHoppingEnabled
,
"DISABLE"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig_BR
[
j
].
pusch_sequenceHoppingEnabled
=
FALSE
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!
\n
"
,
RC
.
config_file_name
,
i
,
pusch_sequenceHoppingEnabled
);
printf
(
"DEBUGGING][KOGO]: pusch_sequenceHoppingEnabled: %s
\n
"
,
pusch_sequenceHoppingEnabled
);
/** PUCCH Config Common */
/** TO BE CONTINUED */
/*system_info_value_tag_SI_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST);
/*system_info_value_tag_SI_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST);
int num_system_info;
int num_system_info;
...
@@ -1862,30 +2472,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc)
...
@@ -1862,30 +2472,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc)
RRC_CONFIGURATION_REQ (msg_p).system_info_value_tag_SI_size[j] = num_system_info;
RRC_CONFIGURATION_REQ (msg_p).system_info_value_tag_SI_size[j] = num_system_info;
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"))
if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_BRAccessRelatedInfo, &bandwidthReducedAccessRelatedInfo_r13) && !strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE"))
{
{
...
@@ -1904,36 +2490,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc)
...
@@ -1904,36 +2490,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc)
if (!strcmp(si_WindowLength_BR_r13, "ms20")) {
RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 0;
} else if (!strcmp(si_WindowLength_BR_r13, "ms40")) {
RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 1;
} else if (!strcmp(si_WindowLength_BR_r13, "ms60")) {
RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 2;
} else if (!strcmp(si_WindowLength_BR_r13, "ms80")) {
RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 3;
} else if (!strcmp(si_WindowLength_BR_r13, "ms120")) {
RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 4;
} else if (!strcmp(si_WindowLength_BR_r13, "ms160")) {
RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 5;
} else if (!strcmp(si_WindowLength_BR_r13, "ms200")) {
RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 6;
} else if (!strcmp(si_WindowLength_BR_r13, "spare")) {
RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 7;
}
if (!strcmp(si_RepetitionPattern_r13, "everyRF")) {
RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 0;
} else if (!strcmp(si_RepetitionPattern_r13, "every2ndRF")) {
RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 1;
} else if (!strcmp(si_RepetitionPattern_r13, "every4thRF")) {
RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 2;
} else if (!strcmp(si_RepetitionPattern_r13, "every8thRF")) {
RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 3;
}
RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13;
RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13;
if (!strcmp(si_HoppingConfigCommon_r13, "off")) {
if (!strcmp(si_HoppingConfigCommon_r13, "off")) {
...
@@ -3403,7 +3959,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc)
...
@@ -3403,7 +3959,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc)
RC.config_file_name, i, rach_preambleInitialReceivedTargetPower);
RC.config_file_name, i, rach_preambleInitialReceivedTargetPower);
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_powerRampingStep
= rach_powerRampingStep/
2;
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_powerRampingStep
= rach_powerRampingStep /
2;
if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0))
if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0))
AssertFatal (0,
AssertFatal (0,
...
@@ -4791,7 +5347,7 @@ void RCConfig(void) {
...
@@ -4791,7 +5347,7 @@ void RCConfig(void) {
if
(
RC
.
nb_inst
>
0
)
{
if
(
RC
.
nb_inst
>
0
)
{
RC
.
nb_CC
=
(
int
*
)
malloc
((
1
+
RC
.
nb_inst
)
*
sizeof
(
int
));
RC
.
nb_CC
=
(
int
*
)
malloc
((
1
+
RC
.
nb_inst
)
*
sizeof
(
int
));
for
(
int
i
=
0
;
i
<
RC
.
nb_inst
;
i
++
)
{
for
(
int
i
=
0
;
i
<
RC
.
nb_inst
;
i
++
)
{
sprintf
(
aprefix
,
"%s.[%i]"
,
ENB_CONFIG_STRING_ENB_LIST
,
i
);
sprintf
(
aprefix
,
"%s.[%i]"
,
ENB_CONFIG_STRING_ENB_LIST
,
i
);
config_getlist
(
&
CCsParamList
,
NULL
,
0
,
aprefix
);
config_getlist
(
&
CCsParamList
,
NULL
,
0
,
aprefix
);
RC
.
nb_CC
[
i
]
=
CCsParamList
.
numelt
;
RC
.
nb_CC
[
i
]
=
CCsParamList
.
numelt
;
}
}
...
...
openair2/ENB_APP/enb_paramdef.h
View file @
78408cc6
...
@@ -306,6 +306,7 @@ static int DEFENBS[] = {0};
...
@@ -306,6 +306,7 @@ static int DEFENBS[] = {0};
/* component carries configuration parameters name */
/* component carries configuration parameters name */
#define ENB_CONFIG_STRING_FRAME_TYPE "frame_type"
#define ENB_CONFIG_STRING_FRAME_TYPE "frame_type"
#define ENB_CONFIG_STRING_PREAMBLE_TRANSMAX_CE_R13 "preambleTransMax_CE_r13"
#define ENB_CONFIG_STRING_PBCH_REPETITION "pbch_repetition"
#define ENB_CONFIG_STRING_PBCH_REPETITION "pbch_repetition"
#define ENB_CONFIG_STRING_TDD_CONFIG "tdd_config"
#define ENB_CONFIG_STRING_TDD_CONFIG "tdd_config"
#define ENB_CONFIG_STRING_TDD_CONFIG_S "tdd_config_s"
#define ENB_CONFIG_STRING_TDD_CONFIG_S "tdd_config_s"
...
@@ -358,7 +359,7 @@ static int DEFENBS[] = {0};
...
@@ -358,7 +359,7 @@ static int DEFENBS[] = {0};
#define ENB_CONFIG_STRING_PDSCH_RS_EPRE "pdsch_referenceSignalPower"
#define ENB_CONFIG_STRING_PDSCH_RS_EPRE "pdsch_referenceSignalPower"
#define ENB_CONFIG_STRING_PDSCH_PB "pdsch_p_b"
#define ENB_CONFIG_STRING_PDSCH_PB "pdsch_p_b"
#define ENB_CONFIG_STRING_PUSCH_N_SB
"pusch_n_SB"
#define ENB_CONFIG_STRING_PUSCH_N_SB "pusch_n_SB"
#define ENB_CONFIG_STRING_PUSCH_HOPPINGMODE "pusch_hoppingMode"
#define ENB_CONFIG_STRING_PUSCH_HOPPINGMODE "pusch_hoppingMode"
#define ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET "pusch_hoppingOffset"
#define ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET "pusch_hoppingOffset"
#define ENB_CONFIG_STRING_PUSCH_ENABLE64QAM "pusch_enable64QAM"
#define ENB_CONFIG_STRING_PUSCH_ENABLE64QAM "pusch_enable64QAM"
...
@@ -534,6 +535,7 @@ static int DEFENBS[] = {0};
...
@@ -534,6 +535,7 @@ static int DEFENBS[] = {0};
{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, NULL, 0, iptr:&interval_DLHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, NULL, 0, iptr:&interval_DLHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13, NULL, 0, iptr:&mpdcch_pdsch_HoppingOffset_r13, defintval:1, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13, NULL, 0, iptr:&mpdcch_pdsch_HoppingOffset_r13, defintval:1, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_FRAME_TYPE, NULL, 0, strptr:&frame_type, defstrval:"FDD", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_FRAME_TYPE, NULL, 0, strptr:&frame_type, defstrval:"FDD", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_PREAMBLE_TRANSMAX_CE_R13, NULL, 0, strptr:&preambleTransMax_CE_r13, defstrval:"n10", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_TDD_CONFIG, NULL, 0, iptr:&tdd_config, defintval:3, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_TDD_CONFIG, NULL, 0, iptr:&tdd_config, defintval:3, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_TDD_CONFIG_S, NULL, 0, iptr:&tdd_config_s, defintval:0, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_TDD_CONFIG_S, NULL, 0, iptr:&tdd_config_s, defintval:0, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_PREFIX_TYPE, NULL, 0, strptr:&prefix_type, defstrval:"NORMAL", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_PREFIX_TYPE, NULL, 0, strptr:&prefix_type, defstrval:"NORMAL", TYPE_STRING, 0}, \
...
@@ -591,16 +593,16 @@ static int DEFENBS[] = {0};
...
@@ -591,16 +593,16 @@ static int DEFENBS[] = {0};
{ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, NULL, 0, iptr:&rach_raResponseWindowSize, defintval:10, TYPE_INT, 0}, \
{ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, NULL, 0, iptr:&rach_raResponseWindowSize, defintval:10, TYPE_INT, 0}, \
{ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, NULL, 0, iptr:&rach_macContentionResolutionTimer, defintval:48, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, NULL, 0, iptr:&rach_macContentionResolutionTimer, defintval:48, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, NULL, 0, iptr:&rach_maxHARQ_Msg3Tx, defintval:4, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, NULL, 0, iptr:&rach_maxHARQ_Msg3Tx, defintval:4, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0,
iptr:&pcch_defaultPagingCycle, defintval:128, TYPE_INT,
0}, \
{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0,
strptr:&pcch_defaultPagingCycle, defstrval:"rf128", TYPE_STRING,
0}, \
{ENB_CONFIG_STRING_PCCH_NB, NULL, 0, strptr:&pcch_nB, defstrval:"oneT", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_PCCH_NB, NULL, 0, strptr:&pcch_nB, defstrval:"oneT", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, NULL, 0, iptr:&bcch_modificationPeriodCoeff, defintval:2, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, NULL, 0, iptr:&bcch_modificationPeriodCoeff, defintval:2, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, strptr:&ue_TimersAndConstants_t300, defstrval:"ms1000", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, strptr:&ue_TimersAndConstants_t300, defstrval:"ms1000", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, strptr:&ue_TimersAndConstants_t301, defstrval:"ms1000", TYPE_STRING,
0}, \
{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, strptr:&ue_TimersAndConstants_t301, defstrval:"ms1000", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_UETIMERS_T310, NULL, 0, strptr:&ue_TimersAndConstants_t310, defstrval:"ms1000", TYPE_STRING,
0}, \
{ENB_CONFIG_STRING_UETIMERS_T310, NULL, 0, strptr:&ue_TimersAndConstants_t310, defstrval:"ms1000", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_UETIMERS_T311, NULL, 0, strptr:&ue_TimersAndConstants_t311, defstrval:"ms10000", TYPE_STRING,
0}, \
{ENB_CONFIG_STRING_UETIMERS_T311, NULL, 0, strptr:&ue_TimersAndConstants_t311, defstrval:"ms10000", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_UETIMERS_N310, NULL, 0, strptr:&ue_TimersAndConstants_n310, defstrval:"n20", TYPE_STRING,
0}, \
{ENB_CONFIG_STRING_UETIMERS_N310, NULL, 0, strptr:&ue_TimersAndConstants_n310, defstrval:"n20", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_UETIMERS_N311, NULL, 0, strptr:&ue_TimersAndConstants_n311, defstrval:"n1", TYPE_STRING,
0}, \
{ENB_CONFIG_STRING_UETIMERS_N311, NULL, 0, strptr:&ue_TimersAndConstants_n311, defstrval:"n1", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, NULL, 0, strptr:&ue_TransmissionMode, defstrval:"tm1", TYPE_STRING,
0}, \
{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, NULL, 0, strptr:&ue_TransmissionMode, defstrval:"tm1", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level0_r13, defstrval:"n1", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level0_r13, defstrval:"n1", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level1_r13, defstrval:"", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level1_r13, defstrval:"", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level2_r13, defstrval:"", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level2_r13, defstrval:"", TYPE_STRING, 0}, \
...
@@ -626,25 +628,40 @@ static int DEFENBS[] = {0};
...
@@ -626,25 +628,40 @@ static int DEFENBS[] = {0};
}
}
#define ENB_CONFIG_STRING_FIRST_PREAMBLE_R13 "firstPreamble_r13"
#define ENB_CONFIG_STRING_LAST_PREAMBLE_R13 "lastPreamble_r13"
#define ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13 "ra_ResponseWindowSize_r13"
#define ENB_CONFIG_STRING_MAC_CONTENTION_RESOLUTION_TIMER_R13 "mac_ContentionResolutionTimer_r13"
#define ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13 "rar_HoppingConfig_r13 "
#define ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13 "rach_CE_LevelInfoList_r13"
#define ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13 "rach_CE_LevelInfoList_r13"
#define RACH_CE_LEVELINFOLIST_R13_DESC { \
#define RACH_CE_LEVELINFOLIST_R13_DESC { \
{
"firstPreamble_r13"
, NULL, 0, iptr:&firstPreamble_r13, defintval:60, TYPE_UINT, 0}, \
{
ENB_CONFIG_STRING_FIRST_PREAMBLE_R13
, NULL, 0, iptr:&firstPreamble_r13, defintval:60, TYPE_UINT, 0}, \
{
"lastPreamble_r13"
, NULL, 0, iptr:&lastPreamble_r13, defintval:63, TYPE_UINT, 0}, \
{
ENB_CONFIG_STRING_LAST_PREAMBLE_R13
, NULL, 0, iptr:&lastPreamble_r13, defintval:63, TYPE_UINT, 0}, \
{
"ra_ResponseWindowSize_r13",
NULL, 0, iptr:&ra_ResponseWindowSize_r13, defintval:"sf20", TYPE_STRING, 0}, \
{
ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13,
NULL, 0, iptr:&ra_ResponseWindowSize_r13, defintval:"sf20", TYPE_STRING, 0}, \
{
"mac_ContentionResolutionTimer_r13",
NULL, 0, iptr:&mac_ContentionResolutionTimer_r13, defintval:"sf80", TYPE_STRING, 0}, \
{
ENB_CONFIG_STRING_MAC_CONTENTION_RESOLUTION_TIMER_R13,
NULL, 0, iptr:&mac_ContentionResolutionTimer_r13, defintval:"sf80", TYPE_STRING, 0}, \
{
"rar_HoppingConfig_r13"
, NULL, 0, iptr:&rar_HoppingConfig_r13, defintval:"off", TYPE_STRING, 0}\
{
ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13
, NULL, 0, iptr:&rar_HoppingConfig_r13, defintval:"off", TYPE_STRING, 0}\
}
}
#define ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR "prach_config_index_br"
#define ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR "prach_freq_offset_br"
#define ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13 "prach_StartingSubframe_r13"
#define ENB_CONFIG_STRING_MAX_NUM_PER_PREAMBLE_ATTEMPT_CE_R13 "maxNumPreambleAttemptCE_r13"
#define ENB_CONFIG_STRING_NUM_REPETITION_PER_PREAMBLE_ATTEMPT_R13 "numRepetitionPerPreambleAttempt_r13"
#define ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13 "mpdcch_NumRepetition_RA_r13"
#define ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13 "prach_HoppingConfig_r13"
#define ENB_CONFIG_SRING_MAX_AVAILABLE_NARROW_BAND "max_available_narrow_band"
#define ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13 "prach_parameters_ce_r13"
#define ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13 "prach_parameters_ce_r13"
#define PRACH_PARAMS_CE_R13_DESC { \
#define PRACH_PARAMS_CE_R13_DESC { \
{
"prach_config_index_br", NULL, 0, iptr:&prach_config_index_br, defintval:3, TYPE_UINT, 0}, \
{
ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR, NULL, 0, iptr:&prach_config_index_br, defintval:3, TYPE_UINT, 0}, \
{
"prach_freq_offset_br"
,
NULL
,
0
,
iptr
:&
prach_freq_offset_br
,
defintval
:
1
,
TYPE_UINT
,
0
},
\
{
ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR, NULL, 0, iptr:&prach_freq_offset_br, defintval:1, TYPE_UINT, 0}, \
{
"prach_StartingSubframe_r13"
,
NULL
,
0
,
iptr
:&
prach_StartingSubframe_r13
,
defintval
:
0
,
TYPE_UINT
,
0
},
\
{
ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13, NULL, 0, iptr:&prach_StartingSubframe_r13, defintval:0, TYPE_UINT, 0}, \
{
"maxNumPreambleAttemptCE_r13"
,
NULL
,
0
,
iptr
:&
maxNumPreambleAttemptCE_r13
,
defintval
:
"n10"
,
TYPE_STRING
,
0
},
\
{
ENB_CONFIG_STRING_MAX_NUM_PER_PREAMBLE_ATTEMPT_CE_R13, NULL, 0, iptr:&maxNumPreambleAttemptCE_r13, defintval:"n10", TYPE_STRING, 0}, \
{
"numRepetitionPerPreambleAttempt_r13"
,
NULL
,
0
,
iptr
:&
numRepetitionPerPreambleAttempt_r13
,
defintval
:
"n1"
,
TYPE_STRING
,
0
},
\
{
ENB_CONFIG_STRING_NUM_REPETITION_PER_PREAMBLE_ATTEMPT_R13, NULL, 0, iptr:&numRepetitionPerPreambleAttempt_r13, defintval:"n1", TYPE_STRING, 0}, \
{
"mpdcch_NumRepetition_RA_r13"
,
NULL
,
0
,
iptr
:&
mpdcch_NumRepetition_RA_r13
,
defintval
:
"r1"
,
TYPE_STRING
,
0
},
\
{
ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13, NULL, 0, iptr:&mpdcch_NumRepetition_RA_r13, defintval:"r1", TYPE_STRING, 0}, \
{
"prach_HoppingConfig_r13"
,
NULL
,
0
,
iptr
:&
prach_HoppingConfig_r13
,
defintval
:
"off"
,
TYPE_STRING
,
0
},
\
{
ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13, NULL, 0, iptr:&prach_HoppingConfig_r13, defintval:"off", TYPE_STRING, 0}, \
{
"max_available_narrow_band"
,
NULL
,
0
,
iptr
:&
maxavailablenarrowband
,
defintval
:
2
,
TYPE_UINT
,
0
}
\
{
ENB_CONFIG_SRING_MAX_AVAILABLE_NARROW_BAND, NULL, 0, iptr:&maxavailablenarrowband, defintval:2, TYPE_UINT, 0} \
}
}
#define ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13 "n1PUCCH_AN_InfoList_r13"
#define ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13 "n1PUCCH_AN_InfoList_r13"
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf
View file @
78408cc6
...
@@ -136,7 +136,7 @@ eNBs =
...
@@ -136,7 +136,7 @@ eNBs =
si_Narrowband_r13
=
5
;
si_Narrowband_r13
=
5
;
si_TBS_r13
=
5
;
si_TBS_r13
=
5
;
}
}
);
);
fdd_DownlinkOrTddSubframeBitmapBR_r13
=
"subframePattern40-r13"
;
fdd_DownlinkOrTddSubframeBitmapBR_r13
=
"subframePattern40-r13"
;
fdd_DownlinkOrTddSubframeBitmapBR_val_r13
=
0
xFFFFFFFFFF
;
fdd_DownlinkOrTddSubframeBitmapBR_val_r13
=
0
xFFFFFFFFFF
;
...
...
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