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
littleBu
OpenXG-RAN
Commits
648ef92a
Commit
648ef92a
authored
4 years ago
by
matzakos
Committed by
Raymond Knopp
4 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove hardcoding of x2 configuration parameters used in ENDC setup request message at gNB side
parent
b4522183
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
50 additions
and
47 deletions
+50
-47
openair2/COMMON/x2ap_messages_types.h
openair2/COMMON/x2ap_messages_types.h
+2
-0
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+34
-17
openair2/GNB_APP/gnb_paramdef.h
openair2/GNB_APP/gnb_paramdef.h
+0
-24
openair2/X2AP/x2ap_eNB.c
openair2/X2AP/x2ap_eNB.c
+11
-4
openair2/X2AP/x2ap_eNB_defs.h
openair2/X2AP/x2ap_eNB_defs.h
+1
-0
openair2/X2AP/x2ap_eNB_generate_messages.c
openair2/X2AP/x2ap_eNB_generate_messages.c
+2
-2
No files found.
openair2/COMMON/x2ap_messages_types.h
View file @
648ef92a
...
...
@@ -122,6 +122,8 @@ typedef struct x2ap_register_enb_req_s {
* CC Params
*/
int16_t
eutra_band
[
MAX_NUM_CCs
];
int32_t
nr_band
[
MAX_NUM_CCs
];
int32_t
nrARFCN
[
MAX_NUM_CCs
];
uint32_t
downlink_frequency
[
MAX_NUM_CCs
];
int32_t
uplink_frequency_offset
[
MAX_NUM_CCs
];
uint32_t
Nid_cell
[
MAX_NUM_CCs
];
...
...
This diff is collapsed.
Click to expand it.
openair2/GNB_APP/gnb_config.c
View file @
648ef92a
...
...
@@ -34,6 +34,7 @@
#include "common/utils/LOG/log_extern.h"
#include "assertions.h"
#include "gnb_config.h"
#include "gnb_paramdef.h"
#include "UTIL/OTG/otg.h"
#include "UTIL/OTG/otg_externs.h"
#include "intertask_interface.h"
...
...
@@ -991,27 +992,33 @@ void NRRCConfig(void) {
}
int
RCconfig_NR_X2
(
MessageDef
*
msg_p
,
uint32_t
i
)
{
LOG_E
(
X2AP
,
"Inside RCconfig_NR_X2()
\n
"
);
int
J
,
l
;
char
*
address
=
NULL
;
char
*
cidr
=
NULL
;
//int num_gnbs = 0;
//int num_component_carriers = 0;
int
j
,
k
=
0
;
int32_t
gnb_id
=
0
;
paramdef_t
GNBSParams
[]
=
GNBSPARAMS_DESC
;
////////// Identification parameters
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
);
//paramlist_def_t SCCsParamList = {GNB_CONFIG_STRING_SERVINGCELLCONFIGCOMMON, NULL, 0};
NR_ServingCellConfigCommon_t
*
scc
=
calloc
(
1
,
sizeof
(
NR_ServingCellConfigCommon_t
));
uint64_t
ssb_bitmap
=
0xff
;
memset
((
void
*
)
scc
,
0
,
sizeof
(
NR_ServingCellConfigCommon_t
));
prepare_scc
(
scc
);
paramdef_t
SCCsParams
[]
=
SCCPARAMS_DESC
(
scc
);
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
"
,
RC
.
config_file_name
,
i
,
ENB_CONFIG_STRING_ACTIVE_E
NBS
);
RC
.
config_file_name
,
i
,
GNB_CONFIG_STRING_ACTIVE_G
NBS
);
if
(
GNBSParams
[
GNB_ACTIVE_GNBS_IDX
].
numelt
>
0
)
{
// Output a list of all gNBs.
...
...
@@ -1081,19 +1088,30 @@ int RCconfig_NR_X2(MessageDef *msg_p, uint32_t i) {
"MNC %d cannot be encoded in two digits as requested (change mnc_digit_length to 3)
\n
"
,
X2AP_REGISTER_ENB_REQ
(
msg_p
).
mnc
);
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
X2AP_REGISTER_ENB_REQ
(
msg_p
).
frame_type
[
J
]
=
TDD
;
sprintf
(
aprefix
,
"%s.[%i]"
,
GNB_CONFIG_STRING_GNB_LIST
,
0
);
//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);*/
config_getlist
(
&
SCCsParamList
,
NULL
,
0
,
aprefix
);
LOG_E
(
X2AP
,
"Before configuring SCCsParamList
\n
"
);
if
(
SCCsParamList
.
numelt
>
0
)
{
LOG_E
(
X2AP
,
"SCCsParamList.numelt > 0
\n
"
);
sprintf
(
aprefix
,
"%s.[%i].%s.[%i]"
,
GNB_CONFIG_STRING_GNB_LIST
,
0
,
GNB_CONFIG_STRING_SERVINGCELLCONFIGCOMMON
,
0
);
config_get
(
SCCsParams
,
sizeof
(
SCCsParams
)
/
sizeof
(
paramdef_t
),
aprefix
);
fix_scc
(
scc
,
ssb_bitmap
);
}
X2AP_REGISTER_ENB_REQ
(
msg_p
).
num_cc
=
SCCsParamList
.
numelt
;
for
(
J
=
0
;
J
<
SCCsParamList
.
numelt
;
J
++
)
{
X2AP_REGISTER_ENB_REQ
(
msg_p
).
nr_band
[
J
]
=
*
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
0
];
//nr_band; //78
X2AP_REGISTER_ENB_REQ
(
msg_p
).
nrARFCN
[
J
]
=
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
;
X2AP_REGISTER_ENB_REQ
(
msg_p
).
uplink_frequency_offset
[
J
]
=
scc
->
uplinkConfigCommon
->
frequencyInfoUL
->
scs_SpecificCarrierList
.
list
.
array
[
0
]
->
offsetToCarrier
;
//0
X2AP_REGISTER_ENB_REQ
(
msg_p
).
Nid_cell
[
J
]
=
*
scc
->
physCellId
;
//0
X2AP_REGISTER_ENB_REQ
(
msg_p
).
N_RB_DL
[
J
]
=
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
0
]
->
carrierBandwidth
;
//106
X2AP_REGISTER_ENB_REQ
(
msg_p
).
frame_type
[
J
]
=
TDD
;
LOG_E
(
X2AP
,
"gNB configuration parameters: nr_band: %d, nr_ARFCN: %d, DL_RBs: %d, num_cc: %d
\n
"
,
X2AP_REGISTER_ENB_REQ
(
msg_p
).
nr_band
[
J
],
X2AP_REGISTER_ENB_REQ
(
msg_p
).
nrARFCN
[
J
],
X2AP_REGISTER_ENB_REQ
(
msg_p
).
N_RB_DL
[
J
],
X2AP_REGISTER_ENB_REQ
(
msg_p
).
num_cc
);
}
sprintf
(
aprefix
,
"%s.[%i]"
,
GNB_CONFIG_STRING_GNB_LIST
,
k
);
config_getlist
(
&
X2ParamList
,
X2Params
,
sizeof
(
X2Params
)
/
sizeof
(
paramdef_t
),
aprefix
);
...
...
@@ -1182,4 +1200,3 @@ int RCconfig_NR_X2(MessageDef *msg_p, uint32_t i) {
return
0
;
}
This diff is collapsed.
Click to expand it.
openair2/GNB_APP/gnb_paramdef.h
View file @
648ef92a
...
...
@@ -118,30 +118,6 @@ typedef enum {
#define GNB_CONFIG_STRING_PUSCHTARGETPOWX10 "pusch_TargetSNRx10"
#define GNB_CONFIG_STRING_PUCCHTARGETPOWX10 "pucch_TargetSNRx10"
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 */
...
...
This diff is collapsed.
Click to expand it.
openair2/X2AP/x2ap_eNB.c
View file @
648ef92a
...
...
@@ -310,14 +310,21 @@ void x2ap_eNB_handle_register_eNB(instance_t instance,
x2ap_register_eNB
->
t_dc_overall
);
for
(
int
i
=
0
;
i
<
x2ap_register_eNB
->
num_cc
;
i
++
)
{
new_instance
->
eutra_band
[
i
]
=
x2ap_register_eNB
->
eutra_band
[
i
];
new_instance
->
downlink_frequency
[
i
]
=
x2ap_register_eNB
->
downlink_frequency
[
i
];
if
(
new_instance
->
cell_type
==
CELL_MACRO_GNB
){
new_instance
->
nr_band
[
i
]
=
x2ap_register_eNB
->
nr_band
[
i
];
new_instance
->
tdd_nRARFCN
[
i
]
=
x2ap_register_eNB
->
nrARFCN
[
i
];
}
else
{
new_instance
->
eutra_band
[
i
]
=
x2ap_register_eNB
->
eutra_band
[
i
];
new_instance
->
downlink_frequency
[
i
]
=
x2ap_register_eNB
->
downlink_frequency
[
i
];
new_instance
->
fdd_earfcn_DL
[
i
]
=
x2ap_register_eNB
->
fdd_earfcn_DL
[
i
];
new_instance
->
fdd_earfcn_UL
[
i
]
=
x2ap_register_eNB
->
fdd_earfcn_UL
[
i
];
}
new_instance
->
uplink_frequency_offset
[
i
]
=
x2ap_register_eNB
->
uplink_frequency_offset
[
i
];
new_instance
->
Nid_cell
[
i
]
=
x2ap_register_eNB
->
Nid_cell
[
i
];
new_instance
->
N_RB_DL
[
i
]
=
x2ap_register_eNB
->
N_RB_DL
[
i
];
new_instance
->
frame_type
[
i
]
=
x2ap_register_eNB
->
frame_type
[
i
];
new_instance
->
fdd_earfcn_DL
[
i
]
=
x2ap_register_eNB
->
fdd_earfcn_DL
[
i
];
new_instance
->
fdd_earfcn_UL
[
i
]
=
x2ap_register_eNB
->
fdd_earfcn_UL
[
i
];
}
DevCheck
(
x2ap_register_eNB
->
nb_x2
<=
X2AP_MAX_NB_ENB_IP_ADDRESS
,
...
...
This diff is collapsed.
Click to expand it.
openair2/X2AP/x2ap_eNB_defs.h
View file @
648ef92a
...
...
@@ -179,6 +179,7 @@ typedef struct x2ap_eNB_instance_s {
uint32_t
specialSubframe
[
MAX_NUM_CCs
];
//#ifdef Rel15
int32_t
nr_band
[
MAX_NUM_CCs
];
uint32_t
tdd_nRARFCN
[
MAX_NUM_CCs
];
int16_t
nr_SCS
[
MAX_NUM_CCs
];
//#endif
...
...
This diff is collapsed.
Click to expand it.
openair2/X2AP/x2ap_eNB_generate_messages.c
View file @
648ef92a
...
...
@@ -1312,12 +1312,12 @@ MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length
if
(
instance_p
->
frame_type
[
i
]
==
TDD
)
{
X2AP_FreqBandNrItem_t
*
freq_band
;
servedCellMember
->
servedNRCellInfo
.
nrModeInfo
.
present
=
X2AP_ServedNRCell_Information__nrModeInfo_PR_tdd
;
servedCellMember
->
servedNRCellInfo
.
nrModeInfo
.
choice
.
tdd
.
nRFreqInfo
.
nRARFCN
=
0
;
//
instance_p->tdd_nRARFCN[i];
servedCellMember
->
servedNRCellInfo
.
nrModeInfo
.
choice
.
tdd
.
nRFreqInfo
.
nRARFCN
=
instance_p
->
tdd_nRARFCN
[
i
];
/* addition of Frequency Band List */
freq_band
=
calloc
(
1
,
sizeof
(
X2AP_FreqBandNrItem_t
));
if
(
freq_band
==
NULL
)
exit
(
1
);
freq_band
->
freqBandIndicatorNr
=
instance_p
->
eutra_band
[
0
];
freq_band
->
freqBandIndicatorNr
=
instance_p
->
nr_band
[
i
];
SULFreqBandItem
=
calloc
(
1
,
sizeof
(
X2AP_SupportedSULFreqBandItem_t
));
SULFreqBandItem
->
freqBandIndicatorNr
=
80
;
/* TODO: put correct value */
...
...
This diff is collapsed.
Click to expand it.
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