libosmo-sigtran 2.3.0.20-5f88
Osmocom SIGTRAN library
sua.c File Reference
#include <stdint.h>
#include <errno.h>
#include <unistd.h>
#include <string.h>
#include <osmocom/core/utils.h>
#include <osmocom/core/linuxlist.h>
#include <osmocom/core/write_queue.h>
#include <osmocom/core/logging.h>
#include <osmocom/core/timer.h>
#include <osmocom/core/socket.h>
#include <osmocom/core/fsm.h>
#include <osmocom/netif/stream.h>
#include <osmocom/sigtran/sccp_sap.h>
#include <osmocom/sigtran/protocol/mtp.h>
#include <osmocom/sigtran/protocol/sua.h>
#include <osmocom/sigtran/protocol/m3ua.h>
#include <osmocom/sigtran/osmo_ss7.h>
#include <osmocom/sccp/sccp_types.h>
#include "xua_as_fsm.h"
#include "xua_asp_fsm.h"
#include "xua_internal.h"
#include "sccp_internal.h"
#include "ss7_as.h"
#include "ss7_asp.h"
#include "ss7_internal.h"
#include "xua_msg.h"
#include "xua_lm_sap.h"

Macros

#define CONNECTION_TIMER   ( 1 * 60 * 100)
 
#define TX_INACT_TIMER   ( 7 * 60 * 100) /* RFC 3868 Ch. 8. */
 
#define RX_INACT_TIMER   (15 * 60 * 100) /* RFC 3868 Ch. 8. */
 
#define RELEASE_TIMER   ( 10 * 100)
 
#define RELEASE_REP_TIMER   ( 10 * 100)
 
#define INT_TIMER   ( 1 * 60 * 100)
 
#define GUARD_TIMER   (23 * 60 * 100)
 
#define RESET_TIMER   ( 10 * 100)
 
#define SCCP_MSG_SIZE   2048
 
#define SCCP_MSG_HEADROOM   512
 
#define IES(msgt, ies)    [msgt] = (ies)
 
#define SUA_MSG_PART_CLASS_INFO_STRING(mandatory)    XUA_MSG_PART_CLASS_UNBOUND(SUA_IEI_ROUTE_CTX, (mandatory))
 
#define SUA_MSG_PART_CLASS_ROUTE_CTX(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_ROUTE_CTX, (mandatory))
 
#define SUA_MSG_PART_CLASS_ROUTE_CTX1(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_ROUTE_CTX, (mandatory))
 
#define SUA_MSG_PART_CLASS_DIAG_INFO(mandatory)    XUA_MSG_PART_CLASS_UNBOUND(SUA_IEI_DIAG_INFO, (mandatory))
 
#define SUA_MSG_PART_CLASS_TRAF_MODE_TYP(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_TRAF_MODE_TYP, (mandatory))
 
#define SUA_MSG_PART_CLASS_ERR_CODE(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_ERR_CODE, (mandatory))
 
#define SUA_MSG_PART_CLASS_STATUS(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_STATUS, (mandatory))
 
#define SUA_MSG_PART_CLASS_ASP_ID(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_ASP_ID, (mandatory))
 
#define SUA_MSG_PART_CLASS_AFFECTED_PC(mandatory)    XUA_MSG_PART_CLASS_UNBOUND(SUA_IEI_AFFECTED_PC, (mandatory))
 
#define SUA_MSG_PART_CLASS_CORR_ID(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_CORR_ID, (mandatory))
 
#define SUA_MSG_PART_CLASS_REG_RESULT(mandatory)    XUA_MSG_PART_CLASS(SUA_IEI_REG_RESULT, (mandatory), true, 0, XUA_MSG_PART_CLASS_MAX_LEN)
 
#define SUA_MSG_PART_CLASS_DEREG_RESULT(mandatory)    XUA_MSG_PART_CLASS(SUA_IEI_DEREG_RESULT, (mandatory), true, 0, XUA_MSG_PART_CLASS_MAX_LEN)
 
#define SUA_MSG_PART_CLASS_HOP_CTR(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_S7_HOP_CTR, (mandatory))
 
#define SUA_MSG_PART_CLASS_SRC_ADDR(mandatory)    XUA_MSG_PART_CLASS_UNBOUND(SUA_IEI_SRC_ADDR, (mandatory))
 
#define SUA_MSG_PART_CLASS_DEST_ADDR(mandatory)    XUA_MSG_PART_CLASS_UNBOUND(SUA_IEI_DEST_ADDR, (mandatory))
 
#define SUA_MSG_PART_CLASS_SEQ_CTRL(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_SEQ_CTRL, (mandatory))
 
#define SUA_MSG_PART_CLASS_SEQ_NR(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_SEQ_NR, (mandatory))
 
#define SUA_MSG_PART_CLASS_RX_SEQ_NR(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_RX_SEQ_NR, (mandatory))
 
#define SUA_MSG_PART_CLASS_ASP_CAPA(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_ASP_CAPA, (mandatory))
 
#define SUA_MSG_PART_CLASS_CREDIT(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_CREDIT, (mandatory))
 
#define SUA_MSG_PART_CLASS_SRC_REF(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_SRC_REF, (mandatory))
 
#define SUA_MSG_PART_CLASS_DEST_REF(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_DEST_REF, (mandatory))
 
#define SUA_MSG_PART_CLASS_CAUSE(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_CAUSE, (mandatory))
 
#define SUA_MSG_PART_CLASS_NET_APPEARANCE(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_NET_APPEARANCE, (mandatory))
 
#define SUA_MSG_PART_CLASS_DATA(mandatory)    XUA_MSG_PART_CLASS_UNBOUND(SUA_IEI_DATA, (mandatory))
 
#define SUA_MSG_PART_CLASS_USER_CAUSE(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_USER_CAUSE, (mandatory))
 
#define SUA_MSG_PART_CLASS_ROUTING_KEY(mandatory)    XUA_MSG_PART_CLASS(SUA_IEI_ROUTING_KEY, (mandatory), true, 0, XUA_MSG_PART_CLASS_MAX_LEN)
 
