libosmo-sigtran 2.3.0.20-5f88
Osmocom SIGTRAN library
m3ua.c File Reference
#include <stdint.h>
#include <errno.h>
#include <unistd.h>
#include <string.h>
#include <inttypes.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/netif/stream.h>
#include <osmocom/sigtran/mtp_sap.h>
#include <osmocom/sigtran/sccp_sap.h>
#include <osmocom/sigtran/osmo_ss7.h>
#include <osmocom/sigtran/protocol/m3ua.h>
#include <osmocom/sigtran/protocol/sua.h>
#include "mtp3_hmdc.h"
#include "mtp3_hmdt.h"
#include "xua_as_fsm.h"
#include "xua_asp_fsm.h"
#include "xua_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 M3UA_MSGB_SIZE   1500
 
#define IES(msgt, ies)    [msgt] = (ies)
 
#define M3UA_MSG_PART_CLASS_INFO_STRING(mandatory)    XUA_MSG_PART_CLASS_UNBOUND(M3UA_IEI_ROUTE_CTX, (mandatory))
 
#define M3UA_MSG_PART_CLASS_ROUTE_CTX(mandatory)    XUA_MSG_PART_CLASS_U32(M3UA_IEI_ROUTE_CTX, (mandatory))
 
#define M3UA_MSG_PART_CLASS_ROUTE_CTX1(mandatory)    XUA_MSG_PART_CLASS_U32(M3UA_IEI_ROUTE_CTX, (mandatory))
 
#define M3UA_MSG_PART_CLASS_DIAG_INFO(mandatory)    XUA_MSG_PART_CLASS_UNBOUND(M3UA_IEI_DIAG_INFO, (mandatory))
 
#define M3UA_MSG_PART_CLASS_HEARDBT_DATA(mandatory)    XUA_MSG_PART_CLASS_UNBOUND(M3UA_IEI_HEARDBT_DATA, (mandatory))
 
#define M3UA_MSG_PART_CLASS_TRAF_MODE_TYP(mandatory)    XUA_MSG_PART_CLASS_U32(M3UA_IEI_TRAF_MODE_TYP, (mandatory))
 
#define M3UA_MSG_PART_CLASS_ERR_CODE(mandatory)    XUA_MSG_PART_CLASS_U32(M3UA_IEI_ERR_CODE, (mandatory))
 
#define M3UA_MSG_PART_CLASS_STATUS(mandatory)    XUA_MSG_PART_CLASS_U32(M3UA_IEI_STATUS, (mandatory))
 
#define M3UA_MSG_PART_CLASS_ASP_ID(mandatory)    XUA_MSG_PART_CLASS_U32(M3UA_IEI_ASP_ID, (mandatory))
 
#define M3UA_MSG_PART_CLASS_AFFECTED_PC(mandatory)    XUA_MSG_PART_CLASS_UNBOUND(M3UA_IEI_AFFECTED_PC, (mandatory))
 
#define M3UA_MSG_PART_CLASS_CORR_ID(mandatory)    XUA_MSG_PART_CLASS_U32(M3UA_IEI_CORR_ID, (mandatory))
 
#define M3UA_MSG_PART_CLASS_NET_APPEAR(mandatory)    XUA_MSG_PART_CLASS_U32(M3UA_IEI_NET_APPEAR, (mandatory))
 
#define M3UA_MSG_PART_CLASS_USER_CAUSE(mandatory)    XUA_MSG_PART_CLASS_U32(M3UA_IEI_USER_CAUSE, (mandatory))
 
#define M3UA_MSG_PART_CLASS_CONG_IND(mandatory)    XUA_MSG_PART_CLASS_U32(M3UA_IEI_CONG_IND, (mandatory))
 
#define M3UA_MSG_PART_CLASS_CONC_DEST(mandatory)    XUA_MSG_PART_CLASS_U32(M3UA_IEI_CONC_DEST, (mandatory))
 
#define M3UA_MSG_PART_CLASS_ROUT_KEY(mandatory)    XUA_MSG_PART_CLASS(M3UA_IEI_ROUT_KEY, (mandatory), true, 0, XUA_MSG_PART_CLASS_MAX_LEN)
 
#define M3UA_MSG_PART_CLASS_REG_RESULT(mandatory)    XUA_MSG_PART_CLASS(M3UA_IEI_REG_RESULT, (mandatory), true, 24, XUA_MSG_PART_CLASS_MAX_LEN)
 
#define M3UA_MSG_PART_CLASS_DEREG_RESULT(mandatory)    XUA_MSG_PART_CLASS(M3UA_IEI_DEREG_RESULT, (mandatory), true, 16, XUA_MSG_PART_CLASS_MAX_LEN)
 
#define M3UA_MSG_PART_CLASS_LOC_RKEY_ID(mandatory)    XUA_MSG_PART_CLASS_U32(M3UA_IEI_LOC_RKEY_ID, (mandatory))
 
#define M3UA_MSG_PART_CLASS_DEST_PC    XUA_MSG_PART_CLASS(M3UA_IEI_DEST_PC, true, true, sizeof(uint32_t), sizeof(uint32_t))
 
#define M3UA_MSG_PART_CLASS_SVC_IND    XUA_MSG_PART_CLASS(M3UA_IEI_SVC_IND, false, true, 0, XUA_MSG_PART_CLASS_MAX_LEN)
 
#define M3UA_MSG_PART_CLASS_ORIG_PC    XUA_MSG_PART_CLASS(M3UA_IEI_ORIG_PC, false, true, 0, XUA_MSG_PART_CLASS_MAX_LEN)
 
#define M3UA_MSG_PART_CLASS_PROT_DATA(mandatory)    XUA_MSG_PART_CLASS_UNBOUND(M3UA_IEI_PROT_DATA, (mandatory))
 
#define M3UA_MSG_PART_CLASS_REG_STATUS(mandatory)    XUA_MSG_PART_CLASS_U32(M3UA_IEI_REG_STATUS, (mandatory))
 
#define M3UA_MSG_PART_CLASS_DEREG_STATUS(mandatory)    XUA_MSG_PART_CLASS_U32(M3UA_IEI_DEREG_STATUS, (mandatory))
 

Functions

