libosmo-sigtran
1.5.0
Osmocom SIGTRAN library
|
#include <stdint.h>
Go to the source code of this file.
|
enum | {
M2UA_CLS_MGMT,
M2UA_CLS_TRANS,
M2UA_CLS_SSNM,
M2UA_CLS_ASPSM,
M2UA_CLS_ASPTM,
M2UA_CLS_QPTM,
M2UA_CLS_MAUP,
M2UA_CLS_SUA_LESS,
M2UA_CLS_SUA_CONN,
M2UA_CLS_RKM,
M2UA_CLS_IIM
} |
|
enum | {
M2UA_MAUP_RESERVED,
M2UA_MAUP_DATA,
M2UA_MAUP_EST_REQ,
M2UA_MAUP_EST_CON,
M2UA_MAUP_REL_REQ,
M2UA_MAUP_REL_CON,
M2UA_MAUP_REL_IND,
M2UA_MAUP_STATE_REQ,
M2UA_MAUP_STATE_CON,
M2UA_MAUP_STATE_IND,
M2UA_MAUP_RETR_REQ,
M2UA_MAUP_D_RETR_CON,
M2UA_MAUP_D_RETR_IND,
M2UA_MAUP_D_RETR_COMPL,
M2UA_MAUP_CONG_IND,
M2UA_MAUP_DATA_ACK
} |
| MTP2 User Adaption = MAUP messages. More...
|
|
enum | {
M2UA_ASPSM_RESERVED,
M2UA_ASPSM_UP,
M2UA_ASPSM_DOWN,
M2UA_ASPSM_BEAT,
M2UA_ASPSM_UP_ACK,
M2UA_ASPSM_DOWN_ACK,
M2UA_ASPSM_BEAT_ACK
} |
| Application Server Process State Maintaenance (ASPSM) messages. More...
|
|
enum | {
M2UA_ASPTM_RESERVED,
M2UA_ASPTM_ACTIV,
M2UA_ASPTM_INACTIV,
M2UA_ASPTM_ACTIV_ACK,
M2UA_ASPTM_INACTIV_ACK
} |
| Application Server Process Traffic Maintaenance (ASPTM) messages. More...
|
|
enum | { M2UA_MGMT_ERROR,
M2UA_MGMT_NTFY
} |
| Management (MGMT) messages. More...
|
|
enum | {
M2UA_IIM_RESERVED,
M2UA_IIM_REG_REQ,
M2UA_IIM_REG_RSP,
M2UA_IIM_DEREG_REQ,
M2UA_IIM_DEREG_RSP
} |
| Interface Identifier Management (IIM) Messages. More...
|
|
enum | {
__m2ua_tag_start = 767,
M2UA_TAG_DATA,
M2UA_TAG_DATA_TTC,
M2UA_TAG_STATE_REQ,
M2UA_TAG_STATE_EVENT,
M2UA_TAG_CONG_STATUS,
M2UA_TAG_DISC_STATUS,
M2UA_TAG_ACTION,
M2UA_TAG_SEQ_NO,
M2UA_TAG_RETR_RES,
M2UA_TAG_LNK_KEY,
M2UA_TAG_L_LNK_KEY_ID,
M2UA_TAG_SDT,
M2UA_TAG_SDL,
M2UA_TAG_REG_RES,
M2UA_TAG_RES_STATUS,
M2UA_TAG_DEREG_RES,
M2UA_TAG_DEREG_STATUS
} |
| Tag Values for M2UA. More...
|
|
enum | {
M2UA_STATUS_LPO_SET,
M2UA_STATUS_LPO_CLEAR,
M2UA_STATUS_EMER_SET,
M2UA_STATUS_EMER_CLEAR,
M2UA_STATUS_FLUSH_BUFFERS,
M2UA_STATUS_CONTINUE,
M2UA_STATUS_CLEAR_RTB,
M2UA_STATUS_AUDIT,
M2UA_STATUS_CONG_CLEAR,
M2UA_STATUS_CONG_ACCEPT,
M2UA_STATUS_CONG_DISCARD
} |
| 3.3.1.5 State Request More...
|
|
enum | {
__m2ua_event_dummy,
M2UA_EVENT_RPO_ENTER,
M2UA_EVENT_RPO_EXIT,
M2UA_EVENT_LPO_ENTER,
M2UA_EVENT_LPO_EXIT
} |
| 3.3.1.7 State Indication More...
|
|
enum | { M2UA_LEVEL_NONE,
M2UA_LEVEL_1,
M2UA_LEVEL_2,
M2UA_LEVEL_3
} |
| 3.3.1.8 Congestion Indication More...
|
|
enum | { M2UA_ACTION_RTRV_BSN,
M2UA_ACTION_RTRV_MSGS
} |
| 3.3.1.9 Retrieval Request More...
|
|
enum | { M2UA_RESULT_SUCCESS,
M2UA_RESULT_FAILURE
} |
| 3.3.1.10 Retrieval Confirm More...
|
|
enum | { M2UA_TRA_OVERRIDE = 1,
M2UA_TRA_LOAD_SHARE = 2,
M2UA_TRA_BROADCAST = 3
} |
| 3.3.2.7 ASP Active (ASPAC) More...
|
|
enum | {
__m2ua_err_unused,
M2UA_ERR_INV_VER,
M2UA_ERR_INV_INT_IDENT,
M2UA_ERR_UNS_MSG_CLASS,
M2UA_ERR_UNS_MSG_TYPE,
M2UA_ERR_UNS_TRA_MODE,
M2UA_ERR_UNE_MSG,
M2UA_ERR_PROTO_ERROR,
M2UA_ERR_UNS_INT_IDENT_T,
M2UA_ERR_INV_STR_IDENT,
M2UA_ERR_UNUSED1,
M2UA_ERR_UNUSED2,
M2UA_ERR_UNUSED3,
M2UA_ERR_REFUSED,
M2UA_ERR_ASP_IDENT_REQ,
M2UA_ERR_INV_ASP_IDENT,
M2UA_ERR_ASP_ACT_FOR_IDENT,
M2UA_ERR_INV_PARAM_VAL,
M2UA_ERR_PARAM_FIELD_ERR,
M2UA_ERR_UNEXP_PARAM,
M2UA_ERR_UNUSED4,
M2UA_ERR_UNUSED5,
M2UA_ERR_MISSING_PARAM
} |
| 3.3.3.1 Error (ERR) More...
|
|
enum | { M2UA_STP_AS_STATE_CHG = 1,
M2UA_STP_OTHER = 2
} |
| 3.3.3.2 Notify (NTFY) More...
|
|
enum | {
M2UA_STP_AS_INACTIVE = 2,
M2UA_STP_AS_ACTIVE = 3,
M2UA_STP_AS_PENDING = 4,
M2UA_STP_O_INSUFF_ASP_RES = 1,
M2UA_STP_O_ALT_ASP_ACTIVR = 2,
M2UA_STP_O_ASP_FAILURE = 3
} |
|
enum | {
M2UA_REG_SUCC,
M2UA_REG_ERR_UNK,
M2UA_REG_ERR_INV_SDLI,
M2UA_REG_ERR_INV_SDTI,
M2UA_REG_ERR_INV_LNK_KEY,
M2UA_REG_ERR_PERM_DENIED,
M2UA_REG_ERR_OVERLAP_KEY,
M2UA_REG_ERR_LNK_KEY_NOT_PROV,
M2UA_REG_ERR_INSUFF_RES
} |
| 3.3.4.3 Registration Response (REG RSP) More...
|
|
enum | {
M2UA_DEREG_SUCC,
M2UA_DEREG_ERR_UNK,
M2UA_DEREG_ERR_INV_IDENT,
M2UA_DEREG_ERR_PERM_DENIED,
M2UA_DEREG_ERR_NOT_REG
} |
| 3.3.4.4 De-Registration Response (DEREG RSP) More...
|
|
◆ M2UA_SPARE
◆ M2UA_VERSION
Types found in the M2UA RFC 3331.
◆ anonymous enum
Enumerator |
---|
M2UA_CLS_MGMT | |
M2UA_CLS_TRANS | |
M2UA_CLS_SSNM | |
M2UA_CLS_ASPSM | |
M2UA_CLS_ASPTM | |
M2UA_CLS_QPTM | |
M2UA_CLS_MAUP | |
M2UA_CLS_SUA_LESS | |
M2UA_CLS_SUA_CONN | |
M2UA_CLS_RKM | |
M2UA_CLS_IIM | |
◆ anonymous enum
MTP2 User Adaption = MAUP messages.
Enumerator |
---|
M2UA_MAUP_RESERVED | |
M2UA_MAUP_DATA | |
M2UA_MAUP_EST_REQ | |
M2UA_MAUP_EST_CON | |
M2UA_MAUP_REL_REQ | |
M2UA_MAUP_REL_CON | |
M2UA_MAUP_REL_IND | |
M2UA_MAUP_STATE_REQ | |
M2UA_MAUP_STATE_CON | |
M2UA_MAUP_STATE_IND | |
M2UA_MAUP_RETR_REQ | |
M2UA_MAUP_D_RETR_CON | |
M2UA_MAUP_D_RETR_IND | |
M2UA_MAUP_D_RETR_COMPL | |
M2UA_MAUP_CONG_IND | |
M2UA_MAUP_DATA_ACK | |
◆ anonymous enum
3.3.1.9 Retrieval Request
Enumerator |
---|
M2UA_ACTION_RTRV_BSN | |
M2UA_ACTION_RTRV_MSGS | |
◆ anonymous enum
3.3.1.10 Retrieval Confirm
Enumerator |
---|
M2UA_RESULT_SUCCESS | |
M2UA_RESULT_FAILURE | |
◆ anonymous enum
3.3.2.7 ASP Active (ASPAC)
Enumerator |
---|
M2UA_TRA_OVERRIDE | |
M2UA_TRA_LOAD_SHARE | |
M2UA_TRA_BROADCAST | |
◆ anonymous enum
3.3.3.1 Error (ERR)
Enumerator |
---|
__m2ua_err_unused | |
M2UA_ERR_INV_VER | |
M2UA_ERR_INV_INT_IDENT | |
M2UA_ERR_UNS_MSG_CLASS | |
M2UA_ERR_UNS_MSG_TYPE | |
M2UA_ERR_UNS_TRA_MODE | |
M2UA_ERR_UNE_MSG | |
M2UA_ERR_PROTO_ERROR | |
M2UA_ERR_UNS_INT_IDENT_T | |
M2UA_ERR_INV_STR_IDENT | |
M2UA_ERR_UNUSED1 | |
M2UA_ERR_UNUSED2 | |
M2UA_ERR_UNUSED3 | |
M2UA_ERR_REFUSED | |
M2UA_ERR_ASP_IDENT_REQ | |
M2UA_ERR_INV_ASP_IDENT | |
M2UA_ERR_ASP_ACT_FOR_IDENT | |
M2UA_ERR_INV_PARAM_VAL | |
M2UA_ERR_PARAM_FIELD_ERR | |
M2UA_ERR_UNEXP_PARAM | |
M2UA_ERR_UNUSED4 | |
M2UA_ERR_UNUSED5 | |
M2UA_ERR_MISSING_PARAM | |
◆ anonymous enum
3.3.3.2 Notify (NTFY)
Enumerator |
---|
M2UA_STP_AS_STATE_CHG | |
M2UA_STP_OTHER | |
◆ anonymous enum
Enumerator |
---|
M2UA_STP_AS_INACTIVE | |
M2UA_STP_AS_ACTIVE | |
M2UA_STP_AS_PENDING | |
M2UA_STP_O_INSUFF_ASP_RES | |
M2UA_STP_O_ALT_ASP_ACTIVR | |
M2UA_STP_O_ASP_FAILURE | |
◆ anonymous enum
3.3.4.3 Registration Response (REG RSP)
Enumerator |
---|
M2UA_REG_SUCC | |
M2UA_REG_ERR_UNK | |
M2UA_REG_ERR_INV_SDLI | |
M2UA_REG_ERR_INV_SDTI | |
M2UA_REG_ERR_INV_LNK_KEY | |
M2UA_REG_ERR_PERM_DENIED | |
M2UA_REG_ERR_OVERLAP_KEY | |
M2UA_REG_ERR_LNK_KEY_NOT_PROV | |
M2UA_REG_ERR_INSUFF_RES | |
◆ anonymous enum
3.3.4.4 De-Registration Response (DEREG RSP)
Enumerator |
---|
M2UA_DEREG_SUCC | |
M2UA_DEREG_ERR_UNK | |
M2UA_DEREG_ERR_INV_IDENT | |
M2UA_DEREG_ERR_PERM_DENIED | |
M2UA_DEREG_ERR_NOT_REG | |
◆ anonymous enum
Application Server Process State Maintaenance (ASPSM) messages.
Enumerator |
---|
M2UA_ASPSM_RESERVED | |
M2UA_ASPSM_UP | |
M2UA_ASPSM_DOWN | |
M2UA_ASPSM_BEAT | |
M2UA_ASPSM_UP_ACK | |
M2UA_ASPSM_DOWN_ACK | |
M2UA_ASPSM_BEAT_ACK | |
◆ anonymous enum
Application Server Process Traffic Maintaenance (ASPTM) messages.
Enumerator |
---|
M2UA_ASPTM_RESERVED | |
M2UA_ASPTM_ACTIV | |
M2UA_ASPTM_INACTIV | |
M2UA_ASPTM_ACTIV_ACK | |
M2UA_ASPTM_INACTIV_ACK | |
◆ anonymous enum
Management (MGMT) messages.
Enumerator |
---|
M2UA_MGMT_ERROR | |
M2UA_MGMT_NTFY | |
◆ anonymous enum
Interface Identifier Management (IIM) Messages.
Enumerator |
---|
M2UA_IIM_RESERVED | |
M2UA_IIM_REG_REQ | |
M2UA_IIM_REG_RSP | |
M2UA_IIM_DEREG_REQ | |
M2UA_IIM_DEREG_RSP | |
◆ anonymous enum
Tag Values for M2UA.
Enumerator |
---|
__m2ua_tag_start | |
M2UA_TAG_DATA | |
M2UA_TAG_DATA_TTC | |
M2UA_TAG_STATE_REQ | |
M2UA_TAG_STATE_EVENT | |
M2UA_TAG_CONG_STATUS | |
M2UA_TAG_DISC_STATUS | |
M2UA_TAG_ACTION | |
M2UA_TAG_SEQ_NO | |
M2UA_TAG_RETR_RES | |
M2UA_TAG_LNK_KEY | |
M2UA_TAG_L_LNK_KEY_ID | |
M2UA_TAG_SDT | |
M2UA_TAG_SDL | |
M2UA_TAG_REG_RES | |
M2UA_TAG_RES_STATUS | |
M2UA_TAG_DEREG_RES | |
M2UA_TAG_DEREG_STATUS | |
◆ anonymous enum
3.3.1.5 State Request
Enumerator |
---|
M2UA_STATUS_LPO_SET | |
M2UA_STATUS_LPO_CLEAR | |
M2UA_STATUS_EMER_SET | |
M2UA_STATUS_EMER_CLEAR | |
M2UA_STATUS_FLUSH_BUFFERS | |
M2UA_STATUS_CONTINUE | |
M2UA_STATUS_CLEAR_RTB | |
M2UA_STATUS_AUDIT | |
M2UA_STATUS_CONG_CLEAR | |
M2UA_STATUS_CONG_ACCEPT | |
M2UA_STATUS_CONG_DISCARD | |
◆ anonymous enum
3.3.1.7 State Indication
Enumerator |
---|
__m2ua_event_dummy | |
M2UA_EVENT_RPO_ENTER | |
M2UA_EVENT_RPO_EXIT | |
M2UA_EVENT_LPO_ENTER | |
M2UA_EVENT_LPO_EXIT | |
◆ anonymous enum
3.3.1.8 Congestion Indication
Enumerator |
---|
M2UA_LEVEL_NONE | |
M2UA_LEVEL_1 | |
M2UA_LEVEL_2 | |
M2UA_LEVEL_3 | |
Definition: sccp_internal.h:42
const char * xua_class_iei_name(const struct xua_msg_class *xmc, uint16_t iei)
Definition: xua_msg.c:455
uint8_t smi
Definition: sccp_scmg.h:3
static int m3ua_rx_rkm_dereg_req(struct osmo_ss7_asp *asp, struct xua_msg *xua)
Definition: xua_rkm.c:400
Definition: xua_types.h:41
@ M3UA_RKM_REG_SUCCESS
Definition: m3ua.h:121
union osmo_xlm_prim::@31 u
enum osmo_ss7_asp_protocol proto
Definition: osmo_ss7.h:428
void xua_snm_pc_available(struct osmo_ss7_as *as, const uint32_t *aff_pc, unsigned int num_aff_pc, const char *info_str, bool available)
Definition: xua_snm.c:151
struct llist_head entry
Definition: xua_msg.h:39
int xua_msg_copy_part(struct xua_msg *xua_out, uint16_t tag_out, const struct xua_msg *xua_in, uint16_t tag_in)
Definition: xua_msg.c:111
struct osmo_prim_hdr oph
Definition: sigtran_sap.h:67
void sccp_scmg_rx_mtp_status(struct osmo_sccp_instance *inst, uint32_t dpc, enum mtp_unavail_cause cause)
Definition: sccp_scmg.c:125
struct osmo_ss7_as * as
pointer to Application Server
Definition: osmo_ss7.h:219
#define M3UA_IEI_DEREG_STATUS
Definition: m3ua.h:92
@ M3UA_RKM_DEREG_ERR_UNKNOWN
Definition: m3ua.h:138
Definition: osmo_ss7.h:300
static int msgb_append_dereg_res(struct msgb *msg, uint32_t status, uint32_t rctx)
Definition: xua_rkm.c:95
#define M3UA_IEI_SVC_IND
Definition: m3ua.h:88
uint8_t msg_type
Definition: sccp_scmg.h:0
int xua_msg_add_data(struct xua_msg *msg, uint16_t tag, uint16_t len, const uint8_t *dat)
Definition: xua_msg.c:61
struct osmo_ss7_instance::@20 cfg
osmo_ss7_as_traffic_mode
Definition: osmo_ss7.h:261
static void msgb_push_m3ua_hdr(struct msgb *msg, uint8_t msg_class, uint8_t msg_type)
Definition: xua_rkm.c:63
@ M3UA_ERR_INVAL_ROUT_CTX
Definition: m3ua.h:171
struct osmo_fsm_inst * fi
AS FSM.
Definition: osmo_ss7.h:306
int xua_msg_free_tag(struct xua_msg *xua, uint16_t tag)
Definition: xua_msg.c:97
#define M3UA_RKM_DEREG_REQ
Definition: m3ua.h:63
void xua_snm_rx_daud(struct osmo_ss7_asp *asp, struct xua_msg *xua)
Definition: xua_snm.c:261
int msgb_t16l16vp_put_u32(struct msgb *msg, uint16_t tag, uint32_t val)
Definition: xua_msg.c:273
Definition: sccp_sap.h:170
uint32_t l_rk_id
Definition: osmo_ss7.h:255
struct osmo_ss7_route * osmo_ss7_route_create(struct osmo_ss7_route_table *rtbl, uint32_t dpc, uint32_t mask, const char *linkset_name)
Create a new route in the given routing table.
Definition: osmo_ss7.c:787
uint8_t data[0]
Definition: xua_types.h:44
const struct value_string m3ua_rkm_reg_status_vals[]
Definition: xua_rkm.c:35
uint32_t pc
Definition: sccp_sap.h:174
static void append_to_buf(char *buf, bool *comma, const char *fmt,...)
Definition: xua_msg.c:514
#define OSMO_SCCP_ADDR_T_PC
Definition: sccp_sap.h:50
uint32_t npi
Definition: sccp_sap.h:165
#define SUA_IEI_ROUTE_CTX
Definition: sua.h:83
const char * xua_msg_part_get_str(const struct xua_msg_part *part)
Definition: xua_msg.c:310
Definition: osmo_ss7.h:251
struct xua_msg * xua_from_msg(const int version, uint16_t len, uint8_t *data)
Definition: xua_msg.c:151
static int m3ua_rx_rkm_reg_rsp(struct osmo_ss7_asp *asp, struct xua_msg *xua)
Definition: xua_rkm.c:450
#define M3UA_SNM_DUNA
Definition: m3ua.h:42
uint32_t dpc
Definition: m3ua.h:1
uint32_t presence
Definition: sccp_sap.h:171
@ M3UA_RKM_REG_ERR_CANT_SUPP_UNQ_RT
Definition: m3ua.h:127
struct in_addr v4
Definition: sccp_sap.h:177
struct osmo_xlm_prim_rk_reg rk_reg
Definition: sigtran_sap.h:71
@ OSMO_SS7_ASP_PROT_M3UA
Definition: osmo_ss7.h:280
struct msgb * xua_to_msg(const int version, struct xua_msg *xua)
Definition: xua_msg.c:203
enum osmo_ss7_as_traffic_mode traf_mode
Definition: sigtran_sap.h:53
uint32_t status
Definition: sigtran_sap.h:56
@ M3UA_RKM_REG_ERR_INVAL_RKEY
Definition: m3ua.h:125
#define M3UA_MSGC_RKM
Definition: m3ua.h:34
#define SUA_RI_SSN_PC
Definition: sua.h:129
bool rkm_dyn_allocated
Were we dynamically allocated by RKM?
Definition: osmo_ss7.h:309
@ OSMO_XLM_PRIM_M_RK_DEREG
Definition: sigtran_sap.h:31
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].
Definition: sua.c:864
#define SUA_RI_GT
Definition: sua.h:128
#define SUA_IEI_IPv6
Definition: sua.h:126
static void xua_snm_pc_available_to_sccp(struct osmo_sccp_instance *sccp, const uint32_t *aff_pc, unsigned int num_aff_pc, bool available)
Definition: xua_snm.c:120
int msgb_t16l16vp_put_u32(struct msgb *msg, uint16_t tag, uint32_t val)
Definition: xua_msg.c:273
uint32_t pc
Definition: osmo_ss7.h:257
static int msgb_append_reg_res(struct msgb *msg, uint32_t local_rk_id, uint32_t status, uint32_t rctx)
Definition: xua_rkm.c:78
enum osmo_ss7_as_traffic_mode mode
Definition: osmo_ss7.h:322
const char * xua_class_msg_name(const struct xua_msg_class *xmc, uint16_t msg_type)
Definition: xua_msg.c:443
uint32_t xua_msg_get_u32(const struct xua_msg *xua, uint16_t iei)
Definition: xua_msg.c:292
const struct xua_msg_class * class[256]
Definition: xua_msg.h:60
#define SUA_IEI_USER_CAUSE
Definition: sua.h:108
int osmo_ss7_asp_send(struct osmo_ss7_asp *asp, struct msgb *msg)
send a fully encoded msgb via a given ASP
Definition: osmo_ss7.c:2125
uint8_t * dat
Definition: xua_msg.h:43
osmo_static_assert(M3UA_ERR_INVAL_ROUT_CTX==SUA_ERR_INVAL_ROUT_CTX, _err_rctx)
int osmo_ss7_as_add_asp(struct osmo_ss7_as *as, const char *asp_name)
Add given ASP to given AS.
Definition: osmo_ss7.c:1043
struct osmo_ss7_instance * inst
Definition: osmo_ss7.h:390
@ M3UA_RKM_REG_ERR_UNKNOWN
Definition: m3ua.h:122
bool permit_dyn_rkm_alloc
Definition: osmo_ss7.h:103
bool osmo_ss7_as_tmode_compatible_xua(struct osmo_ss7_as *as, uint32_t m3ua_tmt)
Definition: osmo_ss7.c:2390
struct osmo_ss7_as::@25 cfg
@ OSMO_SS7_ASP_ROLE_SG
Definition: osmo_ss7.h:381
uint8_t version
Definition: xua_types.h:32
#define OSMO_SCCP_ADDR_T_IPv4
Definition: sccp_sap.h:52
const struct value_string * iei_names
Definition: xua_msg.h:51
void sccp_scmg_rx_ssn_prohibited(struct osmo_sccp_instance *inst, uint32_t dpc, uint32_t ssn, uint32_t smi)
Definition: sccp_scmg.c:58
#define SUA_IEI_GT
Definition: sua.h:121
struct in6_addr v6
Definition: sccp_sap.h:178
#define M3UA_IEI_NET_APPEAR
Definition: m3ua.h:79
static void sua_snm_ssn_available(struct osmo_ss7_as *as, uint32_t aff_pc, uint32_t aff_ssn, const uint32_t *smi, const char *info_str, bool available)
Definition: xua_snm.c:193
uint8_t data[0]
Definition: xua_types.h:5
const struct value_string mtp_si_vals[]
Definition: osmo_ss7_vty.c:1011
struct xua_msg * xua_from_nested(struct xua_msg_part *outer)
Definition: xua_msg.c:186
void xua_snm_rx_dava(struct osmo_ss7_asp *asp, struct osmo_ss7_as *as, struct xua_msg *xua)
Definition: xua_snm.c:341
#define OSMO_SCCP_ADDR_T_SSN
Definition: sccp_sap.h:51
#define M3UA_VERSION
Definition: m3ua.h:24
#define M3UA_IEI_LOC_RKEY_ID
Definition: m3ua.h:86
static struct osmo_ss7_as * find_single_as_for_asp(const struct osmo_ss7_asp *asp)
Definition: xua_shared.c:40
struct osmo_xlm_prim_rk_dereg rk_dereg
Definition: sigtran_sap.h:72
Definition: osmo_ss7.h:73
#define OSMO_SCCP_ADDR_T_GT
Definition: sccp_sap.h:49
#define M3UA_RKM_DEREG_RSP
Definition: m3ua.h:64
const char * osmo_ss7_pointcode_print(const struct osmo_ss7_instance *inst, uint32_t pc)
Definition: osmo_ss7.c:297
uint32_t msg_length
Definition: xua_types.h:36
@ M3UA_RKM_REG_ERR_RKEY_NOT_PROVD
Definition: m3ua.h:128
struct xua_msg * xua_from_nested(struct xua_msg_part *outer)
Definition: xua_msg.c:186
static void xua_snm_upu(struct osmo_ss7_as *as, uint32_t dpc, uint16_t user, uint16_t cause, const char *info_str)
Definition: xua_snm.c:228
static int handle_rkey_dereg_resp(struct osmo_ss7_asp *asp, struct xua_msg *inner)
Definition: xua_rkm.c:474
@ M3UA_RKM_REG_ERR_INVAL_DPC
Definition: m3ua.h:123
@ OSMO_SCCP_RI_SSN_PC
Definition: sccp_sap.h:60
enum osmo_ss7_as_traffic_mode osmo_ss7_tmode_from_xua(uint32_t in)
Definition: osmo_ss7.c:2376
#define SUA_SNM_DUNA
Definition: sua.h:43
struct xua_msg_part * xua_msg_find_tag(const struct xua_msg *msg, uint16_t tag)
Definition: xua_msg.c:86
uint32_t xua_msg_get_u32(const struct xua_msg *xua, uint16_t iei)
Definition: xua_msg.c:292
bool mode_set_by_vty
Definition: osmo_ss7.h:324
@ M3UA_RKM_REG_ERR_UNSUPP_TRAF_MODE
Definition: m3ua.h:131
bool osmo_ss7_as_has_asp(const struct osmo_ss7_as *as, const struct osmo_ss7_asp *asp)
Determine if given AS contains ASP.
Definition: osmo_ss7.c:1122
const uint16_t * mand_ies[256]
Definition: xua_msg.h:52
#define M3UA_IEI_TRAF_MODE_TYP
Definition: m3ua.h:70
uint16_t len
Definition: xua_types.h:43
@ M3UA_RKM_DEREG_ERR_PERM_DENIED
Definition: m3ua.h:140
uint8_t tt
Definition: sccp_sap.h:164
@ M3UA_TMOD_OVERRIDE
Definition: m3ua.h:176
const char * name
Definition: xua_msg.h:56
int xua_dialect_check_all_mand_ies(const struct xua_dialect *dialect, struct xua_msg *xua)
Definition: xua_msg.c:482
#define SUA_IEI_SSN
Definition: sua.h:123
struct osmo_sccp_instance * sccp
Definition: osmo_ss7.h:92
uint32_t xua_msg_part_get_u32(const struct xua_msg_part *part)
Definition: xua_msg.c:286
int event
Definition: xua_msg.h:66
#define M3UA_IEI_ORIG_PC
Definition: m3ua.h:89
const char * xua_msg_get_str(const struct xua_msg *xua, uint16_t iei)
Definition: xua_msg.c:325
Definition: xua_types.h:31
struct osmo_ss7_as * osmo_ss7_as_find_or_create(struct osmo_ss7_instance *inst, const char *name, enum osmo_ss7_asp_protocol proto)
Find or Create Application Server.
Definition: osmo_ss7.c:1004
@ OSMO_XLM_PRIM_M_RK_REG
Definition: sigtran_sap.h:30
char * name
Definition: osmo_ss7.h:426
@ M3UA_RKM_DEREG_ERR_INVAL_RCTX
Definition: m3ua.h:139
void sccp_scmg_rx_mtp_resume(struct osmo_sccp_instance *inst, uint32_t dpc)
brief MTP -> SNM (MTP-RESUME.ind) - ability of providing the MTP service Q.714 5.2....
Definition: sccp_scmg.c:102
@ MTP_SI_SCCP
Definition: mtp.h:10
#define M3UA_IEI_REG_STATUS
Definition: m3ua.h:91
static int handle_rkey_reg(struct osmo_ss7_asp *asp, struct xua_msg *inner, struct msgb *resp, struct osmo_ss7_as **newly_assigned_as, unsigned int max_nas_idx, unsigned int *nas_idx)
Definition: xua_rkm.c:150
#define SUA_SNM_DAVA
Definition: sua.h:44
uint16_t tag
Definition: xua_types.h:0
char * description
Definition: osmo_ss7.h:319
uint8_t msg_class
Definition: xua_types.h:34
struct xua_common_hdr hdr
Definition: xua_msg.h:32
static int handle_rkey_reg_resp(struct osmo_ss7_asp *asp, struct xua_msg *inner)
Definition: xua_rkm.c:419
static void xua_rkm_send_reg_req(struct osmo_ss7_asp *asp, const struct osmo_ss7_routing_key *rkey, enum osmo_ss7_as_traffic_mode traf_mode)
Definition: xua_rkm.c:111
#define SUA_IEI_IPv4
Definition: sua.h:124
void osmo_ss7_route_destroy(struct osmo_ss7_route *rt)
Destroy a given SS7 route.
Definition: osmo_ss7.c:840
#define SUA_IEI_PC
Definition: sua.h:122
#define M3UA_SNM_DAVA
Definition: m3ua.h:43
int xua_msg_add_u32(struct xua_msg *xua, uint16_t iei, uint32_t val)
Definition: xua_msg.c:280
@ XUA_ASPAS_ASP_INACTIVE_IND
Definition: xua_as_fsm.h:13
enum osmo_ss7_asp_role role
Definition: osmo_ss7.h:431
osmo_static_assert(M3UA_SNM_DUNA==SUA_SNM_DUNA, _sa_duna)
int osmo_xlm_sap_down(struct osmo_ss7_asp *asp, struct osmo_prim_hdr *oph)
Definition: xua_rkm.c:560
struct xua_msg * xua_msg_alloc(void)
Definition: xua_msg.c:44
@ XUA_ASP_S_ACTIVE
Definition: xua_asp_fsm.h:6
struct osmo_fsm_inst * fi
ASP FSM.
Definition: osmo_ss7.h:393
#define SUA_RI_SSN_IP
Definition: sua.h:131
@ M3UA_RKM_DEREG_ERR_NOT_REGD
Definition: m3ua.h:141
#define MAX_NEW_AS
Definition: xua_rkm.c:147
#define M3UA_IEI_DEST_PC
Definition: m3ua.h:87
#define SUA_IEI_AFFECTED_PC
Definition: sua.h:90
struct llist_head asp_list
list of osmo_ss7_asp
Definition: osmo_ss7.h:81
struct osmo_ss7_route * osmo_ss7_route_find_dpc(struct osmo_ss7_route_table *rtbl, uint32_t dpc)
Find a SS7 route for given destination point code in given table.
Definition: osmo_ss7.c:710
int msgb_t16l16vp_put(struct msgb *msg, uint16_t tag, uint16_t len, const uint8_t *data)
Definition: xua_msg.c:247
void xua_msg_free(struct xua_msg *msg)
Definition: xua_msg.c:56
struct osmo_ss7_route_table * rtable_system
Definition: osmo_ss7.h:90
#define M3UA_IEI_USER_CAUSE
Definition: m3ua.h:80
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.
Definition: m3ua.c:875
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.
Definition: sua.c:886
#define M3UA_SNM_DAUD
Definition: m3ua.h:44
void xua_part_add_gt(struct msgb *msg, const struct osmo_sccp_gt *gt)
Definition: xua_msg.c:333
#define M3UA_IEI_ROUT_KEY
Definition: m3ua.h:83
#define M3UA_IEI_INFO_STRING
Definition: m3ua.h:66
char digits[32]
Definition: sccp_sap.h:167
@ M3UA_RKM_REG_ERR_RKEY_CHG_REFUSED
Definition: m3ua.h:132
const struct value_string * msgt_names
Definition: xua_msg.h:50
uint32_t route_ctx
Definition: sigtran_sap.h:60
struct llist_head as_list
list of osmo_ss7_as
Definition: osmo_ss7.h:79
struct llist_head headers
Definition: xua_msg.h:35
void xua_snm_rx_dupu(struct osmo_ss7_asp *asp, struct osmo_ss7_as *as, struct xua_msg *xua)
Definition: xua_snm.c:376
#define SUA_IEI_SMI
Definition: sua.h:113
static void xua_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_str, bool available)
Definition: xua_snm.c:87
void sccp_scmg_rx_mtp_pause(struct osmo_sccp_instance *inst, uint32_t dpc)
brief MTP -> SNM (MTP-PAUSE.ind) - inability to providing MTP service Q.714 5.2.2
Definition: sccp_scmg.c:79
struct osmo_ss7_route * osmo_ss7_route_lookup(struct osmo_ss7_instance *inst, uint32_t dpc)
Find a SS7 route for given destination point code in given SS7.
Definition: osmo_ss7.c:751
int osmo_ss7_as_del_asp(struct osmo_ss7_as *as, const char *asp_name)
Delete given ASP from given AS.
Definition: osmo_ss7.c:1072
Definition: sccp_sap.h:162
char * xua_msg_dump(struct xua_msg *xua, const struct xua_dialect *dialect)
Definition: xua_msg.c:527
void xua_asp_send_xlm_prim(struct osmo_ss7_asp *asp, struct osmo_xlm_prim *prim)
Definition: xua_asp_fsm.c:106
static void xua_tx_upu(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)
Definition: xua_snm.c:103
int osmo_ss7_tmode_to_xua(enum osmo_ss7_as_traffic_mode tmod)
Definition: osmo_ss7.c:2362
#define SUA_SNM_DAUD
Definition: sua.h:45
uint8_t msg_class
Definition: xua_types.h:2
static int m3ua_rx_rkm_reg_req(struct osmo_ss7_asp *asp, struct xua_msg *xua)
Definition: xua_rkm.c:292
uint32_t xua_msg_part_get_u32(const struct xua_msg_part *part)
Definition: xua_msg.c:286
uint16_t tag
Definition: xua_msg.h:41
struct xua_msg_part * xua_msg_find_tag(const struct xua_msg *xua, uint16_t tag)
Definition: xua_msg.c:86
@ M3UA_RKM_REG_ERR_PERM_DENIED
Definition: m3ua.h:126
#define SUA_ERR_INVAL_ROUT_CTX
Definition: sua.h:157
bool mode_set_by_peer
Definition: osmo_ss7.h:326
@ M3UA_TMOD_BCAST
Definition: m3ua.h:178
@ OSMO_SS7_ASP_PROT_SUA
Definition: osmo_ss7.h:279
static int xua_from_msg_common(struct xua_msg *msg, const uint8_t *data, uint16_t pos, uint16_t len)
Definition: xua_msg.c:123
struct llist_head list
entry in 'ref osmo_ss7_instance.as_list
Definition: osmo_ss7.h:302
struct msgb * m3ua_msgb_alloc(const char *name)
Definition: m3ua.c:316
#define M3UA_IEI_AFFECTED_PC
Definition: m3ua.h:74
uint32_t nai
Definition: sccp_sap.h:166
uint8_t msg_class
Definition: xua_msg.h:64
bool osmo_ss7_asp_active(const struct osmo_ss7_asp *asp)
Definition: osmo_ss7.c:1655
struct osmo_ss7_asp::@27 cfg
struct osmo_ss7_routing_key routing_key
Definition: osmo_ss7.h:321
#define M3UA_RKM_REG_RSP
Definition: m3ua.h:62
@ M3UA_RKM_DEREG_SUCCESS
Definition: m3ua.h:137
const uint32_t * xua_msg_get_u32p(const struct xua_msg *xua, uint16_t iei, uint32_t *out)
Definition: xua_msg.c:301
static const char * osmo_ss7_as_traffic_mode_name(enum osmo_ss7_as_traffic_mode mode)
Definition: osmo_ss7.h:272
uint16_t len
Definition: xua_types.h:1
struct osmo_ss7_as * osmo_ss7_as_find_by_rctx(struct osmo_ss7_instance *inst, uint32_t rctx)
Find Application Server by given routing context.
Definition: osmo_ss7.c:934
#define M3UA_RKM_REG_REQ
Definition: m3ua.h:61
union osmo_sccp_addr::@29 ip
#define SUA_ERR_NO_CONFGD_AS_FOR_ASP
Definition: sua.h:158
int osmo_ss7_asp_get_log_subsys(const struct osmo_ss7_asp *asp)
Get the logging subsystem for a given ASP.
Definition: osmo_ss7.c:2438
int xua_msg_add_sccp_addr(struct xua_msg *xua, uint16_t iei, const struct osmo_sccp_addr *addr)
Definition: xua_msg.c:371
@ M3UA_RKM_REG_ERR_UNSUPP_RK_PARAM
Definition: m3ua.h:130
Definition: osmo_ss7.h:207
static int m3ua_rx_rkm_dereg_rsp(struct osmo_ss7_asp *asp, struct xua_msg *xua)
Definition: xua_rkm.c:503
#define M3UA_IEI_DEREG_RESULT
Definition: m3ua.h:85
int m3ua_rx_rkm(struct osmo_ss7_asp *asp, struct xua_msg *xua)
Definition: xua_rkm.c:527
static void sua_snm_ssn_available_to_sccp(struct osmo_sccp_instance *sccp, uint32_t aff_pc, uint32_t aff_ssn, uint32_t smi, bool available)
Definition: xua_snm.c:183
void xua_msg_free(struct xua_msg *msg)
Definition: xua_msg.c:56
static const char * format_affected_pcs_c(void *ctx, const struct osmo_ss7_instance *s7i, const struct xua_msg_part *ie_aff_pc)
Definition: xua_snm.c:45
int osmo_ss7_find_free_rctx(struct osmo_ss7_instance *inst)
Definition: osmo_ss7.c:105
const char * name
Definition: xua_msg.h:49
#define OSMO_SCCP_ADDR_T_IPv6
Definition: sccp_sap.h:53
@ M3UA_TMOD_LOADSHARE
Definition: m3ua.h:177
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].
Definition: m3ua.c:852
struct osmo_ss7_routing_key key
Definition: sigtran_sap.h:52
void osmo_xua_msg_tall_ctx_init(void *ctx)
Definition: xua_msg.c:39
#define LOGPASP(asp, subsys, level, fmt, args ...)
Definition: osmo_ss7.h:488
uint8_t spare
Definition: xua_types.h:33
static unsigned int get_all_rctx_for_asp(uint32_t *rctx, unsigned int rctx_size, struct osmo_ss7_asp *asp, struct osmo_ss7_as *excl_as)
Definition: xua_snm.c:66
@ M3UA_RKM_DEREG_ERR_ASP_ACTIVE
Definition: m3ua.h:142
uint16_t tag
Definition: xua_types.h:42
struct osmo_xlm_prim * xua_xlm_prim_alloc(enum osmo_xlm_prim_type prim_type, enum osmo_prim_operation op)
Definition: xua_asp_fsm.c:91
char * xua_hdr_dump(struct xua_msg *xua, const struct xua_dialect *dialect)
Definition: xua_msg.c:467
const char * xua_msg_get_str(const struct xua_msg *xua, uint16_t iei)
Definition: xua_msg.c:325
void xua_rkm_cleanup_dyn_as_for_asp(struct osmo_ss7_asp *asp)
Definition: xua_rkm.c:587
Definition: osmo_ss7.h:387
@ OSMO_SS7_ASP_ROLE_ASP
Definition: osmo_ss7.h:380
int log_subsys
Definition: xua_msg.h:59
#define M3UA_IEI_REG_RESULT
Definition: m3ua.h:84
@ OSMO_SCCP_RI_GT
Definition: sccp_sap.h:59
void sccp_scmg_rx_ssn_allowed(struct osmo_sccp_instance *inst, uint32_t dpc, uint32_t ssn, uint32_t smi)
Definition: sccp_scmg.c:40
uint8_t msg_type
Definition: xua_types.h:35
static int handle_rkey_dereg(struct osmo_ss7_asp *asp, uint32_t rctx, struct msgb *resp)
Definition: xua_rkm.c:340
uint8_t msg_type
Definition: xua_msg.h:65
@ M3UA_ERR_NO_CONFGD_AS_FOR_ASP
Definition: m3ua.h:172
Definition: sigtran_sap.h:66
@ M3UA_RKM_REG_ERR_RKEY_ALRDY_REGD
Definition: m3ua.h:133
uint32_t status
Definition: sigtran_sap.h:63
uint32_t context
Definition: osmo_ss7.h:254
uint16_t len
Definition: xua_msg.h:42
#define LOGPAS(as, subsys, level, fmt, args ...)
Definition: osmo_ss7.h:490
void osmo_ss7_as_destroy(struct osmo_ss7_as *as)
Destroy given Application Server.
Definition: osmo_ss7.c:1096
@ M3UA_RKM_REG_ERR_INVAL_NET_APPEAR
Definition: m3ua.h:124
struct osmo_sccp_gt gt
Definition: sccp_sap.h:173
uint8_t gti
Definition: sccp_sap.h:163
struct llist_head list
entry in osmo_ss7_instance::asp_list
Definition: osmo_ss7.h:389
const struct value_string m3ua_rkm_dereg_status_vals[]
Definition: xua_rkm.c:52
enum osmo_sccp_routing_ind ri
Definition: sccp_sap.h:172
int xua_find_as_for_asp(struct osmo_ss7_as **as, const struct osmo_ss7_asp *asp, const struct xua_msg_part *rctx_ie)
Find the AS for given ASP + optional routing context IE.
Definition: xua_shared.c:68
char * osmo_xlm_prim_name(struct osmo_prim_hdr *oph)
Definition: sccp_sap.c:81
const uint32_t * xua_msg_get_u32p(const struct xua_msg *xua, uint16_t iei, uint32_t *out)
Definition: xua_msg.c:301
struct osmo_ss7_instance * inst
Definition: osmo_ss7.h:303
@ OSMO_SCCP_RI_SSN_IP
Definition: sccp_sap.h:61
static void xua_rkm_send_dereg_req(struct osmo_ss7_asp *asp, uint32_t route_ctx)
Definition: xua_rkm.c:133
int xua_msg_event_map(const struct xua_msg *xua, const struct xua_msg_event_map *maps, unsigned int num_maps)
Map from a xua_msg (class+type) to an event.
Definition: xua_msg.c:427
@ XUA_ASPAS_ASP_DOWN_IND
Definition: xua_as_fsm.h:14
#define SUA_IEI_INFO_STRING
Definition: sua.h:82
uint8_t version
Definition: xua_types.h:0
static void * tall_xua
Definition: xua_msg.c:36
void xua_snm_rx_duna(struct osmo_ss7_asp *asp, struct osmo_ss7_as *as, struct xua_msg *xua)
Definition: xua_snm.c:306
#define M3UA_IEI_ROUTE_CTX
Definition: m3ua.h:67
@ M3UA_RKM_REG_ERR_INSUFF_RESRC
Definition: m3ua.h:129
uint32_t ssn
Definition: sccp_sap.h:175