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
promise
OpenXG-RAN
Commits
e4eea33d
Commit
e4eea33d
authored
5 years ago
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
FlexRAN: Enable MME adding/removing
parent
d47c539d
develop
1
128-ues
256_QAM_demod
NCTU_OpinConnect_LDPC
NR-PHY-MAC-IF-multi-UE
NRUE_usedlschparallel
NR_10MHz
NR_CSI_reporting
NR_DLUL_PF
NR_DLUL_PF_4UL
NR_DLUL_PF_rebased
NR_DL_MIMO
NR_DL_sched_fixes
NR_DL_scheduler
NR_FAPI_beamindex_SSB_RO
NR_FDD_FIX
NR_FR2_RA
NR_FR2_RRC_SSB
NR_MAC_Multi_Rach_GlobalEdge
NR_MAC_SSB_RO_GlobalEdge
NR_MAC_SSB_RO_UE_IDCC
NR_MAC_SSB_RO_merge
NR_MAC_TCI_UCI_GlobalEdge
NR_NGAP
NR_PUCCH_MultiUE
NR_RA_cleanup
NR_RA_updates
NR_RRCConfiguration_FR2
NR_RRC_config_simplified
NR_SA_F1AP_RFSIMULATOR
NR_SA_F1AP_RFSIMULATOR2
NR_SA_F1AP_dev
NR_SA_NGAP_RRC
NR_SA_NGAP_RRC_wk42
NR_SA_itti_sim_wk48
NR_SA_itti_sim_wk48_hs
NR_SA_itti_sim_wk48_hs1
NR_SCHED_HARQ
NR_SCHED_PDCCH_PUCCH_HARQ
NR_SCHED_PDCCH_PUCCH_HARQ_rebased
NR_SCHED_fixes
NR_SRB_Config
NR_UE_MAC_scheduler
NR_UE_RA_fixes
NR_UE_UL_DCI_improvements
NR_UE_dlsch_bugfix
NR_UE_enable_parallelization
NR_UE_stability_fixes
NR_UL_scheduler
NR_UL_scheduler_rebased
NR_Wireshark
NR_beam_simulation
NR_mac_uci_functions_rework
NR_scheduling_CSIRS
NR_scheduling_request
NR_scheduling_request2
NR_scheduling_request3
PUSCH_TA_update
RA_CI_test
UE_DL_DCI_hotfix
bch-fixes-bitmap
benetel_5g_prach_fix
benetel_driver_uldl_pf_merge
benetel_driver_update
benetel_phase_rotation
benetel_phase_rotation_old
bugfix-nr-bands
bugfix-nr-ldpc-post-processing
bugfix-nr-ldpc-size-typo
bugfix-nr-pdcp-sn-size
bugfix-nr-rate-matching-assertion
bugfix-x2-SgNBAdditionRequest
bupt-sa-merge
cce_indexing_fix
cce_indexing_fix2
ci-deploy-asterix
ci-deploy-docker-compose
ci-test
ci-ul-iperf-from-trf-container
cleanup_softmodem_main
constant_power
develop-SA-RA
develop-SnT
develop-oriecpriupdates
develop-sib1
develop-sib1-local
develop-sib1-lts
develop-sib1-update
develop-sib1-update-test1
develop-sib1-update-ue
develop_stable
dfts_alternatives
dlsch_encode_mthread
dlsch_parallel
dongzhanyi-zte-develop2
feature/make-s1-mme-port-configurable
feature/make-s1-mme-port-configurable-with-astyle-fixes
fembms-enb-ue
finalize-oaicn-integration
firas
fix-ci-tun
fix-itti-segv
fix-softmodem-restart
fix_NR_DLUL_PF
fix_do_ra_data
fix_pdsch_low_prb
fix_rfsim_mimo
fix_rrc_x2_ticking
fixes-CE-RLC-PDU-size
fixes-mac-sched-nfapi
fixes-mac-sched-tun
fixes-tun
flexran-apps
flexran-repair-mme-mgmt
fujitsu_lte_contribution
fujitsu_lte_contribution-128
gnb-only-test
harq-hotfix
hotfix-minor-remove-nr-rlc-cppcheck-error
hotfix-nr-rlc-tick
hotfix-ocp-executable
improve_nr_modulation
integration_2020_wk40
integration_2020_wk41
integration_2020_wk42_2
integration_2020_wk45
integration_2020_wk45_2
integration_2020_wk46
integration_2020_wk46_2
integration_2020_wk47
integration_2020_wk48
integration_2020_wk48_2
integration_2020_wk49
integration_2020_wk50
integration_2020_wk50_1
integration_2020_wk51
integration_2020_wk51_2
integration_2021_wk02
integration_2021_wk02_wMR988
integration_2021_wk04
integration_2021_wk05
inter-RRU-final
itti-enhancement
ldpc-decoder-codegen
ldpc-decoder-codegen2
ldpc_short_codeword_fixes
load_gnb
lte-ulsch-bugfix
lte_uplink_improvement
mac-fixes-wk45_2
minor-fix-doc-basic-sim
mosaic5g-oai-ran
mosaic5g-oai-sim
nasmesh_kernel_5.8
new-gtpu
nfapi_nr_develop
ngap-dlul
ngap-support
ngap-w48-merge2
ngap-wf
ngap-wf-1120
ngap-wf-1120-srb
ngap-wf-1120-srb-gtp
ngap-wf-1120-srb-gtp-hs
ngap-wf-1120-srb-gtp-hs1
ngap-wf-1120-srb-gtp-hs2
ngap-wf-1120-srb-gtp-yhz
ngap-wf-1203-yunsdr
ngap-wf-liuyu
ngap_lfq_1120
ngap_merge
noCore
nr-mac-pdu-wireshark
nr-mac-remove-ue-list
nr-rlc-am-bugfix-w44
nr-rlc-bugfix-w44
nrUE
nrUE-hs
nrUE-upper-layer
nr_bsr
nr_dl_dmrs_type2
nr_dl_pf
nr_dl_pf2
nr_dl_ul_ptrs
nr_fdd_if_fix
nr_prach_fr2
nr_ue_msg3
nr_ue_tti_cleanup
nr_ul_pf
nr_ul_scfdma
nrue_msg2_reception
nsa-ue
nsa_remove_band_hardcodings
oai-sim
oairu
oairu-dockerfile-support
oc-docker-october-improvements
openxg/develop
ptrs_rrc_config
pusch-mthread-scaling-fix
pusch-retrans-fix-ue
ra-dl-ul
remove_nos1_hack_pdcp
remove_x2_gnb_hardcoding
repair-TA
revert_memcpy
rh-ci-add-ue-parallelization
rh_ci_fix_autoterminate
rh_ci_fr1_update
rh_ci_oc
rh_ci_py
rh_ci_ra_fr2
rh_ci_rfsim_ra
rh_ci_ue_parallel
rh_fr1_newjenkins
rh_fr1_update
rh_gnb_compile_fix
rh_wk50_debug
rlc-v2-bugfix-status-reporting
rlc-v2-tick
rrc-enb-phy-testmode
s1-subnormal_rewrite
s1_subnormal
s1_subnormal-robert
s1ap-bugfix-rab_setup
sa-demo
sa-merge-rrc-srb
sa-msg4
sa-msg4-rrc
sa-msg4-rrc-yihz
sa-msg4-rrc-yihz-hs
sa_rrc_yihz
small-bugfixes-w40
small-config-change
smallcleanup
testing_with_external_txdata
ue-fixes
ue_beam_selection
ul-freq-iq-samps-to-file
ul_dl_dci_same_slot
ulsch_decode_mthread
ulsim_changes
wireshark-T-hack-ueid
wireshark-log-scheduling-requests
x2-endc-processing
xiangwab
xiangwan
yihongzheng_srb
zzs
2021.w04
2021.w02
2020.w51_2
2020.w51
2020.w50
2020.w49
2020.w48_2
2020.w48
2020.w47
2020.w46_2
2020.w46
2020.w45_2
2020.w45
2020.w44
2020.w42_2
2020.w42
2020.w41
2020.w39
2020.w38
2020.w37
2020.w36
2020.w34
2020.w33
2020.w31
2020.w30
benetel_phase_rotation
No related merge requests found
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
160 additions
and
22 deletions
+160
-22
openair2/ENB_APP/CONTROL_MODULES/S1AP/flexran_agent_s1ap.c
openair2/ENB_APP/CONTROL_MODULES/S1AP/flexran_agent_s1ap.c
+33
-0
openair2/ENB_APP/CONTROL_MODULES/S1AP/flexran_agent_s1ap.h
openair2/ENB_APP/CONTROL_MODULES/S1AP/flexran_agent_s1ap.h
+5
-0
openair2/ENB_APP/flexran_agent_common.c
openair2/ENB_APP/flexran_agent_common.c
+25
-22
openair2/ENB_APP/flexran_agent_ran_api.c
openair2/ENB_APP/flexran_agent_ran_api.c
+91
-0
openair2/ENB_APP/flexran_agent_ran_api.h
openair2/ENB_APP/flexran_agent_ran_api.h
+6
-0
No files found.
openair2/ENB_APP/CONTROL_MODULES/S1AP/flexran_agent_s1ap.c
View file @
e4eea33d
...
@@ -125,6 +125,39 @@ void flexran_agent_s1ap_destroy_stats_reply(Protocol__FlexStatsReply *reply) {
...
@@ -125,6 +125,39 @@ void flexran_agent_s1ap_destroy_stats_reply(Protocol__FlexStatsReply *reply) {
}
}
}
}
void
flexran_agent_handle_mme_update
(
mid_t
mod_id
,
size_t
n_mme
,
Protocol__FlexS1apMme
**
mme
)
{
if
(
n_mme
==
0
||
n_mme
>
1
)
{
LOG_E
(
FLEXRAN_AGENT
,
"cannot handle %lu MMEs yet
\n
"
,
n_mme
);
return
;
}
if
(
!
mme
[
0
]
->
s1_ip
)
{
LOG_E
(
FLEXRAN_AGENT
,
"no S1 IP present, cannot handle request
\n
"
);
return
;
}
if
(
mme
[
0
]
->
has_state
&&
mme
[
0
]
->
state
==
PROTOCOL__FLEX_MME_STATE__FLMMES_DISCONNECTED
)
{
int
rc
=
flexran_remove_s1ap_mme
(
mod_id
,
1
,
&
mme
[
0
]
->
s1_ip
);
if
(
rc
==
0
)
LOG_I
(
FLEXRAN_AGENT
,
"remove MME at IP %s
\n
"
,
mme
[
0
]
->
s1_ip
);
else
LOG_W
(
FLEXRAN_AGENT
,
"could not remove MME: flexran_remove_s1ap_mme() returned %d
\n
"
,
rc
);
}
else
{
int
rc
=
flexran_add_s1ap_mme
(
mod_id
,
1
,
&
mme
[
0
]
->
s1_ip
);
if
(
rc
==
0
)
LOG_I
(
FLEXRAN_AGENT
,
"add MME at IP %s
\n
"
,
mme
[
0
]
->
s1_ip
);
else
LOG_W
(
FLEXRAN_AGENT
,
"could not add MME: flexran_add_s1ap_mme() returned %d
\n
"
,
rc
);
}
}
int
flexran_agent_register_s1ap_xface
(
mid_t
mod_id
)
{
int
flexran_agent_register_s1ap_xface
(
mid_t
mod_id
)
{
if
(
agent_s1ap_xface
[
mod_id
])
{
if
(
agent_s1ap_xface
[
mod_id
])
{
LOG_E
(
FLEXRAN_AGENT
,
"S1AP agent CM for eNB %d is already registered
\n
"
,
mod_id
);
LOG_E
(
FLEXRAN_AGENT
,
"S1AP agent CM for eNB %d is already registered
\n
"
,
mod_id
);
...
...
This diff is collapsed.
Click to expand it.
openair2/ENB_APP/CONTROL_MODULES/S1AP/flexran_agent_s1ap.h
View file @
e4eea33d
...
@@ -60,6 +60,11 @@ int flexran_agent_s1ap_stats_reply(mid_t mod_id,
...
@@ -60,6 +60,11 @@ int flexran_agent_s1ap_stats_reply(mid_t mod_id,
/* Free allocated S1AP stats message */
/* Free allocated S1AP stats message */
void
flexran_agent_s1ap_destroy_stats_reply
(
Protocol__FlexStatsReply
*
reply
);
void
flexran_agent_s1ap_destroy_stats_reply
(
Protocol__FlexStatsReply
*
reply
);
/* Add or remove MME updates */
void
flexran_agent_handle_mme_update
(
mid_t
mod_id
,
size_t
n_mme
,
Protocol__FlexS1apMme
**
mme
);
/* Register technology specific interface callbacks */
/* Register technology specific interface callbacks */
int
flexran_agent_register_s1ap_xface
(
mid_t
mod_id
);
int
flexran_agent_register_s1ap_xface
(
mid_t
mod_id
);
...
...
This diff is collapsed.
Click to expand it.
openair2/ENB_APP/flexran_agent_common.c
View file @
e4eea33d
...
@@ -893,31 +893,34 @@ int flexran_agent_handle_enb_config_reply(mid_t mod_id, const void *params, Prot
...
@@ -893,31 +893,34 @@ int flexran_agent_handle_enb_config_reply(mid_t mod_id, const void *params, Prot
Protocol__FlexranMessage
*
input
=
(
Protocol__FlexranMessage
*
)
params
;
Protocol__FlexranMessage
*
input
=
(
Protocol__FlexranMessage
*
)
params
;
Protocol__FlexEnbConfigReply
*
enb_config
=
input
->
enb_config_reply_msg
;
Protocol__FlexEnbConfigReply
*
enb_config
=
input
->
enb_config_reply_msg
;
if
(
enb_config
->
n_cell_config
==
0
)
{
LOG_W
(
FLEXRAN_AGENT
,
"received enb_config_reply message does not contain a cell_config
\n
"
);
*
msg
=
NULL
;
return
0
;
}
if
(
enb_config
->
n_cell_config
>
1
)
if
(
enb_config
->
n_cell_config
>
1
)
LOG_W
(
FLEXRAN_AGENT
,
"ignoring slice configs for other cell except cell 0
\n
"
);
LOG_W
(
FLEXRAN_AGENT
,
"ignoring slice configs for other cell except cell 0
\n
"
);
if
(
flexran_agent_get_mac_xface
(
mod_id
)
&&
enb_config
->
cell_config
[
0
]
->
slice_config
)
{
if
(
enb_config
->
n_cell_config
>
0
)
{
prepare_update_slice_config
(
mod_id
,
enb_config
->
cell_config
[
0
]
->
slice_config
);
if
(
flexran_agent_get_mac_xface
(
mod_id
)
&&
enb_config
->
cell_config
[
0
]
->
slice_config
)
{
}
else
if
(
enb_config
->
cell_config
[
0
]
->
has_eutra_band
prepare_update_slice_config
(
mod_id
,
enb_config
->
cell_config
[
0
]
->
slice_config
);
&&
enb_config
->
cell_config
[
0
]
->
has_dl_freq
}
&&
enb_config
->
cell_config
[
0
]
->
has_ul_freq
if
(
enb_config
->
cell_config
[
0
]
->
has_eutra_band
&&
enb_config
->
cell_config
[
0
]
->
has_dl_bandwidth
)
{
&&
enb_config
->
cell_config
[
0
]
->
has_dl_freq
initiate_soft_restart
(
mod_id
,
enb_config
->
cell_config
[
0
]);
&&
enb_config
->
cell_config
[
0
]
->
has_ul_freq
}
else
if
(
flexran_agent_get_rrc_xface
(
mod_id
)
&&
enb_config
->
cell_config
[
0
]
->
has_dl_bandwidth
)
{
&&
enb_config
->
cell_config
[
0
]
->
has_x2_ho_net_control
)
{
initiate_soft_restart
(
mod_id
,
enb_config
->
cell_config
[
0
]);
LOG_I
(
FLEXRAN_AGENT
,
}
"setting X2 HO NetControl to %d
\n
"
,
if
(
flexran_agent_get_rrc_xface
(
mod_id
)
enb_config
->
cell_config
[
0
]
->
x2_ho_net_control
);
&&
enb_config
->
cell_config
[
0
]
->
has_x2_ho_net_control
)
{
const
int
rc
=
flexran_set_x2_ho_net_control
(
mod_id
,
enb_config
->
cell_config
[
0
]
->
x2_ho_net_control
);
LOG_I
(
FLEXRAN_AGENT
,
if
(
rc
<
0
)
"setting X2 HO NetControl to %d
\n
"
,
LOG_E
(
FLEXRAN_AGENT
,
"Error in configuring X2 handover controlled by network"
);
enb_config
->
cell_config
[
0
]
->
x2_ho_net_control
);
const
int
rc
=
flexran_set_x2_ho_net_control
(
mod_id
,
enb_config
->
cell_config
[
0
]
->
x2_ho_net_control
);
if
(
rc
<
0
)
LOG_E
(
FLEXRAN_AGENT
,
"Error in configuring X2 handover controlled by network"
);
}
}
if
(
flexran_agent_get_s1ap_xface
(
mod_id
)
&&
enb_config
->
s1ap
)
{
flexran_agent_handle_mme_update
(
mod_id
,
enb_config
->
s1ap
->
n_mme
,
enb_config
->
s1ap
->
mme
);
}
}
*
msg
=
NULL
;
*
msg
=
NULL
;
...
...
This diff is collapsed.
Click to expand it.
openair2/ENB_APP/flexran_agent_ran_api.c
View file @
e4eea33d
...
@@ -3634,6 +3634,97 @@ int flexran_get_s1ap_mme_conf(mid_t mod_id, mid_t mme_index, Protocol__FlexS1apM
...
@@ -3634,6 +3634,97 @@ int flexran_get_s1ap_mme_conf(mid_t mod_id, mid_t mme_index, Protocol__FlexS1apM
return
0
;
return
0
;
}
}
int
flexran_add_s1ap_mme
(
mid_t
mod_id
,
size_t
n_mme
,
char
**
mme_ipv4
)
{
s1ap_eNB_instance_t
*
s1ap
=
s1ap_eNB_get_instance
(
mod_id
);
if
(
!
s1ap
)
return
-
1
;
if
(
!
rrc_is_present
(
mod_id
))
return
-
2
;
/* Reconstruct S1AP_REGISTER_ENB_REQ */
MessageDef
*
m
=
itti_alloc_new_message
(
TASK_FLEXRAN_AGENT
,
S1AP_REGISTER_ENB_REQ
);
RCconfig_S1
(
m
,
mod_id
);
const
int
CC_id
=
0
;
eNB_RRC_INST
*
rrc
=
RC
.
rrc
[
CC_id
];
RrcConfigurationReq
*
conf
=
&
rrc
->
configuration
;
S1AP_REGISTER_ENB_REQ
(
m
).
num_plmn
=
conf
->
num_plmn
;
for
(
int
i
=
0
;
i
<
conf
->
num_plmn
;
++
i
)
{
S1AP_REGISTER_ENB_REQ
(
m
).
mcc
[
i
]
=
conf
->
mcc
[
i
];
S1AP_REGISTER_ENB_REQ
(
m
).
mnc
[
i
]
=
conf
->
mnc
[
i
];
S1AP_REGISTER_ENB_REQ
(
m
).
mnc_digit_length
[
i
]
=
conf
->
mnc_digit_length
[
i
];
}
/* reconstruct MME list, it might have been updated since initial
* configuration */
S1AP_REGISTER_ENB_REQ
(
m
).
nb_mme
=
0
;
struct
s1ap_eNB_mme_data_s
*
mme
=
NULL
;
RB_FOREACH
(
mme
,
s1ap_mme_map
,
&
s1ap
->
s1ap_mme_head
)
{
const
int
n
=
S1AP_REGISTER_ENB_REQ
(
m
).
nb_mme
;
S1AP_REGISTER_ENB_REQ
(
m
).
mme_ip_address
[
n
].
ipv4
=
mme
->
mme_s1_ip
.
ipv4
;
strcpy
(
S1AP_REGISTER_ENB_REQ
(
m
).
mme_ip_address
[
n
].
ipv4_address
,
mme
->
mme_s1_ip
.
ipv4_address
);
S1AP_REGISTER_ENB_REQ
(
m
).
mme_ip_address
[
n
].
ipv6
=
mme
->
mme_s1_ip
.
ipv6
;
strcpy
(
S1AP_REGISTER_ENB_REQ
(
m
).
mme_ip_address
[
n
].
ipv6_address
,
mme
->
mme_s1_ip
.
ipv6_address
);
S1AP_REGISTER_ENB_REQ
(
m
).
broadcast_plmn_num
[
n
]
=
mme
->
broadcast_plmn_num
;
for
(
int
i
=
0
;
i
<
mme
->
broadcast_plmn_num
;
++
i
)
S1AP_REGISTER_ENB_REQ
(
m
).
broadcast_plmn_index
[
n
][
i
]
=
mme
->
broadcast_plmn_index
[
i
];
S1AP_REGISTER_ENB_REQ
(
m
).
nb_mme
+=
1
;
}
if
(
S1AP_REGISTER_ENB_REQ
(
m
).
nb_mme
+
n_mme
>
S1AP_MAX_NB_MME_IP_ADDRESS
)
return
-
1
;
for
(
int
i
=
0
;
i
<
n_mme
;
++
i
)
{
const
int
n
=
S1AP_REGISTER_ENB_REQ
(
m
).
nb_mme
;
strcpy
(
S1AP_REGISTER_ENB_REQ
(
m
).
mme_ip_address
[
n
].
ipv4_address
,
mme_ipv4
[
0
]);
S1AP_REGISTER_ENB_REQ
(
m
).
mme_ip_address
[
n
].
ipv4
=
1
;
S1AP_REGISTER_ENB_REQ
(
m
).
mme_ip_address
[
n
].
ipv6
=
0
;
S1AP_REGISTER_ENB_REQ
(
m
).
broadcast_plmn_num
[
n
]
=
S1AP_REGISTER_ENB_REQ
(
m
).
num_plmn
;
for
(
int
i
=
0
;
i
<
S1AP_REGISTER_ENB_REQ
(
m
).
num_plmn
;
++
i
)
S1AP_REGISTER_ENB_REQ
(
m
).
broadcast_plmn_index
[
n
][
i
]
=
i
;
S1AP_REGISTER_ENB_REQ
(
m
).
nb_mme
+=
1
;
}
itti_send_msg_to_task
(
TASK_S1AP
,
ENB_MODULE_ID_TO_INSTANCE
(
mod_id
),
m
);
return
0
;
}
int
flexran_remove_s1ap_mme
(
mid_t
mod_id
,
size_t
n_mme
,
char
**
mme_ipv4
)
{
s1ap_eNB_instance_t
*
s1ap
=
s1ap_eNB_get_instance
(
mod_id
);
if
(
!
s1ap
)
return
-
1
;
struct
s1ap_eNB_mme_data_s
*
mme
=
NULL
;
RB_FOREACH
(
mme
,
s1ap_mme_map
,
&
s1ap
->
s1ap_mme_head
)
{
if
(
mme
->
mme_s1_ip
.
ipv4
&&
strncmp
(
mme
->
mme_s1_ip
.
ipv4_address
,
mme_ipv4
[
0
],
16
)
==
0
)
break
;
}
if
(
!
mme
)
return
-
2
;
MessageDef
*
m
=
itti_alloc_new_message
(
TASK_FLEXRAN_AGENT
,
SCTP_CLOSE_ASSOCIATION
);
SCTP_CLOSE_ASSOCIATION
(
m
).
assoc_id
=
mme
->
assoc_id
;
itti_send_msg_to_task
(
TASK_SCTP
,
ENB_MODULE_ID_TO_INSTANCE
(
mod_id
),
m
);
switch
(
mme
->
state
)
{
case
S1AP_ENB_STATE_WAITING
:
s1ap
->
s1ap_mme_nb
-=
1
;
if
(
s1ap
->
s1ap_mme_pending_nb
>
0
)
s1ap
->
s1ap_mme_pending_nb
-=
1
;
break
;
case
S1AP_ENB_STATE_CONNECTED
:
case
S1AP_ENB_OVERLOAD
:
/* I am not sure the decrements are right here */
s1ap
->
s1ap_mme_nb
-=
1
;
s1ap
->
s1ap_mme_associated_nb
-=
1
;
break
;
case
S1AP_ENB_STATE_DISCONNECTED
:
default:
break
;
}
RB_REMOVE
(
s1ap_mme_map
,
&
s1ap
->
s1ap_mme_head
,
mme
);
return
0
;
}
int
flexran_get_s1ap_ue
(
mid_t
mod_id
,
rnti_t
rnti
,
Protocol__FlexS1apUe
*
ue_conf
){
int
flexran_get_s1ap_ue
(
mid_t
mod_id
,
rnti_t
rnti
,
Protocol__FlexS1apUe
*
ue_conf
){
if
(
!
rrc_is_present
(
mod_id
))
return
-
1
;
if
(
!
rrc_is_present
(
mod_id
))
return
-
1
;
s1ap_eNB_instance_t
*
s1ap
=
s1ap_eNB_get_instance
(
mod_id
);
s1ap_eNB_instance_t
*
s1ap
=
s1ap_eNB_get_instance
(
mod_id
);
...
...
This diff is collapsed.
Click to expand it.
openair2/ENB_APP/flexran_agent_ran_api.h
View file @
e4eea33d
...
@@ -832,6 +832,12 @@ int flexran_get_s1ap_mme_conf(mid_t mod_id, mid_t mme_index, Protocol__FlexS1apM
...
@@ -832,6 +832,12 @@ int flexran_get_s1ap_mme_conf(mid_t mod_id, mid_t mme_index, Protocol__FlexS1apM
/* Get the S1AP UE conf */
/* Get the S1AP UE conf */
int
flexran_get_s1ap_ue
(
mid_t
mod_id
,
rnti_t
rnti
,
Protocol__FlexS1apUe
*
ue_conf
);
int
flexran_get_s1ap_ue
(
mid_t
mod_id
,
rnti_t
rnti
,
Protocol__FlexS1apUe
*
ue_conf
);
/* Add MMEs and re-issue S1AP Registration Request */
int
flexran_add_s1ap_mme
(
mid_t
mod_id
,
size_t
n_mme
,
char
**
mme_ipv4
);
/* Remove MMEs and and cut SCTP to MME */
int
flexran_remove_s1ap_mme
(
mid_t
mod_id
,
size_t
n_mme
,
char
**
mme_ipv4
);
/********************* general information *****************/
/********************* general information *****************/
/* get an ID for this BS (or part of a BS) */
/* get an ID for this BS (or part of a BS) */
uint64_t
flexran_get_bs_id
(
mid_t
mod_id
);
uint64_t
flexran_get_bs_id
(
mid_t
mod_id
);
...
...
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