libosmo-sigtran  1.8.0.67-fb30
Osmocom SIGTRAN library
m3ua.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/netif/stream.h>
#include <osmocom/sigtran/xua_msg.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 "xua_as_fsm.h"
#include "xua_asp_fsm.h"
#include "xua_internal.h"
#include "ss7_internal.h"

Macros

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

Functions

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)
 
static 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 (struct xua_msg *xua)
 
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...
 
static 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_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_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)
 

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 uint16_t data_mand_ies []
 
static const struct value_string m3ua_xfer_msgt_names []
 
static const struct xua_msg_class msg_class_xfer
 
static const uint16_t duna_mand_ies []
 
static const uint16_t dava_mand_ies []
 
static const uint16_t daud_mand_ies []
 
static const uint16_t scon_mand_ies []
 
static const uint16_t dupu_mand_ies []
 
static const uint16_t drst_mand_ies []
 
static const struct value_string m3ua_snm_msgt_names []
 
const struct xua_msg_class m3ua_msg_class_snm
 
static const struct value_string m3ua_aspsm_msgt_names []
 
const struct xua_msg_class m3ua_msg_class_aspsm
 
const struct value_string m3ua_asptm_msgt_names []
 
const struct xua_msg_class m3ua_msg_class_asptm
 
static const uint16_t err_req_ies []
 
static const uint16_t ntfy_req_ies []
 
static const struct value_string m3ua_mgmt_msgt_names []
 
const struct xua_msg_class m3ua_msg_class_mgmt
 
static const uint16_t reg_req_ies []
 
static const uint16_t reg_rsp_ies []
 
static const uint16_t dereg_req_ies []
 
static const uint16_t dereg_rsp_ies []
 
static const struct value_string m3ua_rkm_msgt_names []
 
const struct xua_msg_class m3ua_msg_class_rkm
 
const struct xua_dialect xua_dialect_m3ua
 
static const struct xua_msg_event_map m3ua_aspxm_map []
 

Macro Definition Documentation

◆ M3UA_MSGB_SIZE

#define M3UA_MSGB_SIZE   1500

◆ MAND_IES

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

Function Documentation

◆ data_hdr_from_m3ua()

◆ m3ua_decode_notify()

◆ m3ua_dh_to_xfer_param()

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

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

◆ m3ua_encode_dupu()

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

◆ m3ua_encode_notify()

◆ m3ua_gen_error()

static struct xua_msg* m3ua_gen_error ( uint32_t  err_code)
static

◆ m3ua_gen_error_msg()

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

◆ m3ua_msgb_alloc()

struct msgb* m3ua_msgb_alloc ( const char *  name)

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

◆ m3ua_rx_mgmt_ntfy()

◆ m3ua_rx_msg()

◆ m3ua_rx_snm()

◆ m3ua_rx_snm_asp()

◆ m3ua_rx_snm_sg()

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

◆ m3ua_rx_xfer()

◆ m3ua_to_msg()

static struct msgb* m3ua_to_msg ( struct xua_msg xua)
static

◆ 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 m3ua_encode_dupu(), m3ua_tx_xua_asp(), and xua_msg_free().

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(), m3ua_tx_xua_asp(), and xua_msg_free().

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(), xua_msg_alloc(), and xua_msg_free().

Referenced by xua_tx_scon().

◆ 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

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

Referenced by hmrt_message_for_routing().

◆ m3ua_tx_xua_asp()

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

◆ 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_mand_ies

const uint16_t data_mand_ies[]
static
Initial value:
= {
}
#define M3UA_IEI_PROT_DATA
Definition: m3ua.h:90

◆ daud_mand_ies

const uint16_t daud_mand_ies[]
static
Initial value:
= {
}
#define M3UA_IEI_AFFECTED_PC
Definition: m3ua.h:74

◆ dava_mand_ies

const uint16_t dava_mand_ies[]
static
Initial value:
= {
}
#define M3UA_IEI_AFFECTED_PC
Definition: m3ua.h:74

◆ dereg_req_ies

const uint16_t dereg_req_ies[]
static
Initial value:
= {
}
#define M3UA_IEI_ROUTE_CTX
Definition: m3ua.h:67

◆ dereg_rsp_ies

const uint16_t dereg_rsp_ies[]
static
Initial value:
= {
}
#define M3UA_IEI_DEREG_RESULT
Definition: m3ua.h:85

◆ drst_mand_ies

const uint16_t drst_mand_ies[]
static
Initial value:
= {
}
#define M3UA_IEI_AFFECTED_PC
Definition: m3ua.h:74