const char * m3ua_ntfy_info_name (uint16_t ntfy_status_type, uint16_t ntfy_status_info)
 
void mtp_xfer_param_to_m3ua_dh (struct m3ua_data_hdr *mdh, const struct osmo_mtp_transfer_param *param)
 
void m3ua_dh_to_xfer_param (struct osmo_mtp_transfer_param *param, const struct m3ua_data_hdr *mdh)
 
struct msgb * m3ua_msgb_alloc (const char *name)
 
struct xua_msgm3ua_xfer_from_data (const struct m3ua_data_hdr *data_hdr, const uint8_t *data, unsigned int data_len)
 
static struct xua_msgm3ua_gen_error (uint32_t err_code)
 
static struct xua_msgm3ua_gen_error_msg (uint32_t err_code, struct msgb *msg)
 
struct xua_msgm3ua_encode_notify (const struct osmo_xlm_prim_notify *npar)
 
int m3ua_decode_notify (struct osmo_xlm_prim_notify *npar, void *ctx, const struct xua_msg *xua)
 RFC4666 Ch. More...
 
struct msgb * m3ua_to_msg (struct xua_msg *xua)
 
static int m3ua_tx_xua_asp (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
int m3ua_tx_xua_as (struct osmo_ss7_as *as, struct xua_msg *xua)
 Send a given xUA message via a given M3UA Application Server. More...
 
struct m3ua_data_hdrdata_hdr_from_m3ua (const struct xua_msg *xua)
 
static int m3ua_rx_xfer_validate_data_ie (struct osmo_ss7_asp *asp, const struct xua_msg_part *data_ie)
 
static int m3ua_rx_xfer (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
static int m3ua_rx_mgmt_err (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
static int m3ua_rx_mgmt_ntfy (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
static int m3ua_rx_mgmt (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
static int m3ua_rx_asp (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
static int m3ua_rx_snm (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
int m3ua_rx_msg (struct osmo_ss7_asp *asp, struct msgb *msg)
 process M3UA message received from socket More...
 
struct xua_msgm3ua_encode_duna (const uint32_t *rctx, unsigned int num_rctx, const uint32_t *aff_pc, unsigned int num_aff_pc, const char *info_string)
 
static struct xua_msgm3ua_encode_dava (const uint32_t *rctx, unsigned int num_rctx, const uint32_t *aff_pc, unsigned int num_aff_pc, const char *info_string)
 
static struct xua_msgm3ua_encode_daud (const uint32_t *rctx, unsigned int num_rctx, const uint32_t *aff_pc, unsigned int num_aff_pc, const char *info_string)
 
struct xua_msgm3ua_encode_dupu (const uint32_t *rctx, unsigned int num_rctx, uint32_t dpc, uint16_t user, uint16_t cause, const char *info_string)
 
void m3ua_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 char *info_string, bool available)
 Transmit SSNM DUNA/DAVA message indicating [un]availability of certain point code[s]. More...
 
void m3ua_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 *concerned_dpc, const uint8_t *cong_level, const char *info_string)
 Transmit SSNM SCON message indicating congestion. More...
 
void m3ua_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 char *info_string)
 Transmit SSNM DAUD message requesting [un]availability status of certain point code[s]. More...
 
void m3ua_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 m3ua_rx_snm_asp (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
static int m3ua_rx_snm_sg (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
static int m3ua_rx_snm_ipsp (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 

Variables

const struct value_string m3ua_err_names []
 
const struct value_string m3ua_ntfy_type_names []
 
const struct value_string m3ua_ntfy_stchg_names []
 
const struct value_string m3ua_ntfy_other_names []
 
static const struct value_string m3ua_iei_names []
 
static const struct xua_msg_part_class data_ies []
 
static const struct value_string m3ua_xfer_msgt_names []
 
static const struct xua_msg_class msg_class_xfer
 
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 value_string m3ua_snm_msgt_names []
 
const struct xua_msg_class m3ua_msg_class_snm
 
static const struct xua_msg_part_class m3ua_asp_up_ies []
 
static const struct xua_msg_part_class m3ua_asp_down_ies []
 
static const struct xua_msg_part_class m3ua_beat_ies []
 
static const struct xua_msg_part_class m3ua_asp_up_ack_ies []
 
static const struct xua_msg_part_class m3ua_asp_down_ack_ies []
 
static const struct value_string m3ua_aspsm_msgt_names []
 
const struct xua_msg_class m3ua_msg_class_aspsm
 
static const struct xua_msg_part_class m3ua_asp_act_ies []
 
const struct xua_msg_part_class m3ua_asp_inact_ies []
 
const struct xua_msg_part_class m3ua_asp_act_ack_ies []
 
const struct xua_msg_part_class m3ua_asp_inact_ack_ies []
 
const struct value_string m3ua_asptm_msgt_names []
 
const struct xua_msg_class m3ua_msg_class_asptm
 
static const struct xua_msg_part_class m3ua_err_req_ies []
 
const struct xua_msg_part_class m3ua_ntfy_req_ies []
 
const struct value_string m3ua_mgmt_msgt_names []
 
const struct xua_msg_class m3ua_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 value_string m3ua_rkm_msgt_names []
 
const struct xua_msg_class m3ua_msg_class_rkm
 
const struct xua_msg_part_class m3ua_rkm_reg_req_routing_key_ies []
 
const struct xua_msg_part_class m3ua_rkm_reg_rsp_registration_result_ies []
 
const struct xua_msg_part_class m3ua_rkm_dereg_rsp_deregistration_result_ies []
 
const struct xua_dialect xua_dialect_m3ua
 
static const struct xua_msg_event_map m3ua_aspxm_map []
 

Macro Definition Documentation

◆ IES

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

◆ M3UA_MSG_PART_CLASS_AFFECTED_PC

#define M3UA_MSG_PART_CLASS_AFFECTED_PC (   mandatory)     XUA_MSG_PART_CLASS_UNBOUND(M3UA_IEI_AFFECTED_PC, (mandatory))

◆ M3UA_MSG_PART_CLASS_ASP_ID

#define M3UA_MSG_PART_CLASS_ASP_ID (   mandatory)     XUA_MSG_PART_CLASS_U32(M3UA_IEI_ASP_ID, (mandatory))

◆ M3UA_MSG_PART_CLASS_CONC_DEST

#define M3UA_MSG_PART_CLASS_CONC_DEST (   mandatory)     XUA_MSG_PART_CLASS_U32(M3UA_IEI_CONC_DEST, (mandatory))

◆ M3UA_MSG_PART_CLASS_CONG_IND

#define M3UA_MSG_PART_CLASS_CONG_IND (   mandatory)     XUA_MSG_PART_CLASS_U32(M3UA_IEI_CONG_IND, (mandatory))

◆ M3UA_MSG_PART_CLASS_CORR_ID

#define M3UA_MSG_PART_CLASS_CORR_ID (   mandatory)     XUA_MSG_PART_CLASS_U32(M3UA_IEI_CORR_ID, (mandatory))

◆ M3UA_MSG_PART_CLASS_DEREG_RESULT

#define M3UA_MSG_PART_CLASS_DEREG_RESULT (   mandatory)     XUA_MSG_PART_CLASS(M3UA_IEI_DEREG_RESULT, (mandatory), true, 16, XUA_MSG_PART_CLASS_MAX_LEN)

◆ M3UA_MSG_PART_CLASS_DEREG_STATUS

#define M3UA_MSG_PART_CLASS_DEREG_STATUS (   mandatory)     XUA_MSG_PART_CLASS_U32(M3UA_IEI_DEREG_STATUS, (mandatory))

◆ M3UA_MSG_PART_CLASS_DEST_PC

#define M3UA_MSG_PART_CLASS_DEST_PC    XUA_MSG_PART_CLASS(M3UA_IEI_DEST_PC, true, true, sizeof(uint32_t), sizeof(uint32_t))

◆ M3UA_MSG_PART_CLASS_DIAG_INFO

#define M3UA_MSG_PART_CLASS_DIAG_INFO (   mandatory)     XUA_MSG_PART_CLASS_UNBOUND(M3UA_IEI_DIAG_INFO, (mandatory))

◆ M3UA_MSG_PART_CLASS_ERR_CODE

#define M3UA_MSG_PART_CLASS_ERR_CODE (   mandatory)     XUA_MSG_PART_CLASS_U32(M3UA_IEI_ERR_CODE, (mandatory))

◆ M3UA_MSG_PART_CLASS_HEARDBT_DATA

#define M3UA_MSG_PART_CLASS_HEARDBT_DATA (   mandatory)     XUA_MSG_PART_CLASS_UNBOUND(M3UA_IEI_HEARDBT_DATA, (mandatory))

◆ M3UA_MSG_PART_CLASS_INFO_STRING

#define M3UA_MSG_PART_CLASS_INFO_STRING (   mandatory)     XUA_MSG_PART_CLASS_UNBOUND(M3UA_IEI_ROUTE_CTX, (mandatory))

◆ M3UA_MSG_PART_CLASS_LOC_RKEY_ID

#define M3UA_MSG_PART_CLASS_LOC_RKEY_ID (   mandatory)     XUA_MSG_PART_CLASS_U32(M3UA_IEI_LOC_RKEY_ID, (mandatory))

◆ M3UA_MSG_PART_CLASS_NET_APPEAR

#define M3UA_MSG_PART_CLASS_NET_APPEAR (   mandatory)     XUA_MSG_PART_CLASS_U32(M3UA_IEI_NET_APPEAR, (mandatory))

◆ M3UA_MSG_PART_CLASS_ORIG_PC

#define M3UA_MSG_PART_CLASS_ORIG_PC    XUA_MSG_PART_CLASS(M3UA_IEI_ORIG_PC, false, true, 0, XUA_MSG_PART_CLASS_MAX_LEN)

◆ M3UA_MSG_PART_CLASS_PROT_DATA

#define M3UA_MSG_PART_CLASS_PROT_DATA (   mandatory)     XUA_MSG_PART_CLASS_UNBOUND(M3UA_IEI_PROT_DATA, (mandatory))

◆ M3UA_MSG_PART_CLASS_REG_RESULT

#define M3UA_MSG_PART_CLASS_REG_RESULT (   mandatory)     XUA_MSG_PART_CLASS(M3UA_IEI_REG_RESULT, (mandatory), true, 24, XUA_MSG_PART_CLASS_MAX_LEN)

◆ M3UA_MSG_PART_CLASS_REG_STATUS

#define M3UA_MSG_PART_CLASS_REG_STATUS (   mandatory)     XUA_MSG_PART_CLASS_U32(M3UA_IEI_REG_STATUS, (mandatory))

◆ M3UA_MSG_PART_CLASS_ROUT_KEY

#define M3UA_MSG_PART_CLASS_ROUT_KEY (   mandatory)     XUA_MSG_PART_CLASS(M3UA_IEI_ROUT_KEY, (mandatory), true, 0, XUA_MSG_PART_CLASS_MAX_LEN)

◆ M3UA_MSG_PART_CLASS_ROUTE_CTX

#define M3UA_MSG_PART_CLASS_ROUTE_CTX (   mandatory)     XUA_MSG_PART_CLASS_U32(M3UA_IEI_ROUTE_CTX, (mandatory))

◆ M3UA_MSG_PART_CLASS_ROUTE_CTX1

#define M3UA_MSG_PART_CLASS_ROUTE_CTX1 (   mandatory)     XUA_MSG_PART_CLASS_U32(M3UA_IEI_ROUTE_CTX, (mandatory))

◆ M3UA_MSG_PART_CLASS_STATUS

#define M3UA_MSG_PART_CLASS_STATUS (   mandatory)     XUA_MSG_PART_CLASS_U32(M3UA_IEI_STATUS, (mandatory))

◆ M3UA_MSG_PART_CLASS_SVC_IND

#define M3UA_MSG_PART_CLASS_SVC_IND    XUA_MSG_PART_CLASS(M3UA_IEI_SVC_IND, false, true, 0, XUA_MSG_PART_CLASS_MAX_LEN)

◆ M3UA_MSG_PART_CLASS_TRAF_MODE_TYP

#define M3UA_MSG_PART_CLASS_TRAF_MODE_TYP (   mandatory)     XUA_MSG_PART_CLASS_U32(M3UA_IEI_TRAF_MODE_TYP, (mandatory))

◆ M3UA_MSG_PART_CLASS_USER_CAUSE

#define M3UA_MSG_PART_CLASS_USER_CAUSE (   mandatory)     XUA_MSG_PART_CLASS_U32(M3UA_IEI_USER_CAUSE, (mandatory))

◆ M3UA_MSGB_SIZE

#define M3UA_MSGB_SIZE   1500

Function Documentation

◆ data_hdr_from_m3ua()

◆ m3ua_decode_notify()

int m3ua_decode_notify ( struct osmo_xlm_prim_notify npar,
void *  ctx,
const struct xua_msg xua 
)

◆ m3ua_dh_to_xfer_param()

◆ m3ua_encode_daud()

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

◆ m3ua_encode_dava()

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

◆ m3ua_encode_duna()

struct xua_msg * m3ua_encode_duna ( const uint32_t *  rctx,
unsigned int  num_rctx,
const uint32_t *  aff_pc,
unsigned int  num_aff_pc,
const char *  info_string 
)

◆ m3ua_encode_dupu()

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

◆ m3ua_encode_notify()

◆ m3ua_gen_error()

static struct xua_msg * m3ua_gen_error ( uint32_t  err_code)
static

◆ m3ua_gen_error_msg()

◆ m3ua_msgb_alloc()

◆ m3ua_ntfy_info_name()

const char * m3ua_ntfy_info_name ( uint16_t  ntfy_status_type,
uint16_t  ntfy_status_info 
)

◆ m3ua_rx_asp()

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

◆ m3ua_rx_mgmt()

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

◆ m3ua_rx_mgmt_err()

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

◆ m3ua_rx_mgmt_ntfy()

◆ m3ua_rx_msg()

◆ m3ua_rx_snm()

◆ m3ua_rx_snm_asp()

◆ m3ua_rx_snm_ipsp()

◆ m3ua_rx_snm_sg()

◆ m3ua_rx_xfer()

◆ m3ua_rx_xfer_validate_data_ie()

◆ m3ua_to_msg()

struct msgb * m3ua_to_msg ( struct xua_msg xua)

◆ m3ua_tx_dupu()

void m3ua_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, m3ua_encode_dupu(), and m3ua_tx_xua_asp().

Referenced by xua_tx_upu().

◆ m3ua_tx_snm_available()

void m3ua_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 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]info_stringoptional information string (can be NULL).
[in]availableare aff_pc now available (true) or unavailable (false)

References m3ua_encode_dava(), m3ua_encode_duna(), and m3ua_tx_xua_asp().

Referenced by xua_tx_snm_available().

◆ m3ua_tx_snm_congestion()

void m3ua_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 *  concerned_dpc,
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]concerned_dpcoptional concerned DPC (can be NULL)
[in]cong_leveloptional congestion level (can be NULL)
[in]info_stringoptional information string (can be NULL).

References xua_msg::hdr, M3UA_IEI_AFFECTED_PC, M3UA_IEI_CONC_DEST, M3UA_IEI_CONG_IND, M3UA_IEI_INFO_STRING, M3UA_IEI_ROUTE_CTX, M3UA_MSGC_SNM, M3UA_SNM_SCON, m3ua_tx_xua_asp(), M3UA_VERSION, xua_common_hdr::version, XUA_HDR, xua_msg_add_data(), xua_msg_add_u32(), and xua_msg_alloc().

Referenced by xua_tx_scon().

◆ m3ua_tx_snm_daud()

void m3ua_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 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]info_stringoptional information string (can be NULL).

References m3ua_encode_daud(), and m3ua_tx_xua_asp().

Referenced by xua_tx_snm_daud().

◆ m3ua_tx_xua_as()

int m3ua_tx_xua_as ( struct osmo_ss7_as as,
struct xua_msg xua 
)

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

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

This function takes ownership of xua msg passed to it.

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

Referenced by mtp3_hmdt_rx_msg_for_local_unavailable_part(), mtp3_hmrt_message_for_routing(), and mtp3_rtpc_rx_msg_for_inaccessible_sp().

◆ m3ua_tx_xua_asp()

◆ m3ua_xfer_from_data()

struct xua_msg * m3ua_xfer_from_data ( const struct m3ua_data_hdr data_hdr,
const uint8_t *  data,
unsigned int  data_len 
)

◆ mtp_xfer_param_to_m3ua_dh()

Variable Documentation

◆ data_ies

const struct xua_msg_part_class data_ies[]
static
Initial value:
= {
}
#define M3UA_MSG_PART_CLASS_CORR_ID(mandatory)
Definition: m3ua.c:184
#define M3UA_MSG_PART_CLASS_NET_APPEAR(mandatory)
Definition: m3ua.c:189
#define M3UA_MSG_PART_CLASS_ROUTE_CTX1(mandatory)
Definition: m3ua.c:160
#define M3UA_MSG_PART_CLASS_PROT_DATA(mandatory)
Definition: m3ua.c:225
#define XUA_MSG_PART_CLASS_EOF
Definition: xua_msg.h:72

◆ daud_ies

const struct xua_msg_part_class daud_ies[]
static
Initial value:
= {
}
#define M3UA_MSG_PART_CLASS_AFFECTED_PC(mandatory)
Definition: m3ua.c:181
#define M3UA_MSG_PART_CLASS_ROUTE_CTX(mandatory)
Definition: m3ua.c:157
#define M3UA_MSG_PART_CLASS_INFO_STRING(mandatory)
Definition: m3ua.c:154

◆ dava_ies

◆ 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 M3UA_MSG_PART_CLASS_DEREG_RESULT(mandatory)
Definition: m3ua.c:207

◆ drst_ies

◆ duna_ies

◆ dupu_ies

const struct xua_msg_part_class dupu_ies[]
static
Initial value:

◆ m3ua_asp_act_ack_ies

const struct xua_msg_part_class m3ua_asp_act_ack_ies[]
Initial value:
= {
}
#define M3UA_MSG_PART_CLASS_TRAF_MODE_TYP(mandatory)
Definition: m3ua.c:169

◆ m3ua_asp_act_ies

const struct xua_msg_part_class m3ua_asp_act_ies[]
static

◆ m3ua_asp_down_ack_ies

const struct xua_msg_part_class m3ua_asp_down_ack_ies[]
static

◆ m3ua_asp_down_ies

const struct xua_msg_part_class m3ua_asp_down_ies[]
static

◆ m3ua_asp_inact_ack_ies

const struct xua_msg_part_class m3ua_asp_inact_ack_ies[]

◆ m3ua_asp_inact_ies

const struct xua_msg_part_class m3ua_asp_inact_ies[]

◆ m3ua_asp_up_ack_ies

const struct xua_msg_part_class m3ua_asp_up_ack_ies[]
static
Initial value:
= {
}
#define M3UA_MSG_PART_CLASS_ASP_ID(mandatory)
Definition: m3ua.c:178

◆ m3ua_asp_up_ies

const struct xua_msg_part_class m3ua_asp_up_ies[]
static

◆ m3ua_aspsm_msgt_names

const struct value_string m3ua_aspsm_msgt_names[]
static
Initial value:
= {
{ M3UA_ASPSM_UP, "UP" },
{ M3UA_ASPSM_DOWN, "DOWN" },
{ M3UA_ASPSM_BEAT, "BEAT" },
{ M3UA_ASPSM_UP_ACK, "UP-ACK" },
{ M3UA_ASPSM_DOWN_ACK, "DOWN-ACK" },
{ M3UA_ASPSM_BEAT_ACK, "BEAT-ACK" },
{ 0, NULL }
}
#define M3UA_ASPSM_BEAT_ACK
Definition: m3ua.h:54
#define M3UA_ASPSM_DOWN
Definition: m3ua.h:50
#define M3UA_ASPSM_DOWN_ACK
Definition: m3ua.h:53
#define M3UA_ASPSM_UP
Definition: m3ua.h:49
#define M3UA_ASPSM_UP_ACK
Definition: m3ua.h:52
#define M3UA_ASPSM_BEAT
Definition: m3ua.h:51
int and can be left NULL
Definition: osmo_ss7.h:353

◆ m3ua_asptm_msgt_names

const struct value_string m3ua_asptm_msgt_names[]
Initial value:
= {
{ M3UA_ASPTM_ACTIVE, "ACTIVE" },
{ M3UA_ASPTM_INACTIVE, "INACTIVE" },
{ M3UA_ASPTM_ACTIVE_ACK,"ACTIVE-ACK" },
{ M3UA_ASPTM_INACTIVE_ACK, "INACTIVE-ACK" },
{ 0, NULL }
}
#define M3UA_ASPTM_ACTIVE_ACK
Definition: m3ua.h:58
#define M3UA_ASPTM_INACTIVE
Definition: m3ua.h:57
#define M3UA_ASPTM_INACTIVE_ACK
Definition: m3ua.h:59
#define M3UA_ASPTM_ACTIVE
Definition: m3ua.h:56

◆ m3ua_aspxm_map

const struct xua_msg_event_map m3ua_aspxm_map[]
static
Initial value:
= {
}
#define M3UA_MSGC_ASPTM
Definition: m3ua.h:33
#define M3UA_MSGC_ASPSM
Definition: m3ua.h:32
@ 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 m3ua_rx_asp().

◆ m3ua_beat_ies

const struct xua_msg_part_class m3ua_beat_ies[]
static
Initial value:
= {
}
#define M3UA_MSG_PART_CLASS_HEARDBT_DATA(mandatory)
Definition: m3ua.c:166

◆ m3ua_err_names

const struct value_string m3ua_err_names[]
Initial value:
= {
{ M3UA_ERR_INVALID_VERSION, "Invalid Version" },
{ M3UA_ERR_UNSUPP_MSG_CLASS, "Unsupported Message Class" },
{ M3UA_ERR_UNSUPP_MSG_TYPE, "Unsupported Message Type" },
{ M3UA_ERR_UNSUPP_TRAF_MOD_TYP, "Unsupported Traffic Mode Type" },
{ M3UA_ERR_UNEXPECTED_MSG, "Unexpected Message" },
{ M3UA_ERR_PROTOCOL_ERR, "Protocol Error" },
{ M3UA_ERR_INVAL_STREAM_ID, "Invalid Stream Identifier" },
{ M3UA_ERR_REFUSED_MGMT_BLOCKING, "Refused - Management Blocking" },
{ M3UA_ERR_ASP_ID_REQD, "ASP Identifier Required" },
{ M3UA_ERR_INVAL_ASP_ID, "Invalid ASP Identifier" },
{ M3UA_ERR_INVAL_PARAM_VAL, "Invalid Parameter Value" },
{ M3UA_ERR_PARAM_FIELD_ERR, "Parameter Field Error" },
{ M3UA_ERR_UNEXP_PARAM, "Unexpected Parameter" },
{ M3UA_ERR_DEST_STATUS_UNKN, "Destination Status Unknown" },
{ M3UA_ERR_INVAL_NET_APPEAR, "Invalid Network Appearance" },
{ M3UA_ERR_MISSING_PARAM, "Missing Parameter" },
{ M3UA_ERR_INVAL_ROUT_CTX, "Invalid Routing Context" },
{ M3UA_ERR_NO_CONFGD_AS_FOR_ASP,"No Configured AS for ASP" },
{ SUA_ERR_SUBSYS_STATUS_UNKN, "Subsystem Status Unknown" },
{ SUA_ERR_INVAL_LOADSH_LEVEL, "Invalid loadsharing level" },
{ 0, NULL }
}
@ M3UA_ERR_INVAL_STREAM_ID
Definition: m3ua.h:155
@ M3UA_ERR_INVALID_VERSION
Definition: m3ua.h:147
@ M3UA_ERR_ASP_ID_REQD
Definition: m3ua.h:160
@ M3UA_ERR_INVAL_PARAM_VAL
Definition: m3ua.h:163
@ M3UA_ERR_INVAL_NET_APPEAR
Definition: m3ua.h:167
@ M3UA_ERR_PROTOCOL_ERR
Definition: m3ua.h:153
@ M3UA_ERR_PARAM_FIELD_ERR
Definition: m3ua.h:164
@ M3UA_ERR_UNEXPECTED_MSG
Definition: m3ua.h:152
@ M3UA_ERR_UNEXP_PARAM
Definition: m3ua.h:165
@ M3UA_ERR_INVAL_ASP_ID
Definition: m3ua.h:161
@ M3UA_ERR_NO_CONFGD_AS_FOR_ASP
Definition: m3ua.h:172
@ M3UA_ERR_UNSUPP_TRAF_MOD_TYP
Definition: m3ua.h:151
@ M3UA_ERR_UNSUPP_MSG_TYPE
Definition: m3ua.h:150
@ M3UA_ERR_MISSING_PARAM
Definition: m3ua.h:168
@ M3UA_ERR_INVAL_ROUT_CTX
Definition: m3ua.h:171
@ M3UA_ERR_REFUSED_MGMT_BLOCKING
Definition: m3ua.h:159
@ M3UA_ERR_DEST_STATUS_UNKN
Definition: m3ua.h:166
@ M3UA_ERR_UNSUPP_MSG_CLASS
Definition: m3ua.h:149
#define SUA_ERR_INVAL_LOADSH_LEVEL
Definition: sua.h:164
#define SUA_ERR_SUBSYS_STATUS_UNKN
Definition: sua.h:163

Referenced by lm_active(), lm_inactive(), lm_rkm_reg(), lm_wait_asp_up(), m3ua_rx_mgmt_err(), peer_send_error_ext(), and sua_rx_mgmt_err().

◆ m3ua_err_req_ies

const struct xua_msg_part_class m3ua_err_req_ies[]
static
Initial value:
= {
}
#define M3UA_MSG_PART_CLASS_DIAG_INFO(mandatory)
Definition: m3ua.c:163
#define M3UA_MSG_PART_CLASS_ERR_CODE(mandatory)
Definition: m3ua.c:172

◆ m3ua_iei_names

const struct value_string m3ua_iei_names[]
static
Initial value:
= {
{ M3UA_IEI_INFO_STRING, "INFO String" },
{ M3UA_IEI_ROUTE_CTX, "Routing Context" },
{ M3UA_IEI_DIAG_INFO, "Diagnostic Info" },
{ M3UA_IEI_HEARDBT_DATA, "Heartbeat Data" },
{ M3UA_IEI_TRAF_MODE_TYP, "Traffic Mode Type" },
{ M3UA_IEI_ERR_CODE, "Error Code" },
{ M3UA_IEI_STATUS, "Status" },
{ M3UA_IEI_ASP_ID, "ASP Identifier" },
{ M3UA_IEI_AFFECTED_PC, "Affected Point Code" },
{ M3UA_IEI_CORR_ID, "Correlation Id" },
{ M3UA_IEI_NET_APPEAR, "Network Appearance" },
{ M3UA_IEI_USER_CAUSE, "User/Cause" },
{ M3UA_IEI_CONG_IND, "Congestion Indication" },
{ M3UA_IEI_CONC_DEST, "Concerned Destination" },
{ M3UA_IEI_ROUT_KEY, "Routing Key" },
{ M3UA_IEI_REG_RESULT, "Registration Result" },
{ M3UA_IEI_DEREG_RESULT, "De-Registration Result" },
{ M3UA_IEI_LOC_RKEY_ID, "Local Routing-Key Identifier" },
{ M3UA_IEI_DEST_PC, "Destination Point Code" },
{ M3UA_IEI_SVC_IND, "Service Indicators" },
{ M3UA_IEI_ORIG_PC, "Originating Point Code List" },
{ M3UA_IEI_PROT_DATA, "Protocol Data" },
{ M3UA_IEI_REG_STATUS, "Registration Status" },
{ M3UA_IEI_DEREG_STATUS, "De-Registration Status" },
{ 0, NULL }
}
#define M3UA_IEI_USER_CAUSE
Definition: m3ua.h:80
#define M3UA_IEI_STATUS
Definition: m3ua.h:72
#define M3UA_IEI_HEARDBT_DATA
Definition: m3ua.h:69
#define M3UA_IEI_INFO_STRING
Definition: m3ua.h:66
#define M3UA_IEI_ERR_CODE
Definition: m3ua.h:71
#define M3UA_IEI_REG_STATUS
Definition: m3ua.h:91
#define M3UA_IEI_NET_APPEAR
Definition: m3ua.h:79
#define M3UA_IEI_AFFECTED_PC
Definition: m3ua.h:74
#define M3UA_IEI_ORIG_PC
Definition: m3ua.h:89
#define M3UA_IEI_CONG_IND
Definition: m3ua.h:81
#define M3UA_IEI_DEREG_STATUS
Definition: m3ua.h:92
#define M3UA_IEI_TRAF_MODE_TYP
Definition: m3ua.h:70
#define M3UA_IEI_LOC_RKEY_ID
Definition: m3ua.h:86
#define M3UA_IEI_ROUT_KEY
Definition: m3ua.h:83
#define M3UA_IEI_CORR_ID
Definition: m3ua.h:75
#define M3UA_IEI_SVC_IND
Definition: m3ua.h:88
#define M3UA_IEI_DIAG_INFO
Definition: m3ua.h:68
#define M3UA_IEI_PROT_DATA
Definition: m3ua.h:90
#define M3UA_IEI_ROUTE_CTX
Definition: m3ua.h:67
#define M3UA_IEI_DEST_PC
Definition: m3ua.h:87
#define M3UA_IEI_DEREG_RESULT
Definition: m3ua.h:85
#define M3UA_IEI_REG_RESULT
Definition: m3ua.h:84
#define M3UA_IEI_ASP_ID
Definition: m3ua.h:73
#define M3UA_IEI_CONC_DEST
Definition: m3ua.h:82

◆ m3ua_mgmt_msgt_names

const struct value_string m3ua_mgmt_msgt_names[]
Initial value:
= {
{ M3UA_MGMT_ERR, "ERROR" },
{ M3UA_MGMT_NTFY, "NOTIFY" },
{ 0, NULL }
}
#define M3UA_MGMT_NTFY
Definition: m3ua.h:38
#define M3UA_MGMT_ERR
Definition: m3ua.h:37

◆ m3ua_msg_class_aspsm

const struct xua_msg_class m3ua_msg_class_aspsm
Initial value:
= {
.name = "ASPSM",
.msgt_names = m3ua_aspsm_msgt_names,
.iei_names = m3ua_iei_names,
.ies = {
},
}
static const struct xua_msg_part_class m3ua_beat_ies[]
Definition: m3ua.c:334
static const struct xua_msg_part_class m3ua_asp_up_ack_ies[]
Definition: m3ua.c:338
static const struct xua_msg_part_class m3ua_asp_down_ack_ies[]
Definition: m3ua.c:343
static const struct xua_msg_part_class m3ua_asp_down_ies[]
Definition: m3ua.c:330
#define IES(msgt, ies)
Definition: m3ua.c:149
static const struct value_string m3ua_iei_names[]
Definition: m3ua.c:120
static const struct xua_msg_part_class m3ua_asp_up_ies[]
Definition: m3ua.c:325
static const struct value_string m3ua_aspsm_msgt_names[]
Definition: m3ua.c:347

◆ m3ua_msg_class_asptm

const struct xua_msg_class m3ua_msg_class_asptm
Initial value:
= {
.name = "ASPTM",
.msgt_names = m3ua_asptm_msgt_names,
.iei_names = m3ua_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
static const struct xua_msg_part_class m3ua_asp_act_ies[]
Definition: m3ua.c:371
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

◆ m3ua_msg_class_mgmt

const struct xua_msg_class m3ua_msg_class_mgmt
Initial value:
= {
.name = "MGMT",
.msgt_names = m3ua_mgmt_msgt_names,
.iei_names = m3ua_iei_names,
.ies = {
},
}
const struct xua_msg_part_class m3ua_ntfy_req_ies[]
Definition: m3ua.c:422
static const struct xua_msg_part_class m3ua_err_req_ies[]
Definition: m3ua.c:414
const struct value_string m3ua_mgmt_msgt_names[]
Definition: m3ua.c:429

◆ m3ua_msg_class_rkm

const struct xua_msg_class m3ua_msg_class_rkm
Initial value:
= {
.name = "RKM",
.msgt_names = m3ua_rkm_msgt_names,
.iei_names = m3ua_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: m3ua.c:445
static const struct xua_msg_part_class reg_rsp_ies[]
Definition: m3ua.c:449
static const struct xua_msg_part_class dereg_rsp_ies[]
Definition: m3ua.c:457
static const struct xua_msg_part_class dereg_req_ies[]
Definition: m3ua.c:453
#define M3UA_RKM_REG_REQ
Definition: m3ua.h:61
#define M3UA_RKM_DEREG_REQ
Definition: m3ua.h:63
#define M3UA_RKM_REG_RSP
Definition: m3ua.h:62
#define M3UA_RKM_DEREG_RSP
Definition: m3ua.h:64

Referenced by m3ua_rx_rkm_dereg_rsp(), m3ua_rx_rkm_reg_req(), and m3ua_rx_rkm_reg_rsp().

◆ m3ua_msg_class_snm

const struct xua_msg_class m3ua_msg_class_snm
Initial value:
= {
.name = "SNM",
.msgt_names = m3ua_snm_msgt_names,
.iei_names = m3ua_iei_names,
.ies = {
},
}
static const struct xua_msg_part_class duna_ies[]
Definition: m3ua.c:256
static const struct xua_msg_part_class scon_ies[]
Definition: m3ua.c:277
const struct value_string m3ua_snm_msgt_names[]
Definition: m3ua.c:301
static const struct xua_msg_part_class dupu_ies[]
Definition: m3ua.c:286
static const struct xua_msg_part_class drst_ies[]
Definition: m3ua.c:294
static const struct xua_msg_part_class dava_ies[]
Definition: m3ua.c:263
static const struct xua_msg_part_class daud_ies[]
Definition: m3ua.c:270
#define M3UA_SNM_DUNA
Definition: m3ua.h:42
#define M3UA_SNM_DAVA
Definition: m3ua.h:43
#define M3UA_SNM_DRST
Definition: m3ua.h:47
#define M3UA_SNM_SCON
Definition: m3ua.h:45
#define M3UA_SNM_DAUD
Definition: m3ua.h:44
#define M3UA_SNM_DUPU
Definition: m3ua.h:46

◆ m3ua_ntfy_other_names

const struct value_string m3ua_ntfy_other_names[]
Initial value:
= {
{ M3UA_NOTIFY_I_OT_INS_RES, "Insufficient ASP Resources active in AS" },
{ M3UA_NOTIFY_I_OT_ALT_ASP_ACT, "Alternative ASP Active" },
{ M3UA_NOTIFY_I_OT_ASP_FAILURE, "ASP Failure" },
{ 0, NULL }
}
#define M3UA_NOTIFY_I_OT_ALT_ASP_ACT
Definition: m3ua.h:116
#define M3UA_NOTIFY_I_OT_INS_RES
Definition: m3ua.h:115
#define M3UA_NOTIFY_I_OT_ASP_FAILURE
Definition: m3ua.h:117

Referenced by m3ua_ntfy_info_name().

◆ m3ua_ntfy_req_ies

const struct xua_msg_part_class m3ua_ntfy_req_ies[]
Initial value:
= {
}
#define M3UA_MSG_PART_CLASS_STATUS(mandatory)
Definition: m3ua.c:175

◆ m3ua_ntfy_stchg_names

const struct value_string m3ua_ntfy_stchg_names[]
Initial value:
= {
{ M3UA_NOTIFY_I_RESERVED, "Reserved" },
{ M3UA_NOTIFY_I_AS_INACT, "AS Inactive" },
{ M3UA_NOTIFY_I_AS_ACT, "AS Active" },
{ M3UA_NOTIFY_I_AS_PEND, "AS Pending" },
{ 0, NULL }
}
#define M3UA_NOTIFY_I_RESERVED
Definition: m3ua.h:110
#define M3UA_NOTIFY_I_AS_PEND
Definition: m3ua.h:113
#define M3UA_NOTIFY_I_AS_INACT
Definition: m3ua.h:111
#define M3UA_NOTIFY_I_AS_ACT
Definition: m3ua.h:112

Referenced by m3ua_ntfy_info_name().

◆ m3ua_ntfy_type_names

const struct value_string m3ua_ntfy_type_names[]
Initial value:
= {
{ M3UA_NOTIFY_T_STATCHG, "State Change" },
{ M3UA_NOTIFY_T_OTHER, "Other" },
{ 0, NULL }
}
#define M3UA_NOTIFY_T_STATCHG
Definition: m3ua.h:107
#define M3UA_NOTIFY_T_OTHER
Definition: m3ua.h:108

Referenced by as_notify_all_asp(), m3ua_rx_mgmt_ntfy(), sua_rx_mgmt_ntfy(), and tx_notify().

◆ m3ua_rkm_dereg_rsp_deregistration_result_ies

const struct xua_msg_part_class m3ua_rkm_dereg_rsp_deregistration_result_ies[]
Initial value:
= {
}
#define M3UA_MSG_PART_CLASS_DEREG_STATUS(mandatory)
Definition: m3ua.c:231

Referenced by m3ua_rx_rkm_dereg_rsp().

◆ m3ua_rkm_msgt_names

const struct value_string m3ua_rkm_msgt_names[]
Initial value:
= {
{ M3UA_RKM_REG_REQ, "REG-REQ" },
{ M3UA_RKM_REG_RSP, "REG-RESP" },
{ M3UA_RKM_DEREG_REQ, "DEREG-REQ" },
{ M3UA_RKM_DEREG_RSP, "DEREG-RESP" },
{ 0, NULL }
}

◆ m3ua_rkm_reg_req_routing_key_ies

const struct xua_msg_part_class m3ua_rkm_reg_req_routing_key_ies[]
Initial value:
= {
}
#define M3UA_MSG_PART_CLASS_LOC_RKEY_ID(mandatory)
Definition: m3ua.c:210
#define M3UA_MSG_PART_CLASS_ORIG_PC
Definition: m3ua.c:222
#define M3UA_MSG_PART_CLASS_DEST_PC
Definition: m3ua.c:214
#define M3UA_MSG_PART_CLASS_SVC_IND
Definition: m3ua.c:218

Referenced by m3ua_rx_rkm_reg_req().

◆ m3ua_rkm_reg_rsp_registration_result_ies

const struct xua_msg_part_class m3ua_rkm_reg_rsp_registration_result_ies[]
Initial value:
= {
}
#define M3UA_MSG_PART_CLASS_REG_STATUS(mandatory)
Definition: m3ua.c:228

Referenced by m3ua_rx_rkm_reg_rsp().

◆ m3ua_snm_msgt_names

const struct value_string m3ua_snm_msgt_names[]
Initial value:
= {
{ M3UA_SNM_DUNA, "DUNA" },
{ M3UA_SNM_DAVA, "DAVA" },
{ M3UA_SNM_DAUD, "DAUD" },
{ M3UA_SNM_SCON, "SCON" },
{ M3UA_SNM_DUPU, "DUPU" },
{ M3UA_SNM_DRST, "DRST" },
{ 0, NULL }
}

Referenced by m3ua_rx_snm_asp(), m3ua_rx_snm_ipsp(), m3ua_rx_snm_sg(), sua_rx_snm_asp(), sua_rx_snm_ipsp(), and sua_rx_snm_sg().

◆ m3ua_xfer_msgt_names

const struct value_string m3ua_xfer_msgt_names[]
static
Initial value:
= {
{ M3UA_XFER_DATA, "DATA" },
{ 0, NULL }
}
#define M3UA_XFER_DATA
Definition: m3ua.h:40

Referenced by m3ua_rx_snm(), and m3ua_rx_xfer().

◆ msg_class_xfer

const struct xua_msg_class msg_class_xfer
static
Initial value:
= {
.name = "XFER",
.msgt_names = m3ua_xfer_msgt_names,
.iei_names = m3ua_iei_names,
.ies = {
},
}
static const struct xua_msg_part_class data_ies[]
Definition: m3ua.c:235
static const struct value_string m3ua_xfer_msgt_names[]
Definition: m3ua.c:242

◆ reg_req_ies

const struct xua_msg_part_class reg_req_ies[]
static
Initial value:
= {
}
#define M3UA_MSG_PART_CLASS_ROUT_KEY(mandatory)
Definition: m3ua.c:201

◆ reg_rsp_ies

const struct xua_msg_part_class reg_rsp_ies[]
static
Initial value:
= {
}
#define M3UA_MSG_PART_CLASS_REG_RESULT(mandatory)
Definition: m3ua.c:204

◆ scon_ies

const struct xua_msg_part_class scon_ies[]
static
Initial value:
= {
}
#define M3UA_MSG_PART_CLASS_CONC_DEST(mandatory)
Definition: m3ua.c:198
#define M3UA_MSG_PART_CLASS_CONG_IND(mandatory)
Definition: m3ua.c:195

◆ xua_dialect_m3ua

const struct xua_dialect xua_dialect_m3ua
Initial value:
= {
.name = "M3UA",
.ppid = M3UA_PPID,
.port = M3UA_PORT,
.log_subsys = DLM3UA,
.class = {
},
}
const struct xua_msg_class m3ua_msg_class_snm
Definition: m3ua.c:310
const struct xua_msg_class m3ua_msg_class_rkm
Definition: m3ua.c:468
const struct xua_msg_class m3ua_msg_class_aspsm
Definition: m3ua.c:356
const struct xua_msg_class m3ua_msg_class_asptm
Definition: m3ua.c:401
const struct xua_msg_class m3ua_msg_class_mgmt
Definition: m3ua.c:434
static const struct xua_msg_class msg_class_xfer
Definition: m3ua.c:246
#define M3UA_MSGC_RKM
Definition: m3ua.h:34
#define M3UA_PORT
Definition: m3ua.h:26
#define M3UA_MSGC_SNM
Definition: m3ua.h:31
#define M3UA_MSGC_XFER
Definition: m3ua.h:30
#define M3UA_PPID
Definition: m3ua.h:25
#define M3UA_MSGC_MGMT
Definition: m3ua.h:29

Referenced by m3ua_rx_mgmt_err(), m3ua_rx_msg(), m3ua_rx_rkm_dereg_rsp(), m3ua_rx_rkm_reg_req(), and m3ua_rx_rkm_reg_rsp().