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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG-RAN
Commits
1426ee5e
Commit
1426ee5e
authored
Nov 02, 2020
by
Frédéric Leroy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: add optional parameter port for mme connection
parent
cad82409
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
21 additions
and
2 deletions
+21
-2
openair2/COMMON/s1ap_messages_types.h
openair2/COMMON/s1ap_messages_types.h
+1
-0
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+8
-0
openair2/ENB_APP/enb_paramdef.h
openair2/ENB_APP/enb_paramdef.h
+8
-1
openair3/S1AP/s1ap_eNB.c
openair3/S1AP/s1ap_eNB.c
+4
-1
No files found.
openair2/COMMON/s1ap_messages_types.h
View file @
1426ee5e
...
@@ -386,6 +386,7 @@ typedef struct s1ap_register_enb_req_s {
...
@@ -386,6 +386,7 @@ typedef struct s1ap_register_enb_req_s {
uint8_t
nb_mme
;
uint8_t
nb_mme
;
/* List of MME to connect to */
/* List of MME to connect to */
net_ip_address_t
mme_ip_address
[
S1AP_MAX_NB_MME_IP_ADDRESS
];
net_ip_address_t
mme_ip_address
[
S1AP_MAX_NB_MME_IP_ADDRESS
];
uint16_t
mme_port
[
S1AP_MAX_NB_MME_IP_ADDRESS
];
uint8_t
broadcast_plmn_num
[
S1AP_MAX_NB_MME_IP_ADDRESS
];
uint8_t
broadcast_plmn_num
[
S1AP_MAX_NB_MME_IP_ADDRESS
];
uint8_t
broadcast_plmn_index
[
S1AP_MAX_NB_MME_IP_ADDRESS
][
PLMN_LIST_MAX_SIZE
];
uint8_t
broadcast_plmn_index
[
S1AP_MAX_NB_MME_IP_ADDRESS
][
PLMN_LIST_MAX_SIZE
];
...
...
openair2/ENB_APP/enb_config.c
View file @
1426ee5e
...
@@ -57,6 +57,7 @@
...
@@ -57,6 +57,7 @@
#include "enb_paramdef.h"
#include "enb_paramdef.h"
#include "proto_agent.h"
#include "proto_agent.h"
#include "executables/thread-common.h"
#include "executables/thread-common.h"
#include "s1ap_eNB_default_values.h"
extern
uint32_t
to_earfcn_DL
(
int
eutra_bandP
,
uint32_t
dl_CarrierFreq
,
uint32_t
bw
);
extern
uint32_t
to_earfcn_DL
(
int
eutra_bandP
,
uint32_t
dl_CarrierFreq
,
uint32_t
bw
);
extern
uint32_t
to_earfcn_UL
(
int
eutra_bandP
,
uint32_t
ul_CarrierFreq
,
uint32_t
bw
);
extern
uint32_t
to_earfcn_UL
(
int
eutra_bandP
,
uint32_t
ul_CarrierFreq
,
uint32_t
bw
);
...
@@ -2511,6 +2512,13 @@ int RCconfig_S1(
...
@@ -2511,6 +2512,13 @@ int RCconfig_S1(
S1AP_REGISTER_ENB_REQ
(
msg_p
).
broadcast_plmn_num
[
l
]
=
0
;
S1AP_REGISTER_ENB_REQ
(
msg_p
).
broadcast_plmn_num
[
l
]
=
0
;
}
}
/* set S1-mme port (sctp) */
if
(
S1ParamList
.
paramarray
[
l
][
ENB_MME_PORT_IDX
].
u16ptr
)
{
S1AP_REGISTER_ENB_REQ
(
msg_p
).
mme_port
[
l
]
=
*
S1ParamList
.
paramarray
[
l
][
ENB_MME_PORT_IDX
].
u16ptr
;
}
else
{
S1AP_REGISTER_ENB_REQ
(
msg_p
).
mme_port
[
l
]
=
S1AP_PORT_NUMBER
;
}
AssertFatal
(
S1AP_REGISTER_ENB_REQ
(
msg_p
).
broadcast_plmn_num
[
l
]
<=
S1AP_REGISTER_ENB_REQ
(
msg_p
).
num_plmn
,
AssertFatal
(
S1AP_REGISTER_ENB_REQ
(
msg_p
).
broadcast_plmn_num
[
l
]
<=
S1AP_REGISTER_ENB_REQ
(
msg_p
).
num_plmn
,
"List of broadcast PLMN to be sent to MME can not be longer than actual "
"List of broadcast PLMN to be sent to MME can not be longer than actual "
"PLMN list (max %d, but is %d)
\n
"
,
"PLMN list (max %d, but is %d)
\n
"
,
...
...
openair2/ENB_APP/enb_paramdef.h
View file @
1426ee5e
...
@@ -907,6 +907,7 @@ typedef struct srb1_params_s {
...
@@ -907,6 +907,7 @@ typedef struct srb1_params_s {
#define ENB_CONFIG_STRING_MME_IPV4_ADDRESS "ipv4"
#define ENB_CONFIG_STRING_MME_IPV4_ADDRESS "ipv4"
#define ENB_CONFIG_STRING_MME_IPV6_ADDRESS "ipv6"
#define ENB_CONFIG_STRING_MME_IPV6_ADDRESS "ipv6"
#define ENB_CONFIG_STRING_MME_PORT "port"
#define ENB_CONFIG_STRING_MME_IP_ADDRESS_ACTIVE "active"
#define ENB_CONFIG_STRING_MME_IP_ADDRESS_ACTIVE "active"
#define ENB_CONFIG_STRING_MME_IP_ADDRESS_PREFERENCE "preference"
#define ENB_CONFIG_STRING_MME_IP_ADDRESS_PREFERENCE "preference"
#define ENB_CONFIG_STRING_MME_BROADCAST_PLMN_INDEX "broadcast_plmn_index"
#define ENB_CONFIG_STRING_MME_BROADCAST_PLMN_INDEX "broadcast_plmn_index"
...
@@ -921,14 +922,20 @@ typedef struct srb1_params_s {
...
@@ -921,14 +922,20 @@ typedef struct srb1_params_s {
{ENB_CONFIG_STRING_MME_IPV6_ADDRESS, NULL, 0, uptr:NULL, defstrval:NULL, TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_MME_IPV6_ADDRESS, NULL, 0, uptr:NULL, defstrval:NULL, TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_MME_IP_ADDRESS_ACTIVE, NULL, 0, uptr:NULL, defstrval:NULL, TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_MME_IP_ADDRESS_ACTIVE, NULL, 0, uptr:NULL, defstrval:NULL, TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_MME_IP_ADDRESS_PREFERENCE, NULL, 0, uptr:NULL, defstrval:NULL, TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_MME_IP_ADDRESS_PREFERENCE, NULL, 0, uptr:NULL, defstrval:NULL, TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_MME_BROADCAST_PLMN_INDEX, NULL, 0, uptr:NULL, defintarrayval:NULL, TYPE_UINTARRAY, 6} \
{ENB_CONFIG_STRING_MME_BROADCAST_PLMN_INDEX, NULL, 0, uptr:NULL, defintarrayval:NULL, TYPE_UINTARRAY, 6}, \
{ENB_CONFIG_STRING_MME_PORT, NULL, 0, u16ptr:NULL, defuintval:0, TYPE_UINT16, 0}, \
}
}
#define ENB_MME_IPV4_ADDRESS_IDX 0
#define ENB_MME_IPV4_ADDRESS_IDX 0
#define ENB_MME_IPV6_ADDRESS_IDX 1
#define ENB_MME_IPV6_ADDRESS_IDX 1
#define ENB_MME_IP_ADDRESS_ACTIVE_IDX 2
#define ENB_MME_IP_ADDRESS_ACTIVE_IDX 2
#define ENB_MME_IP_ADDRESS_PREFERENCE_IDX 3
#define ENB_MME_IP_ADDRESS_PREFERENCE_IDX 3
#define ENB_MME_BROADCAST_PLMN_INDEX 4
#define ENB_MME_BROADCAST_PLMN_INDEX 4
#define ENB_MME_PORT_IDX 5
/*---------------------------------------------------------------------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------------------------------------------------------------------*/
/* X2 configuration parameters section name */
/* X2 configuration parameters section name */
...
...
openair3/S1AP/s1ap_eNB.c
View file @
1426ee5e
...
@@ -89,6 +89,7 @@ uint32_t s1ap_generate_eNB_id(void) {
...
@@ -89,6 +89,7 @@ uint32_t s1ap_generate_eNB_id(void) {
static
void
s1ap_eNB_register_mme
(
s1ap_eNB_instance_t
*
instance_p
,
static
void
s1ap_eNB_register_mme
(
s1ap_eNB_instance_t
*
instance_p
,
net_ip_address_t
*
mme_ip_address
,
net_ip_address_t
*
mme_ip_address
,
uint16_t
mme_port
,
net_ip_address_t
*
local_ip_addr
,
net_ip_address_t
*
local_ip_addr
,
uint16_t
in_streams
,
uint16_t
in_streams
,
uint16_t
out_streams
,
uint16_t
out_streams
,
...
@@ -102,7 +103,7 @@ static void s1ap_eNB_register_mme(s1ap_eNB_instance_t *instance_p,
...
@@ -102,7 +103,7 @@ static void s1ap_eNB_register_mme(s1ap_eNB_instance_t *instance_p,
DevAssert
(
mme_ip_address
!=
NULL
);
DevAssert
(
mme_ip_address
!=
NULL
);
message_p
=
itti_alloc_new_message
(
TASK_S1AP
,
SCTP_NEW_ASSOCIATION_REQ
);
message_p
=
itti_alloc_new_message
(
TASK_S1AP
,
SCTP_NEW_ASSOCIATION_REQ
);
sctp_new_association_req_p
=
&
message_p
->
ittiMsg
.
sctp_new_association_req
;
sctp_new_association_req_p
=
&
message_p
->
ittiMsg
.
sctp_new_association_req
;
sctp_new_association_req_p
->
port
=
S1AP_PORT_NUMBER
;
sctp_new_association_req_p
->
port
=
mme_port
;
sctp_new_association_req_p
->
ppid
=
S1AP_SCTP_PPID
;
sctp_new_association_req_p
->
ppid
=
S1AP_SCTP_PPID
;
sctp_new_association_req_p
->
in_streams
=
in_streams
;
sctp_new_association_req_p
->
in_streams
=
in_streams
;
sctp_new_association_req_p
->
out_streams
=
out_streams
;
sctp_new_association_req_p
->
out_streams
=
out_streams
;
...
@@ -221,6 +222,7 @@ void s1ap_eNB_handle_register_eNB(instance_t instance, s1ap_register_enb_req_t *
...
@@ -221,6 +222,7 @@ void s1ap_eNB_handle_register_eNB(instance_t instance, s1ap_register_enb_req_t *
/* Trying to connect to provided list of MME ip address */
/* Trying to connect to provided list of MME ip address */
for
(
index
=
0
;
index
<
s1ap_register_eNB
->
nb_mme
;
index
++
)
{
for
(
index
=
0
;
index
<
s1ap_register_eNB
->
nb_mme
;
index
++
)
{
net_ip_address_t
*
mme_ip
=
&
s1ap_register_eNB
->
mme_ip_address
[
index
];
net_ip_address_t
*
mme_ip
=
&
s1ap_register_eNB
->
mme_ip_address
[
index
];
uint16_t
mme_port
=
s1ap_register_eNB
->
mme_port
[
index
];
struct
s1ap_eNB_mme_data_s
*
mme
=
NULL
;
struct
s1ap_eNB_mme_data_s
*
mme
=
NULL
;
RB_FOREACH
(
mme
,
s1ap_mme_map
,
&
new_instance
->
s1ap_mme_head
)
{
RB_FOREACH
(
mme
,
s1ap_mme_map
,
&
new_instance
->
s1ap_mme_head
)
{
/* Compare whether IPv4 and IPv6 information is already present, in which
/* Compare whether IPv4 and IPv6 information is already present, in which
...
@@ -235,6 +237,7 @@ void s1ap_eNB_handle_register_eNB(instance_t instance, s1ap_register_enb_req_t *
...
@@ -235,6 +237,7 @@ void s1ap_eNB_handle_register_eNB(instance_t instance, s1ap_register_enb_req_t *
continue
;
continue
;
s1ap_eNB_register_mme
(
new_instance
,
s1ap_eNB_register_mme
(
new_instance
,
mme_ip
,
mme_ip
,
mme_port
,
&
s1ap_register_eNB
->
enb_ip_address
,
&
s1ap_register_eNB
->
enb_ip_address
,
s1ap_register_eNB
->
sctp_in_streams
,
s1ap_register_eNB
->
sctp_in_streams
,
s1ap_register_eNB
->
sctp_out_streams
,
s1ap_register_eNB
->
sctp_out_streams
,
...
...
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