◆ duna_mand_ies

const uint16_t duna_mand_ies[]
static
Initial value:
= {
}
#define M3UA_IEI_AFFECTED_PC
Definition: m3ua.h:74

◆ dupu_mand_ies

const uint16_t dupu_mand_ies[]
static
Initial value:
= {
}
#define M3UA_IEI_USER_CAUSE
Definition: m3ua.h:80
#define M3UA_IEI_AFFECTED_PC
Definition: m3ua.h:74

◆ err_req_ies

const uint16_t err_req_ies[]
static
Initial value:
= {
}
#define M3UA_IEI_ERR_CODE
Definition: m3ua.h:71

◆ 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_UP_ACK
Definition: m3ua.h:52
#define M3UA_ASPSM_UP
Definition: m3ua.h:49
#define M3UA_ASPSM_DOWN
Definition: m3ua.h:50
#define M3UA_ASPSM_BEAT_ACK
Definition: m3ua.h:54
#define M3UA_ASPSM_BEAT
Definition: m3ua.h:51
#define M3UA_ASPSM_DOWN_ACK
Definition: m3ua.h:53

◆ 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
Definition: m3ua.h:56
#define M3UA_ASPTM_INACTIVE
Definition: m3ua.h:57
#define M3UA_ASPTM_ACTIVE_ACK
Definition: m3ua.h:58
#define M3UA_ASPTM_INACTIVE_ACK
Definition: m3ua.h:59

◆ m3ua_aspxm_map

const struct xua_msg_event_map m3ua_aspxm_map[]
static
Initial value:
= {
}
Definition: xua_asp_fsm.h:23
Definition: xua_asp_fsm.h:28
Definition: xua_asp_fsm.h:26
#define M3UA_ASPTM_ACTIVE
Definition: m3ua.h:56
#define M3UA_ASPSM_UP_ACK
Definition: m3ua.h:52
#define M3UA_ASPTM_INACTIVE
Definition: m3ua.h:57
#define M3UA_ASPSM_UP
Definition: m3ua.h:49
#define M3UA_ASPTM_ACTIVE_ACK
Definition: m3ua.h:58
Definition: xua_asp_fsm.h:19
#define M3UA_ASPSM_DOWN
Definition: m3ua.h:50
#define M3UA_ASPSM_BEAT_ACK
Definition: m3ua.h:54
#define M3UA_ASPSM_BEAT
Definition: m3ua.h:51
#define M3UA_ASPTM_INACTIVE_ACK
Definition: m3ua.h:59
#define M3UA_ASPSM_DOWN_ACK
Definition: m3ua.h:53
Definition: xua_asp_fsm.h:22
Definition: xua_asp_fsm.h:24
Definition: xua_asp_fsm.h:25
#define M3UA_MSGC_ASPTM
Definition: m3ua.h:33
Definition: xua_asp_fsm.h:20
Definition: xua_asp_fsm.h:21
Definition: xua_asp_fsm.h:29
#define M3UA_MSGC_ASPSM
Definition: m3ua.h:32

◆ 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 }
}
Definition: m3ua.h:167
Definition: m3ua.h:168
Definition: m3ua.h:149
Definition: m3ua.h:147
Definition: m3ua.h:161
Definition: m3ua.h:163
Definition: m3ua.h:172
Definition: m3ua.h:159
Definition: m3ua.h:165
Definition: m3ua.h:160
#define SUA_ERR_INVAL_LOADSH_LEVEL
Definition: sua.h:160
Definition: m3ua.h:166
Definition: m3ua.h:152
Definition: m3ua.h:164
Definition: m3ua.h:150
Definition: m3ua.h:153
Definition: m3ua.h:151
#define SUA_ERR_SUBSYS_STATUS_UNKN
Definition: sua.h:159
Definition: m3ua.h:171
Definition: m3ua.h:155

Referenced by m3ua_rx_mgmt_err(), peer_send_error(), and sua_rx_mgmt_err().

