libosmo-sigtran  1.8.0.67-fb30
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/xua_msg.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 "xua_as_fsm.h"
#include "xua_asp_fsm.h"
#include "xua_internal.h"
#include "sccp_internal.h"
#include "ss7_internal.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 MAND_IES(msgt, ies)   [msgt] = (ies)
 

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)
 
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_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_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)
 

Variables

static const struct value_string sua_iei_names []
 
static const uint16_t cldt_mand_ies []
 
static const uint16_t cldr_mand_ies []
 
static const struct value_string sua_cl_msgt_names []
 
static const struct xua_msg_class msg_class_cl
 
static const uint16_t codt_mand_ies []
 
static const uint16_t coda_mand_ies []
 
static const uint16_t core_mand_ies []
 
static const uint16_t coak_mand_ies []
 
static const uint16_t coref_mand_ies []
 
static const uint16_t relre_mand_ies []
 
static const uint16_t relco_mand_ies []
 
static const uint16_t resre_mand_ies []
 
static const uint16_t resco_mand_ies []
 
static const uint16_t coerr_mand_ies []
 
static const uint16_t coit_mand_ies []
 
static const struct value_string sua_co_msgt_names []
 
static const struct xua_msg_class msg_class_co
 
const struct xua_dialect xua_dialect_sua
 
static const struct xua_msg_event_map sua_aspxm_map []
 

Macro Definition Documentation

◆ CONNECTION_TIMER

#define CONNECTION_TIMER   ( 1 * 60 * 100)

◆ GUARD_TIMER

#define GUARD_TIMER   (23 * 60 * 100)

◆ INT_TIMER

#define INT_TIMER   ( 1 * 60 * 100)

◆ MAND_IES

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

◆ 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

Referenced by sccp_msgb_alloc().

◆ SCCP_MSG_SIZE

#define SCCP_MSG_SIZE   2048

Referenced by sccp_msgb_alloc().

◆ TX_INACT_TIMER

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

Function Documentation

◆ 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 ensure_opc_in_calling_ssn(), gen_ret_msg(), patch_sccp_with_pc(), sccp_find_user(), sccp_scrc_rx_sclc_msg(), sccp_scrc_rx_scoc_conn_msg(), sclc_rx_cldr(), sclc_rx_cldt(), scoc_fsm_idle(), scrc_rx_mtp_xfer_ind_xua(), and scu_gen_encode_and_send().

◆ sua_addr_parse_part()

◆ 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()

static 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 
)
static

◆ 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

References 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_sg()

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

◆ 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 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 whihc 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 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, 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_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, sua_to_msg(), XUA_AS_E_TRANSFER_REQ, and xua_msg_add_u32().

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_mand_ies

const uint16_t cldr_mand_ies[]
static
Initial value:
= {
}
#define SUA_IEI_ROUTE_CTX
Definition: sua.h:83
#define SUA_IEI_SRC_ADDR
Definition: sua.h:98
#define SUA_IEI_DEST_ADDR
Definition: sua.h:99
#define SUA_IEI_CAUSE
Definition: sua.h:102

◆ cldt_mand_ies

const uint16_t cldt_mand_ies[]
static
Initial value:
= {
}
#define SUA_IEI_ROUTE_CTX
Definition: sua.h:83
#define SUA_IEI_SRC_ADDR
Definition: sua.h:98
#define SUA_IEI_DATA
Definition: sua.h:107
#define SUA_IEI_PROTO_CLASS
Definition: sua.h:116
#define SUA_IEI_DEST_ADDR
Definition: sua.h:99
#define SUA_IEI_SEQ_CTRL
Definition: sua.h:117

◆ coak_mand_ies

const uint16_t coak_mand_ies[]
static
Initial value:
= {
}
#define SUA_IEI_ROUTE_CTX
Definition: sua.h:83
#define SUA_IEI_SRC_REF
Definition: sua.h:100
#define SUA_IEI_PROTO_CLASS
Definition: sua.h:116
#define SUA_IEI_DEST_REF
Definition: sua.h:101
#define SUA_IEI_SEQ_CTRL
Definition: sua.h:117

◆ coda_mand_ies

const uint16_t coda_mand_ies[]
static
Initial value:
= {
}
#define SUA_IEI_ROUTE_CTX
Definition: sua.h:83
#define SUA_IEI_DEST_REF
Definition: sua.h:101

◆ codt_mand_ies

const uint16_t codt_mand_ies[]
static
Initial value:
= {
}
#define SUA_IEI_ROUTE_CTX
Definition: sua.h:83
#define SUA_IEI_DATA
Definition: sua.h:107
#define SUA_IEI_DEST_REF
Definition: sua.h:101

