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
常顺宇
OpenXG-RAN
Commits
72ff627a
Commit
72ff627a
authored
9 years ago
by
Navid Nikaein
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add eNB configuration parameters for the fronthaul
parent
a701d184
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
156 additions
and
141 deletions
+156
-141
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+73
-0
openair2/ENB_APP/enb_config.h
openair2/ENB_APP/enb_config.h
+18
-0
targets/RT/USER/lte-softmodem.c
targets/RT/USER/lte-softmodem.c
+65
-141
No files found.
openair2/ENB_APP/enb_config.c
View file @
72ff627a
...
@@ -170,6 +170,14 @@
...
@@ -170,6 +170,14 @@
#define ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_S1U "ENB_IPV4_ADDRESS_FOR_S1U"
#define ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_S1U "ENB_IPV4_ADDRESS_FOR_S1U"
#define ENB_CONFIG_STRING_ENB_PORT_FOR_S1U "ENB_PORT_FOR_S1U"
#define ENB_CONFIG_STRING_ENB_PORT_FOR_S1U "ENB_PORT_FOR_S1U"
#define ENB_CONFIG_STRING_RRH_GW_CONFIG "rrh_gw_config"
#define ENB_CONFIG_STRING_RRH_GW_LOCAL_IF_NAME "local_if_name"
#define ENB_CONFIG_STRING_RRH_GW_LOCAL_ADDRESS "local_address"
#define ENB_CONFIG_STRING_RRH_GW_REMOTE_ADDRESS "remote_address"
#define ENB_CONFIG_STRING_RRH_GW_LOCAL_PORT "local_port"
#define ENB_CONFIG_STRING_RRH_GW_REMOTE_PORT "remote_port"
#define ENB_CONFIG_STRING_RRH_GW_ACTIVE "active"
#define ENB_CONFIG_STRING_RRH_GW_PREFERENCE "preference"
#define ENB_CONFIG_STRING_ASN1_VERBOSITY "Asn1_verbosity"
#define ENB_CONFIG_STRING_ASN1_VERBOSITY "Asn1_verbosity"
#define ENB_CONFIG_STRING_ASN1_VERBOSITY_NONE "none"
#define ENB_CONFIG_STRING_ASN1_VERBOSITY_NONE "none"
...
@@ -274,6 +282,18 @@ static void enb_config_display(void)
...
@@ -274,6 +282,18 @@ static void enb_config_display(void)
}
else
{
}
else
{
printf
(
"
\t
MNC:
\t
%02"
PRIu16
":
\n
"
,
enb_properties
.
properties
[
i
]
->
mnc
);
printf
(
"
\t
MNC:
\t
%02"
PRIu16
":
\n
"
,
enb_properties
.
properties
[
i
]
->
mnc
);
}
}
for
(
j
=
0
;
j
<
enb_properties
.
properties
[
i
]
->
nb_rrh_gw
;
j
++
)
{
if
(
enb_properties
.
properties
[
i
]
->
rrh_gw_config
[
j
].
active
==
1
){
printf
(
"
\n\t
RRH GW %d config for eNB %u:
\n\n
"
,
j
,
i
);
printf
(
"
\t
interface name :
\t
%s:
\n
"
,
enb_properties
.
properties
[
i
]
->
rrh_gw_if_name
);
printf
(
"
\t
local address :
\t
%s:
\n
"
,
enb_properties
.
properties
[
i
]
->
rrh_gw_config
[
j
].
local_address
);
printf
(
"
\t
local port :
\t
%d:
\n
"
,
enb_properties
.
properties
[
i
]
->
rrh_gw_config
[
j
].
local_port
);
printf
(
"
\t
remote address :
\t
%s:
\n
"
,
enb_properties
.
properties
[
i
]
->
rrh_gw_config
[
j
].
remote_address
);
printf
(
"
\t
remote port :
\t
%d:
\n
"
,
enb_properties
.
properties
[
i
]
->
rrh_gw_config
[
j
].
remote_port
);
printf
(
"
\t
transport :
\t
%s Ethernet:
\n\n
"
,(
enb_properties
.
properties
[
i
]
->
rrh_gw_config
[
j
].
raw
==
1
)
?
"RAW"
:
"UDP"
);
}
}
for
(
j
=
0
;
j
<
enb_properties
.
properties
[
i
]
->
nb_cc
;
j
++
)
{
for
(
j
=
0
;
j
<
enb_properties
.
properties
[
i
]
->
nb_cc
;
j
++
)
{
printf
(
"
\t
eutra band for CC %d:
\t
%"
PRId16
":
\n
"
,
j
,
enb_properties
.
properties
[
i
]
->
eutra_band
[
j
]);
printf
(
"
\t
eutra band for CC %d:
\t
%"
PRId16
":
\n
"
,
j
,
enb_properties
.
properties
[
i
]
->
eutra_band
[
j
]);
...
@@ -455,6 +475,8 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
...
@@ -455,6 +475,8 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
config_setting_t
*
setting_srb1
=
NULL
;
config_setting_t
*
setting_srb1
=
NULL
;
config_setting_t
*
setting_mme_addresses
=
NULL
;
config_setting_t
*
setting_mme_addresses
=
NULL
;
config_setting_t
*
setting_mme_address
=
NULL
;
config_setting_t
*
setting_mme_address
=
NULL
;
config_setting_t
*
setting_rrh_gws
=
NULL
;
config_setting_t
*
setting_rrh_gw
=
NULL
;
config_setting_t
*
setting_enb
=
NULL
;
config_setting_t
*
setting_enb
=
NULL
;
config_setting_t
*
setting_otg
=
NULL
;
config_setting_t
*
setting_otg
=
NULL
;
config_setting_t
*
subsetting_otg
=
NULL
;
config_setting_t
*
subsetting_otg
=
NULL
;
...
@@ -462,6 +484,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
...
@@ -462,6 +484,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
int
enb_properties_index
=
0
;
int
enb_properties_index
=
0
;
int
num_enbs
=
0
;
int
num_enbs
=
0
;
int
num_mme_address
=
0
;
int
num_mme_address
=
0
;
int
num_rrh_gw
=
0
;
int
num_otg_elements
=
0
;
int
num_otg_elements
=
0
;
int
num_component_carriers
=
0
;
int
num_component_carriers
=
0
;
int
i
=
0
;
int
i
=
0
;
...
@@ -558,10 +581,15 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
...
@@ -558,10 +581,15 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
libconfig_int
my_int
;
libconfig_int
my_int
;
char
*
if_name
=
NULL
;
char
*
ipv4
=
NULL
;
char
*
ipv4
=
NULL
;
char
*
ipv4_remote
=
NULL
;
char
*
ipv6
=
NULL
;
char
*
ipv6
=
NULL
;
char
*
active
=
NULL
;
char
*
active
=
NULL
;
char
*
preference
=
NULL
;
char
*
preference
=
NULL
;
libconfig_int
local_port
=
0
;
libconfig_int
remote_port
=
0
;
const
char
*
active_enb
[
MAX_ENB
];
const
char
*
active_enb
[
MAX_ENB
];
char
*
enb_interface_name_for_S1U
=
NULL
;
char
*
enb_interface_name_for_S1U
=
NULL
;
char
*
enb_ipv4_address_for_S1U
=
NULL
;
char
*
enb_ipv4_address_for_S1U
=
NULL
;
...
@@ -2136,6 +2164,51 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
...
@@ -2136,6 +2164,51 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
enb_properties
.
properties
[
enb_properties_index
]
->
mme_ip_address
[
j
].
ipv6
=
1
;
enb_properties
.
properties
[
enb_properties_index
]
->
mme_ip_address
[
j
].
ipv6
=
1
;
}
}
}
}
// RRH Config
setting_rrh_gws
=
config_setting_get_member
(
setting_enb
,
ENB_CONFIG_STRING_RRH_GW_CONFIG
);
num_rrh_gw
=
config_setting_length
(
setting_rrh_gws
);
enb_properties
.
properties
[
enb_properties_index
]
->
nb_rrh_gw
=
0
;
for
(
j
=
0
;
j
<
num_rrh_gw
;
j
++
)
{
setting_rrh_gw
=
config_setting_get_elem
(
setting_rrh_gws
,
j
);
if
(
!
(
config_setting_lookup_string
(
setting_rrh_gw
,
ENB_CONFIG_STRING_RRH_GW_LOCAL_IF_NAME
,
(
const
char
**
)
&
if_name
)
&&
config_setting_lookup_string
(
setting_rrh_gw
,
ENB_CONFIG_STRING_RRH_GW_LOCAL_ADDRESS
,
(
const
char
**
)
&
ipv4
)
&&
config_setting_lookup_string
(
setting_rrh_gw
,
ENB_CONFIG_STRING_RRH_GW_REMOTE_ADDRESS
,
(
const
char
**
)
&
ipv4_remote
)
&&
config_setting_lookup_int
(
setting_rrh_gw
,
ENB_CONFIG_STRING_RRH_GW_LOCAL_PORT
,
&
local_port
)
&&
config_setting_lookup_int
(
setting_rrh_gw
,
ENB_CONFIG_STRING_RRH_GW_REMOTE_PORT
,
&
remote_port
)
&&
config_setting_lookup_string
(
setting_rrh_gw
,
ENB_CONFIG_STRING_RRH_GW_ACTIVE
,
(
const
char
**
)
&
active
)
&&
config_setting_lookup_string
(
setting_rrh_gw
,
ENB_CONFIG_STRING_RRH_GW_PREFERENCE
,
(
const
char
**
)
&
preference
)
)
)
{
AssertError
(
0
,
parse_errors
++
,
"Failed to parse eNB configuration file %s, %u th enb %u the RRH GW address !
\n
"
,
lib_config_file_name_pP
,
i
,
j
);
continue
;
// FIXME will prevent segfaults below, not sure what happens at function exit...
}
enb_properties
.
properties
[
enb_properties_index
]
->
nb_rrh_gw
+=
1
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_if_name
=
strdup
(
if_name
);
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
local_address
=
strdup
(
ipv4
);
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
remote_address
=
strdup
(
ipv4_remote
);
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
local_port
=
local_port
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
remote_port
=
remote_port
;
if
(
strcmp
(
active
,
"yes"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
active
=
1
;
}
if
(
strcmp
(
preference
,
"udp"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
udp
=
1
;
}
else
if
(
strcmp
(
preference
,
"raw"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
raw
=
1
;
}
else
{
//if (strcmp(preference, "no") == 0)
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
udp
=
1
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
raw
=
1
;
}
}
// SCTP SETTING
// SCTP SETTING
enb_properties
.
properties
[
enb_properties_index
]
->
sctp_out_streams
=
SCTP_OUT_STREAMS
;
enb_properties
.
properties
[
enb_properties_index
]
->
sctp_out_streams
=
SCTP_OUT_STREAMS
;
...
...
This diff is collapsed.
Click to expand it.
openair2/ENB_APP/enb_config.h
View file @
72ff627a
...
@@ -78,6 +78,17 @@ typedef struct mme_ip_address_s {
...
@@ -78,6 +78,17 @@ typedef struct mme_ip_address_s {
char
*
ipv6_address
;
char
*
ipv6_address
;
}
mme_ip_address_t
;
}
mme_ip_address_t
;
typedef
struct
rrh_gw_config_s
{
unsigned
udp
:
1
;
unsigned
raw
:
1
;
unsigned
active
:
1
;
char
*
local_address
;
char
*
remote_address
;
uint16_t
local_port
;
uint16_t
remote_port
;
}
rrh_gw_config_t
;
typedef
struct
Enb_properties_s
{
typedef
struct
Enb_properties_s
{
/* Unique eNB_id to identify the eNB within EPC.
/* Unique eNB_id to identify the eNB within EPC.
* For macro eNB ids this field should be 20 bits long.
* For macro eNB ids this field should be 20 bits long.
...
@@ -203,6 +214,13 @@ typedef struct Enb_properties_s {
...
@@ -203,6 +214,13 @@ typedef struct Enb_properties_s {
char
*
enb_interface_name_for_S1_MME
;
char
*
enb_interface_name_for_S1_MME
;
in_addr_t
enb_ipv4_address_for_S1_MME
;
in_addr_t
enb_ipv4_address_for_S1_MME
;
/* Nb of RRH to connect to */
uint8_t
nb_rrh_gw
;
char
*
rrh_gw_if_name
;
/* List of MME to connect to */
rrh_gw_config_t
rrh_gw_config
[
4
];
// otg config
// otg config
/* Nb of OTG elements */
/* Nb of OTG elements */
uint8_t
num_otg_elements
;
uint8_t
num_otg_elements
;
...
...
This diff is collapsed.
Click to expand it.
targets/RT/USER/lte-softmodem.c
View file @
72ff627a
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