◆ 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_PROT_DATA
Definition: m3ua.h:90
#define M3UA_IEI_CORR_ID
Definition: m3ua.h:75
#define M3UA_IEI_HEARDBT_DATA
Definition: m3ua.h:69
#define M3UA_IEI_TRAF_MODE_TYP
Definition: m3ua.h:70
#define M3UA_IEI_NET_APPEAR
Definition: m3ua.h:79
#define M3UA_IEI_REG_RESULT
Definition: m3ua.h:84
#define M3UA_IEI_ASP_ID
Definition: m3ua.h:73
#define M3UA_IEI_REG_STATUS
Definition: m3ua.h:91
#define M3UA_IEI_DEST_PC
Definition: m3ua.h:87
#define M3UA_IEI_USER_CAUSE
Definition: m3ua.h:80
#define M3UA_IEI_CONC_DEST
Definition: m3ua.h:82
#define M3UA_IEI_ROUT_KEY
Definition: m3ua.h:83
#define M3UA_IEI_ERR_CODE
Definition: m3ua.h:71
#define M3UA_IEI_LOC_RKEY_ID
Definition: m3ua.h:86
#define M3UA_IEI_DEREG_RESULT
Definition: m3ua.h:85
#define M3UA_IEI_STATUS
Definition: m3ua.h:72
#define M3UA_IEI_CONG_IND
Definition: m3ua.h:81
#define M3UA_IEI_SVC_IND
Definition: m3ua.h:88
#define M3UA_IEI_DIAG_INFO
Definition: m3ua.h:68
#define M3UA_IEI_DEREG_STATUS
Definition: m3ua.h:92
#define M3UA_IEI_ORIG_PC
Definition: m3ua.h:89
#define M3UA_IEI_ROUTE_CTX
Definition: m3ua.h:67
#define M3UA_IEI_INFO_STRING
Definition: m3ua.h:66
#define M3UA_IEI_AFFECTED_PC
Definition: m3ua.h:74

◆ m3ua_mgmt_msgt_names

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

◆ m3ua_msg_class_aspsm

const struct xua_msg_class m3ua_msg_class_aspsm
Initial value:
= {
.name = "ASPSM",
.msgt_names = m3ua_aspsm_msgt_names,
}
static const struct value_string m3ua_aspsm_msgt_names[]
Definition: m3ua.c:190

◆ 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,
}
const struct value_string m3ua_asptm_msgt_names[]
Definition: m3ua.c:205
static const struct value_string m3ua_iei_names[]
Definition: m3ua.c:101

◆ 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,
.mand_ies = {
},
}
static const uint16_t err_req_ies[]
Definition: m3ua.c:219
static const uint16_t ntfy_req_ies[]
Definition: m3ua.c:222
#define M3UA_MGMT_ERR
Definition: m3ua.h:37
#define MAND_IES(msgt, ies)
Definition: m3ua.c:130
#define M3UA_MGMT_NTFY
Definition: m3ua.h:38
static const struct value_string m3ua_iei_names[]
Definition: m3ua.c:101
static const struct value_string m3ua_mgmt_msgt_names[]
Definition: m3ua.c:225

◆ 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,
.mand_ies = {
},
}
#define M3UA_RKM_REG_RSP
Definition: m3ua.h:62
static const uint16_t dereg_rsp_ies[]
Definition: m3ua.c:250
static const uint16_t reg_req_ies[]
Definition: m3ua.c:241
#define M3UA_RKM_DEREG_REQ
Definition: m3ua.h:63
#define M3UA_RKM_DEREG_RSP
Definition: m3ua.h:64
static const struct value_string m3ua_rkm_msgt_names[]
Definition: m3ua.c:253
static const uint16_t reg_rsp_ies[]
Definition: m3ua.c:244
#define MAND_IES(msgt, ies)
Definition: m3ua.c:130
static const uint16_t dereg_req_ies[]
Definition: m3ua.c:247
static const struct value_string m3ua_iei_names[]
Definition: m3ua.c:101
#define M3UA_RKM_REG_REQ
Definition: m3ua.h:61

◆ m3ua_msg_class_snm

const struct xua_msg_class m3ua_msg_class_snm
Initial value:
= {
.name = "SNM",
.msgt_names = m3ua_snm_msgt_names,
.mand_ies = {
},
}
static const uint16_t daud_mand_ies[]
Definition: m3ua.c:155
static const uint16_t drst_mand_ies[]
Definition: m3ua.c:164
static const uint16_t dupu_mand_ies[]
Definition: m3ua.c:161
static const uint16_t duna_mand_ies[]
Definition: m3ua.c:149
static const struct value_string m3ua_snm_msgt_names[]
Definition: m3ua.c:167
#define M3UA_SNM_DUNA
Definition: m3ua.h:42
static const uint16_t scon_mand_ies[]
Definition: m3ua.c:158
#define M3UA_SNM_DAUD
Definition: m3ua.h:44
#define M3UA_SNM_DUPU
Definition: m3ua.h:46
#define M3UA_SNM_SCON
Definition: m3ua.h:45
static const uint16_t dava_mand_ies[]
Definition: m3ua.c:152
#define M3UA_SNM_DAVA
Definition: m3ua.h:43
#define MAND_IES(msgt, ies)
Definition: m3ua.c:130
#define M3UA_SNM_DRST
Definition: m3ua.h:47

