libosmo-sigtran  1.8.0
Osmocom SIGTRAN library
xua_internal.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <osmocom/core/tdef.h>
6 
7 struct osmo_sccp_addr;
8 struct m3ua_data_hdr;
9 
10 int sua_addr_parse_part(struct osmo_sccp_addr *out,
11  const struct xua_msg_part *param);
12 int sua_addr_parse(struct osmo_sccp_addr *out, struct xua_msg *xua, uint16_t iei);
13 
14 int sua_parse_gt(struct osmo_sccp_gt *gt, const uint8_t *data, unsigned int datalen);
15 
16 struct xua_msg *osmo_sccp_to_xua(struct msgb *msg);
17 struct msgb *osmo_sua_to_sccp(struct xua_msg *xua);
18 
19 int sua_rx_msg(struct osmo_ss7_asp *asp, struct msgb *msg);
20 
21 int sua_tx_xua_as(struct osmo_ss7_as *as, struct xua_msg *xua);
22 void sua_tx_snm_available(struct osmo_ss7_asp *asp, const uint32_t *rctx, unsigned int num_rctx,
23  const uint32_t *aff_pc, unsigned int num_aff_pc, const uint32_t *aff_ssn,
24  const uint32_t *smi, const char *info_string, bool available);
25 void sua_tx_snm_congestion(struct osmo_ss7_asp *asp, const uint32_t *rctx, unsigned int num_rctx,
26  const uint32_t *aff_pc, unsigned int num_aff_pc, const uint32_t *ssn,
27  const uint8_t cong_level, const char *info_string);
28 void sua_tx_dupu(struct osmo_ss7_asp *asp, const uint32_t *rctx, unsigned int num_rctx,
29  uint32_t dpc, uint16_t user, uint16_t cause, const char *info_str);
30 
31 struct osmo_mtp_prim *m3ua_to_xfer_ind(struct xua_msg *xua);
32 int m3ua_hmdc_rx_from_l2(struct osmo_ss7_instance *inst, struct xua_msg *xua);
33 int m3ua_tx_xua_as(struct osmo_ss7_as *as, struct xua_msg *xua);
34 void m3ua_tx_snm_available(struct osmo_ss7_asp *asp, const uint32_t *rctx, unsigned int num_rctx,
35  const uint32_t *aff_pc, unsigned int num_aff_pc,
36  const char *info_string, bool available);
37 void m3ua_tx_snm_congestion(struct osmo_ss7_asp *asp, const uint32_t *rctx, unsigned int num_rctx,
38  const uint32_t *aff_pc, unsigned int num_aff_pc,
39  const uint32_t *concerned_dpc, const uint8_t *cong_level,
40  const char *info_string);
41 void m3ua_tx_dupu(struct osmo_ss7_asp *asp, const uint32_t *rctx, unsigned int num_rctx,
42  uint32_t dpc, uint16_t user, uint16_t cause, const char *info_str);
43 
44 void xua_snm_rx_daud(struct osmo_ss7_asp *asp, struct xua_msg *xua);
45 void xua_snm_rx_duna(struct osmo_ss7_asp *asp, struct osmo_ss7_as *as, struct xua_msg *xua);
46 void xua_snm_rx_dava(struct osmo_ss7_asp *asp, struct osmo_ss7_as *as, struct xua_msg *xua);
47 void xua_snm_rx_dupu(struct osmo_ss7_asp *asp, struct osmo_ss7_as *as, struct xua_msg *xua);
48 void xua_snm_rx_scon(struct osmo_ss7_asp *asp, struct osmo_ss7_as *as, struct xua_msg *xua);
49 int m3ua_rx_msg(struct osmo_ss7_asp *asp, struct msgb *msg);
50 
51 struct msgb *m3ua_msgb_alloc(const char *name);
52 struct xua_msg *m3ua_xfer_from_data(const struct m3ua_data_hdr *data_hdr,
53  const uint8_t *data, unsigned int data_len);
54 struct m3ua_data_hdr *data_hdr_from_m3ua(struct xua_msg *xua);
56  const struct m3ua_data_hdr *mdh);
58  const struct osmo_mtp_transfer_param *param);
59 
60 
61 extern const struct xua_msg_class m3ua_msg_class_mgmt;
62 extern const struct xua_msg_class m3ua_msg_class_snm;
63 extern const struct xua_msg_class m3ua_msg_class_rkm;
64 extern const struct xua_msg_class m3ua_msg_class_aspsm;
65 extern const struct xua_msg_class m3ua_msg_class_asptm;
66 
67 extern const struct value_string m3ua_err_names[];
68 extern const struct value_string m3ua_ntfy_type_names[];
69 extern const struct value_string m3ua_ntfy_stchg_names[];
70 extern const struct value_string m3ua_ntfy_other_names[];
71 
72 struct xua_msg *m3ua_encode_notify(const struct osmo_xlm_prim_notify *npar);
73 int m3ua_decode_notify(struct osmo_xlm_prim_notify *npar, void *ctx,
74  const struct xua_msg *xua);
75 int m3ua_rx_rkm(struct osmo_ss7_asp *asp, struct xua_msg *xua);
77 
79  enum osmo_prim_operation op);
80 
81 void xua_asp_send_xlm_prim(struct osmo_ss7_asp *asp, struct osmo_xlm_prim *prim);
83  enum osmo_xlm_prim_type prim_type,
84  enum osmo_prim_operation op);
85 
86 void xua_snm_pc_available(struct osmo_ss7_as *as, const uint32_t *aff_pc,
87  unsigned int num_aff_pc, const char *info_str, bool available);
88 
90  /* 0 kept unused on purpose since it's handled specially by osmo_fsm */
95  /* This must remain the last item: */
97 };
98 
99 extern const struct osmo_tdef ss7_asp_lm_timer_defaults[SS7_ASP_LM_TIMERS_LEN];
100 
101 extern const struct value_string ss7_asp_lm_timer_names[];
102 static inline const char *ss7_asp_lm_timer_name(enum ss7_asp_lm_timer val)
103 { return get_value_string(ss7_asp_lm_timer_names, val); }
104 
105 extern struct osmo_fsm xua_default_lm_fsm;
106 extern const struct value_string m3ua_rkm_reg_status_vals[];
107 extern const struct value_string m3ua_rkm_dereg_status_vals[];
108 
109 #define CS7_STR "ITU-T Signaling System 7\n"
110 #define PC_STR "Point Code\n"
111 #define INST_STR "An instance of the SS7 stack\n"
112 
113 int xua_as_transmit_msg(struct osmo_ss7_as *as, struct msgb *msg);
114 
115 int xua_find_as_for_asp(struct osmo_ss7_as **as, const struct osmo_ss7_asp *asp,
116  const struct xua_msg_part *rctx_ie);
117 
118 int ipa_tx_xua_as(struct osmo_ss7_as *as, struct xua_msg *xua);
119 int ipa_rx_msg(struct osmo_ss7_asp *asp, struct msgb *msg, uint8_t sls);
120 
121 int osmo_isup_party_parse(char *out_digits, const uint8_t *in,
122  unsigned int in_num_bytes, bool odd);
123 int osmo_sccp_addr_parse(struct osmo_sccp_addr *out,
124  const uint8_t *addr, unsigned int addrlen);
125 int osmo_sccp_addr_encode(struct msgb *msg, const struct osmo_sccp_addr *in);
126 
127 int ss7_asp_rx_unknown(struct osmo_ss7_asp *asp, int ppid_mux, struct msgb *msg);
sua_tx_dupu
void sua_tx_dupu(struct osmo_ss7_asp *asp, const uint32_t *rctx, unsigned int num_rctx, uint32_t dpc, uint16_t user, uint16_t cause, const char *info_str)
Transmit SSNM DUPU message indicating user unavailability.
Definition: sua.c:915
sua_addr_parse
int sua_addr_parse(struct osmo_sccp_addr *out, struct xua_msg *xua, uint16_t iei)
parse SCCP address from given xUA message IE
Definition: sua.c:500
data_hdr_from_m3ua
struct m3ua_data_hdr * data_hdr_from_m3ua(struct xua_msg *xua)
Definition: m3ua.c:521
osmo_ss7_asp_use_default_lm
int osmo_ss7_asp_use_default_lm(struct osmo_ss7_asp *asp, int log_level)
Definition: xua_default_lm_fsm.c:413
lm_wait_asp_up
static void lm_wait_asp_up(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: xua_default_lm_fsm.c:184
smi
uint8_t smi
Definition: sccp_scmg.h:5
M3UA_RKM_REG_SUCCESS
@ M3UA_RKM_REG_SUCCESS
Definition: m3ua.h:121
xua_default_lm_fsm
struct osmo_fsm xua_default_lm_fsm
Definition: xua_default_lm_fsm.c:377
osmo_xlm_prim::oph
struct osmo_prim_hdr oph
Definition: sigtran_sap.h:67
osmo_xlm_prim_notify::status_info
uint16_t status_info
Definition: sigtran_sap.h:40
OSMO_XLM_PRIM_M_SCTP_RELEASE
@ OSMO_XLM_PRIM_M_SCTP_RELEASE
Definition: sigtran_sap.h:15
osmo_ss7_as
Definition: osmo_ss7.h:300
XUA_ASP_E_M_ASP_ACTIVE_REQ
@ XUA_ASP_E_M_ASP_ACTIVE_REQ
Definition: xua_asp_fsm.h:11
XUA_SAP_LM
@ XUA_SAP_LM
Definition: sigtran_sap.h:9
M3UA_NOTIFY_T_STATCHG
#define M3UA_NOTIFY_T_STATCHG
Definition: m3ua.h:107
m3ua_dh_to_xfer_param
void m3ua_dh_to_xfer_param(struct osmo_mtp_transfer_param *param, const struct m3ua_data_hdr *mdh)
Definition: m3ua.c:301
osmo_ss7_as::fi
struct osmo_fsm_inst * fi
AS FSM.
Definition: osmo_ss7.h:306
restart_asp
static void restart_asp(struct osmo_fsm_inst *fi)
Definition: xua_default_lm_fsm.c:160
osmo_sccp_addr
Definition: sccp_sap.h:183
osmo_ss7_routing_key::l_rk_id
uint32_t l_rk_id
Definition: osmo_ss7.h:255
M3UA_NOTIFY_I_AS_INACT
#define M3UA_NOTIFY_I_AS_INACT
Definition: m3ua.h:111
xua_xlm_prim_alloc
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
dpc
uint32_t dpc
Definition: m3ua.h:3
m3ua_to_xfer_ind
struct osmo_mtp_prim * m3ua_to_xfer_ind(struct xua_msg *xua)
Definition: osmo_ss7_hmrt.c:41
ss7_asp_lm_timer_defaults
const struct osmo_tdef ss7_asp_lm_timer_defaults[SS7_ASP_LM_TIMERS_LEN]
Definition: xua_default_lm_fsm.c:83
osmo_xlm_prim::rk_reg
struct osmo_xlm_prim_rk_reg rk_reg
Definition: sigtran_sap.h:71
xua_snm_rx_daud
void xua_snm_rx_daud(struct osmo_ss7_asp *asp, struct xua_msg *xua)
Definition: xua_snm.c:309
osmo_xlm_prim_rk_reg::traf_mode
enum osmo_ss7_as_traffic_mode traf_mode
Definition: sigtran_sap.h:53
osmo_xlm_prim_rk_reg::status
uint32_t status
Definition: sigtran_sap.h:56
S_ACTIVE
@ S_ACTIVE
Definition: xua_default_lm_fsm.c:53
lm_timer_cb
static int lm_timer_cb(struct osmo_fsm_inst *fi)
Definition: xua_default_lm_fsm.c:196
ipa_tx_xua_as
int ipa_tx_xua_as(struct osmo_ss7_as *as, struct xua_msg *xua)
Send a given xUA message via a given IPA "Application Server".
Definition: ipa.c:58
osmo_ss7_asp::lm_priv
void * lm_priv
Definition: osmo_ss7.h:414
osmo_ss7_asp_restart
int osmo_ss7_asp_restart(struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:721
lm_event
lm_event
Definition: xua_default_lm_fsm.c:56
osmo_xlm_prim_notify
Definition: sigtran_sap.h:37
ipa_rx_msg
int ipa_rx_msg(struct osmo_ss7_asp *asp, struct msgb *msg, uint8_t sls)
process M3UA message received from socket
Definition: ipa.c:298
osmo_ss7_as::mode
enum osmo_ss7_as_traffic_mode mode
Definition: osmo_ss7.h:322
xua_asp_send_xlm_prim
void xua_asp_send_xlm_prim(struct osmo_ss7_asp *asp, struct osmo_xlm_prim *prim)
Definition: xua_asp_fsm.c:106
m3ua_msg_class_snm
const struct xua_msg_class m3ua_msg_class_snm
Definition: m3ua.c:176
m3ua_ntfy_other_names
const struct value_string m3ua_ntfy_other_names[]
Definition: m3ua.c:94
ss7_asp_lm_timer_names
const struct value_string ss7_asp_lm_timer_names[]
Definition: xua_default_lm_fsm.c:96
xua_snm_rx_scon
void xua_snm_rx_scon(struct osmo_ss7_asp *asp, struct osmo_ss7_as *as, struct xua_msg *xua)
Definition: xua_snm.c:458
m3ua_msgb_alloc
struct msgb * m3ua_msgb_alloc(const char *name)
Definition: m3ua.c:316
sigtran_sap.h
osmo_ss7_asp::inst
struct osmo_ss7_instance * inst
Definition: osmo_ss7.h:393
lm_event_names
static const struct value_string lm_event_names[]
Definition: xua_default_lm_fsm.c:67
osmo_ss7_as::cfg
struct osmo_ss7_as::@25 cfg
OSMO_XLM_PRIM_M_NOTIFY
@ OSMO_XLM_PRIM_M_NOTIFY
Definition: sigtran_sap.h:20
sua_tx_snm_available
void sua_tx_snm_available(struct osmo_ss7_asp *asp, const uint32_t *rctx, unsigned int num_rctx, const uint32_t *aff_pc, unsigned int num_aff_pc, const uint32_t *aff_ssn, const uint32_t *smi, const char *info_string, bool available)
Transmit SSNM DUNA/DAVA message indicating [un]availability of certain point code[s].
Definition: sua.c:864
m3ua_rx_rkm
int m3ua_rx_rkm(struct osmo_ss7_asp *asp, struct xua_msg *xua)
Definition: xua_rkm.c:527
osmo_ss7_asp::quirks
uint32_t quirks
Definition: osmo_ss7.h:441
data
uint8_t data[0]
Definition: xua_types.h:7
LM_E_NOTIFY_IND
@ LM_E_NOTIFY_IND
Definition: xua_default_lm_fsm.c:59
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.
Definition: m3ua.c:493
S_WAIT_ASP_UP
@ S_WAIT_ASP_UP
Definition: xua_default_lm_fsm.c:47
SS7_ASP_LM_T_WAIT_NOTIFY
@ SS7_ASP_LM_T_WAIT_NOTIFY
Definition: xua_internal.h:92
xua_internal.h
osmo_isup_party_parse
int osmo_isup_party_parse(char *out_digits, const uint8_t *in, unsigned int in_num_bytes, bool odd)
Parse ISUP style address of BCD digets.
Definition: sccp2sua.c:73
M3UA_NOTIFY_I_AS_PEND
#define M3UA_NOTIFY_I_AS_PEND
Definition: m3ua.h:113
osmo_ss7_instance
Definition: osmo_ss7.h:73
default_layer_manager
static const struct osmo_xua_layer_manager default_layer_manager
Definition: xua_default_lm_fsm.c:409
osmo_ss7_as::asps
struct osmo_ss7_asp * asps[16]
Definition: osmo_ss7.h:334
osmo_xlm_sap_down
int osmo_xlm_sap_down(struct osmo_ss7_asp *asp, struct osmo_prim_hdr *oph)
Definition: xua_rkm.c:560
lm_fsm_state_chg
#define lm_fsm_state_chg(fi, NEXT_STATE)
Definition: xua_default_lm_fsm.c:120
sua_tx_xua_as
int sua_tx_xua_as(struct osmo_ss7_as *as, struct xua_msg *xua)
Send a given xUA message via a given SUA Application Server.
Definition: sua.c:303
lm_idle
static void lm_idle(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: xua_default_lm_fsm.c:171
OSMO_XLM_PRIM_M_AS_ACTIVE
@ OSMO_XLM_PRIM_M_AS_ACTIVE
Definition: sigtran_sap.h:26
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].
Definition: m3ua.c:854
lm_state
lm_state
Definition: xua_default_lm_fsm.c:43
ss7_asp_lm_timer_name
static const char * ss7_asp_lm_timer_name(enum ss7_asp_lm_timer val)
Definition: xua_internal.h:102
find_first_as_in_asp
static struct osmo_ss7_as * find_first_as_in_asp(struct osmo_ss7_asp *asp)
Definition: xua_default_lm_fsm.c:126
m3ua_err_names
const struct value_string m3ua_err_names[]
Definition: m3ua.c:56
osmo_ss7_asp::lm
const struct osmo_xua_layer_manager * lm
Definition: osmo_ss7.h:413
osmo_xlm_prim_type
osmo_xlm_prim_type
Definition: sigtran_sap.h:13
ss7_asp_lm_timer
ss7_asp_lm_timer
Definition: xua_internal.h:89
m3ua_encode_notify
struct xua_msg * m3ua_encode_notify(const struct osmo_xlm_prim_notify *npar)
Definition: m3ua.c:381
lm_event_map
static const struct osmo_prim_event_map lm_event_map[]
Definition: xua_default_lm_fsm.c:364
lm_active
static void lm_active(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: xua_default_lm_fsm.c:301
xua_find_as_for_asp
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
sua_rx_msg
int sua_rx_msg(struct osmo_ss7_asp *asp, struct msgb *msg)
process SUA message received from socket
Definition: sua.c:675
xua_as_transmit_msg
int xua_as_transmit_msg(struct osmo_ss7_as *as, struct msgb *msg)
Definition: xua_as_fsm.c:152
OSMO_XLM_PRIM_M_SCTP_ESTABLISH
@ OSMO_XLM_PRIM_M_SCTP_ESTABLISH
Definition: sigtran_sap.h:14
OSMO_XLM_PRIM_M_RK_REG
@ OSMO_XLM_PRIM_M_RK_REG
Definition: sigtran_sap.h:30
osmo_ss7_asp::name
char * name
Definition: osmo_ss7.h:429
OSMO_XLM_PRIM_M_AS_INACTIVE
@ OSMO_XLM_PRIM_M_AS_INACTIVE
Definition: sigtran_sap.h:27
osmo_sccp_to_xua
struct xua_msg * osmo_sccp_to_xua(struct msgb *msg)
convert SCCP message to a SUA message
Definition: sccp2sua.c:1447
sua_tx_snm_congestion
void sua_tx_snm_congestion(struct osmo_ss7_asp *asp, const uint32_t *rctx, unsigned int num_rctx, const uint32_t *aff_pc, unsigned int num_aff_pc, const uint32_t *ssn, const uint8_t cong_level, const char *info_string)
Transmit SSNM SCON message indicating congestion.
Definition: sua.c:888
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.
Definition: m3ua.c:911
m3ua_msg_class_mgmt
const struct xua_msg_class m3ua_msg_class_mgmt
Definition: m3ua.c:230
m3ua_rx_msg
int m3ua_rx_msg(struct osmo_ss7_asp *asp, struct msgb *msg)
process M3UA message received from socket
Definition: m3ua.c:691
m3ua_rkm_dereg_status_vals
const struct value_string m3ua_rkm_dereg_status_vals[]
Definition: xua_rkm.c:52
osmo_ss7_as_find_by_l_rk_id
struct osmo_ss7_as * osmo_ss7_as_find_by_l_rk_id(struct osmo_ss7_instance *inst, uint32_t l_rk_id)
Find Application Server by given local routing key ID.
Definition: osmo_ss7.c:910
xua_snm_rx_duna
void xua_snm_rx_duna(struct osmo_ss7_asp *asp, struct osmo_ss7_as *as, struct xua_msg *xua)
Definition: xua_snm.c:354
osmo_xua_layer_manager
Definition: osmo_ss7.h:521
m3ua.h
sua_parse_gt
int sua_parse_gt(struct osmo_sccp_gt *gt, const uint8_t *data, unsigned int datalen)
Decode SUA Global Title according to RFC3868 Section 3.10.2.3.
Definition: sua.c:335
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)
Definition: m3ua.c:324
osmo_mtp_transfer_param
Definition: mtp_sap.h:36
osmo_xua_layer_manager::prim_cb
osmo_prim_cb prim_cb
Definition: osmo_ss7.h:524
sua_addr_parse_part
int sua_addr_parse_part(struct osmo_sccp_addr *out, const struct xua_msg_part *param)
parse SCCP address from given xUA message part
Definition: sua.c:372
osmo_ss7.h
osmo_xlm_prim::u
union osmo_xlm_prim::@33 u
xua_msg_part
Definition: xua_msg.h:38
osmo_ss7_asp::fi
struct osmo_fsm_inst * fi
ASP FSM.
Definition: osmo_ss7.h:396
lm_rkm_reg
static void lm_rkm_reg(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: xua_default_lm_fsm.c:274
lm_states
static const struct osmo_fsm_state lm_states[]
Definition: xua_default_lm_fsm.c:331
M3UA_NOTIFY_I_AS_ACT
#define M3UA_NOTIFY_I_AS_ACT
Definition: m3ua.h:112
S_RKM_REG
@ S_RKM_REG
Definition: xua_default_lm_fsm.c:51
m3ua_msg_class_asptm
const struct xua_msg_class m3ua_msg_class_asptm
Definition: m3ua.c:212
xua_msg.h
osmo_ss7_instance::as_list
struct llist_head as_list
list of osmo_ss7_as
Definition: osmo_ss7.h:79
xua_rkm_cleanup_dyn_as_for_asp
void xua_rkm_cleanup_dyn_as_for_asp(struct osmo_ss7_asp *asp)
Definition: xua_rkm.c:587
ss7_asp_rx_unknown
int ss7_asp_rx_unknown(struct osmo_ss7_asp *asp, int ppid_mux, struct msgb *msg)
Definition: osmo_ss7_asp.c:1218
lm_fsm_priv::asp
struct osmo_ss7_asp * asp
Definition: xua_default_lm_fsm.c:117
ss7_asp_lm_timer_defaults
const struct osmo_tdef ss7_asp_lm_timer_defaults[SS7_ASP_LM_TIMERS_LEN]
Definition: xua_default_lm_fsm.c:83
m3ua_ntfy_stchg_names
const struct value_string m3ua_ntfy_stchg_names[]
Definition: m3ua.c:86
osmo_sccp_gt
Definition: sccp_sap.h:175
SS7_ASP_LM_T_WAIT_ASP_UP
@ SS7_ASP_LM_T_WAIT_ASP_UP
Definition: xua_internal.h:91
OSMO_XLM_PRIM_M_AS_STATUS
@ OSMO_XLM_PRIM_M_AS_STATUS
Definition: sigtran_sap.h:19
m3ua_msg_class_aspsm
const struct xua_msg_class m3ua_msg_class_aspsm
Definition: m3ua.c:199
xua_asp_fsm.h
xua_asp_send_xlm_prim_simple
void xua_asp_send_xlm_prim_simple(struct osmo_ss7_asp *asp, enum osmo_xlm_prim_type prim_type, enum osmo_prim_operation op)
Definition: xua_asp_fsm.c:121
osmo_ss7_asp::T_defs_lm
struct osmo_tdef * T_defs_lm
Definition: osmo_ss7.h:444
lm_allstate
static void lm_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: xua_default_lm_fsm.c:322
m3ua_hmdc_rx_from_l2
int m3ua_hmdc_rx_from_l2(struct osmo_ss7_instance *inst, struct xua_msg *xua)
Definition: osmo_ss7_hmrt.c:278
SS7_ASP_LM_T_WAIT_NOTIY_RKM
@ SS7_ASP_LM_T_WAIT_NOTIY_RKM
Definition: xua_internal.h:93
osmo_ss7_as::list
struct llist_head list
entry in 'ref osmo_ss7_instance.as_list
Definition: osmo_ss7.h:302
default_lm_prim_cb
static int default_lm_prim_cb(struct osmo_prim_hdr *oph, void *_asp)
Definition: xua_default_lm_fsm.c:390
osmo_xlm_prim::notify
struct osmo_xlm_prim_notify notify
Definition: sigtran_sap.h:69
LM_E_AS_STATUS_IND
@ LM_E_AS_STATUS_IND
Definition: xua_default_lm_fsm.c:62
osmo_sccp_addr_encode
int osmo_sccp_addr_encode(struct msgb *msg, const struct osmo_sccp_addr *in)
encode a SCCP address from parsed format to wire format
Definition: sccp2sua.c:225
osmo_ss7_asp::cfg
struct osmo_ss7_asp::@27 cfg
xua_snm_pc_available
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:169
osmo_ss7_as::routing_key
struct osmo_ss7_routing_key routing_key
Definition: osmo_ss7.h:321
osmo_mtp_prim
Definition: mtp_sap.h:56
S_WAIT_NOTIFY
@ S_WAIT_NOTIFY
Definition: xua_default_lm_fsm.c:49
LM_E_SCTP_DISC_IND
@ LM_E_SCTP_DISC_IND
Definition: xua_default_lm_fsm.c:64
m3ua_rkm_reg_status_vals
const struct value_string m3ua_rkm_reg_status_vals[]
Definition: xua_rkm.c:35
m3ua_decode_notify
int m3ua_decode_notify(struct osmo_xlm_prim_notify *npar, void *ctx, const struct xua_msg *xua)
Definition: m3ua.c:410
LM_E_SCTP_EST_IND
@ LM_E_SCTP_EST_IND
Definition: xua_default_lm_fsm.c:57
lm_wait_notify
static void lm_wait_notify(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: xua_default_lm_fsm.c:247
lm_fsm_priv
Definition: xua_default_lm_fsm.c:116
S_IDLE
@ S_IDLE
Definition: xua_default_lm_fsm.c:45
osmo_sccp_addr_parse
int osmo_sccp_addr_parse(struct osmo_sccp_addr *out, const uint8_t *addr, unsigned int addrlen)
Parse wire-encoded SCCP address into osmo_sccp_addr.
Definition: sccp2sua.c:119
osmo_xlm_prim_rk_reg::key
struct osmo_ss7_routing_key key
Definition: sigtran_sap.h:52
handle_reg_conf
static int handle_reg_conf(struct osmo_fsm_inst *fi, uint32_t l_rk_id, uint32_t rctx)
Definition: xua_default_lm_fsm.c:142
xua_snm_rx_dupu
void xua_snm_rx_dupu(struct osmo_ss7_asp *asp, struct osmo_ss7_as *as, struct xua_msg *xua)
Definition: xua_snm.c:424
osmo_xlm_prim_notify::status_type
uint16_t status_type
Definition: sigtran_sap.h:39
OSMO_XLM_PRIM_M_ASP_UP
@ OSMO_XLM_PRIM_M_ASP_UP
Definition: sigtran_sap.h:22
LM_E_AS_ACTIVE_IND
@ LM_E_AS_ACTIVE_IND
Definition: xua_default_lm_fsm.c:61
xua_xlm_prim_alloc
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
osmo_ss7_asp
Definition: osmo_ss7.h:390
osmo_sua_to_sccp
struct msgb * osmo_sua_to_sccp(struct xua_msg *xua)
convert parsed SUA message to SCCP message
Definition: sccp2sua.c:1553
S
#define S(x)
Definition: xua_default_lm_fsm.c:41
xua_msg_class
Definition: xua_msg.h:48
m3ua_msg_class_rkm
const struct xua_msg_class m3ua_msg_class_rkm
Definition: m3ua.c:260
osmo_xlm_prim
Definition: sigtran_sap.h:66
xua_default_lm_fsm
struct osmo_fsm xua_default_lm_fsm
Definition: xua_default_lm_fsm.c:377
osmo_ss7_routing_key::context
uint32_t context
Definition: osmo_ss7.h:254
SS7_ASP_LM_T_WAIT_RK_REG_RESP
@ SS7_ASP_LM_T_WAIT_RK_REG_RESP
Definition: xua_internal.h:94
m3ua_data_hdr
Definition: m3ua.h:95
xua_msg
Definition: xua_msg.h:31
LM_E_ASP_UP_CONF
@ LM_E_ASP_UP_CONF
Definition: xua_default_lm_fsm.c:58
lm_fsm_timeouts
static const struct osmo_tdef_state_timeout lm_fsm_timeouts[32]
Definition: xua_default_lm_fsm.c:108
LM_E_RKM_REG_CONF
@ LM_E_RKM_REG_CONF
Definition: xua_default_lm_fsm.c:63
osmo_xlm_prim_name
char * osmo_xlm_prim_name(struct osmo_prim_hdr *oph)
Definition: sccp_sap.c:96
XUA_ASP_E_M_ASP_UP_REQ
@ XUA_ASP_E_M_ASP_UP_REQ
Definition: xua_asp_fsm.h:10
osmo_static_assert
osmo_static_assert(ARRAY_SIZE(ss7_asp_lm_timer_defaults)==(SS7_ASP_LM_TIMERS_LEN) &&ARRAY_SIZE(ss7_asp_lm_timer_names)==(SS7_ASP_LM_TIMERS_LEN), assert_ss7_asp_lm_timer_count)
m3ua_ntfy_type_names
const struct value_string m3ua_ntfy_type_names[]
Definition: m3ua.c:80
mtp_xfer_param_to_m3ua_dh
void mtp_xfer_param_to_m3ua_dh(struct m3ua_data_hdr *mdh, const struct osmo_mtp_transfer_param *param)
Definition: m3ua.c:289
sls
uint8_t sls
Definition: m3ua.h:7
SS7_ASP_LM_TIMERS_LEN
@ SS7_ASP_LM_TIMERS_LEN
Definition: xua_internal.h:96
LM_E_AS_INACTIVE_IND
@ LM_E_AS_INACTIVE_IND
Definition: xua_default_lm_fsm.c:60
xua_snm_rx_dava
void xua_snm_rx_dava(struct osmo_ss7_asp *asp, struct osmo_ss7_as *as, struct xua_msg *xua)
Definition: xua_snm.c:389
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.
Definition: m3ua.c:878
OSMO_SS7_ASP_QUIRK_NO_NOTIFY
#define OSMO_SS7_ASP_QUIRK_NO_NOTIFY
Peer SG doesn't send NTFY(AS-INACTIVE) after ASP-UP procedure.
Definition: osmo_ss7.h:460
ss7_asp_lm_timer_names
const struct value_string ss7_asp_lm_timer_names[]
Definition: xua_default_lm_fsm.c:96