libosmo-sigtran  0.10.0
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"

Macros

#define M3UA_MSGB_SIZE   1500
 
#define MAND_IES(msgt, ies)   [msgt] = (ies)
 
#define M3UA_MSG_SIZE   2048
 
#define M3UA_MSG_HEADROOM   512
 

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)
 
int m3ua_rx_msg (struct osmo_ss7_asp *asp, struct msgb *msg)
 process M3UA message received from socket More...
 

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_MSG_HEADROOM

#define M3UA_MSG_HEADROOM   512

Referenced by m3ua_msgb_alloc().

◆ M3UA_MSG_SIZE

#define M3UA_MSG_SIZE   2048

Referenced by m3ua_msgb_alloc().

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

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

◆ m3ua_to_msg()

static struct msgb* m3ua_to_msg ( struct xua_msg xua)
static

◆ 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(), 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:189

◆ 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:204
static const struct value_string m3ua_iei_names[]
Definition: m3ua.c:100

◆ 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:218
static const uint16_t ntfy_req_ies[]
Definition: m3ua.c:221
#define M3UA_MGMT_ERR
Definition: m3ua.h:37
#define MAND_IES(msgt, ies)
Definition: m3ua.c:129
#define M3UA_MGMT_NTFY
Definition: m3ua.h:38
static const struct value_string m3ua_iei_names[]
Definition: m3ua.c:100
static const struct value_string m3ua_mgmt_msgt_names[]
Definition: m3ua.c:224

◆ 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:249
static const uint16_t reg_req_ies[]
Definition: m3ua.c:240
#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:252
static const uint16_t reg_rsp_ies[]
Definition: m3ua.c:243
#define MAND_IES(msgt, ies)
Definition: m3ua.c:129
static const uint16_t dereg_req_ies[]
Definition: m3ua.c:246
static const struct value_string m3ua_iei_names[]
Definition: m3ua.c:100
#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:154
static const uint16_t drst_mand_ies[]
Definition: m3ua.c:163
static const uint16_t dupu_mand_ies[]
Definition: m3ua.c:160
static const uint16_t duna_mand_ies[]
Definition: m3ua.c:148
static const struct value_string m3ua_snm_msgt_names[]
Definition: m3ua.c:166
#define M3UA_SNM_DUNA
Definition: m3ua.h:42
static const uint16_t scon_mand_ies[]
Definition: m3ua.c:157
#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:151
#define M3UA_SNM_DAVA
Definition: m3ua.h:43
#define MAND_IES(msgt, ies)
Definition: m3ua.c:129
#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 Resouces 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:135
#define MAND_IES(msgt, ies)
Definition: m3ua.c:129
static const uint16_t data_mand_ies[]
Definition: m3ua.c:132

◆ 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:259
const struct xua_msg_class m3ua_msg_class_aspsm
Definition: m3ua.c:198
const struct xua_msg_class m3ua_msg_class_mgmt
Definition: m3ua.c:229
const struct xua_msg_class m3ua_msg_class_asptm
Definition: m3ua.c:211
#define M3UA_PORT
Definition: m3ua.h:26
const struct xua_msg_class m3ua_msg_class_snm
Definition: m3ua.c:175
#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:139
#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