◆ 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_ASP_FAILURE
Definition: m3ua.h:117
#define M3UA_NOTIFY_I_OT_INS_RES
Definition: m3ua.h:115
#define M3UA_NOTIFY_I_OT_ALT_ASP_ACT
Definition: m3ua.h:116

Referenced by m3ua_rx_mgmt_ntfy(), and sua_rx_mgmt_ntfy().

◆ 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_AS_PEND
Definition: m3ua.h:113
#define M3UA_NOTIFY_I_RESERVED
Definition: m3ua.h:110
#define M3UA_NOTIFY_I_AS_ACT
Definition: m3ua.h:112
#define M3UA_NOTIFY_I_AS_INACT
Definition: m3ua.h:111

Referenced by m3ua_rx_mgmt_ntfy(), and sua_rx_mgmt_ntfy().

◆ 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 m3ua_rx_mgmt_ntfy(), and sua_rx_mgmt_ntfy().

◆ m3ua_rkm_msgt_names

const struct value_string m3ua_rkm_msgt_names[]
static
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 }
}
#define M3UA_RKM_REG_RSP
Definition: m3ua.h:62
#define M3UA_RKM_DEREG_REQ
Definition: m3ua.h:63
#define M3UA_RKM_DEREG_RSP
Definition: m3ua.h:64
#define M3UA_RKM_REG_REQ
Definition: m3ua.h:61

◆ m3ua_snm_msgt_names

const struct value_string m3ua_snm_msgt_names[]
static
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 }
}
#define M3UA_SNM_DUNA
Definition: m3ua.h:42
#define M3UA_SNM_DAUD
Definition: m3ua.h:44
#define M3UA_SNM_DUPU
Definition: m3ua.h:46
#define M3UA_SNM_SCON
Definition: m3ua.h:45
#define M3UA_SNM_DAVA
Definition: m3ua.h:43
#define M3UA_SNM_DRST
Definition: m3ua.h:47

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

◆ msg_class_xfer

const struct xua_msg_class msg_class_xfer
static
Initial value:
= {
.name = "XFER",
.msgt_names = m3ua_xfer_msgt_names,
.mand_ies = {
},
}
#define M3UA_XFER_DATA
Definition: m3ua.h:40
static const struct value_string m3ua_xfer_msgt_names[]
Definition: m3ua.c:136
#define MAND_IES(msgt, ies)
Definition: m3ua.c:130
static const uint16_t data_mand_ies[]
Definition: m3ua.c:133

◆ ntfy_req_ies

const uint16_t ntfy_req_ies[]
static
Initial value:
= {
}
#define M3UA_IEI_STATUS
Definition: m3ua.h:72

◆ reg_req_ies

const uint16_t reg_req_ies[]
static
Initial value:
= {
}
#define M3UA_IEI_ROUT_KEY
Definition: m3ua.h:83

◆ reg_rsp_ies

const uint16_t reg_rsp_ies[]
static
Initial value:
= {
}
#define M3UA_IEI_REG_RESULT
Definition: m3ua.h:84

◆ scon_mand_ies

const uint16_t scon_mand_ies[]
static
Initial value:
= {
}
#define M3UA_IEI_AFFECTED_PC
Definition: m3ua.h:74

◆ 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_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
const struct xua_msg_class m3ua_msg_class_asptm
Definition: m3ua.c:212
#define M3UA_PORT
Definition: m3ua.h:26
const struct xua_msg_class m3ua_msg_class_snm
Definition: m3ua.c:176
#define M3UA_PPID
Definition: m3ua.h:25
#define M3UA_MSGC_ASPTM
Definition: m3ua.h:33
#define M3UA_MSGC_SNM
Definition: m3ua.h:31
static const struct xua_msg_class msg_class_xfer
Definition: m3ua.c:140
#define M3UA_MSGC_MGMT
Definition: m3ua.h:29
#define M3UA_MSGC_XFER
Definition: m3ua.h:30
#define M3UA_MSGC_RKM
Definition: m3ua.h:34
#define M3UA_MSGC_ASPSM
Definition: m3ua.h:32