libosmo-sigtran 2.0.0.50-b59d
Osmocom SIGTRAN library
|
#include <stdbool.h>
#include <osmocom/core/logging.h>
#include <osmocom/core/msgb.h>
#include <osmocom/sccp/sccp_types.h>
#include <osmocom/sigtran/osmo_ss7.h>
#include <osmocom/sigtran/sccp_sap.h>
#include <osmocom/sigtran/sccp_helpers.h>
#include <osmocom/sigtran/protocol/sua.h>
#include <osmocom/sigtran/protocol/mtp.h>
#include "sccp_internal.h"
#include "ss7_as.h"
#include "ss7_instance.h"
#include "ss7_linkset.h"
#include "ss7_route.h"
#include "xua_internal.h"
Functions | |
static bool | sua_is_connectionless (struct xua_msg *xua) |
static bool | sua_is_cr (struct xua_msg *xua) |
static bool | dpc_accessible (struct osmo_sccp_instance *inst, uint32_t pc) |
static bool | sccp_available (struct osmo_sccp_instance *inst, const struct osmo_sccp_addr *addr) |
static int | sua2sccp_tx_m3ua (struct osmo_sccp_instance *inst, struct xua_msg *sua) |
static int | gen_mtp_transfer_req_xua (struct osmo_sccp_instance *inst, struct xua_msg *xua, const struct osmo_sccp_addr *called) |
static int | translate (struct osmo_sccp_instance *inst, const struct osmo_sccp_addr *called, struct osmo_sccp_addr *translated) |
static int | scrc_local_out_common (struct osmo_sccp_instance *inst, struct xua_msg *xua, const struct osmo_sccp_addr *called) |
static int | scrc_node_12 (struct osmo_sccp_instance *inst, struct xua_msg *xua, const struct osmo_sccp_addr *called) |
static int | scrc_node_2 (struct osmo_sccp_instance *inst, struct xua_msg *xua, const struct osmo_sccp_addr *called) |
static int | scrc_node_7 (struct osmo_sccp_instance *inst, struct xua_msg *xua, const struct osmo_sccp_addr *called) |
static int | scrc_node_4 (struct osmo_sccp_instance *inst, struct xua_msg *xua, uint32_t return_cause) |
static int | scrc_translate_node_9 (struct osmo_sccp_instance *inst, struct xua_msg *xua, const struct osmo_sccp_addr *called) |
static int | scrc_node_6 (struct osmo_sccp_instance *inst, struct xua_msg *xua, const struct osmo_sccp_addr *called) |
int | sccp_scrc_rx_scoc_conn_msg (struct osmo_sccp_instance *inst, struct xua_msg *xua) |
int | sccp_scrc_rx_sclc_msg (struct osmo_sccp_instance *inst, struct xua_msg *xua) |
static void | ensure_opc_in_calling_ssn (struct osmo_sccp_instance *inst, struct xua_msg *xua) |
int | scrc_rx_mtp_xfer_ind_xua (struct osmo_sccp_instance *inst, struct xua_msg *xua) |
|
static |
Referenced by scrc_node_2().
|
static |
References xua_msg::mtp, osmo_mtp_transfer_param::opc, OSMO_SCCP_ADDR_T_PC, OSMO_SCCP_ADDR_T_SSN, OSMO_SCCP_RI_SSN_PC, osmo_sccp_addr::pc, osmo_sccp_addr::presence, osmo_sccp_addr::ri, sua_addr_parse(), SUA_IEI_SRC_ADDR, xua_msg_add_sccp_addr(), and xua_msg_free_tag().
Referenced by scrc_rx_mtp_xfer_ind_xua().
|
static |
References osmo_ss7_route::as, osmo_ss7_as::cfg, osmo_ss7_linkset::cfg, osmo_ss7_route::dest, osmo_mtp_transfer_param::dpc, osmo_ss7_as::inst, osmo_ss7_route::linkset, xua_msg::mtp, osmo_ss7_linkset::name, osmo_sccp_addr_dump(), OSMO_SCCP_ADDR_T_PC, OSMO_SS7_ASP_PROT_IPA, OSMO_SS7_ASP_PROT_M3UA, OSMO_SS7_ASP_PROT_SUA, osmo_ss7_route_lookup(), osmo_sccp_addr::pc, osmo_sccp_addr::presence, osmo_ss7_as::proto, osmo_sccp_instance::ss7, sua2sccp_tx_m3ua(), and sua_tx_xua_as().
Referenced by scrc_node_12().
|
static |
Referenced by scrc_node_2().
int sccp_scrc_rx_sclc_msg | ( | struct osmo_sccp_instance * | inst, |
struct xua_msg * | xua | ||
) |
References xua_msg::hdr, xua_common_hdr::msg_type, OSMO_SCCP_RI_GT, osmo_sccp_addr::ri, scrc_local_out_common(), scrc_node_12(), scrc_node_7(), sua_addr_parse(), SUA_CL_CLDR, SUA_IEI_DEST_ADDR, xua_dialect_sua, and xua_msg_dump().
Referenced by sccp_sclc_rx_scrc_rout_fail(), and xua_gen_encode_and_send().
int sccp_scrc_rx_scoc_conn_msg | ( | struct osmo_sccp_instance * | inst, |
struct xua_msg * | xua | ||
) |
References xua_msg::hdr, xua_common_hdr::msg_type, scrc_local_out_common(), scrc_node_2(), sua_addr_parse(), SUA_CO_CORE, SUA_IEI_DEST_ADDR, xua_dialect_sua, and xua_msg_dump().
Referenced by sccp_scoc_rx_scrc_rout_fail(), tx_coerr_from_xua(), tx_relco_from_xua(), tx_rlsd_from_xua_twoway(), xua_gen_encode_and_send(), and xua_gen_relre_and_send().
|
static |
References OSMO_SCCP_ADDR_T_GT, OSMO_SCCP_ADDR_T_PC, OSMO_SCCP_ADDR_T_SSN, osmo_ss7_pc_is_local(), osmo_sccp_addr::pc, osmo_sccp_addr::presence, scrc_node_12(), scrc_node_4(), scrc_node_6(), scrc_translate_node_9(), and osmo_sccp_instance::ss7.
Referenced by sccp_scrc_rx_sclc_msg(), and sccp_scrc_rx_scoc_conn_msg().
|
static |
References gen_mtp_transfer_req_xua(), and osmo_ss7_as::inst.
Referenced by sccp_scrc_rx_sclc_msg(), scrc_local_out_common(), scrc_node_2(), and scrc_node_7().
|
static |
References dpc_accessible(), osmo_ss7_as::inst, osmo_sccp_addr::pc, sccp_available(), sccp_scoc_rx_scrc_rout_fail(), and scrc_node_12().
Referenced by sccp_scrc_rx_scoc_conn_msg().
|
static |
References osmo_ss7_as::inst, sccp_sclc_rx_scrc_rout_fail(), sccp_scoc_rx_scrc_rout_fail(), and sua_is_connectionless().
Referenced by scrc_local_out_common(), scrc_node_6(), scrc_rx_mtp_xfer_ind_xua(), and scrc_translate_node_9().
|
static |
References osmo_sccp_user::inst, osmo_ss7_pointcode_print(), osmo_sccp_addr::pc, sccp_sclc_rx_from_scrc(), sccp_sclc_rx_scrc_rout_fail(), sccp_scoc_rx_from_scrc(), sccp_scoc_rx_scrc_rout_fail(), sccp_user_find(), scrc_node_4(), osmo_sccp_instance::ss7, osmo_sccp_addr::ssn, and sua_is_connectionless().
Referenced by scrc_local_out_common(), and scrc_rx_mtp_xfer_ind_xua().
|
static |
References osmo_ss7_as::inst, scrc_node_12(), and sua_is_connectionless().
Referenced by sccp_scrc_rx_sclc_msg(), and scrc_translate_node_9().
int scrc_rx_mtp_xfer_ind_xua | ( | struct osmo_sccp_instance * | inst, |
struct xua_msg * | xua | ||
) |
References xua_msg_part::dat, ensure_opc_in_calling_ssn(), OSMO_SCCP_RI_GT, osmo_sccp_addr::ri, sccp_scoc_rx_from_scrc(), scrc_node_4(), scrc_node_6(), scrc_translate_node_9(), sua_addr_parse(), SUA_IEI_DEST_ADDR, SUA_IEI_PROTO_CLASS, SUA_IEI_S7_HOP_CTR, sua_is_connectionless(), sua_is_cr(), xua_dialect_sua, xua_msg_dump(), xua_msg_find_tag(), xua_msg_get_u32(), and xua_msg_part_get_u32().
Referenced by mtp_user_prim_cb(), sua_rx_cl(), and sua_rx_co().
|
static |
References OSMO_SCCP_RI_SSN_IP, OSMO_SCCP_RI_SSN_PC, osmo_ss7_pc_is_local(), osmo_sccp_addr::pc, osmo_sccp_addr::ri, sccp_sclc_rx_from_scrc(), sccp_sclc_rx_scrc_rout_fail(), sccp_scoc_rx_from_scrc(), scrc_node_4(), scrc_node_7(), osmo_sccp_instance::ss7, sua_is_connectionless(), and translate().
Referenced by scrc_local_out_common(), and scrc_rx_mtp_xfer_ind_xua().
|
static |
References osmo_ss7_instance::cfg, osmo_mtp_transfer_param::dpc, osmo_ss7_instance::id, xua_msg::mtp, MTP_SAP_USER, MTP_SI_SCCP, MTP_SIO, osmo_ss7_instance::network_indicator, osmo_mtp_transfer_param::opc, osmo_mtp_prim::oph, OSMO_MTP_PRIM_TRANSFER, osmo_ss7_pc_is_valid(), osmo_ss7_user_mtp_xfer_req(), osmo_sua_to_sccp(), osmo_ss7_instance::primary_pc, osmo_mtp_transfer_param::sio, osmo_mtp_transfer_param::sls, osmo_sccp_instance::ss7, osmo_mtp_prim::transfer, and osmo_mtp_prim::u.
Referenced by gen_mtp_transfer_req_xua().
|
static |
References xua_msg::hdr, xua_common_hdr::msg_class, and SUA_MSGC_CL.
Referenced by scrc_node_4(), scrc_node_6(), scrc_node_7(), scrc_rx_mtp_xfer_ind_xua(), and scrc_translate_node_9().
|
static |
References xua_msg::hdr, xua_common_hdr::msg_class, xua_common_hdr::msg_type, SUA_CO_CORE, and SUA_MSGC_CO.
Referenced by scrc_rx_mtp_xfer_ind_xua().
|
static |
Referenced by scrc_translate_node_9().