|
libosmo-sigtran 2.2.1.56-7580
Osmocom SIGTRAN library
|
#include <errno.h>#include <osmocom/core/fsm.h>#include <osmocom/core/logging.h>#include <osmocom/sigtran/osmo_ss7.h>#include <osmocom/sigtran/sigtran_sap.h>#include <osmocom/sigtran/protocol/m3ua.h>#include "xua_internal.h"#include "xua_asp_fsm.h"#include "ss7_as.h"#include "ss7_asp.h"#include "ss7_xua_srv.h"Data Structures | |
| struct | xua_layer_manager_default_priv |
Macros | |
| #define | S(x) (1 << (x)) |
| #define | lm_fsm_state_chg(fi, NEXT_STATE) |
| #define | ENSURE_ROLE_COND(fi, event, cond) |
| #define | ENSURE_IPSP(fi, event) ENSURE_ROLE_COND(fi, event, _role == OSMO_SS7_ASP_ROLE_IPSP) |
| #define | ENSURE_ASP_OR_IPSP(fi, event) ENSURE_ROLE_COND(fi, event, _role == OSMO_SS7_ASP_ROLE_ASP || _role == OSMO_SS7_ASP_ROLE_IPSP) |
| #define | ENSURE_SG_OR_IPSP(fi, event) ENSURE_ROLE_COND(fi, event, _role == OSMO_SS7_ASP_ROLE_SG || _role == OSMO_SS7_ASP_ROLE_IPSP) |
Enumerations | |
| enum | lm_state { S_IDLE , S_WAIT_ASP_UP , S_WAIT_NOTIFY , S_RKM_REG , S_ACTIVE } |
| enum | lm_event { LM_E_SCTP_EST_IND , LM_E_ASP_UP_CONF , LM_E_ASP_UP_IND , LM_E_ASP_ACT_IND , LM_E_ASP_INACT_IND , LM_E_NOTIFY_IND , LM_E_AS_INACTIVE_IND , LM_E_AS_ACTIVE_IND , LM_E_AS_STATUS_IND , LM_E_RKM_REG_CONF , LM_E_SCTP_DISC_IND } |
Functions | |
| osmo_static_assert (ARRAY_SIZE(ss7_asp_lm_timer_defaults)==(SS7_ASP_LM_TIMERS_LEN) &&ARRAY_SIZE(ss7_asp_lm_timer_names)==(SS7_ASP_LM_TIMERS_LEN), assert_ss7_asp_lm_timer_count) | |
| static int | handle_reg_conf (struct osmo_fsm_inst *fi, uint32_t l_rk_id, uint32_t rctx) |
| static void | reg_req_all_assoc_as (struct osmo_ss7_asp *asp) |
| static void | lm_idle (struct osmo_fsm_inst *fi, uint32_t event, void *data) |
| static void | lm_wait_asp_up (struct osmo_fsm_inst *fi, uint32_t event, void *data) |
| static void | lm_wait_notify (struct osmo_fsm_inst *fi, uint32_t event, void *data) |
| static void | lm_rkm_reg (struct osmo_fsm_inst *fi, uint32_t event, void *data) |
| static void | lm_active (struct osmo_fsm_inst *fi, uint32_t event, void *data) |
| static void | lm_allstate (struct osmo_fsm_inst *fi, uint32_t event, void *data) |
| static int | lm_timer_cb (struct osmo_fsm_inst *fi) |
| static int | default_lm_prim_cb (struct osmo_prim_hdr *oph, void *_asp) |
| void | xua_layer_manager_default_free (struct osmo_xua_layer_manager *lm) |
| struct osmo_xua_layer_manager * | xua_layer_manager_default_alloc (struct osmo_ss7_asp *asp) |
Variables | |
| static const struct value_string | lm_event_names [] |
| const struct osmo_tdef | ss7_asp_lm_timer_defaults [SS7_ASP_LM_TIMERS_LEN] |
| const struct value_string | ss7_asp_lm_timer_names [] |
| static const struct osmo_tdef_state_timeout | lm_fsm_timeouts [32] |
| static const struct osmo_fsm_state | lm_states [] |
| static const struct osmo_prim_event_map | lm_event_map [] |
| struct osmo_fsm | xua_default_lm_fsm |
| #define ENSURE_ASP_OR_IPSP | ( | fi, | |
| event | |||
| ) | ENSURE_ROLE_COND(fi, event, _role == OSMO_SS7_ASP_ROLE_ASP || _role == OSMO_SS7_ASP_ROLE_IPSP) |
| #define ENSURE_IPSP | ( | fi, | |
| event | |||
| ) | ENSURE_ROLE_COND(fi, event, _role == OSMO_SS7_ASP_ROLE_IPSP) |
| #define ENSURE_ROLE_COND | ( | fi, | |
| event, | |||
| cond | |||
| ) |
| #define ENSURE_SG_OR_IPSP | ( | fi, | |
| event | |||
| ) | ENSURE_ROLE_COND(fi, event, _role == OSMO_SS7_ASP_ROLE_SG || _role == OSMO_SS7_ASP_ROLE_IPSP) |
| #define lm_fsm_state_chg | ( | fi, | |
| NEXT_STATE | |||
| ) |
| #define S | ( | x | ) | (1 << (x)) |
| enum lm_event |
| enum lm_state |
|
static |
|
static |
|
static |
References xua_layer_manager_default_priv::asp, data, ENSURE_IPSP, osmo_ss7_asp::fi, xua_layer_manager_default_priv::fi, LM_E_AS_INACTIVE_IND, LM_E_ASP_ACT_IND, LM_E_NOTIFY_IND, lm_fsm_state_chg, M3UA_NOTIFY_I_AS_ACT, M3UA_NOTIFY_T_STATCHG, osmo_xlm_prim::notify, NULL, osmo_xlm_prim::oph, OSMO_XLM_PRIM_M_NOTIFY, S_IDLE, osmo_xlm_prim_notify::status_info, osmo_xlm_prim_notify::status_type, osmo_xlm_prim::u, and XUA_ASP_E_M_ASP_ACTIVE_REQ.
|
static |
References LM_E_SCTP_DISC_IND, lm_fsm_state_chg, and S_IDLE.
|
static |
|
static |
References xua_layer_manager_default_priv::asp, osmo_ss7_asp::cfg, osmo_ss7_routing_key::context, data, xua_layer_manager_default_priv::fi, handle_reg_conf(), osmo_xlm_prim_rk_reg::key, osmo_ss7_routing_key::l_rk_id, LM_E_RKM_REG_CONF, M3UA_RKM_REG_SUCCESS, osmo_xlm_prim::rk_reg, S_WAIT_NOTIFY, ss7_asp_disconnect_stream(), SS7_ASP_LM_T_WAIT_NOTIY_RKM, osmo_xlm_prim_rk_reg::status, osmo_ss7_asp::T_defs_lm, and osmo_xlm_prim::u.
|
static |
References xua_layer_manager_default_priv::asp, osmo_ss7_asp::cfg, xua_layer_manager_default_priv::fi, LM_E_AS_INACTIVE_IND, lm_fsm_state_chg, NULL, OSMO_SS7_ASP_QUIRK_NO_NOTIFY, osmo_ss7_asp::quirks, reg_req_all_assoc_as(), S_RKM_REG, ss7_asp_disconnect_stream(), SS7_ASP_LM_T_WAIT_ASP_UP, SS7_ASP_LM_T_WAIT_NOTIFY, SS7_ASP_LM_T_WAIT_NOTIY_RKM, and SS7_ASP_LM_T_WAIT_RK_REG_RESP.
|
static |
|
static |
References xua_layer_manager_default_priv::asp, osmo_ss7_asp::cfg, data, ENSURE_ASP_OR_IPSP, ENSURE_SG_OR_IPSP, osmo_ss7_asp::fi, xua_layer_manager_default_priv::fi, LM_E_AS_INACTIVE_IND, LM_E_ASP_ACT_IND, LM_E_ASP_UP_CONF, LM_E_NOTIFY_IND, lm_fsm_state_chg, M3UA_NOTIFY_I_AS_ACT, M3UA_NOTIFY_T_STATCHG, osmo_xlm_prim::notify, NULL, osmo_xlm_prim::oph, OSMO_SS7_AS_TMOD_OVERRIDE, OSMO_SS7_ASP_ROLE_SG, OSMO_XLM_PRIM_M_NOTIFY, osmo_ss7_asp::role, S_ACTIVE, ss7_asp_determine_traf_mode(), osmo_xlm_prim_notify::status_info, osmo_xlm_prim_notify::status_type, osmo_xlm_prim::u, and XUA_ASP_E_M_ASP_ACTIVE_REQ.
| osmo_static_assert | ( | ARRAY_SIZE(ss7_asp_lm_timer_defaults) | = =(SS7_ASP_LM_TIMERS_LEN) &&ARRAY_SIZE(ss7_asp_lm_timer_names)==(SS7_ASP_LM_TIMERS_LEN), |
| assert_ss7_asp_lm_timer_count | |||
| ) |
|
static |
References ss7_as_asp_assoc::as, ss7_as_asp_assoc::asp, ss7_as_asp_assoc::asp_entry, osmo_ss7_asp::assoc_as_list, osmo_ss7_as::cfg, osmo_xlm_prim_rk_reg::key, osmo_ss7_as::mode, osmo_xlm_prim::oph, OSMO_XLM_PRIM_M_RK_REG, osmo_xlm_sap_down(), osmo_xlm_prim::rk_reg, osmo_ss7_as::routing_key, osmo_xlm_prim_rk_reg::traf_mode, osmo_xlm_prim::u, and xua_xlm_prim_alloc().
Referenced by lm_timer_cb().
| struct osmo_xua_layer_manager * xua_layer_manager_default_alloc | ( | struct osmo_ss7_asp * | asp | ) |
References xua_layer_manager_default_priv::asp, osmo_ss7_asp::cfg, default_lm_prim_cb(), xua_layer_manager_default_priv::fi, osmo_xua_layer_manager::free_func, osmo_ss7_asp::name, NULL, osmo_xua_layer_manager::prim_cb, osmo_xua_layer_manager::priv, xua_default_lm_fsm, and xua_layer_manager_default_free().
Referenced by ss7_asp_xua_layer_manager_start().
| void xua_layer_manager_default_free | ( | struct osmo_xua_layer_manager * | lm | ) |
References xua_layer_manager_default_priv::fi, NULL, and osmo_xua_layer_manager::priv.
Referenced by xua_layer_manager_default_alloc().
|
static |
Referenced by default_lm_prim_cb().
|
static |
|
static |
|
static |
| const struct osmo_tdef ss7_asp_lm_timer_defaults[SS7_ASP_LM_TIMERS_LEN] |
Referenced by gen_asp_timer_lm_cmd_strs(), and ss7_asp_alloc().
| const struct value_string ss7_asp_lm_timer_names[] |
Referenced by DEFUN_ATTR(), gen_asp_timer_lm_cmd_strs(), ss7_asp_lm_timer_name(), and write_asp_timers_lm().
| struct osmo_fsm xua_default_lm_fsm |
Referenced by osmo_ss7_init(), and xua_layer_manager_default_alloc().