#define SUA_MSG_PART_CLASS_DRN(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_DRN, (mandatory))
 
#define SUA_MSG_PART_CLASS_TID(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_TID, (mandatory))
 
#define SUA_MSG_PART_CLASS_SMI(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_SMI, (mandatory))
 
#define SUA_MSG_PART_CLASS_IMPORTANCE(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_IMPORTANCE, (mandatory))
 
#define SUA_MSG_PART_CLASS_MSG_PRIO(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_MSG_PRIO, (mandatory))
 
#define SUA_MSG_PART_CLASS_PROTO_CLASS(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_PROTO_CLASS, (mandatory))
 
#define SUA_MSG_PART_CLASS_SEGMENTATION(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_SEGMENTATION, (mandatory))
 
#define SUA_MSG_PART_CLASS_CONG_LEVEL(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_CONG_LEVEL, (mandatory))
 
#define SUA_MSG_PART_CLASS_SSN(mandatory)    XUA_MSG_PART_CLASS_U32(SUA_IEI_SSN, (mandatory))
 

Functions

struct msgb * sccp_msgb_alloc (const char *name)
 
static struct xua_msgsua_gen_error (uint32_t err_code)
 
static struct xua_msgsua_gen_error_msg (uint32_t err_code, struct msgb *msg)
 
struct xua_msgsua_gen_cldr (const struct xua_msg *xua_in, uint32_t route_ctx, uint32_t ret_cause)
 
static struct msgb * sua_to_msg (struct xua_msg *xua)
 
