libosmo-sigtran 2.0.0.52-6412
Osmocom SIGTRAN library
|
#include <errno.h>
#include <string.h>
#include <osmocom/core/msgb.h>
#include <osmocom/core/utils.h>
#include <osmocom/core/linuxlist.h>
#include <osmocom/core/linuxrbtree.h>
#include <osmocom/core/logging.h>
#include <osmocom/core/timer.h>
#include <osmocom/core/fsm.h>
#include <osmocom/sigtran/sccp_helpers.h>
#include <osmocom/sigtran/sccp_sap.h>
#include <osmocom/sigtran/protocol/sua.h>
#include <osmocom/sccp/sccp_types.h>
#include "xua_internal.h"
#include "sccp_internal.h"
#include "ss7_instance.h"
#include <osmocom/vty/vty.h>
Data Structures | |
struct | sccp_connection |
Macros | |
#define | S(x) (1 << (x)) |
#define | SCU_MSGB_SIZE 1024 |
#define | INIT_TIMER(x, fn, priv) do { (x)->cb = fn; (x)->data = priv; } while (0) |
Functions | |
osmo_static_assert (ARRAY_SIZE(osmo_sccp_timer_defaults)==(OSMO_SCCP_TIMERS_LEN) &&ARRAY_SIZE(osmo_sccp_timer_names)==(OSMO_SCCP_TIMERS_LEN), assert_osmo_sccp_timers_count) | |
static void | sccp_timer_schedule (const struct sccp_connection *conn, struct osmo_timer_list *timer, enum osmo_sccp_timer timer_name) |
static void | tx_inact_tmr_cb (void *data) |
static void | rx_inact_tmr_cb (void *data) |
static void | rel_tmr_cb (void *data) |
static void | int_tmr_cb (void *data) |
static void | rep_rel_tmr_cb (void *data) |
static void | conn_tmr_cb (void *data) |
static void | conn_restart_tx_inact_timer (struct sccp_connection *conn) |
static void | conn_restart_rx_inact_timer (struct sccp_connection *conn) |
static void | conn_start_inact_timers (struct sccp_connection *conn) |
static void | conn_stop_inact_timers (struct sccp_connection *conn) |
static void | conn_start_rel_timer (struct sccp_connection *conn) |
static void | conn_start_rep_rel_timer (struct sccp_connection *conn) |
static void | conn_start_int_timer (struct sccp_connection *conn) |
static void | conn_stop_release_timers (struct sccp_connection *conn) |
static void | conn_start_connect_timer (struct sccp_connection *conn) |
static void | conn_stop_connect_timer (struct sccp_connection *conn) |
static void | conn_destroy (struct sccp_connection *conn) |
static struct sccp_connection * | conn_find_by_id (const struct osmo_sccp_instance *inst, uint32_t id) |
static int | conn_add_node (struct osmo_sccp_instance *inst, struct sccp_connection *conn) |
bool | osmo_sccp_conn_id_exists (const struct osmo_sccp_instance *inst, uint32_t id) |
static struct sccp_connection * | conn_create_id (struct osmo_sccp_user *user, uint32_t conn_id) |
int | osmo_sccp_instance_next_conn_id (struct osmo_sccp_instance *sccp) |
static struct sccp_connection * | conn_create (struct osmo_sccp_user *user) |
static void | conn_opt_data_clear_cache (struct sccp_connection *conn) |
static struct msgb * | scu_msgb_alloc (void) |
static struct xua_msg * | xua_gen_relre (struct sccp_connection *conn, uint32_t cause, struct osmo_scu_prim *prim) |
static int | xua_gen_relre_and_send (struct sccp_connection *conn, uint32_t cause, struct osmo_scu_prim *prim) |
static void | xua_opt_data_send_cache (struct sccp_connection *conn, int exp_type, uint8_t msg_class) |
static bool | xua_drop_data_check_drop (const struct osmo_scu_prim *prim, unsigned lim, const char *message) |
static bool | xua_opt_data_cache_keep (struct sccp_connection *conn, const struct osmo_scu_prim *prim, int msg_type) |
static bool | xua_opt_data_length_lim (struct sccp_connection *conn, const struct osmo_scu_prim *prim, int msg_type) |
static struct xua_msg * | xua_gen_msg_co (struct sccp_connection *conn, uint32_t event, const struct osmo_scu_prim *prim, int msg_type) |
static int | xua_gen_encode_and_send (struct sccp_connection *conn, uint32_t event, const struct osmo_scu_prim *prim, int msg_type) |
static struct osmo_scu_prim * | scu_prim_alloc (unsigned int primitive, enum osmo_prim_operation operation) |
static void | scu_gen_encode_and_send (struct sccp_connection *conn, uint32_t event, struct xua_msg *xua, unsigned int primitive, enum osmo_prim_operation operation) |
static void | scoc_fsm_idle (struct osmo_fsm_inst *fi, uint32_t event, void *data) |
static void | scoc_fsm_idle_onenter (struct osmo_fsm_inst *fi, uint32_t old_state) |
static void | scoc_fsm_conn_pend_in (struct osmo_fsm_inst *fi, uint32_t event, void *data) |
static void | scoc_fsm_conn_pend_out (struct osmo_fsm_inst *fi, uint32_t event, void *data) |
static void | scoc_fsm_wait_conn_conf (struct osmo_fsm_inst *fi, uint32_t event, void *data) |
static void | scoc_fsm_active (struct osmo_fsm_inst *fi, uint32_t event, void *data) |
static void | scoc_fsm_disconn_pend (struct osmo_fsm_inst *fi, uint32_t event, void *data) |
static uint8_t | get_cref_cause_for_ret (uint8_t ret_cause) |
static struct xua_msg * | gen_coref_without_conn (struct osmo_sccp_instance *inst, struct xua_msg *xua_in, uint32_t ref_cause) |
static struct osmo_sccp_user * | sccp_find_user (struct osmo_sccp_instance *inst, struct xua_msg *xua) |
void | sccp_scoc_rx_scrc_rout_fail (struct osmo_sccp_instance *inst, struct xua_msg *xua, uint32_t return_cause) |
SCOC: Receive SCRC Routing Failure. More... | |
static struct xua_msg * | gen_coerr (uint32_t route_ctx, uint32_t dest_ref, uint32_t err_cause) |
static void | tx_coerr_from_xua (struct osmo_sccp_instance *inst, struct xua_msg *in, uint32_t err_cause) |
static struct xua_msg * | gen_relco (uint32_t route_ctx, uint32_t dest_ref, uint32_t src_ref) |
static void | tx_relco_from_xua (struct osmo_sccp_instance *inst, struct xua_msg *in) |
static struct xua_msg * | gen_rlsd (uint32_t route_ctx, uint32_t dest_ref, uint32_t src_ref) |
static void | tx_rlsd_from_xua_twoway (struct sccp_connection *conn, struct xua_msg *in) |
static void | sccp_scoc_rx_unass_local_ref (struct osmo_sccp_instance *inst, struct xua_msg *xua) |
static void | sccp_scoc_rx_inval_src_ref (struct sccp_connection *conn, struct xua_msg *xua, uint32_t inval_src_ref) |
static void | sccp_scoc_rx_inval_opc (struct sccp_connection *conn, struct xua_msg *xua) |
void | sccp_scoc_rx_from_scrc (struct osmo_sccp_instance *inst, struct xua_msg *xua) |
Main entrance function for primitives from the SCRC (Routing Control) More... | |
static uint32_t | scu_prim_conn_id (const struct osmo_scu_prim *prim) |
int | osmo_sccp_user_sap_down_nofree (struct osmo_sccp_user *scu, struct osmo_prim_hdr *oph) |
Main entrance function for primitives from SCCP User. More... | |
int | osmo_sccp_user_sap_down (struct osmo_sccp_user *scu, struct osmo_prim_hdr *oph) |
Main entrance function for primitives from SCCP User. More... | |
void | sccp_scoc_flush_connections (struct osmo_sccp_instance *inst) |
static void | vty_show_connection (struct vty *vty, struct sccp_connection *conn) |
void | sccp_scoc_show_connections (struct vty *vty, struct osmo_sccp_instance *inst) |
Variables | |
static const struct value_string | scoc_event_names [] |
static const struct xua_msg_event_map | sua_scoc_event_map [] |
static const struct osmo_prim_event_map | scu_scoc_event_map [] |
const struct osmo_tdef | osmo_sccp_timer_defaults [OSMO_SCCP_TIMERS_LEN] |
const struct value_string | osmo_sccp_timer_names [] |
static const struct osmo_fsm_state | sccp_scoc_states [] |
struct osmo_fsm | sccp_scoc_fsm |
static const uint8_t | cause_map_cref [] |
#define INIT_TIMER | ( | x, | |
fn, | |||
priv | |||
) | do { (x)->cb = fn; (x)->data = priv; } while (0) |
#define S | ( | x | ) | (1 << (x)) |
#define SCU_MSGB_SIZE 1024 |
enum sccp_scoc_event |
|
static |
References sccp_connection::conn_id, osmo_sccp_instance::connections, sccp_connection::inst, and sccp_connection::node.
Referenced by conn_create_id().
|
static |
References conn_create_id(), sccp_connection::conn_id, osmo_sccp_user::inst, osmo_sccp_instance_next_conn_id(), and sccp_connection::user.
Referenced by sccp_scoc_rx_from_scrc().
|
static |
References conn_add_node(), sccp_connection::conn_id, conn_tmr_cb(), osmo_sccp_instance::connections, sccp_connection::fi, INIT_TIMER, osmo_sccp_user::inst, sccp_connection::inst, int_tmr_cb(), sccp_connection::node, rel_tmr_cb(), rep_rel_tmr_cb(), rx_inact_tmr_cb(), sccp_scoc_fsm, sccp_connection::t_conn, sccp_connection::t_iar, sccp_connection::t_ias, sccp_connection::t_int, sccp_connection::t_rel, sccp_connection::t_rep_rel, tx_inact_tmr_cb(), and sccp_connection::user.
Referenced by conn_create(), and osmo_sccp_user_sap_down_nofree().
|
static |
|
static |
|
static |
References sccp_connection::opt_data_cache.
Referenced by conn_destroy(), and xua_opt_data_send_cache().
|
static |
References OSMO_SCCP_TIMER_IAR, sccp_timer_schedule(), and sccp_connection::t_iar.
Referenced by conn_start_inact_timers(), and scoc_fsm_active().
|
static |
References OSMO_SCCP_TIMER_IAS, sccp_timer_schedule(), and sccp_connection::t_ias.
Referenced by conn_start_inact_timers(), and scoc_fsm_active().
|
static |
References OSMO_SCCP_TIMER_CONN_EST, sccp_timer_schedule(), and sccp_connection::t_conn.
Referenced by scoc_fsm_conn_pend_out(), and scoc_fsm_idle().
|
static |
References conn_restart_rx_inact_timer(), and conn_restart_tx_inact_timer().
Referenced by scoc_fsm_conn_pend_in(), and scoc_fsm_conn_pend_out().
|
static |
References OSMO_SCCP_TIMER_INT, sccp_timer_schedule(), and sccp_connection::t_int.
Referenced by scoc_fsm_disconn_pend().
|
static |
References OSMO_SCCP_TIMER_REL, sccp_timer_schedule(), and sccp_connection::t_rel.
Referenced by scoc_fsm_active(), and scoc_fsm_wait_conn_conf().
|
static |
References OSMO_SCCP_TIMER_REPEAT_REL, sccp_timer_schedule(), and sccp_connection::t_rep_rel.
Referenced by scoc_fsm_disconn_pend().
|
static |
References sccp_connection::t_conn.
Referenced by conn_destroy(), scoc_fsm_conn_pend_out(), and scoc_fsm_wait_conn_conf().
|
static |
References sccp_connection::t_iar, and sccp_connection::t_ias.
Referenced by conn_destroy(), and scoc_fsm_active().
|
static |
References sccp_connection::t_int, sccp_connection::t_rel, and sccp_connection::t_rep_rel.
Referenced by conn_destroy(), and scoc_fsm_disconn_pend().
|
static |
References data, sccp_connection::fi, and SCOC_E_CONN_TMR_EXP.
Referenced by conn_create_id().
|
static |
References xua_msg::hdr, SUA_CAUSE_T_ERROR, SUA_CO_COERR, SUA_IEI_CAUSE, SUA_IEI_DEST_REF, SUA_IEI_ROUTE_CTX, SUA_MSGC_CO, XUA_HDR, xua_msg_add_u32(), and xua_msg_alloc().
Referenced by tx_coerr_from_xua().
|
static |
References xua_msg::hdr, osmo_sccp_instance::route_ctx, SUA_CAUSE_T_REFUSAL, SUA_CO_COREF, SUA_IEI_CAUSE, SUA_IEI_DATA, SUA_IEI_DEST_ADDR, SUA_IEI_DEST_REF, SUA_IEI_IMPORTANCE, SUA_IEI_ROUTE_CTX, SUA_IEI_SRC_ADDR, SUA_IEI_SRC_REF, SUA_MSGC_CO, XUA_HDR, xua_msg_add_u32(), xua_msg_alloc(), and xua_msg_copy_part().
Referenced by sccp_scoc_rx_scrc_rout_fail().
|
static |
References xua_msg::hdr, SUA_CO_RELCO, SUA_IEI_DEST_REF, SUA_IEI_ROUTE_CTX, SUA_IEI_SRC_REF, SUA_MSGC_CO, XUA_HDR, xua_msg_add_u32(), and xua_msg_alloc().
Referenced by tx_relco_from_xua().
|
static |
References xua_msg::hdr, SUA_CO_RELRE, SUA_IEI_DEST_REF, SUA_IEI_ROUTE_CTX, SUA_IEI_SRC_REF, SUA_MSGC_CO, XUA_HDR, xua_msg_add_u32(), and xua_msg_alloc().
Referenced by tx_rlsd_from_xua_twoway().
|
static |
References cause_map_cref.
Referenced by sccp_scoc_rx_scrc_rout_fail().
|
static |
References data, sccp_connection::fi, and SCOC_E_T_INT_EXP.
Referenced by conn_create_id().
bool osmo_sccp_conn_id_exists | ( | const struct osmo_sccp_instance * | inst, |
uint32_t | id | ||
) |
References conn_find_by_id(), and sccp_connection::inst.
Referenced by osmo_sccp_tx_conn_resp_msg(), osmo_sccp_tx_data(), and osmo_sccp_tx_disconn_data().
int osmo_sccp_instance_next_conn_id | ( | struct osmo_sccp_instance * | sccp | ) |
References conn_find_by_id(), and osmo_sccp_instance::next_id.
Referenced by conn_create().
int osmo_sccp_user_sap_down | ( | struct osmo_sccp_user * | scu, |
struct osmo_prim_hdr * | oph | ||
) |
Main entrance function for primitives from SCCP User.
Implies a msgb_free(oph->msg), otherwise the same as osmo_sccp_user_sap().
[in] | scu | SCCP User sending us the primitive |
[in] | oph | Osmocom primitive sent by the user |
References osmo_scu_prim::oph, and osmo_sccp_user_sap_down_nofree().
Referenced by osmo_sccp_tx_conn_req(), osmo_sccp_tx_conn_resp_msg(), osmo_sccp_tx_data(), osmo_sccp_tx_disconn_data(), osmo_sccp_tx_unitdata(), and sccp_scmg_tx().
int osmo_sccp_user_sap_down_nofree | ( | struct osmo_sccp_user * | scu, |
struct osmo_prim_hdr * | oph | ||
) |
Main entrance function for primitives from SCCP User.
The caller is required to free oph->msg, otherwise the same as osmo_sccp_user_sap_down().
[in] | scu | SCCP User sending us the primitive |
[in] | oph | Osmocom primitive sent by the user |
References conn_create_id(), conn_find_by_id(), osmo_scu_connect_param::conn_id, osmo_scu_prim::connect, sccp_connection::fi, osmo_sccp_user::inst, sccp_connection::inst, osmo_scu_prim::oph, OSMO_SCU_PRIM_N_CONNECT, OSMO_SCU_PRIM_N_DATA, OSMO_SCU_PRIM_N_DISCONNECT, OSMO_SCU_PRIM_N_RESET, OSMO_SCU_PRIM_N_UNITDATA, osmo_scu_prim_name(), sccp_sclc_user_sap_down_nofree(), scu_prim_conn_id(), scu_scoc_event_map, and osmo_scu_prim::u.
Referenced by osmo_sccp_user_sap_down().
osmo_static_assert | ( | ARRAY_SIZE(osmo_sccp_timer_defaults) | = =(OSMO_SCCP_TIMERS_LEN) &&ARRAY_SIZE(osmo_sccp_timer_names)==(OSMO_SCCP_TIMERS_LEN) , |
assert_osmo_sccp_timers_count | |||
) |
|
static |
References data, sccp_connection::fi, and SCOC_E_T_REL_EXP.
Referenced by conn_create_id().
|
static |
References data, sccp_connection::fi, and SCOC_E_T_REP_REL_EXP.
Referenced by conn_create_id().
|
static |
References data, sccp_connection::fi, and SCOC_E_T_IAR_EXP.
Referenced by conn_create_id().
|
static |
References OSMO_SCCP_ADDR_T_SSN, osmo_sccp_addr::pc, osmo_sccp_addr::presence, sccp_user_find(), osmo_sccp_addr::ssn, sua_addr_parse(), SUA_IEI_DEST_ADDR, xua_dialect_sua, and xua_hdr_dump().
Referenced by sccp_scoc_rx_from_scrc().
void sccp_scoc_flush_connections | ( | struct osmo_sccp_instance * | inst | ) |
References conn_destroy(), osmo_sccp_instance::connections, and sccp_connection::node.
Referenced by osmo_sccp_instance_destroy().
void sccp_scoc_rx_from_scrc | ( | struct osmo_sccp_instance * | inst, |
struct xua_msg * | xua | ||
) |
Main entrance function for primitives from the SCRC (Routing Control)
[in] | inst | SCCP Instance in which we operate |
[in] | xua | SUA message in xua_msg format |
References conn_create(), conn_find_by_id(), sccp_connection::conn_id, sccp_connection::fi, xua_msg::hdr, sccp_connection::incoming, osmo_sccp_user::inst, xua_common_hdr::msg_type, xua_msg::mtp, osmo_mtp_transfer_param::opc, sccp_connection::remote_pc, sccp_connection::remote_ref, sccp_find_user(), sccp_scoc_rx_inval_opc(), sccp_scoc_rx_inval_src_ref(), sccp_scoc_rx_unass_local_ref(), SUA_CO_COAK, SUA_CO_CORE, SUA_CO_COREF, SUA_IEI_DEST_REF, SUA_IEI_SRC_REF, sua_scoc_event_map, xua_dialect_sua, xua_hdr_dump(), xua_msg_event_map(), xua_msg_find_tag(), and xua_msg_get_u32().
Referenced by scrc_node_6(), scrc_rx_mtp_xfer_ind_xua(), and scrc_translate_node_9().
|
static |
References xua_msg::hdr, sccp_connection::inst, xua_common_hdr::msg_type, xua_msg::mtp, osmo_mtp_transfer_param::opc, osmo_ss7_pointcode_print(), osmo_ss7_pointcode_print2(), sccp_connection::remote_pc, osmo_sccp_instance::ss7, SUA_CO_CODA, SUA_CO_CODT, SUA_CO_COERR, SUA_CO_RELCO, SUA_CO_RELRE, SUA_CO_RESCO, SUA_CO_RESRE, tx_coerr_from_xua(), xua_dialect_sua, and xua_hdr_dump().
Referenced by sccp_scoc_rx_from_scrc().
|
static |
void sccp_scoc_rx_scrc_rout_fail | ( | struct osmo_sccp_instance * | inst, |
struct xua_msg * | xua, | ||
uint32_t | return_cause | ||
) |
SCOC: Receive SCRC Routing Failure.
[in] | inst | SCCP Instance on which we operate |
[in] | xua | SUA message that was failed to route |
[in] | return_cause | Reason (cause) for routing failure |
References conn_find_by_id(), sccp_connection::conn_id, sccp_connection::fi, gen_coref_without_conn(), get_cref_cause_for_ret(), sccp_connection::inst, sccp_scrc_rx_scoc_conn_msg(), SCOC_E_RCOC_ROUT_FAIL_IND, SUA_IEI_DEST_REF, xua_dialect_sua, xua_hdr_dump(), xua_msg_free(), and xua_msg_get_u32().
Referenced by scrc_node_2(), scrc_node_4(), and scrc_node_6().
|
static |
References xua_msg::hdr, xua_common_hdr::msg_type, SUA_CO_COAK, SUA_CO_CODA, SUA_CO_CODT, SUA_CO_COERR, SUA_CO_COIT, SUA_CO_COREF, SUA_CO_RELCO, SUA_CO_RELRE, SUA_CO_RESCO, SUA_CO_RESRE, tx_coerr_from_xua(), tx_relco_from_xua(), xua_dialect_sua, and xua_hdr_dump().
Referenced by sccp_scoc_rx_from_scrc().
void sccp_scoc_show_connections | ( | struct vty * | vty, |
struct osmo_sccp_instance * | inst | ||
) |
References osmo_sccp_instance::connections, and vty_show_connection().
Referenced by DEFUN().
|
static |
|
static |
References conn_restart_rx_inact_timer(), conn_restart_tx_inact_timer(), conn_start_rel_timer(), conn_stop_inact_timers(), data, sccp_connection::fi, sccp_connection::importance, OSMO_SCU_PRIM_N_DATA, OSMO_SCU_PRIM_N_DISCONNECT, sccp_connection::remote_ref, S_DISCONN_PEND, S_IDLE, sccp_connection::sccp_class, SCOC_E_RCOC_CC_IND, SCOC_E_RCOC_CREF_IND, SCOC_E_RCOC_DT1_IND, SCOC_E_RCOC_ERROR_IND, SCOC_E_RCOC_IT_IND, SCOC_E_RCOC_REL_COMPL_IND, SCOC_E_RCOC_RLSD_IND, SCOC_E_RCOC_ROUT_FAIL_IND, SCOC_E_SCU_N_DATA_REQ, SCOC_E_SCU_N_DISC_REQ, SCOC_E_SCU_N_EXP_DATA_REQ, SCOC_E_T_IAR_EXP, SCOC_E_T_IAS_EXP, scu_gen_encode_and_send(), SUA_CAUSE_T_RELEASE, SUA_CO_CODT, SUA_CO_COIT, SUA_CO_RELCO, SUA_CO_RELRE, SUA_IEI_CAUSE, SUA_IEI_IMPORTANCE, SUA_IEI_PROTO_CLASS, SUA_IEI_SRC_REF, xua_gen_encode_and_send(), xua_gen_relre_and_send(), xua_msg_add_u32(), xua_msg_alloc(), and xua_msg_get_u32().
|
static |
|
static |
References osmo_scu_disconn_param::cause, conn_start_connect_timer(), conn_start_inact_timers(), conn_stop_connect_timer(), data, osmo_scu_prim::disconnect, sccp_connection::fi, xua_msg::hdr, xua_common_hdr::msg_class, xua_msg::mtp, osmo_mtp_transfer_param::opc, OSMO_SCU_PRIM_N_CONNECT, OSMO_SCU_PRIM_N_DISCONNECT, sccp_connection::release_cause, sccp_connection::remote_pc, sccp_connection::remote_ref, S_ACTIVE, S_IDLE, S_WAIT_CONN_CONF, SCOC_E_CONN_TMR_EXP, SCOC_E_RCOC_CC_IND, SCOC_E_RCOC_CREF_IND, SCOC_E_RCOC_OTHER_NPDU, SCOC_E_RCOC_RLSD_IND, SCOC_E_RCOC_ROUT_FAIL_IND, SCOC_E_SCU_N_DISC_REQ, scu_gen_encode_and_send(), SUA_CO_CORE, SUA_CO_RELCO, SUA_IEI_SRC_REF, osmo_scu_prim::u, xua_gen_encode_and_send(), xua_msg_get_u32(), and xua_opt_data_send_cache().
|
static |
References conn_start_int_timer(), conn_start_rep_rel_timer(), conn_stop_release_timers(), sccp_connection::fi, S_IDLE, SCOC_E_RCOC_OTHER_NPDU, SCOC_E_RCOC_REL_COMPL_IND, SCOC_E_RCOC_RLSD_IND, SCOC_E_RCOC_ROUT_FAIL_IND, SCOC_E_T_INT_EXP, SCOC_E_T_REL_EXP, SCOC_E_T_REP_REL_EXP, and xua_gen_relre_and_send().
|
static |
References osmo_scu_connect_param::called_addr, sccp_connection::called_addr, osmo_scu_connect_param::calling_addr, sccp_connection::calling_addr, conn_start_connect_timer(), osmo_scu_prim::connect, data, sccp_connection::fi, sccp_connection::importance, xua_msg::mtp, osmo_mtp_transfer_param::opc, OSMO_SCCP_ADDR_T_PC, OSMO_SCU_PRIM_N_CONNECT, osmo_sccp_addr::pc, osmo_sccp_addr::presence, sccp_connection::remote_pc, sccp_connection::remote_ref, S_CONN_PEND_IN, S_CONN_PEND_OUT, osmo_scu_connect_param::sccp_class, sccp_connection::sccp_class, SCOC_E_RCOC_CONN_IND, SCOC_E_RCOC_OTHER_NPDU, SCOC_E_RCOC_REL_COMPL_IND, SCOC_E_RCOC_RLSD_IND, SCOC_E_SCU_N_CONN_REQ, scu_gen_encode_and_send(), sua_addr_parse(), SUA_CO_CORE, SUA_CO_RELCO, SUA_IEI_DEST_ADDR, SUA_IEI_IMPORTANCE, SUA_IEI_PROTO_CLASS, SUA_IEI_SRC_ADDR, SUA_IEI_SRC_REF, osmo_scu_prim::u, xua_gen_encode_and_send(), and xua_msg_get_u32().
|
static |
References conn_destroy().
|
static |
References conn_start_rel_timer(), conn_stop_connect_timer(), data, sccp_connection::fi, xua_msg::mtp, osmo_mtp_transfer_param::opc, sccp_connection::release_cause, sccp_connection::remote_pc, sccp_connection::remote_ref, S_DISCONN_PEND, S_IDLE, SCOC_E_CONN_TMR_EXP, SCOC_E_RCOC_CC_IND, SCOC_E_RCOC_CREF_IND, SCOC_E_RCOC_OTHER_NPDU, SCOC_E_RCOC_RLSD_IND, SCOC_E_RCOC_ROUT_FAIL_IND, SUA_CO_RELCO, SUA_IEI_SRC_REF, xua_gen_encode_and_send(), xua_gen_relre_and_send(), and xua_msg_get_u32().
|
static |
References osmo_scu_connect_param::called_addr, sccp_connection::called_addr, osmo_scu_connect_param::calling_addr, sccp_connection::calling_addr, osmo_scu_disconn_param::cause, osmo_scu_connect_param::conn_id, osmo_scu_data_param::conn_id, osmo_scu_disconn_param::conn_id, sccp_connection::conn_id, osmo_scu_prim::connect, xua_msg_part::dat, osmo_scu_prim::data, osmo_scu_prim::disconnect, sccp_connection::fi, osmo_scu_connect_param::importance, osmo_scu_data_param::importance, osmo_scu_disconn_param::importance, sccp_connection::importance, xua_msg_part::len, osmo_scu_prim::oph, osmo_scu_disconn_param::originator, OSMO_SCCP_ORIG_UNDEFINED, OSMO_SCU_PRIM_N_CONNECT, OSMO_SCU_PRIM_N_DATA, OSMO_SCU_PRIM_N_DISCONNECT, osmo_scu_disconn_param::responding_addr, osmo_scu_connect_param::sccp_class, sccp_connection::sccp_class, sccp_user_prim_up(), scu_prim_alloc(), sua_addr_parse(), SUA_IEI_CAUSE, SUA_IEI_DATA, SUA_IEI_IMPORTANCE, SUA_IEI_PROTO_CLASS, SUA_IEI_SRC_ADDR, osmo_scu_prim::u, sccp_connection::user, xua_msg_find_tag(), and xua_msg_get_u32().
Referenced by scoc_fsm_active(), scoc_fsm_conn_pend_out(), and scoc_fsm_idle().
|
static |
References SCU_MSGB_SIZE.
Referenced by scu_prim_alloc().
|
static |
References osmo_scu_prim::oph, SCCP_SAP_USER, and scu_msgb_alloc().
Referenced by scu_gen_encode_and_send().
|
static |
References osmo_scu_connect_param::conn_id, osmo_scu_data_param::conn_id, osmo_scu_disconn_param::conn_id, osmo_scu_reset_param::conn_id, osmo_scu_prim::connect, osmo_scu_prim::data, osmo_scu_prim::disconnect, osmo_scu_prim::oph, OSMO_SCU_PRIM_N_CONNECT, OSMO_SCU_PRIM_N_DATA, OSMO_SCU_PRIM_N_DISCONNECT, OSMO_SCU_PRIM_N_RESET, osmo_scu_prim::reset, and osmo_scu_prim::u.
Referenced by osmo_sccp_user_sap_down_nofree().
|
static |
References osmo_mtp_transfer_param::dpc, gen_coerr(), xua_msg::mtp, osmo_mtp_transfer_param::opc, sccp_scrc_rx_scoc_conn_msg(), osmo_mtp_transfer_param::sio, SUA_IEI_ROUTE_CTX, SUA_IEI_SRC_REF, xua_msg_free(), and xua_msg_get_u32().
Referenced by sccp_scoc_rx_inval_opc(), sccp_scoc_rx_inval_src_ref(), and sccp_scoc_rx_unass_local_ref().
|
static |
References data, sccp_connection::fi, and SCOC_E_T_IAS_EXP.
Referenced by conn_create_id().
|
static |
|
static |
References sccp_connection::conn_id, osmo_mtp_transfer_param::dpc, sccp_connection::fi, gen_rlsd(), sccp_connection::inst, xua_msg::mtp, osmo_mtp_transfer_param::opc, sccp_connection::remote_pc, sccp_connection::remote_ref, osmo_sccp_instance::route_ctx, sccp_scrc_rx_scoc_conn_msg(), SCOC_E_RCOC_RLSD_IND, osmo_mtp_transfer_param::sio, SUA_IEI_DEST_REF, SUA_IEI_ROUTE_CTX, SUA_IEI_SRC_REF, xua_msg_free(), and xua_msg_get_u32().
Referenced by sccp_scoc_rx_inval_src_ref().
|
static |
References sccp_connection::called_addr, sccp_connection::calling_addr, osmo_ss7_instance::cfg, sccp_connection::conn_id, sccp_connection::fi, sccp_connection::incoming, sccp_connection::inst, OSMO_SS7_PC_INVALID, osmo_ss7_pc_is_valid(), osmo_ss7_pointcode_print(), osmo_sccp_user::pc, osmo_ss7_instance::primary_pc, sccp_connection::remote_pc, sccp_connection::remote_ref, osmo_sccp_instance::ss7, osmo_sccp_addr::ssn, osmo_sccp_user::ssn, and sccp_connection::user.
Referenced by sccp_scoc_show_connections().
|
static |
References osmo_scu_prim::oph, and osmo_scu_prim_name().
Referenced by xua_opt_data_cache_keep(), and xua_opt_data_length_lim().
|
static |
References osmo_mtp_transfer_param::dpc, sccp_connection::inst, msg_type, xua_msg::mtp, sccp_connection::remote_pc, sccp_scrc_rx_scoc_conn_msg(), xua_gen_msg_co(), and xua_msg_free().
Referenced by scoc_fsm_active(), scoc_fsm_conn_pend_in(), scoc_fsm_conn_pend_out(), scoc_fsm_idle(), and scoc_fsm_wait_conn_conf().
|
static |
References sccp_connection::called_addr, sccp_connection::calling_addr, osmo_scu_disconn_param::cause, sccp_connection::conn_id, osmo_scu_prim::disconnect, xua_msg::hdr, sccp_connection::inst, msg_type, osmo_scu_prim::oph, osmo_sccp_addr::presence, sccp_connection::remote_ref, osmo_sccp_instance::route_ctx, sccp_connection::sccp_class, SUA_CAUSE_T_REFUSAL, SUA_CAUSE_T_RELEASE, SUA_CO_COAK, SUA_CO_CODT, SUA_CO_COIT, SUA_CO_CORE, SUA_CO_COREF, SUA_CO_RELCO, SUA_CO_RELRE, SUA_IEI_CAUSE, SUA_IEI_DATA, SUA_IEI_DEST_ADDR, SUA_IEI_DEST_REF, SUA_IEI_PROTO_CLASS, SUA_IEI_ROUTE_CTX, SUA_IEI_SEQ_CTRL, SUA_IEI_SRC_ADDR, SUA_IEI_SRC_REF, SUA_MSGC_CO, osmo_scu_prim::u, XUA_HDR, xua_msg_add_data(), xua_msg_add_sccp_addr(), xua_msg_add_u32(), xua_msg_alloc(), xua_msg_free(), and xua_opt_data_length_lim().
Referenced by xua_gen_encode_and_send().
|
static |
References sccp_connection::conn_id, xua_msg::hdr, sccp_connection::inst, osmo_scu_prim::oph, sccp_connection::remote_ref, osmo_sccp_instance::route_ctx, SUA_CAUSE_T_RELEASE, SUA_CO_RELRE, SUA_IEI_CAUSE, SUA_IEI_DATA, SUA_IEI_DEST_REF, SUA_IEI_ROUTE_CTX, SUA_IEI_SRC_REF, SUA_MSGC_CO, XUA_HDR, xua_msg_add_data(), xua_msg_add_u32(), and xua_msg_alloc().
Referenced by xua_gen_relre_and_send().
|
static |
|
static |
|
static |
References sccp_connection::conn_id, sccp_connection::inst, osmo_sccp_instance::max_optional_data, msg_type, osmo_scu_prim::oph, osmo_sccp_tx_data(), SUA_CO_COAK, SUA_CO_CORE, SUA_CO_COREF, SUA_CO_RELRE, sccp_connection::user, xua_drop_data_check_drop(), and xua_opt_data_cache_keep().
Referenced by xua_gen_msg_co().
|
static |
|
static |
Referenced by get_cref_cause_for_ret().
const struct osmo_tdef osmo_sccp_timer_defaults[OSMO_SCCP_TIMERS_LEN] |
Referenced by gen_sccp_timer_cmd_strs(), and osmo_sccp_instance_create().
const struct value_string osmo_sccp_timer_names[] |
Referenced by DEFUN_ATTR(), gen_sccp_timer_cmd_strs(), osmo_sccp_timer_name(), and write_sccp_timers().
struct osmo_fsm sccp_scoc_fsm |
Referenced by conn_create_id(), and osmo_ss7_init().
|
static |
|
static |
|
static |
Referenced by osmo_sccp_user_sap_down_nofree().
|
static |
Referenced by sccp_scoc_rx_from_scrc().