Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Michael Black
OpenXG UE
Commits
4c7a6ac7
Commit
4c7a6ac7
authored
Oct 21, 2019
by
matzakos
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ENDC: Restore X2AP initial configuration after merge with NR_RRCConfiguration branch
parent
f041e346
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
61 additions
and
269 deletions
+61
-269
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+20
-267
openair2/GNB_APP/gnb_paramdef.h
openair2/GNB_APP/gnb_paramdef.h
+25
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpn300.conf
.../GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpn300.conf
+16
-2
No files found.
openair2/GNB_APP/gnb_config.c
View file @
4c7a6ac7
...
...
@@ -987,227 +987,22 @@ void NRRCConfig(void) {
}
int
RCconfig_NR_X2
(
MessageDef
*
msg_p
,
uint32_t
i
)
{
int
I
,
J
,
l
;
int
J
,
l
;
char
*
address
=
NULL
;
char
*
cidr
=
NULL
;
int
num_gnbs
=
0
;
int
num_component_carriers
=
0
;
//
int num_gnbs = 0;
//
int num_component_carriers = 0;
int
j
,
k
=
0
;
int32_t
gnb_id
=
0
;
int
nb_cc
=
0
;
char
*
frame_type
=
NULL
;
char
*
DL_prefix_type
=
NULL
;
char
*
UL_prefix_type
=
NULL
;
int32_t
nr_band
=
0
;
uint64_t
downlink_frequency
=
0
;
int32_t
uplink_frequency_offset
=
0
;
int32_t
Nid_cell
=
0
;
int32_t
N_RB_DL
=
0
;
int32_t
nb_antenna_ports
=
0
;
///NR
//MIB
int32_t
MIB_subCarrierSpacingCommon
=
0
;
int32_t
MIB_ssb_SubcarrierOffset
=
0
;
int32_t
MIB_dmrs_TypeA_Position
=
0
;
int32_t
pdcch_ConfigSIB1
=
0
;
//SIB1
char
*
SIB1_frequencyOffsetSSB
=
NULL
;
int32_t
SIB1_ssb_PeriodicityServingCell
=
0
;
int32_t
SIB1_ss_PBCH_BlockPower
=
0
;
//DownlinkConfigCommon
//NR FrequencyInfoDL
int32_t
absoluteFrequencySSB
=
0
;
int32_t
DL_FreqBandIndicatorNR
=
0
;
int32_t
DL_absoluteFrequencyPointA
=
0
;
//NR DL SCS-SpecificCarrier
int32_t
DL_offsetToCarrier
=
0
;
char
*
DL_SCS_SubcarrierSpacing
=
0
;
int32_t
DL_carrierBandwidth
=
0
;
// NR BWP-DownlinkCommon
int32_t
DL_locationAndBandwidth
=
0
;
char
*
DL_BWP_SubcarrierSpacing
=
0
;
char
*
DL_BWP_prefix_type
=
NULL
;
//NR FrequencyInfoUL
int32_t
UL_FreqBandIndicatorNR
=
0
;
int32_t
UL_absoluteFrequencyPointA
=
0
;
int32_t
UL_additionalSpectrumEmission
=
0
;
int32_t
UL_p_Max
=
0
;
char
*
UL_frequencyShift7p5khz
=
0
;
//NR UL SCS-SpecificCarrier
int32_t
UL_offsetToCarrier
=
0
;
char
*
UL_SCS_SubcarrierSpacing
=
0
;
int32_t
UL_carrierBandwidth
=
0
;
// NR BWP-UplinkCommon
int32_t
UL_locationAndBandwidth
=
0
;
char
*
UL_BWP_SubcarrierSpacing
=
0
;
char
*
UL_BWP_prefix_type
=
NULL
;
char
*
UL_timeAlignmentTimerCommon
=
0
;
char
*
ServingCellConfigCommon_n_TimingAdvanceOffset
=
0
;
uint64_t
ServingCellConfigCommon_ssb_PositionsInBurst_PR
=
0
;
int32_t
ServingCellConfigCommon_ssb_periodicityServingCell
=
0
;
int32_t
ServingCellConfigCommon_dmrs_TypeA_Position
=
0
;
char
*
NIA_SubcarrierSpacing
=
0
;
int32_t
ServingCellConfigCommon_ss_PBCH_BlockPower
=
0
;
//NR TDD-UL-DL-ConfigCommon
char
*
referenceSubcarrierSpacing
=
0
;
char
*
dl_UL_TransmissionPeriodicity
=
0
;
int32_t
nrofDownlinkSlots
=
0
;
int32_t
nrofDownlinkSymbols
=
0
;
int32_t
nrofUplinkSlots
=
0
;
int32_t
nrofUplinkSymbols
=
0
;
//NR RACH-ConfigCommon
int32_t
rach_totalNumberOfRA_Preambles
=
0
;
char
*
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_choice
=
0
;
int32_t
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneEighth
=
0
;
int32_t
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneFourth
=
0
;
int32_t
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneHalf
=
0
;
int32_t
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_one
=
0
;
int32_t
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_two
=
0
;
int32_t
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_four
=
0
;
int32_t
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_eight
=
0
;
int32_t
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_sixteen
=
0
;
char
*
rach_groupBconfigured
=
NULL
;
int32_t
rach_ra_Msg3SizeGroupA
=
0
;
char
*
rach_messagePowerOffsetGroupB
=
NULL
;
int32_t
rach_numberOfRA_PreamblesGroupA
=
0
;
int32_t
rach_ra_ContentionResolutionTimer
=
0
;
int32_t
rsrp_ThresholdSSB
=
0
;
int32_t
rsrp_ThresholdSSB_SUL
=
0
;
char
*
prach_RootSequenceIndex_choice
=
NULL
;
int32_t
prach_RootSequenceIndex_l839
=
0
;
int32_t
prach_RootSequenceIndex_l139
=
0
;
char
*
prach_msg1_SubcarrierSpacing
=
NULL
;
char
*
restrictedSetConfig
=
NULL
;
char
*
msg3_transformPrecoding
=
NULL
;
//ssb-perRACH-OccasionAndCB-PreamblesPerSSB not sure
//NR RACH-ConfigGeneric
int32_t
prach_ConfigurationIndex
=
0
;
char
*
prach_msg1_FDM
=
NULL
;
int32_t
prach_msg1_FrequencyStart
=
0
;
int32_t
zeroCorrelationZoneConfig
=
0
;
int32_t
preambleReceivedTargetPower
=
0
;
int32_t
preambleTransMax
=
0
;
char
*
powerRampingStep
=
NULL
;
int32_t
ra_ResponseWindow
=
0
;
//PUSCH-ConfigCommon
char
*
groupHoppingEnabledTransformPrecoding
=
NULL
;
int32_t
msg3_DeltaPreamble
=
0
;
int32_t
p0_NominalWithGrant
=
0
;
///PUSCH-TimeDomainResourceAllocation
int32_t
PUSCH_TimeDomainResourceAllocation_k2
=
0
;
char
*
PUSCH_TimeDomainResourceAllocation_mappingType
=
NULL
;
int32_t
PUSCH_TimeDomainResourceAllocation_startSymbolAndLength
=
0
;
//PUCCH-ConfigCommon
int32_t
pucch_ResourceCommon
=
0
;
char
*
pucch_GroupHopping
=
NULL
;
int32_t
hoppingId
=
0
;
int32_t
p0_nominal
=
0
;
//PDSCH-ConfigCOmmon
//PDSCH-TimeDomainResourceAllocation
int32_t
PDSCH_TimeDomainResourceAllocation_k0
=
0
;
char
*
PDSCH_TimeDomainResourceAllocation_mappingType
=
NULL
;
int32_t
PDSCH_TimeDomainResourceAllocation_startSymbolAndLength
=
0
;
//RateMatchPattern is used to configure one rate matching pattern for PDSCH
int32_t
rateMatchPatternId
=
0
;
char
*
RateMatchPattern_patternType
=
NULL
;
char
*
symbolsInResourceBlock
=
NULL
;
int32_t
periodicityAndPattern
=
0
;
int32_t
RateMatchPattern_controlResourceSet
=
0
;
char
*
RateMatchPattern_subcarrierSpacing
=
NULL
;
char
*
RateMatchPattern_mode
=
NULL
;
//PDCCH-ConfigCommon
int32_t
controlResourceSetZero
=
0
;
int32_t
searchSpaceZero
=
0
;
int32_t
searchSpaceSIB1
=
0
;
int32_t
searchSpaceOtherSystemInformation
=
0
;
int32_t
pagingSearchSpace
=
0
;
int32_t
ra_SearchSpace
=
0
;
//NR PDCCH-ConfigCommon commonControlResourcesSets
int32_t
PDCCH_common_controlResourceSetId
=
0
;
int32_t
PDCCH_common_ControlResourceSet_duration
=
0
;
char
*
PDCCH_cce_REG_MappingType
=
NULL
;
int32_t
PDCCH_reg_BundleSize
=
0
;
int32_t
PDCCH_interleaverSize
=
0
;
int32_t
PDCCH_shiftIndex
=
0
;
char
*
PDCCH_precoderGranularity
=
NULL
;
int32_t
PDCCH_TCI_StateId
=
0
;
char
*
tci_PresentInDCI
=
NULL
;
int32_t
PDCCH_DMRS_ScramblingID
=
0
;
//NR PDCCH-ConfigCommon commonSearchSpaces
int32_t
SearchSpaceId
=
0
;
int32_t
commonSearchSpaces_controlResourceSetId
=
0
;
char
*
SearchSpace_monitoringSlotPeriodicityAndOffset_choice
=
NULL
;
int32_t
SearchSpace_monitoringSlotPeriodicityAndOffset_value
=
0
;
int32_t
SearchSpace_duration
=
0
;
int32_t
SearchSpace_nrofCandidates_aggregationLevel1
=
0
;
int32_t
SearchSpace_nrofCandidates_aggregationLevel2
=
0
;
int32_t
SearchSpace_nrofCandidates_aggregationLevel4
=
0
;
int32_t
SearchSpace_nrofCandidates_aggregationLevel8
=
0
;
int32_t
SearchSpace_nrofCandidates_aggregationLevel16
=
0
;
char
*
SearchSpace_searchSpaceType
=
NULL
;
int32_t
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel1
=
0
;
int32_t
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel2
=
0
;
int32_t
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel4
=
0
;
int32_t
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel8
=
0
;
int32_t
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel16
=
0
;
int32_t
Common_dci_Format2_3_monitoringPeriodicity
=
0
;
int32_t
Common_dci_Format2_3_nrofPDCCH_Candidates
=
0
;
char
*
ue_Specific__dci_Formats
=
NULL
;
//NR RateMatchPatternLTE-CRS
int32_t
RateMatchPatternLTE_CRS_carrierFreqDL
=
0
;
int32_t
RateMatchPatternLTE_CRS_carrierBandwidthDL
=
0
;
int32_t
RateMatchPatternLTE_CRS_nrofCRS_Ports
=
0
;
int32_t
RateMatchPatternLTE_CRS_v_Shift
=
0
;
int32_t
RateMatchPatternLTE_CRS_radioframeAllocationPeriod
=
0
;
int32_t
RateMatchPatternLTE_CRS_radioframeAllocationOffset
=
0
;
char
*
RateMatchPatternLTE_CRS_subframeAllocation_choice
=
NULL
;
//temp out
ccparams_lte_t
ccparams_lte
;
memset
((
void
*
)
&
ccparams_lte
,
0
,
sizeof
(
ccparams_lte_t
));
paramdef_t
GNBSParams
[]
=
GNBSPARAMS_DESC
;
paramdef_t
GNBParams
[]
=
GNBPARAMS_DESC
;
paramlist_def_t
GNBParamList
=
{
GNB_CONFIG_STRING_GNB_LIST
,
NULL
,
0
};
/* get global parameters, defined outside any section in the config file */
config_get
(
GNBSParams
,
sizeof
(
GNBSParams
)
/
sizeof
(
paramdef_t
),
NULL
);
checkedparam_t
config_check_CCparams
[]
=
CCPARAMS_CHECK
;
//temp out
//paramdef_t CCsParams[] = CCPARAMS_DESC(ccparams_lte);
paramdef_t
CCsParams
[]
=
NRCCPARAMS_DESC
;
paramlist_def_t
CCsParamList
=
{
GNB_CONFIG_STRING_COMPONENT_CARRIERS
,
NULL
,
0
};
/* map parameter checking array instances to parameter definition array instances */
for
(
I
=
0
;
I
<
(
sizeof
(
CCsParams
)
/
sizeof
(
paramdef_t
));
I
++
)
{
CCsParams
[
I
].
chkPptr
=
&
(
config_check_CCparams
[
I
]);
}
//paramlist_def_t SCCsParamList = {GNB_CONFIG_STRING_SERVINGCELLCONFIGCOMMON, NULL, 0};
AssertFatal
(
i
<
GNBSParams
[
GNB_ACTIVE_GNBS_IDX
].
numelt
,
"Failed to parse config file %s, %uth attribute %s
\n
"
,
...
...
@@ -1256,13 +1051,6 @@ int RCconfig_NR_X2(MessageDef *msg_p, uint32_t i) {
if
(
strcmp
(
*
(
GNBParamList
.
paramarray
[
k
][
GNB_CELL_TYPE_IDX
].
strptr
),
"CELL_MACRO_GNB"
)
==
0
)
{
X2AP_REGISTER_ENB_REQ
(
msg_p
).
cell_type
=
CELL_MACRO_GNB
;
/*} else if (strcmp(*(ENBParamList.paramarray[k][ENB_CELL_TYPE_IDX].strptr), "CELL_HOME_ENB") == 0) {
X2AP_REGISTER_ENB_REQ (msg_p).cell_type = CELL_HOME_ENB;
// Temporary option to be able to parse an eNB configuration file which is treated as gNB from
// the X2AP layer and test the setup of an ENDC X2AP connection. To be removed when we are ready to
// parse an actual gNB configuration file wrt. the X2AP parameters instead.
} else if (strcmp(*(ENBParamList.paramarray[k][ENB_CELL_TYPE_IDX].strptr), "CELL_MACRO_GNB") == 0) {
X2AP_REGISTER_ENB_REQ (msg_p).cell_type = CELL_MACRO_GNB;*/
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !
\n
"
,
...
...
@@ -1287,55 +1075,20 @@ int RCconfig_NR_X2(MessageDef *msg_p, uint32_t i) {
||
X2AP_REGISTER_ENB_REQ
(
msg_p
).
mnc
<
100
,
"MNC %d cannot be encoded in two digits as requested (change mnc_digit_length to 3)
\n
"
,
X2AP_REGISTER_ENB_REQ
(
msg_p
).
mnc
);
/* CC params */
config_getlist
(
&
CCsParamList
,
NULL
,
0
,
aprefix
);
X2AP_REGISTER_ENB_REQ
(
msg_p
).
num_cc
=
CCsParamList
.
numelt
;
if
(
CCsParamList
.
numelt
>
0
)
{
for
(
J
=
0
;
J
<
CCsParamList
.
numelt
;
J
++
)
{
X2AP_REGISTER_ENB_REQ
(
msg_p
).
num_cc
=
1
;
J
=
0
;
X2AP_REGISTER_ENB_REQ
(
msg_p
).
eutra_band
[
J
]
=
78
;
//ccparams_nr_x2.nr_band; //78
X2AP_REGISTER_ENB_REQ
(
msg_p
).
downlink_frequency
[
J
]
=
3600000000
;
//ccparams_nr_x2.downlink_frequency; //3600000000
X2AP_REGISTER_ENB_REQ
(
msg_p
).
uplink_frequency_offset
[
J
]
=
0
;
//(unsigned int) ccparams_nr_x2.uplink_frequency_offset; //0
X2AP_REGISTER_ENB_REQ
(
msg_p
).
Nid_cell
[
J
]
=
0
;
//ccparams_nr_x2.Nid_cell; //0
X2AP_REGISTER_ENB_REQ
(
msg_p
).
N_RB_DL
[
J
]
=
106
;
//ccparams_nr_x2.N_RB_DL; //106
sprintf
(
aprefix
,
"%s.[%i].%s.[%i]"
,
GNB_CONFIG_STRING_GNB_LIST
,
k
,
GNB_CONFIG_STRING_COMPONENT_CARRIERS
,
J
),
config_get
(
CCsParams
,
sizeof
(
CCsParams
)
/
sizeof
(
paramdef_t
),
aprefix
);
X2AP_REGISTER_ENB_REQ
(
msg_p
).
eutra_band
[
J
]
=
nr_band
;
//78
X2AP_REGISTER_ENB_REQ
(
msg_p
).
downlink_frequency
[
J
]
=
downlink_frequency
;
//3600000000
X2AP_REGISTER_ENB_REQ
(
msg_p
).
uplink_frequency_offset
[
J
]
=
(
unsigned
int
)
uplink_frequency_offset
;
//0
X2AP_REGISTER_ENB_REQ
(
msg_p
).
Nid_cell
[
J
]
=
Nid_cell
;
//0
/*if (Nid_cell>503) {
AssertFatal (0,
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for Nid_cell choice: 0...503 !\n",
RC.config_file_name, k, Nid_cell);
}*/
X2AP_REGISTER_ENB_REQ
(
msg_p
).
N_RB_DL
[
J
]
=
N_RB_DL
;
//106
/*if ((N_RB_DL!=6) && (N_RB_DL!=15) && (N_RB_DL!=25) && (N_RB_DL!=50) && (N_RB_DL!=75) && (N_RB_DL!=100) && (N_RB_DL!=106)) {
AssertFatal (0,
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for N_RB_DL choice: 6,15,25,50,75,100 !\n",
RC.config_file_name, k, N_RB_DL);
}*/
//X2AP_REGISTER_ENB_REQ (msg_p).frame_type[J] = TDD;
if
(
strcmp
(
frame_type
,
"FDD"
)
==
0
)
{
X2AP_REGISTER_ENB_REQ
(
msg_p
).
frame_type
[
J
]
=
FDD
;
}
else
if
(
strcmp
(
frame_type
,
"TDD"
)
==
0
)
{
X2AP_REGISTER_ENB_REQ
(
msg_p
).
frame_type
[
J
]
=
TDD
;
//Don't know which are the corresponding NR parameters for the following two
//X2AP_REGISTER_ENB_REQ (msg_p).subframeAssignment[J] = tdd_config;
//X2AP_REGISTER_ENB_REQ (msg_p).specialSubframe[J] = ccparams_lte.tdd_config_s;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for frame_type choice: FDD or TDD !
\n
"
,
RC
.
config_file_name
,
k
,
frame_type
);
}
//Temp out
/*X2AP_REGISTER_ENB_REQ (msg_p).fdd_earfcn_DL[J] = to_earfcn_DL(ccparams_lte.eutra_band, ccparams_lte.downlink_frequency, ccparams_lte.N_RB_DL);
X2AP_REGISTER_ENB_REQ (msg_p).fdd_earfcn_UL[J] = to_earfcn_UL(ccparams_lte.eutra_band, ccparams_lte.downlink_frequency + ccparams_lte.uplink_frequency_offset, ccparams_lte.N_RB_DL);*/
}
}
sprintf
(
aprefix
,
"%s.[%i]"
,
GNB_CONFIG_STRING_GNB_LIST
,
k
);
config_getlist
(
&
X2ParamList
,
X2Params
,
sizeof
(
X2Params
)
/
sizeof
(
paramdef_t
),
aprefix
);
...
...
@@ -1394,10 +1147,10 @@ int RCconfig_NR_X2(MessageDef *msg_p, uint32_t i) {
sprintf
(
aprefix
,
"%s.[%i].%s"
,
GNB_CONFIG_STRING_GNB_LIST
,
k
,
GNB_CONFIG_STRING_NETWORK_INTERFACES_CONFIG
);
// NETWORK_INTERFACES
config_get
(
NETParams
,
sizeof
(
NETParams
)
/
sizeof
(
paramdef_t
),
aprefix
);
X2AP_REGISTER_ENB_REQ
(
msg_p
).
enb_port_for_X2C
=
(
uint32_t
)
*
(
NETParams
[
E
NB_PORT_FOR_X2C_IDX
].
uptr
);
X2AP_REGISTER_ENB_REQ
(
msg_p
).
enb_port_for_X2C
=
(
uint32_t
)
*
(
NETParams
[
G
NB_PORT_FOR_X2C_IDX
].
uptr
);
//temp out
if
((
NETParams
[
E
NB_IPV4_ADDR_FOR_X2C_IDX
].
strptr
==
NULL
)
||
(
X2AP_REGISTER_ENB_REQ
(
msg_p
).
enb_port_for_X2C
==
0
))
{
if
((
NETParams
[
G
NB_IPV4_ADDR_FOR_X2C_IDX
].
strptr
==
NULL
)
||
(
X2AP_REGISTER_ENB_REQ
(
msg_p
).
enb_port_for_X2C
==
0
))
{
LOG_E
(
RRC
,
"Add eNB IPv4 address and/or port for X2C in the CONF file!
\n
"
);
exit
(
1
);
}
...
...
openair2/GNB_APP/gnb_paramdef.h
View file @
4c7a6ac7
...
...
@@ -187,6 +187,29 @@ typedef enum {
#define GNB_CONFIG_STRING_LOCAL_S_PORTD "local_s_portd"
#define GNB_CONFIG_STRING_REMOTE_S_PORTD "remote_s_portd"
typedef
struct
ccparams_nr_x2
{
char
*
frame_type
;
int32_t
tdd_config
;
int32_t
tdd_config_s
;
int32_t
nr_band
;
long
long
int
downlink_frequency
;
int32_t
uplink_frequency_offset
;
int32_t
Nid_cell
;
int32_t
N_RB_DL
;
}
ccparams_nr_x2_t
;
#define CCPARAMS_NR_X2_DESC(ccparams) { \
{ENB_CONFIG_STRING_FRAME_TYPE, NULL, 0, strptr:&ccparams.frame_type, defstrval:"TDD", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_TDD_CONFIG, NULL, 0, iptr:&ccparams.tdd_config, defintval:3, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_TDD_CONFIG_S, NULL, 0, iptr:&ccparams.tdd_config_s, defintval:0, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_EUTRA_BAND, NULL, 0, iptr:&ccparams.nr_band, defintval:78, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_DOWNLINK_FREQUENCY, NULL, 0, i64ptr:(int64_t *)&ccparams.downlink_frequency, defint64val:3600000000, TYPE_UINT64, 0}, \
{ENB_CONFIG_STRING_UPLINK_FREQUENCY_OFFSET, NULL, 0, iptr:&ccparams.uplink_frequency_offset, defintval:0, TYPE_INT, 0}, \
{ENB_CONFIG_STRING_NID_CELL, NULL, 0, iptr:&ccparams.Nid_cell, defintval:0, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_N_RB_DL, NULL, 0, iptr:&ccparams.N_RB_DL, defintval:106, TYPE_UINT, 0} \
}
/*-----------------------------------------------------------------------------------------------------------------------------------------*/
/* cell configuration parameters */
/* optname helpstr paramflags XXXptr defXXXval type numelt */
...
...
@@ -336,6 +359,8 @@ typedef enum {
#define GNB_INTERFACE_NAME_FOR_S1U_IDX 2
#define GNB_IPV4_ADDR_FOR_S1U_IDX 3
#define GNB_PORT_FOR_S1U_IDX 4
#define GNB_IPV4_ADDR_FOR_X2C_IDX 5
#define GNB_PORT_FOR_X2C_IDX 6
/* S1 interface configuration parameters names */
#define GNB_CONFIG_STRING_GNB_INTERFACE_NAME_FOR_S1_MME "GNB_INTERFACE_NAME_FOR_S1_MME"
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpn300.conf
View file @
4c7a6ac7
...
...
@@ -198,14 +198,28 @@ gNBs =
}
);
///
X2
enable_x2
=
"yes"
;
t_reloc_prep
=
1000
; /*
unit
:
millisecond
*/
tx2_reloc_overall
=
2000
; /*
unit
:
millisecond
*/
target_enb_x2_ip_address
= (
{
ipv4
=
"192.168.12.108"
;
ipv6
=
"192:168:30::17"
;
preference
=
"ipv4"
;
}
);
NETWORK_INTERFACES
:
{
GNB_INTERFACE_NAME_FOR_S1_MME
=
"eth0"
;
GNB_IPV4_ADDRESS_FOR_S1_MME
=
"192.168.12.1
11
/24"
;
GNB_IPV4_ADDRESS_FOR_S1_MME
=
"192.168.12.1
88
/24"
;
GNB_INTERFACE_NAME_FOR_S1U
=
"eth0"
;
GNB_IPV4_ADDRESS_FOR_S1U
=
"192.168.12.1
11
/24"
;
GNB_IPV4_ADDRESS_FOR_S1U
=
"192.168.12.1
88
/24"
;
GNB_PORT_FOR_S1U
=
2152
;
# Spec 2152
GNB_IPV4_ADDRESS_FOR_X2C
=
"192.168.12.188/23"
;
GNB_PORT_FOR_X2C
=
36422
;
# Spec 36422
};
}
);
...
...
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