◆ coerr_mand_ies

const uint16_t coerr_mand_ies[]
static
Initial value:
= {
}
#define SUA_IEI_ROUTE_CTX
Definition: sua.h:83
#define SUA_IEI_DEST_REF
Definition: sua.h:101
#define SUA_IEI_CAUSE
Definition: sua.h:102

◆ coit_mand_ies

const uint16_t coit_mand_ies[]
static
Initial value:
= {
}
#define SUA_IEI_ROUTE_CTX
Definition: sua.h:83
#define SUA_IEI_SRC_REF
Definition: sua.h:100
#define SUA_IEI_PROTO_CLASS
Definition: sua.h:116
#define SUA_IEI_DEST_REF
Definition: sua.h:101

◆ core_mand_ies

const uint16_t core_mand_ies[]
static
Initial value:
= {
}
#define SUA_IEI_ROUTE_CTX
Definition: sua.h:83
#define SUA_IEI_SRC_REF
Definition: sua.h:100
#define SUA_IEI_PROTO_CLASS
Definition: sua.h:116
#define SUA_IEI_DEST_ADDR
Definition: sua.h:99
#define SUA_IEI_SEQ_CTRL
Definition: sua.h:117

◆ coref_mand_ies

const uint16_t coref_mand_ies[]
static
Initial value:
= {
}
#define SUA_IEI_ROUTE_CTX
Definition: sua.h:83
#define SUA_IEI_DEST_REF
Definition: sua.h:101
#define SUA_IEI_CAUSE
Definition: sua.h:102

◆ msg_class_cl

const struct xua_msg_class msg_class_cl
static
Initial value:
= {
.name = "CL",
.msgt_names = sua_cl_msgt_names,
.iei_names = sua_iei_names,
.mand_ies = {
},
}
#define SUA_CL_CLDR
Definition: sua.h:68
static const struct value_string sua_cl_msgt_names[]
Definition: sua.c:130
static const uint16_t cldt_mand_ies[]
Definition: sua.c:122
#define MAND_IES(msgt, ies)
Definition: sua.c:120
static const struct value_string sua_iei_names[]
Definition: sua.c:81
static const uint16_t cldr_mand_ies[]
Definition: sua.c:126
#define SUA_CL_CLDT
Definition: sua.h:67

◆ msg_class_co

const struct xua_msg_class msg_class_co
static
Initial value:
= {
.name = "CO",
.msgt_names = sua_co_msgt_names,
.iei_names = sua_iei_names,
.mand_ies = {
},
}
static const uint16_t coref_mand_ies[]
Definition: sua.c:159
#define SUA_CO_RELCO
Definition: sua.h:74
#define SUA_CO_CODT
Definition: sua.h:77
#define SUA_CO_RESCO
Definition: sua.h:75
static const uint16_t resco_mand_ies[]
Definition: sua.c:173
#define SUA_CO_RESRE
Definition: sua.h:76
static const uint16_t core_mand_ies[]
Definition: sua.c:151
#define SUA_CO_COREF
Definition: sua.h:72
static const uint16_t resre_mand_ies[]
Definition: sua.c:169
#define SUA_CO_RELRE
Definition: sua.h:73
#define SUA_CO_CODA
Definition: sua.h:78
static const uint16_t codt_mand_ies[]
Definition: sua.c:145
static const uint16_t relre_mand_ies[]
Definition: sua.c:162
#define MAND_IES(msgt, ies)
Definition: sua.c:120
#define SUA_CO_COAK
Definition: sua.h:71
static const struct value_string sua_iei_names[]
Definition: sua.c:81
static const struct value_string sua_co_msgt_names[]
Definition: sua.c:185
static const uint16_t coak_mand_ies[]
Definition: sua.c:155
#define SUA_CO_COIT
Definition: sua.h:80
#define SUA_CO_CORE
Definition: sua.h:70
static const uint16_t coerr_mand_ies[]
Definition: sua.c:176
static const uint16_t relco_mand_ies[]
Definition: sua.c:166
static const uint16_t coda_mand_ies[]
Definition: sua.c:148
#define SUA_CO_COERR
Definition: sua.h:79
static const uint16_t coit_mand_ies[]
Definition: sua.c:179

◆ relco_mand_ies

const uint16_t relco_mand_ies[]
static
Initial value:
= {
}
#define SUA_IEI_ROUTE_CTX
Definition: sua.h:83
#define SUA_IEI_SRC_REF
Definition: sua.h:100
#define SUA_IEI_DEST_REF
Definition: sua.h:101

◆ relre_mand_ies