static int sua_tx_xua_asp (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
int sua_tx_xua_as (struct osmo_ss7_as *as, struct xua_msg *xua)
 Send a given xUA message via a given SUA Application Server. More...
 
int sua_parse_gt (struct osmo_sccp_gt *gt, const uint8_t *data, unsigned int datalen)
 Decode SUA Global Title according to RFC3868 Section 3.10.2.3. More...
 
int sua_addr_parse_part (struct osmo_sccp_addr *out, const struct xua_msg_part *param)
 parse SCCP address from given xUA message part More...
 
int sua_addr_parse (struct osmo_sccp_addr *out, struct xua_msg *xua, uint16_t iei)
 parse SCCP address from given xUA message IE More...
 
static int sua_rx_cl (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
static int sua_rx_co (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
static int sua_rx_mgmt_err (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
static int sua_rx_mgmt_ntfy (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
static int sua_rx_mgmt (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
static int sua_rx_asp (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
static int sua_rx_snm (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
int sua_rx_msg (struct osmo_ss7_asp *asp, struct msgb *msg)
 process SUA message received from socket More...
 
static struct xua_msgsua_encode_duna (const uint32_t *rctx, unsigned int num_rctx, const uint32_t *aff_pc, unsigned int num_aff_pc, const uint32_t *ssn, const uint32_t *smi, const char *info_string)
 
static struct xua_msgsua_encode_dava (const uint32_t *rctx, unsigned int num_rctx, const uint32_t *aff_pc, unsigned int num_aff_pc, const uint32_t *ssn, const uint32_t *smi, const char *info_string)
 
static struct xua_msgsua_encode_daud (const uint32_t *rctx, unsigned int num_rctx, const uint32_t *aff_pc, unsigned int num_aff_pc, const uint32_t *ssn, const uint32_t *smi, const char *info_string)
 
struct xua_msgsua_encode_dupu (const uint32_t *rctx, unsigned int num_rctx, uint32_t dpc, uint16_t user, uint16_t cause, const char *info_string)
 
void sua_tx_snm_available (struct osmo_ss7_asp *asp, const uint32_t *rctx, unsigned int num_rctx, const uint32_t *aff_pc, unsigned int num_aff_pc, const uint32_t *aff_ssn, const uint32_t *smi, const char *info_string, bool available)
 Transmit SSNM DUNA/DAVA message indicating [un]availability of certain point code[s]. More...
 
void sua_tx_snm_congestion (struct osmo_ss7_asp *asp, const uint32_t *rctx, unsigned int num_rctx, const uint32_t *aff_pc, unsigned int num_aff_pc, const uint32_t *ssn, const uint8_t cong_level, const char *info_string)
 Transmit SSNM SCON message indicating congestion. More...
 
void sua_tx_snm_daud (struct osmo_ss7_asp *asp, const uint32_t *rctx, unsigned int num_rctx, const uint32_t *aff_pc, unsigned int num_aff_pc, const uint32_t *aff_ssn, const uint32_t *smi, const char *info_string)
 Transmit SSNM DAUD message requesting [un]availability status of certain point code[s]. More...
 
void sua_tx_dupu (struct osmo_ss7_asp *asp, const uint32_t *rctx, unsigned int num_rctx, uint32_t dpc, uint16_t user, uint16_t cause, const char *info_str)
 Transmit SSNM DUPU message indicating user unavailability. More...
 
static int sua_rx_snm_asp (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
static int sua_rx_snm_sg (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
static int sua_rx_snm_ipsp (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
const char * osmo_sua_sccp_cause_name (uint32_t sccp_cause, char *out_buf, size_t out_buf_len)
 

Variables

static const struct value_string sua_iei_names []
 
static const struct xua_msg_part_class duna_ies []
 
static const struct xua_msg_part_class dava_ies []
 
static const struct xua_msg_part_class daud_ies []
 
static const struct xua_msg_part_class scon_ies []
 
static const struct xua_msg_part_class dupu_ies []
 
static const struct xua_msg_part_class drst_ies []
 
const struct xua_msg_class sua_msg_class_snm
 
static const struct xua_msg_part_class sua_asp_act_ies []
 
const struct xua_msg_class sua_msg_class_asptm
 
static const struct xua_msg_part_class cldt_ies []
 
static const struct xua_msg_part_class cldr_ies []
 
static const struct value_string sua_cl_msgt_names []
 
static const struct xua_msg_class sua_msg_class_cl
 
static const struct xua_msg_part_class codt_ies []
 
static const struct xua_msg_part_class coda_ies []
 
static const struct xua_msg_part_class core_ies []
 
static const struct xua_msg_part_class coak_ies []
 
static const struct xua_msg_part_class coref_ies []
 
static const struct xua_msg_part_class relre_ies []
 
static const struct xua_msg_part_class relco_ies []
 
static const struct xua_msg_part_class resre_ies []
 
static const struct xua_msg_part_class resco_ies []
 
static const struct xua_msg_part_class coerr_ies []
 
static const struct xua_msg_part_class coit_ies []
 
static const struct value_string sua_co_msgt_names []
 
static const struct xua_msg_class sua_msg_class_co
 
static const struct xua_msg_part_class sua_err_req_ies []
 
static const struct xua_msg_class sua_msg_class_mgmt
 
static const struct xua_msg_part_class reg_req_ies []
 
static const struct xua_msg_part_class reg_rsp_ies []
 
static const struct xua_msg_part_class dereg_req_ies []
 
static const struct xua_msg_part_class dereg_rsp_ies []
 
const struct xua_msg_class sua_msg_class_rkm
 
const struct xua_dialect xua_dialect_sua
 
static const struct xua_msg_event_map sua_aspxm_map []
 
const struct value_string sua_cause_type_names []
 

Macro Definition Documentation

◆ CONNECTION_TIMER

#define CONNECTION_TIMER   ( 1 * 60 * 100)

◆ GUARD_TIMER

#define GUARD_TIMER   (23 * 60 * 100)

◆ IES

#define IES (   msgt,
  ies 
)     [msgt] = (ies)

◆ INT_TIMER

#define INT_TIMER   ( 1 * 60 * 100)

◆ RELEASE_REP_TIMER

#define RELEASE_REP_TIMER   ( 10 * 100)

◆ RELEASE_TIMER

#define RELEASE_TIMER   ( 10 * 100)

◆ RESET_TIMER

#define RESET_TIMER   ( 10 * 100)

◆ RX_INACT_TIMER

#define RX_INACT_TIMER   (15 * 60 * 100) /* RFC 3868 Ch. 8. */

◆ SCCP_MSG_HEADROOM

#define SCCP_MSG_HEADROOM   512

◆ SCCP_MSG_SIZE

#define SCCP_MSG_SIZE   2048

◆ SUA_MSG_PART_CLASS_AFFECTED_PC

#define SUA_MSG_PART_CLASS_AFFECTED_PC (   mandatory)     XUA_MSG_PART_CLASS_UNBOUND(SUA_IEI_AFFECTED_PC, (mandatory))

◆ SUA_MSG_PART_CLASS_ASP_CAPA

#define SUA_MSG_PART_CLASS_ASP_CAPA (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_ASP_CAPA, (mandatory))

◆ SUA_MSG_PART_CLASS_ASP_ID

#define SUA_MSG_PART_CLASS_ASP_ID (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_ASP_ID, (mandatory))

◆ SUA_MSG_PART_CLASS_CAUSE

#define SUA_MSG_PART_CLASS_CAUSE (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_CAUSE, (mandatory))

◆ SUA_MSG_PART_CLASS_CONG_LEVEL

#define SUA_MSG_PART_CLASS_CONG_LEVEL (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_CONG_LEVEL, (mandatory))

◆ SUA_MSG_PART_CLASS_CORR_ID

#define SUA_MSG_PART_CLASS_CORR_ID (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_CORR_ID, (mandatory))

◆ SUA_MSG_PART_CLASS_CREDIT

#define SUA_MSG_PART_CLASS_CREDIT (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_CREDIT, (mandatory))

◆ SUA_MSG_PART_CLASS_DATA

#define SUA_MSG_PART_CLASS_DATA (   mandatory)     XUA_MSG_PART_CLASS_UNBOUND(SUA_IEI_DATA, (mandatory))

◆ SUA_MSG_PART_CLASS_DEREG_RESULT

#define SUA_MSG_PART_CLASS_DEREG_RESULT (   mandatory)     XUA_MSG_PART_CLASS(SUA_IEI_DEREG_RESULT, (mandatory), true, 0, XUA_MSG_PART_CLASS_MAX_LEN)

◆ SUA_MSG_PART_CLASS_DEST_ADDR

#define SUA_MSG_PART_CLASS_DEST_ADDR (   mandatory)     XUA_MSG_PART_CLASS_UNBOUND(SUA_IEI_DEST_ADDR, (mandatory))

◆ SUA_MSG_PART_CLASS_DEST_REF

#define SUA_MSG_PART_CLASS_DEST_REF (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_DEST_REF, (mandatory))

◆ SUA_MSG_PART_CLASS_DIAG_INFO

#define SUA_MSG_PART_CLASS_DIAG_INFO (   mandatory)     XUA_MSG_PART_CLASS_UNBOUND(SUA_IEI_DIAG_INFO, (mandatory))

◆ SUA_MSG_PART_CLASS_DRN

#define SUA_MSG_PART_CLASS_DRN (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_DRN, (mandatory))

◆ SUA_MSG_PART_CLASS_ERR_CODE

#define SUA_MSG_PART_CLASS_ERR_CODE (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_ERR_CODE, (mandatory))

◆ SUA_MSG_PART_CLASS_HOP_CTR

#define SUA_MSG_PART_CLASS_HOP_CTR (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_S7_HOP_CTR, (mandatory))

◆ SUA_MSG_PART_CLASS_IMPORTANCE

#define SUA_MSG_PART_CLASS_IMPORTANCE (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_IMPORTANCE, (mandatory))

◆ SUA_MSG_PART_CLASS_INFO_STRING

#define SUA_MSG_PART_CLASS_INFO_STRING (   mandatory)     XUA_MSG_PART_CLASS_UNBOUND(SUA_IEI_ROUTE_CTX, (mandatory))

◆ SUA_MSG_PART_CLASS_MSG_PRIO

#define SUA_MSG_PART_CLASS_MSG_PRIO (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_MSG_PRIO, (mandatory))

◆ SUA_MSG_PART_CLASS_NET_APPEARANCE

#define SUA_MSG_PART_CLASS_NET_APPEARANCE (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_NET_APPEARANCE, (mandatory))

◆ SUA_MSG_PART_CLASS_PROTO_CLASS

#define SUA_MSG_PART_CLASS_PROTO_CLASS (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_PROTO_CLASS, (mandatory))

◆ SUA_MSG_PART_CLASS_REG_RESULT

#define SUA_MSG_PART_CLASS_REG_RESULT (   mandatory)     XUA_MSG_PART_CLASS(SUA_IEI_REG_RESULT, (mandatory), true, 0, XUA_MSG_PART_CLASS_MAX_LEN)

◆ SUA_MSG_PART_CLASS_ROUTE_CTX

#define SUA_MSG_PART_CLASS_ROUTE_CTX (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_ROUTE_CTX, (mandatory))

◆ SUA_MSG_PART_CLASS_ROUTE_CTX1

#define SUA_MSG_PART_CLASS_ROUTE_CTX1 (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_ROUTE_CTX, (mandatory))

◆ SUA_MSG_PART_CLASS_ROUTING_KEY

#define SUA_MSG_PART_CLASS_ROUTING_KEY (   mandatory)     XUA_MSG_PART_CLASS(SUA_IEI_ROUTING_KEY, (mandatory), true, 0, XUA_MSG_PART_CLASS_MAX_LEN)

◆ SUA_MSG_PART_CLASS_RX_SEQ_NR

#define SUA_MSG_PART_CLASS_RX_SEQ_NR (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_RX_SEQ_NR, (mandatory))

◆ SUA_MSG_PART_CLASS_SEGMENTATION

#define SUA_MSG_PART_CLASS_SEGMENTATION (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_SEGMENTATION, (mandatory))

◆ SUA_MSG_PART_CLASS_SEQ_CTRL

#define SUA_MSG_PART_CLASS_SEQ_CTRL (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_SEQ_CTRL, (mandatory))

◆ SUA_MSG_PART_CLASS_SEQ_NR

#define SUA_MSG_PART_CLASS_SEQ_NR (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_SEQ_NR, (mandatory))

◆ SUA_MSG_PART_CLASS_SMI

#define SUA_MSG_PART_CLASS_SMI (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_SMI, (mandatory))

◆ SUA_MSG_PART_CLASS_SRC_ADDR

#define SUA_MSG_PART_CLASS_SRC_ADDR (   mandatory)     XUA_MSG_PART_CLASS_UNBOUND(SUA_IEI_SRC_ADDR, (mandatory))

◆ SUA_MSG_PART_CLASS_SRC_REF

#define SUA_MSG_PART_CLASS_SRC_REF (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_SRC_REF, (mandatory))

◆ SUA_MSG_PART_CLASS_SSN

#define SUA_MSG_PART_CLASS_SSN (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_SSN, (mandatory))

◆ SUA_MSG_PART_CLASS_STATUS

#define SUA_MSG_PART_CLASS_STATUS (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_STATUS, (mandatory))

◆ SUA_MSG_PART_CLASS_TID

#define SUA_MSG_PART_CLASS_TID (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_TID, (mandatory))

◆ SUA_MSG_PART_CLASS_TRAF_MODE_TYP

#define SUA_MSG_PART_CLASS_TRAF_MODE_TYP (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_TRAF_MODE_TYP, (mandatory))

◆ SUA_MSG_PART_CLASS_USER_CAUSE

#define SUA_MSG_PART_CLASS_USER_CAUSE (   mandatory)     XUA_MSG_PART_CLASS_U32(SUA_IEI_USER_CAUSE, (mandatory))

◆ TX_INACT_TIMER

#define TX_INACT_TIMER   ( 7 * 60 * 100) /* RFC 3868 Ch. 8. */

Function Documentation

◆ osmo_sua_sccp_cause_name()

const char * osmo_sua_sccp_cause_name ( uint32_t  sccp_cause,
char *  out_buf,
size_t  out_buf_len 
)

◆ sccp_msgb_alloc()

struct msgb * sccp_msgb_alloc ( const char *  name)

◆ sua_addr_parse()

int sua_addr_parse ( struct osmo_sccp_addr out,
struct xua_msg xua,
uint16_t  iei 
)

parse SCCP address from given xUA message IE

Parameters
[out]outcaller-allocated decoded SCCP address struct
[in]xuaxUA message
[in]ieiInformation Element Identifier inside xua
Returns
0 on success; negative on error

References sua_addr_parse_part(), and xua_msg_find_tag().

Referenced by asp_loadshare_tcap_sccp(), ensure_opc_in_calling_ssn(), gen_mtp_transfer_req_xua(), patch_sccp_with_pc(), sccp_conn_scu_gen_encode_and_send(), sccp_find_user(), sccp_scrc_rx_sclc_msg(), sccp_scrc_rx_scoc_conn_msg(), sclc_rx_cldr(), sclc_rx_cldt(), scoc_fsm_idle(), scrc_node_2(), scrc_rx_mtp_xfer_ind_xua(), sua_gen_cldr(), and tcap_as_rx_sccp_asp().

◆ sua_addr_parse_part()

◆ sua_encode_daud()

static struct xua_msg * sua_encode_daud ( const uint32_t *  rctx,
unsigned int  num_rctx,
const uint32_t *  aff_pc,
unsigned int  num_aff_pc,
const uint32_t *  ssn,
const uint32_t *  smi,
const char *  info_string 
)
static

◆ sua_encode_dava()

static struct xua_msg * sua_encode_dava ( const uint32_t *  rctx,
unsigned int  num_rctx,
const uint32_t *  aff_pc,
unsigned int  num_aff_pc,
const uint32_t *  ssn,
const uint32_t *  smi,
const char *  info_string 
)
static

◆ sua_encode_duna()

static struct xua_msg * sua_encode_duna ( const uint32_t *  rctx,
unsigned int  num_rctx,
const uint32_t *  aff_pc,
unsigned int  num_aff_pc,
const uint32_t *  ssn,
const uint32_t *  smi,
const char *  info_string 
)
static

◆ sua_encode_dupu()

struct xua_msg * sua_encode_dupu ( const uint32_t *  rctx,
unsigned int  num_rctx,
uint32_t  dpc,
uint16_t  user,
uint16_t  cause,
const char *  info_string 
)

◆ sua_gen_cldr()

◆ sua_gen_error()

static struct xua_msg * sua_gen_error ( uint32_t  err_code)
static

◆ sua_gen_error_msg()

static struct xua_msg * sua_gen_error_msg ( uint32_t  err_code,
struct msgb *  msg 
)
static

◆ sua_parse_gt()

int sua_parse_gt ( struct osmo_sccp_gt gt,
const uint8_t *  data,
unsigned int  datalen 
)

Decode SUA Global Title according to RFC3868 Section 3.10.2.3.

Parameters
[out]gtUser-allocated structure for decoded output
[in]databinary-encoded data
[in]datalenlength of data in octets
Returns
0 on success; negative on error

References data, osmo_sccp_gt::digits, osmo_sccp_gt::gti, osmo_sccp_gt::nai, osmo_sccp_gt::npi, and osmo_sccp_gt::tt.

Referenced by sua_addr_parse_part().

◆ sua_rx_asp()

static int sua_rx_asp ( struct osmo_ss7_asp asp,
struct xua_msg xua 
)
static

◆ sua_rx_cl()

◆ sua_rx_co()

◆ sua_rx_mgmt()

static int sua_rx_mgmt ( struct osmo_ss7_asp asp,
struct xua_msg xua 
)
static

◆ sua_rx_mgmt_err()

static int sua_rx_mgmt_err ( struct osmo_ss7_asp asp,
struct xua_msg xua 
)
static

◆ sua_rx_mgmt_ntfy()

◆ sua_rx_msg()

◆ sua_rx_snm()

◆ sua_rx_snm_asp()

◆ sua_rx_snm_ipsp()

◆ sua_rx_snm_sg()

◆ sua_to_msg()

static struct msgb * sua_to_msg ( struct xua_msg xua)
static

◆ sua_tx_dupu()

void sua_tx_dupu ( struct osmo_ss7_asp asp,
const uint32_t *  rctx,
unsigned int  num_rctx,
uint32_t  dpc,
uint16_t  user,
uint16_t  cause,
const char *  info_str 
)

Transmit SSNM DUPU message indicating user unavailability.

Parameters
[in]aspASP through which to transmit message. Must be ACTIVE.
[in]rctxarray of Routing Contexts in network byte order.
[in]num_rctxnumber of rctx
[in]dpcaffected point code
[in]userthe user (SI) that is unavailable
[in]causethe cause of the user unavailability
[in]info_stringoptional information string (can be NULL).

References dpc, sua_encode_dupu(), and sua_tx_xua_asp().

Referenced by xua_tx_upu().

◆ sua_tx_snm_available()

void sua_tx_snm_available ( struct osmo_ss7_asp asp,
const uint32_t *  rctx,
unsigned int  num_rctx,
const uint32_t *  aff_pc,
unsigned int  num_aff_pc,
const uint32_t *  aff_ssn,
const uint32_t *  smi,
const char *  info_string,
bool  available 
)

Transmit SSNM DUNA/DAVA message indicating [un]availability of certain point code[s].

Parameters
[in]aspASP through which to transmit message. Must be ACTIVE.
[in]rctxarray of Routing Contexts in network byte order.
[in]num_rctxnumber of rctx
[in]aff_pcarray of 'Affected Point Code' in network byte order.
[in]num_aff_pcnumber of aff_pc
[in]aff_ssnaffected SSN (optional)
[in]smisubsystem multiplicity indicator (optional)
[in]info_stringoptional information strng (can be NULL).
[in]availableare aff_pc now available (true) or unavailable (false)

References smi, sua_encode_dava(), sua_encode_duna(), and sua_tx_xua_asp().

Referenced by sua_snm_ssn_available(), and xua_tx_snm_available().

◆ sua_tx_snm_congestion()

void sua_tx_snm_congestion ( struct osmo_ss7_asp asp,
const uint32_t *  rctx,
unsigned int  num_rctx,
const uint32_t *  aff_pc,
unsigned int  num_aff_pc,
const uint32_t *  ssn,
const uint8_t  cong_level,
const char *  info_string 
)

Transmit SSNM SCON message indicating congestion.

Parameters
[in]aspASP through which to transmit message. Must be ACTIVE.
[in]rctxarray of Routing Contexts in network byte order.
[in]num_rctxnumber of rctx
[in]aff_pcarray of 'Affected Point Code' in network byte order.
[in]num_aff_pcnumber of aff_pc
[in]ssnoptional SSN (can be NULL)
[in]cong_leveloptional congestion level (can be NULL)
[in]info_stringoptional information string (can be NULL).

References xua_msg::hdr, ssn, SUA_IEI_AFFECTED_PC, SUA_IEI_CONG_LEVEL, SUA_IEI_INFO_STRING, SUA_IEI_ROUTE_CTX, SUA_IEI_SSN, SUA_MSGC_SNM, SUA_SNM_SCON, SUA_VERSION, xua_common_hdr::version, XUA_HDR, xua_msg_add_data(), xua_msg_add_u32(), and xua_msg_alloc().

Referenced by xua_tx_scon().

◆ sua_tx_snm_daud()

void sua_tx_snm_daud ( struct osmo_ss7_asp asp,
const uint32_t *  rctx,
unsigned int  num_rctx,
const uint32_t *  aff_pc,
unsigned int  num_aff_pc,
const uint32_t *  aff_ssn,
const uint32_t *  smi,
const char *  info_string 
)

Transmit SSNM DAUD message requesting [un]availability status of certain point code[s].

Parameters
[in]aspASP through which to transmit message. Must be ACTIVE.
[in]rctxarray of Routing Contexts in network byte order.
[in]num_rctxnumber of rctx
[in]aff_pcarray of 'Affected Point Code' in network byte order.
[in]num_aff_pcnumber of aff_pc
[in]aff_ssnaffected SSN (optional)
[in]smisubsystem multiplicity indicator (optional)
[in]info_stringoptional information string (can be NULL).

References smi, sua_encode_daud(), and sua_tx_xua_asp().

Referenced by xua_tx_snm_daud().

◆ sua_tx_xua_as()

int sua_tx_xua_as ( struct osmo_ss7_as as,
struct xua_msg xua 
)

Send a given xUA message via a given SUA Application Server.

Parameters
[in]asApplication Server through which to send xua
[in]xuaxUA message to be sent
Returns
0 on success; negative on error

References osmo_ss7_as::cfg, osmo_ss7_routing_key::context, osmo_ss7_as::fi, OSMO_SS7_ASP_PROT_SUA, osmo_ss7_as::proto, osmo_ss7_as::routing_key, SUA_IEI_ROUTE_CTX, XUA_AS_E_TRANSFER_REQ, xua_msg_add_u32(), and xua_msg_free().

Referenced by gen_mtp_transfer_req_xua().

◆ sua_tx_xua_asp()

static int sua_tx_xua_asp ( struct osmo_ss7_asp asp,
struct xua_msg xua 
)
static

Variable Documentation

◆ cldr_ies

const struct xua_msg_part_class cldr_ies[]
static
Initial value:
= {
}
#define XUA_MSG_PART_CLASS_EOF
Definition: xua_msg.h:72
#define SUA_MSG_PART_CLASS_SEGMENTATION(mandatory)
Definition: sua.c:230
#define SUA_MSG_PART_CLASS_HOP_CTR(mandatory)
Definition: sua.c:167
#define SUA_MSG_PART_CLASS_DATA(mandatory)
Definition: sua.c:203
#define SUA_MSG_PART_CLASS_CAUSE(mandatory)
Definition: sua.c:197
#define SUA_MSG_PART_CLASS_CORR_ID(mandatory)
Definition: sua.c:156
#define SUA_MSG_PART_CLASS_IMPORTANCE(mandatory)
Definition: sua.c:221
#define SUA_MSG_PART_CLASS_ROUTE_CTX(mandatory)
Definition: sua.c:132
#define SUA_MSG_PART_CLASS_MSG_PRIO(mandatory)
Definition: sua.c:224
#define SUA_MSG_PART_CLASS_SRC_ADDR(mandatory)
Definition: sua.c:170
#define SUA_MSG_PART_CLASS_DEST_ADDR(mandatory)
Definition: sua.c:173

◆ cldt_ies

const struct xua_msg_part_class cldt_ies[]
static
Initial value:

◆ coak_ies

const struct xua_msg_part_class coak_ies[]
static
Initial value:
= {
}
#define SUA_MSG_PART_CLASS_DEST_REF(mandatory)
Definition: sua.c:194
#define SUA_MSG_PART_CLASS_SRC_REF(mandatory)
Definition: sua.c:191
#define SUA_MSG_PART_CLASS_CREDIT(mandatory)
Definition: sua.c:188

◆ coda_ies

const struct xua_msg_part_class coda_ies[]
static
Initial value:

◆ codt_ies

const struct xua_msg_part_class codt_ies[]
static
Initial value:

◆ coerr_ies

◆ coit_ies

◆ core_ies

◆ coref_ies

◆ daud_ies

const struct xua_msg_part_class daud_ies[]
static
Initial value:
= {
}
#define SUA_MSG_PART_CLASS_USER_CAUSE(mandatory)
Definition: sua.c:206
#define SUA_MSG_PART_CLASS_INFO_STRING(mandatory)
Definition: sua.c:129
#define SUA_MSG_PART_CLASS_AFFECTED_PC(mandatory)
Definition: sua.c:153
#define SUA_MSG_PART_CLASS_SSN(mandatory)
Definition: sua.c:236

◆ dava_ies

const struct xua_msg_part_class dava_ies[]
static
Initial value:

◆ dereg_req_ies

const struct xua_msg_part_class dereg_req_ies[]
static

◆ dereg_rsp_ies

const struct xua_msg_part_class dereg_rsp_ies[]
static
Initial value:
= {
}
#define SUA_MSG_PART_CLASS_DEREG_RESULT(mandatory)
Definition: sua.c:164

◆ drst_ies

◆ duna_ies

◆ dupu_ies

◆ reg_req_ies

const struct xua_msg_part_class reg_req_ies[]
static
Initial value:
= {
}
#define SUA_MSG_PART_CLASS_ASP_CAPA(mandatory)
Definition: sua.c:185
#define SUA_MSG_PART_CLASS_ROUTING_KEY(mandatory)
Definition: sua.c:209

◆ reg_rsp_ies

const struct xua_msg_part_class reg_rsp_ies[]
static
Initial value:
= {
}
#define SUA_MSG_PART_CLASS_REG_RESULT(mandatory)
Definition: sua.c:161

◆ relco_ies

◆ relre_ies

◆ resco_ies

◆ resre_ies

◆ scon_ies

const struct xua_msg_part_class scon_ies[]
static
Initial value:

◆ sua_asp_act_ies

const struct xua_msg_part_class sua_asp_act_ies[]
static
Initial value:
= {
}
#define SUA_MSG_PART_CLASS_DRN(mandatory)
Definition: sua.c:212
#define SUA_MSG_PART_CLASS_TID(mandatory)
Definition: sua.c:215
#define SUA_MSG_PART_CLASS_TRAF_MODE_TYP(mandatory)
Definition: sua.c:141

◆ sua_aspxm_map

const struct xua_msg_event_map sua_aspxm_map[]
static
Initial value:
= {
}
#define SUA_ASPSM_UP
Definition: sua.h:51
#define SUA_ASPSM_DOWN_ACK
Definition: sua.h:55
#define SUA_ASPSM_DOWN
Definition: sua.h:52
#define SUA_ASPSM_BEAT
Definition: sua.h:53
#define SUA_ASPSM_BEAT_ACK
Definition: sua.h:56
#define SUA_MSGC_ASPTM
Definition: sua.h:35
#define SUA_ASPTM_ACTIVE
Definition: sua.h:58
#define SUA_ASPTM_ACTIVE_ACK
Definition: sua.h:60
#define SUA_ASPTM_INACTIVE
Definition: sua.h:59
#define SUA_ASPTM_INACTIVE_ACK
Definition: sua.h:61
#define SUA_MSGC_ASPSM
Definition: sua.h:34
#define SUA_ASPSM_UP_ACK
Definition: sua.h:54
@ XUA_ASP_E_ASPTM_ASPAC_ACK
Definition: xua_asp_fsm.h:22
@ XUA_ASP_E_ASPSM_BEAT_ACK
Definition: xua_asp_fsm.h:29
@ XUA_ASP_E_ASPSM_ASPDN
Definition: xua_asp_fsm.h:23
@ XUA_ASP_E_ASPSM_ASPUP
Definition: xua_asp_fsm.h:19
@ XUA_ASP_E_ASPSM_ASPDN_ACK
Definition: xua_asp_fsm.h:24
@ XUA_ASP_E_ASPSM_ASPUP_ACK
Definition: xua_asp_fsm.h:20
@ XUA_ASP_E_ASPTM_ASPAC
Definition: xua_asp_fsm.h:21
@ XUA_ASP_E_ASPTM_ASPIA_ACK
Definition: xua_asp_fsm.h:26
@ XUA_ASP_E_ASPTM_ASPIA
Definition: xua_asp_fsm.h:25
@ XUA_ASP_E_ASPSM_BEAT
Definition: xua_asp_fsm.h:28

Referenced by sua_rx_asp().

◆ sua_cause_type_names

const struct value_string sua_cause_type_names[]
Initial value:
= {
{ SUA_CAUSE_T_RETURN, "Return Cause" },
{ SUA_CAUSE_T_REFUSAL, "Refusal Cause" },
{ SUA_CAUSE_T_RELEASE, "Release Cause" },
{ SUA_CAUSE_T_RESET, "Reset Cause" },
{ SUA_CAUSE_T_ERROR, "Error Cause" },
{}
}
#define SUA_CAUSE_T_REFUSAL
Definition: sua.h:137
#define SUA_CAUSE_T_ERROR
Definition: sua.h:140
#define SUA_CAUSE_T_RELEASE
Definition: sua.h:138
#define SUA_CAUSE_T_RETURN
Definition: sua.h:136
#define SUA_CAUSE_T_RESET
Definition: sua.h:139

Referenced by osmo_sua_sccp_cause_name().

◆ sua_cl_msgt_names

const struct value_string sua_cl_msgt_names[]
static
Initial value:
= {
{ SUA_CL_CLDT, "CLDT" },
{ SUA_CL_CLDR, "CLDR" },
{ 0, NULL }
}
int and can be left NULL
Definition: osmo_ss7.h:353
#define SUA_CL_CLDR
Definition: sua.h:69
#define SUA_CL_CLDT
Definition: sua.h:68

◆ sua_co_msgt_names

const struct value_string sua_co_msgt_names[]
static
Initial value:
= {
{ SUA_CO_CODT, "CODT" },
{ SUA_CO_CODA, "CODA" },
{ SUA_CO_CORE, "CORE" },
{ SUA_CO_COAK, "COAK" },
{ SUA_CO_COREF, "COREF" },
{ SUA_CO_RELRE, "RELRE" },
{ SUA_CO_RELCO, "RELCO" },
{ SUA_CO_RESRE, "RESRE" },
{ SUA_CO_RESCO, "RESCO" },
{ SUA_CO_COERR, "COERR" },
{ SUA_CO_COIT, "COIT" },
{ 0, NULL }
}
#define SUA_CO_CORE
Definition: sua.h:71
#define SUA_CO_COREF
Definition: sua.h:73
#define SUA_CO_RELCO
Definition: sua.h:75
#define SUA_CO_RESRE
Definition: sua.h:77
#define SUA_CO_CODA
Definition: sua.h:79
#define SUA_CO_RESCO
Definition: sua.h:76
#define SUA_CO_COIT
Definition: sua.h:81
#define SUA_CO_COERR
Definition: sua.h:80
#define SUA_CO_RELRE
Definition: sua.h:74
#define SUA_CO_CODT
Definition: sua.h:78
#define SUA_CO_COAK
Definition: sua.h:72

◆ sua_err_req_ies

const struct xua_msg_part_class sua_err_req_ies[]
static
Initial value:
= {
}
#define SUA_MSG_PART_CLASS_ERR_CODE(mandatory)
Definition: sua.c:144
#define SUA_MSG_PART_CLASS_NET_APPEARANCE(mandatory)
Definition: sua.c:200
#define SUA_MSG_PART_CLASS_DIAG_INFO(mandatory)
Definition: sua.c:138

◆ sua_iei_names

const struct value_string sua_iei_names[]
static

◆ sua_msg_class_asptm

const struct xua_msg_class sua_msg_class_asptm
Initial value:
= {
.name = "ASPTM",
.msgt_names = m3ua_asptm_msgt_names,
.iei_names = sua_iei_names,
.ies = {
},
}
const struct xua_msg_part_class m3ua_asp_inact_ack_ies[]
Definition: m3ua.c:389
const struct value_string m3ua_asptm_msgt_names[]
Definition: m3ua.c:394
const struct xua_msg_part_class m3ua_asp_act_ack_ies[]
Definition: m3ua.c:383
const struct xua_msg_part_class m3ua_asp_inact_ies[]
Definition: m3ua.c:378
static const struct value_string sua_iei_names[]
Definition: sua.c:85
static const struct xua_msg_part_class sua_asp_act_ies[]
Definition: sua.c:304
#define IES(msgt, ies)
Definition: sua.c:124

◆ sua_msg_class_cl

const struct xua_msg_class sua_msg_class_cl
static
Initial value:
= {
.name = "CL",
.msgt_names = sua_cl_msgt_names,
.iei_names = sua_iei_names,
.ies = {
},
}
static const struct value_string sua_cl_msgt_names[]
Definition: sua.c:351
static const struct xua_msg_part_class cldt_ies[]
Definition: sua.c:324
static const struct xua_msg_part_class cldr_ies[]
Definition: sua.c:338

◆ sua_msg_class_co

const struct xua_msg_class sua_msg_class_co
static
Initial value:
= {
.name = "CO",
.msgt_names = sua_co_msgt_names,
.iei_names = sua_iei_names,
.ies = {
},
}
static const struct xua_msg_part_class coerr_ies[]
Definition: sua.c:450
static const struct value_string sua_co_msgt_names[]
Definition: sua.c:467
static const struct xua_msg_part_class core_ies[]
Definition: sua.c:383
static const struct xua_msg_part_class coak_ies[]
Definition: sua.c:397
static const struct xua_msg_part_class coit_ies[]
Definition: sua.c:456
static const struct xua_msg_part_class coref_ies[]
Definition: sua.c:411
static const struct xua_msg_part_class resco_ies[]
Definition: sua.c:444
static const struct xua_msg_part_class coda_ies[]
Definition: sua.c:375
static const struct xua_msg_part_class relco_ies[]
Definition: sua.c:430
static const struct xua_msg_part_class relre_ies[]
Definition: sua.c:421
static const struct xua_msg_part_class codt_ies[]
Definition: sua.c:366
static const struct xua_msg_part_class resre_ies[]
Definition: sua.c:437

◆ sua_msg_class_mgmt

const struct xua_msg_class sua_msg_class_mgmt
static
Initial value:
= {
.name = "MGMT",
.msgt_names = m3ua_mgmt_msgt_names,
.iei_names = sua_iei_names,
.ies = {
},
}
const struct xua_msg_part_class m3ua_ntfy_req_ies[]
Definition: m3ua.c:422
const struct value_string m3ua_mgmt_msgt_names[]
Definition: m3ua.c:429
static const struct xua_msg_part_class sua_err_req_ies[]
Definition: sua.c:502
#define SUA_MGMT_NTFY
Definition: sua.h:42
#define SUA_MGMT_ERR
Definition: sua.h:41

◆ sua_msg_class_rkm

const struct xua_msg_class sua_msg_class_rkm
Initial value:
= {
.name = "RKM",
.msgt_names = m3ua_rkm_msgt_names,
.iei_names = sua_iei_names,
.ies = {
},
}
const struct value_string m3ua_rkm_msgt_names[]
Definition: m3ua.c:461
static const struct xua_msg_part_class reg_req_ies[]
Definition: sua.c:521
static const struct xua_msg_part_class reg_rsp_ies[]
Definition: sua.c:526
static const struct xua_msg_part_class dereg_rsp_ies[]
Definition: sua.c:534
static const struct xua_msg_part_class dereg_req_ies[]
Definition: sua.c:530
#define SUA_RKM_DEREG_REQ
Definition: sua.h:65
#define SUA_RKM_REG_REQ
Definition: sua.h:63
#define SUA_RKM_REG_RSP
Definition: sua.h:64
#define SUA_RKM_DEREG_RSP
Definition: sua.h:66

◆ sua_msg_class_snm

const struct xua_msg_class sua_msg_class_snm
Initial value:
= {
.name = "SNM",
.msgt_names = m3ua_snm_msgt_names,
.iei_names = sua_iei_names,
.ies = {
},
}
const struct value_string m3ua_snm_msgt_names[]
Definition: m3ua.c:301
static const struct xua_msg_part_class duna_ies[]
Definition: sua.c:240
static const struct xua_msg_part_class scon_ies[]
Definition: sua.c:264
static const struct xua_msg_part_class dupu_ies[]
Definition: sua.c:273
static const struct xua_msg_part_class drst_ies[]
Definition: sua.c:280
static const struct xua_msg_part_class dava_ies[]
Definition: sua.c:248
static const struct xua_msg_part_class daud_ies[]
Definition: sua.c:256
#define SUA_SNM_DRST
Definition: sua.h:49
#define SUA_SNM_SCON
Definition: sua.h:47
#define SUA_SNM_DAUD
Definition: sua.h:46
#define SUA_SNM_DUNA
Definition: sua.h:44
#define SUA_SNM_DUPU
Definition: sua.h:48
#define SUA_SNM_DAVA
Definition: sua.h:45

◆ xua_dialect_sua

const struct xua_dialect xua_dialect_sua
Initial value:
= {
.name = "SUA",
.ppid = SUA_PPID,
.port = SUA_PORT,
.log_subsys = DLSUA,
.class = {
},
}
const struct xua_msg_class m3ua_msg_class_aspsm
Definition: m3ua.c:356
static const struct xua_msg_class sua_msg_class_co
Definition: sua.c:481
const struct xua_msg_class sua_msg_class_snm
Definition: sua.c:288
const struct xua_msg_class sua_msg_class_rkm
Definition: sua.c:538
static const struct xua_msg_class sua_msg_class_cl
Definition: sua.c:356
static const struct xua_msg_class sua_msg_class_mgmt
Definition: sua.c:510
const struct xua_msg_class sua_msg_class_asptm
Definition: sua.c:312
#define SUA_MSGC_CL
Definition: sua.h:36
#define SUA_MSGC_RKM
Definition: sua.h:38
#define SUA_MSGC_CO
Definition: sua.h:37
#define SUA_PORT
Definition: sua.h:29
#define SUA_MSGC_MGMT
Definition: sua.h:32
#define SUA_PPID
Definition: sua.h:28
#define SUA_MSGC_SNM
Definition: sua.h:33

Referenced by ensure_opc_in_calling_ssn(), m3ua_rx_xfer(), osmo_sua_to_sccp(), sccp_conn_opt_data_send_cache(), sccp_conn_scu_gen_encode_and_send(), sccp_find_user(), sccp_rout_fail_enqueue(), sccp_sclc_rx_from_scrc(), sccp_sclc_rx_scrc_rout_fail(), sccp_scoc_rx_from_scrc(), sccp_scoc_rx_inval_opc(), sccp_scoc_rx_inval_src_ref(), sccp_scoc_rx_scrc_rout_fail(), sccp_scoc_rx_unass_local_ref(), sccp_scrc_rx_sclc_msg(), sccp_scrc_rx_scoc_conn_msg(), sclc_rx_cldr(), sclc_rx_cldt(), scoc_fsm_idle(), scrc_node_2(), scrc_rx_mtp_xfer_ind_xua(), send_back_udts(), sua_rx_mgmt_err(), and sua_rx_msg().