libosmo-sigtran
1.7.1
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"
|
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_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
} |
|
enum | lm_timer { T_WAIT_ASP_UP,
T_WAIT_NOTIFY,
T_WAIT_NOTIFY_RKM,
T_WAIT_RK_REG_RESP
} |
|
|
static struct osmo_ss7_as * | find_first_as_in_asp (struct osmo_ss7_asp *asp) |
|
static int | handle_reg_conf (struct osmo_fsm_inst *fi, uint32_t l_rk_id, uint32_t rctx) |
|
static void | restart_asp (struct osmo_fsm_inst *fi) |
|
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 int | lm_timer_cb (struct osmo_fsm_inst *fi) |
|
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 | default_lm_prim_cb (struct osmo_prim_hdr *oph, void *_asp) |
|
int | osmo_ss7_asp_use_default_lm (struct osmo_ss7_asp *asp, int log_level) |
|
#define S |
( |
|
x | ) |
(1 << (x)) |
◆ lm_event
Enumerator |
---|
LM_E_SCTP_EST_IND | |
LM_E_ASP_UP_CONF | |
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 | |
◆ lm_state
Enumerator |
---|
S_IDLE | |
S_WAIT_ASP_UP | |
S_WAIT_NOTIFY | |
S_RKM_REG | |
S_ACTIVE | |
◆ lm_timer
Enumerator |
---|
T_WAIT_ASP_UP | |
T_WAIT_NOTIFY | |
T_WAIT_NOTIFY_RKM | |
T_WAIT_RK_REG_RESP | |
◆ default_lm_prim_cb()
static int default_lm_prim_cb |
( |
struct osmo_prim_hdr * |
oph, |
|
|
void * |
_asp |
|
) |
| |
|
static |
◆ find_first_as_in_asp()
◆ handle_reg_conf()
static int handle_reg_conf |
( |
struct osmo_fsm_inst * |
fi, |
|
|
uint32_t |
l_rk_id, |
|
|
uint32_t |
rctx |
|
) |
| |
|
static |
◆ lm_active()
static void lm_active |
( |
struct osmo_fsm_inst * |
fi, |
|
|
uint32_t |
event, |
|
|
void * |
data |
|
) |
| |
|
static |
References lm_fsm_priv::asp, data, osmo_ss7_asp::fi, LM_E_AS_INACTIVE_IND, LM_E_NOTIFY_IND, M3UA_NOTIFY_I_AS_ACT, M3UA_NOTIFY_T_STATCHG, osmo_xlm_prim::notify, osmo_xlm_prim::oph, OSMO_XLM_PRIM_M_NOTIFY, restart_asp(), osmo_xlm_prim_notify::status_info, osmo_xlm_prim_notify::status_type, osmo_xlm_prim::u, and XUA_ASP_E_M_ASP_ACTIVE_REQ.
◆ lm_allstate()
static void lm_allstate |
( |
struct osmo_fsm_inst * |
fi, |
|
|
uint32_t |
event, |
|
|
void * |
data |
|
) |
| |
|
static |
◆ lm_idle()
static void lm_idle |
( |
struct osmo_fsm_inst * |
fi, |
|
|
uint32_t |
event, |
|
|
void * |
data |
|
) |
| |
|
static |
◆ lm_rkm_reg()
static void lm_rkm_reg |
( |
struct osmo_fsm_inst * |
fi, |
|
|
uint32_t |
event, |
|
|
void * |
data |
|
) |
| |
|
static |
References osmo_ss7_routing_key::context, data, 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, restart_asp(), osmo_xlm_prim::rk_reg, S_WAIT_NOTIFY, osmo_xlm_prim_rk_reg::status, T_WAIT_NOTIFY_RKM, and osmo_xlm_prim::u.
◆ lm_timer_cb()
static int lm_timer_cb |
( |
struct osmo_fsm_inst * |
fi | ) |
|
|
static |
References lm_fsm_priv::asp, osmo_ss7_as::cfg, osmo_ss7_asp::cfg, osmo_ss7_as::fi, find_first_as_in_asp(), osmo_xlm_prim_rk_reg::key, LM_E_AS_INACTIVE_IND, osmo_ss7_as::mode, osmo_xlm_prim::oph, OSMO_SS7_ASP_QUIRK_NO_NOTIFY, OSMO_XLM_PRIM_M_RK_REG, osmo_xlm_sap_down(), osmo_ss7_asp::quirks, restart_asp(), osmo_xlm_prim::rk_reg, osmo_ss7_as::routing_key, S_RKM_REG, T_WAIT_ASP_UP, T_WAIT_NOTIFY, T_WAIT_NOTIFY_RKM, T_WAIT_RK_REG_RESP, osmo_xlm_prim_rk_reg::traf_mode, osmo_xlm_prim::u, and xua_xlm_prim_alloc().
◆ lm_wait_asp_up()
static void lm_wait_asp_up |
( |
struct osmo_fsm_inst * |
fi, |
|
|
uint32_t |
event, |
|
|
void * |
data |
|
) |
| |
|
static |
◆ lm_wait_notify()
static void lm_wait_notify |
( |
struct osmo_fsm_inst * |
fi, |
|
|
uint32_t |
event, |
|
|
void * |
data |
|
) |
| |
|
static |
References lm_fsm_priv::asp, data, osmo_ss7_asp::fi, LM_E_AS_INACTIVE_IND, LM_E_NOTIFY_IND, M3UA_NOTIFY_I_AS_INACT, M3UA_NOTIFY_I_AS_PEND, M3UA_NOTIFY_T_STATCHG, osmo_xlm_prim::notify, osmo_xlm_prim::oph, OSMO_XLM_PRIM_M_NOTIFY, S_ACTIVE, 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_ss7_asp_use_default_lm()
int osmo_ss7_asp_use_default_lm |
( |
struct osmo_ss7_asp * |
asp, |
|
|
int |
log_level |
|
) |
| |
◆ restart_asp()
static void restart_asp |
( |
struct osmo_fsm_inst * |
fi | ) |
|
|
static |
◆ default_layer_manager
◆ lm_event_map
const struct osmo_prim_event_map lm_event_map[] |
|
static |
◆ lm_event_names
const struct value_string lm_event_names[] |
|
static |
◆ lm_states
const struct osmo_fsm_state lm_states[] |
|
static |
◆ xua_default_lm_fsm
struct osmo_fsm xua_default_lm_fsm |
@ OSMO_XLM_PRIM_M_SCTP_RELEASE
Definition: sigtran_sap.h:15
@ XUA_SAP_LM
Definition: sigtran_sap.h:9
static int lm_timer_cb(struct osmo_fsm_inst *fi)
Definition: xua_default_lm_fsm.c:160
static const struct value_string lm_event_names[]
Definition: xua_default_lm_fsm.c:67
@ OSMO_XLM_PRIM_M_NOTIFY
Definition: sigtran_sap.h:20
@ LM_E_NOTIFY_IND
Definition: xua_default_lm_fsm.c:59
@ OSMO_XLM_PRIM_M_AS_ACTIVE
Definition: sigtran_sap.h:26
@ OSMO_XLM_PRIM_M_SCTP_ESTABLISH
Definition: sigtran_sap.h:14
@ OSMO_XLM_PRIM_M_RK_REG
Definition: sigtran_sap.h:30
@ OSMO_XLM_PRIM_M_AS_INACTIVE
Definition: sigtran_sap.h:27
static const struct osmo_fsm_state lm_states[]
Definition: xua_default_lm_fsm.c:292
@ OSMO_XLM_PRIM_M_AS_STATUS
Definition: sigtran_sap.h:19
static void lm_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: xua_default_lm_fsm.c:283
static int default_lm_prim_cb(struct osmo_prim_hdr *oph, void *_asp)
Definition: xua_default_lm_fsm.c:351
@ LM_E_AS_STATUS_IND
Definition: xua_default_lm_fsm.c:62
@ LM_E_SCTP_DISC_IND
Definition: xua_default_lm_fsm.c:64
@ LM_E_SCTP_EST_IND
Definition: xua_default_lm_fsm.c:57
@ OSMO_XLM_PRIM_M_ASP_UP
Definition: sigtran_sap.h:22
@ LM_E_AS_ACTIVE_IND
Definition: xua_default_lm_fsm.c:61
#define S(x)
Definition: xua_default_lm_fsm.c:41
@ LM_E_ASP_UP_CONF
Definition: xua_default_lm_fsm.c:58
@ LM_E_RKM_REG_CONF
Definition: xua_default_lm_fsm.c:63
@ LM_E_AS_INACTIVE_IND
Definition: xua_default_lm_fsm.c:60