const uint16_t relre_mand_ies[]
static
Initial value:
= {
}
#define SUA_IEI_ROUTE_CTX
Definition: sua.h:83
#define SUA_IEI_SRC_REF
Definition: sua.h:100
#define SUA_IEI_DEST_REF
Definition: sua.h:101
#define SUA_IEI_CAUSE
Definition: sua.h:102

◆ resco_mand_ies

const uint16_t resco_mand_ies[]
static
Initial value:
= {
}
#define SUA_IEI_ROUTE_CTX
Definition: sua.h:83
#define SUA_IEI_SRC_REF
Definition: sua.h:100
#define SUA_IEI_DEST_REF
Definition: sua.h:101

◆ resre_mand_ies

const uint16_t resre_mand_ies[]
static
Initial value:
= {
}
#define SUA_IEI_ROUTE_CTX
Definition: sua.h:83
#define SUA_IEI_SRC_REF
Definition: sua.h:100
#define SUA_IEI_DEST_REF
Definition: sua.h:101
#define SUA_IEI_CAUSE
Definition: sua.h:102

◆ sua_aspxm_map

const struct xua_msg_event_map sua_aspxm_map[]
static
Initial value:
= {
}
Definition: xua_asp_fsm.h:23
Definition: xua_asp_fsm.h:28
#define SUA_ASPTM_INACTIVE_ACK
Definition: sua.h:60
#define SUA_ASPSM_DOWN
Definition: sua.h:51
#define SUA_ASPSM_BEAT
Definition: sua.h:52
Definition: xua_asp_fsm.h:26
#define SUA_ASPTM_ACTIVE
Definition: sua.h:57
#define SUA_ASPTM_INACTIVE
Definition: sua.h:58
Definition: xua_asp_fsm.h:19
#define SUA_ASPSM_DOWN_ACK
Definition: sua.h:54
#define SUA_ASPSM_BEAT_ACK
Definition: sua.h:55
#define SUA_ASPSM_UP
Definition: sua.h:50
Definition: xua_asp_fsm.h:22
#define SUA_MSGC_ASPTM
Definition: sua.h:34
Definition: xua_asp_fsm.h:24
Definition: xua_asp_fsm.h:25
#define SUA_ASPTM_ACTIVE_ACK
Definition: sua.h:59
#define SUA_ASPSM_UP_ACK
Definition: sua.h:53
#define SUA_MSGC_ASPSM
Definition: sua.h:33
Definition: xua_asp_fsm.h:20
Definition: xua_asp_fsm.h:21
Definition: xua_asp_fsm.h:29

◆ 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 }
}
#define SUA_CL_CLDR
Definition: sua.h:68
#define SUA_CL_CLDT
Definition: sua.h:67

◆ 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_RELCO
Definition: sua.h:74
#define SUA_CO_CODT
Definition: sua.h:77
#define SUA_CO_RESCO
Definition: sua.h:75
#define SUA_CO_RESRE
Definition: sua.h:76
#define SUA_CO_COREF
Definition: sua.h:72
#define SUA_CO_RELRE
Definition: sua.h:73
#define SUA_CO_CODA
Definition: sua.h:78
#define SUA_CO_COAK
Definition: sua.h:71
#define SUA_CO_COIT
Definition: sua.h:80
#define SUA_CO_CORE
Definition: sua.h:70
#define SUA_CO_COERR
Definition: sua.h:79

◆ sua_iei_names

const struct value_string sua_iei_names[]
static

◆ 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_rkm
Definition: m3ua.c:260
const struct xua_msg_class m3ua_msg_class_aspsm
Definition: m3ua.c:199
const struct xua_msg_class m3ua_msg_class_mgmt
Definition: m3ua.c:230
#define SUA_MSGC_CO
Definition: sua.h:36
static const struct xua_msg_class msg_class_cl
Definition: sua.c:135
#define SUA_MSGC_SNM
Definition: sua.h:32
const struct xua_msg_class m3ua_msg_class_asptm
Definition: m3ua.c:212
#define SUA_MSGC_CL
Definition: sua.h:35
#define SUA_MSGC_RKM
Definition: sua.h:37
const struct xua_msg_class m3ua_msg_class_snm
Definition: m3ua.c:176
#define SUA_PORT
Definition: sua.h:28
#define SUA_PPID
Definition: sua.h:27
#define SUA_MSGC_ASPTM
Definition: sua.h:34
static const struct xua_msg_class msg_class_co
Definition: sua.c:199
#define SUA_MSGC_MGMT
Definition: sua.h:31
#define SUA_MSGC_ASPSM
Definition: sua.h:33

Referenced by osmo_sua_to_sccp(), sccp_find_user(), sccp_sclc_rx_from_scrc(), 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(), scrc_rx_mtp_xfer_ind_xua(), and xua_opt_data_send_cache().