libosmo-sigtran
1.7.1
Osmocom SIGTRAN library
|
static struct osmo_fsm_inst * ipa_asp_fsm_start(struct osmo_ss7_asp *asp, enum osmo_ss7_asp_role role, int log_level)
Start a new ASP finite stae machine for given ASP.
Definition: xua_asp_fsm.c:1181
@ XUA_ASP_E_SCTP_RESTART_IND
Definition: xua_asp_fsm.h:16
enum osmo_ss7_asp_protocol proto
Definition: osmo_ss7.h:428
struct osmo_prim_hdr oph
Definition: sigtran_sap.h:67
struct osmo_timer_list pong_timer
Definition: xua_asp_fsm.c:829
Definition: osmo_ss7.h:300
@ XUA_ASP_E_M_ASP_ACTIVE_REQ
Definition: xua_asp_fsm.h:11
int out_event
Definition: xua_asp_fsm.c:87
@ XUA_SAP_LM
Definition: sigtran_sap.h:9
static int get_fd_from_iafp(struct ipa_asp_fsm_priv *iafp)
Definition: xua_asp_fsm.c:841
osmo_ss7_as_traffic_mode
Definition: osmo_ss7.h:261
@ M3UA_ERR_INVAL_ROUT_CTX
Definition: m3ua.h:171
static void xua_asp_fsm_inactive_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state)
Definition: xua_asp_fsm.c:464
@ OSMO_SS7_ASP_PROT_IPA
Definition: osmo_ss7.h:281
static void ipa_asp_fsm_active(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: xua_asp_fsm.c:1027
@ XUA_ASPAS_ASP_ACTIVE_IND
Definition: xua_as_fsm.h:15
@ M3UA_ERR_UNSUPP_TRAF_MOD_TYP
Definition: m3ua.h:151
struct osmo_fsm_inst * fi
AS FSM.
Definition: osmo_ss7.h:306
@ T_WAIT_ID_ACK
Definition: xua_asp_fsm.c:836
@ XUA_ASP_E_ASPSM_BEAT
Definition: xua_asp_fsm.h:28
xua_asp_event
Definition: xua_asp_fsm.h:9
@ XUA_ASP_E_SCTP_COMM_DOWN_IND
Definition: xua_asp_fsm.h:15
struct xua_asp_fsm_priv::@34 t_ack
#define SUA_MGMT_ERR
Definition: sua.h:40
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
#define SUA_ASPSM_UP_ACK
Definition: sua.h:53
#define SUA_ASPTM_ACTIVE
Definition: sua.h:57
static void xua_asp_fsm_active_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state)
Definition: xua_asp_fsm.c:582
static const struct osmo_fsm_state ipa_asp_states[]
Definition: xua_asp_fsm.c:1098
xua_asp_state
Definition: xua_asp_fsm.h:3
@ IPA_ASP_E_ID_RESP
Definition: xua_asp_fsm.h:32
@ XUA_ASP_E_ASPTM_ASPIA
Definition: xua_asp_fsm.h:25
#define ENSURE_SG_OR_IPSP(fi, event)
Definition: xua_asp_fsm.c:386
@ IPA_ASP_S_WAIT_ID_ACK2
Definition: xua_asp_fsm.c:818
static void check_stop_t_ack(struct osmo_fsm_inst *fi, uint32_t event)
Definition: xua_asp_fsm.c:358
#define SUA_ASPSM_BEAT_ACK
Definition: sua.h:55
static void xua_asp_fsm_down(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: xua_asp_fsm.c:409
enum osmo_ss7_as_traffic_mode mode
Definition: osmo_ss7.h:322
@ XUA_ASP_S_INACTIVE
Definition: xua_asp_fsm.h:5
@ T_WAIT_ID_GET
Definition: xua_asp_fsm.c:837
ipa_asp_state
Definition: xua_asp_fsm.c:809
uint32_t xua_msg_get_u32(const struct xua_msg *xua, uint16_t iei)
Definition: xua_msg.c:292
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:2098
static void ipa_asp_fsm_wait_id_ack(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: xua_asp_fsm.c:1003
uint8_t * dat
Definition: xua_msg.h:43
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:1044
struct osmo_ss7_instance * inst
Definition: osmo_ss7.h:390
@ XUA_ASP_E_ASPSM_ASPDN_ACK
Definition: xua_asp_fsm.h:24
bool osmo_ss7_as_tmode_compatible_xua(struct osmo_ss7_as *as, uint32_t m3ua_tmt)
Definition: osmo_ss7.c:2363
struct osmo_ss7_as::@25 cfg
@ OSMO_SS7_ASP_ROLE_SG
Definition: osmo_ss7.h:381
uint8_t version
Definition: xua_types.h:32
static void xua_asp_fsm_down_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state)
Definition: xua_asp_fsm.c:404
uint8_t data[0]
Definition: xua_types.h:7
#define S(x)
Definition: xua_asp_fsm.c:34
static void xua_asp_fsm_inactive(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: xua_asp_fsm.c:469
bool ipa_id_ack_rcvd
Definition: xua_asp_fsm.c:831
#define SUA_ASPSM_BEAT
Definition: sua.h:52
@ XUA_ASP_E_ASPTM_ASPAC_ACK
Definition: xua_asp_fsm.h:22
Definition: osmo_ss7.h:73
static void ipa_asp_fsm_wait_id_ack2(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: xua_asp_fsm.c:947
@ IPA_ASP_E_ID_GET
Definition: xua_asp_fsm.h:34
static int peer_send_error(struct osmo_fsm_inst *fi, uint32_t err_code)
Definition: xua_asp_fsm.c:280
static const struct value_string xua_asp_event_names[]
Definition: xua_asp_fsm.c:46
#define M3UA_IEI_HEARDBT_DATA
Definition: m3ua.h:69
struct osmo_stream_cli * client
osmo_stream / libosmo-netif handles
Definition: osmo_ss7.h:400
@ XUA_ASP_E_ASPTM_ASPIA_ACK
Definition: xua_asp_fsm.h:26
static void dispatch_to_all_as(struct osmo_fsm_inst *fi, uint32_t event)
Definition: xua_asp_fsm.c:343
enum osmo_ss7_as_traffic_mode osmo_ss7_tmode_from_xua(uint32_t in)
Definition: osmo_ss7.c:2349
static const uint32_t evt_ack_map[_NUM_XUA_ASP_E]
Definition: xua_asp_fsm.c:333
@ XUA_ASP_E_M_ASP_INACTIVE_REQ
Definition: xua_asp_fsm.h:13
enum osmo_ss7_asp_role role
Definition: xua_asp_fsm.c:80
@ OSMO_XLM_PRIM_M_ASP_INACTIVE
Definition: sigtran_sap.h:25
struct xua_msg_part * xua_msg_find_tag(const struct xua_msg *msg, uint16_t tag)
Definition: xua_msg.c:86
bool mode_set_by_vty
Definition: osmo_ss7.h:324
const struct osmo_xua_layer_manager * lm
Definition: osmo_ss7.h:410
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:1123
osmo_xlm_prim_type
Definition: sigtran_sap.h:13
static void ipa_asp_fsm_wait_id_get(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: xua_asp_fsm.c:959
#define SUA_ASPSM_DOWN_ACK
Definition: sua.h:54
#define M3UA_IEI_TRAF_MODE_TYP
Definition: m3ua.h:70
static void ipa_pong_timer_cb(void *_fi)
Definition: xua_asp_fsm.c:1078
@ IPA_ASP_S_ACTIVE
Definition: xua_asp_fsm.c:814
@ IPA_ASP_S_WAIT_ID_GET
Definition: xua_asp_fsm.c:816
@ M3UA_TMOD_OVERRIDE
Definition: m3ua.h:176
@ XUA_ASP_E_ASPSM_ASPDN
Definition: xua_asp_fsm.h:23
static void xua_asp_fsm_active(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: xua_asp_fsm.c:587
@ _NUM_XUA_ASP_E
Definition: xua_asp_fsm.h:36
ipa_asp_fsm_t
Definition: xua_asp_fsm.c:834
struct osmo_ss7_as * osmo_ss7_as_find_by_name(struct osmo_ss7_instance *inst, const char *name)
Find Application Server by given name.
Definition: osmo_ss7.c:918
static void ipa_asp_fsm_inactive_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state)
Definition: xua_asp_fsm.c:1037
@ XUA_ASP_E_M_ASP_DOWN_REQ
Definition: xua_asp_fsm.h:12
#define SUA_IEI_ERR_CODE
Definition: sua.h:87
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
#define SUA_IEI_ASP_ID
Definition: sua.h:89
static int ipa_asp_fsm_timer_cb(struct osmo_fsm_inst *fi)
Definition: xua_asp_fsm.c:1088
@ XUA_ASP_E_ASPTM_ASPAC
Definition: xua_asp_fsm.h:21
#define SUA_ASPTM_ACTIVE_ACK
Definition: sua.h:59
struct osmo_fsm_inst * xua_asp_fsm_start(struct osmo_ss7_asp *asp, enum osmo_ss7_asp_role role, int log_level)
Start a new ASP finite stae machine for given ASP.
Definition: xua_asp_fsm.c:771
char * name
Definition: osmo_ss7.h:426
#define SUA_ASPSM_DOWN
Definition: sua.h:51
@ OSMO_XLM_PRIM_M_ASP_DOWN
Definition: sigtran_sap.h:23
Definition: osmo_ss7.h:497
struct xua_common_hdr hdr
Definition: xua_msg.h:32
struct osmo_fsm_inst * xua_asp_fsm_start(struct osmo_ss7_asp *asp, enum osmo_ss7_asp_role role, int log_level)
Start a new ASP finite stae machine for given ASP.
Definition: xua_asp_fsm.c:771
@ XUA_ASP_E_ASPSM_BEAT_ACK
Definition: xua_asp_fsm.h:29
@ XUA_ASPAS_ASP_INACTIVE_IND
Definition: xua_as_fsm.h:13
osmo_prim_cb prim_cb
Definition: osmo_ss7.h:500
struct osmo_fsm ipa_asp_fsm
Definition: xua_asp_fsm.c:1161
@ XUA_ASP_S_ACTIVE
Definition: xua_asp_fsm.h:6
static void xua_asp_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: xua_asp_fsm.c:663
@ XUA_ASP_E_SCTP_EST_IND
Definition: xua_asp_fsm.h:17
int xua_msg_add_u32(struct xua_msg *xua, uint16_t iei, uint32_t val)
Definition: xua_msg.c:280
struct osmo_fsm ipa_asp_fsm
Definition: xua_asp_fsm.c:1161
Definition: xua_asp_fsm.c:76
struct xua_msg * xua_msg_alloc(void)
Definition: xua_msg.c:44
struct llist_head as_list
list of osmo_ss7_as
Definition: osmo_ss7.h:79
struct osmo_fsm xua_asp_fsm
Definition: xua_asp_fsm.c:748
@ XUA_ASP_E_ASPSM_ASPUP_ACK
Definition: xua_asp_fsm.h:20
static void ipa_asp_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: xua_asp_fsm.c:1051
uint32_t asp_id
Definition: osmo_ss7.h:406
enum osmo_ss7_asp_role role
Definition: xua_asp_fsm.c:824
@ M3UA_ERR_UNEXPECTED_MSG
Definition: m3ua.h:152
@ IPA_ASP_S_WAIT_ID_ACK
Definition: xua_asp_fsm.c:817
void xua_asp_send_xlm_prim(struct osmo_ss7_asp *asp, struct osmo_xlm_prim *prim)
Definition: xua_asp_fsm.c:106
int osmo_ss7_tmode_to_xua(enum osmo_ss7_as_traffic_mode tmod)
Definition: osmo_ss7.c:2335
#define ENSURE_ASP_OR_IPSP(fi, event)
Definition: xua_asp_fsm.c:373
int xua_msg_add_data(struct xua_msg *msg, uint16_t tag, uint16_t len, const uint8_t *dat)
Definition: xua_msg.c:61
uint32_t xua_msg_part_get_u32(const struct xua_msg_part *part)
Definition: xua_msg.c:286
bool mode_set_by_peer
Definition: osmo_ss7.h:326
@ M3UA_TMOD_BCAST
Definition: m3ua.h:178
struct llist_head list
entry in 'ref osmo_ss7_instance.as_list
Definition: osmo_ss7.h:302
Definition: xua_asp_fsm.c:820
#define SUA_MSGC_MGMT
Definition: sua.h:31
@ XUA_ASP_E_ASPSM_ASPUP
Definition: xua_asp_fsm.h:19
@ OSMO_XLM_PRIM_M_ASP_ACTIVE
Definition: sigtran_sap.h:24
static const struct osmo_fsm_state xua_asp_states[]
Definition: xua_asp_fsm.c:702
struct msgb * xua_to_msg(const int version, struct xua_msg *msg)
Definition: xua_msg.c:203
struct osmo_ss7_asp::@27 cfg
struct osmo_ss7_routing_key routing_key
Definition: osmo_ss7.h:321
static const char * osmo_ss7_as_traffic_mode_name(enum osmo_ss7_as_traffic_mode mode)
Definition: osmo_ss7.h:272
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:935
struct osmo_timer_list timer
Definition: xua_asp_fsm.c:86
#define SUA_VERSION
Definition: sua.h:26
struct osmo_ss7_asp * asp
Definition: xua_asp_fsm.c:78
struct osmo_fsm xua_asp_fsm
Definition: xua_asp_fsm.c:748
static void send_xlm_prim_simple(struct osmo_fsm_inst *fi, enum osmo_xlm_prim_type prim_type, enum osmo_prim_operation op)
Definition: xua_asp_fsm.c:131
struct ipaccess_unit * ipa_unit
Definition: xua_asp_fsm.c:827
static int xua_asp_fsm_timer_cb(struct osmo_fsm_inst *fi)
Definition: xua_asp_fsm.c:688
#define SUA_ASPSM_UP
Definition: sua.h:50
@ IPA_ASP_E_ID_ACK
Definition: xua_asp_fsm.h:33
void xua_msg_free(struct xua_msg *msg)
Definition: xua_msg.c:56
static int determine_traf_mode(struct osmo_ss7_asp *asp)
Definition: xua_asp_fsm.c:145
struct osmo_ss7_asp * asp
Definition: xua_asp_fsm.c:822
struct osmo_stream_srv * server
Definition: osmo_ss7.h:401
@ M3UA_TMOD_LOADSHARE
Definition: m3ua.h:177
#define SUA_ASPTM_INACTIVE_ACK
Definition: sua.h:60
#define LOGPASP(asp, subsys, level, fmt, args ...)
Definition: osmo_ss7.h:488
@ IPA_ASP_S_INACTIVE
Definition: xua_asp_fsm.c:813
@ OSMO_XLM_PRIM_M_ASP_UP
Definition: sigtran_sap.h:22
#define XUA_T_ACK_SEC
Definition: xua_asp_fsm.c:44
@ T_WAIT_ID_RESP
Definition: xua_asp_fsm.c:835
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
@ IPA_ASP_S_WAIT_ID_RESP
Definition: xua_asp_fsm.c:815
Definition: osmo_ss7.h:387
@ OSMO_SS7_ASP_ROLE_ASP
Definition: osmo_ss7.h:380
#define SUA_MSGC_ASPSM
Definition: sua.h:33
bool asp_id_present
Definition: osmo_ss7.h:407
@ IPA_ASP_S_DOWN
Definition: xua_asp_fsm.c:812
#define SUA_ASPTM_INACTIVE
Definition: sua.h:58
static int xua_msg_add_asp_rctx(struct xua_msg *xua, struct osmo_ss7_asp *asp)
Definition: xua_asp_fsm.c:168
Definition: sigtran_sap.h:66
@ XUA_ASP_S_DOWN
Definition: xua_asp_fsm.h:4
static void ipa_asp_fsm_active_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state)
Definition: xua_asp_fsm.c:1020
uint32_t context
Definition: osmo_ss7.h:254
osmo_ss7_asp_role
Definition: osmo_ss7.h:379
uint16_t len
Definition: xua_msg.h:42
#define LOGPAS(as, subsys, level, fmt, args ...)
Definition: osmo_ss7.h:490
static void xua_t_ack_cb(void *data)
Definition: xua_asp_fsm.c:299
static void ipa_asp_fsm_wait_id_resp(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: xua_asp_fsm.c:884
static int peer_send_and_start_t_ack(struct osmo_fsm_inst *fi, int out_event)
Definition: xua_asp_fsm.c:314
char * osmo_xlm_prim_name(struct osmo_prim_hdr *oph)
Definition: sccp_sap.c:81
struct osmo_ss7_instance * inst
Definition: osmo_ss7.h:303
@ XUA_ASP_E_M_ASP_UP_REQ
Definition: xua_asp_fsm.h:10
#define SUA_MSGC_ASPTM
Definition: sua.h:34
void osmo_ss7_asp_disconnect(struct osmo_ss7_asp *asp)
Definition: osmo_ss7.c:2143
static void ipa_asp_fsm_down(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: xua_asp_fsm.c:861
static int peer_send(struct osmo_fsm_inst *fi, int out_event, struct xua_msg *in)
Definition: xua_asp_fsm.c:192
@ XUA_ASPAS_ASP_DOWN_IND
Definition: xua_as_fsm.h:14
static void xua_asp_fsm_cleanup(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause)
Definition: xua_asp_fsm.c:695
#define M3UA_IEI_ROUTE_CTX
Definition: m3ua.h:67
#define XUA_HDR(class, type)
Definition: xua_msg.h:25
static void ipa_asp_fsm_inactive(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: xua_asp_fsm.c:1042