libosmo-sigtran
1.8.1
Osmocom SIGTRAN library
|
Go to the documentation of this file.
13 uint16_t remote_port, uint16_t local_port,
struct osmo_scu_data_param data
Definition: sccp_sap.h:277
int osmo_sccp_addr_cmp(const struct osmo_sccp_addr *a, const struct osmo_sccp_addr *b, uint32_t presence_criteria)
Compare two SCCP addresses by given presence criteria.
Definition: sccp_user.c:372
osmo_prim_cb prim_cb
Definition: osmo_ss7.h:132
int osmo_sccp_tx_data(struct osmo_sccp_user *scu, uint32_t conn_id, const uint8_t *data, unsigned int len)
Definition: sccp_helpers.c:154
@ S_CONN_PEND_IN
Definition: sccp_scoc.c:133
struct osmo_ss7_instance * ss7
Definition: sccp_internal.h:48
struct osmo_ss7_instance * osmo_ss7_instance_find(uint32_t id)
Find a SS7 Instance with given ID.
Definition: osmo_ss7.c:311
static int scmg_prim_cb(struct osmo_prim_hdr *oph, void *_scu)
Definition: sccp_scmg.c:272
Definition: sccp_internal.h:37
@ SCOC_E_T_IAS_EXP
Definition: sccp_scoc.c:165
uint32_t dpc
Definition: mtp_sap.h:38
@ S_RESET_OUT
Definition: sccp_scoc.c:138
static void scoc_fsm_disconn_pend(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: sccp_scoc.c:1313
uint8_t network_indicator
Definition: osmo_ss7.h:101
@ OSMO_SCCP_SSN_VLR
Definition: sccp_sap.h:113
@ OSMO_SCCP_TIMER_IAS
Definition: sccp_internal.h:18
struct osmo_sccp_instance * osmo_sccp_get_sccp(const struct osmo_sccp_user *scu)
get the SCCP instance that is related to the given sccp user
Definition: sccp_user.c:899
int scrc_rx_mtp_xfer_ind_xua(struct osmo_sccp_instance *inst, struct xua_msg *xua)
Definition: sccp_scrc.c:465
uint8_t smi
Definition: sccp_scmg.h:5
@ SCOC_E_RCOC_CREF_IND
Definition: sccp_scoc.c:155
static const uint8_t cause_map_cref[]
Definition: sccp_scoc.c:1452
struct osmo_sccp_instance * osmo_sccp_simple_client_on_ss7_id(void *ctx, uint32_t ss7_id, const char *name, uint32_t default_pc, enum osmo_ss7_asp_protocol prot, int default_local_port, const char *default_local_ip, int default_remote_port, const char *default_remote_ip)
request an sccp client instance
Definition: sccp_user.c:501
@ OSMO_SCCP_SSN_ISUP
Definition: sccp_sap.h:109
#define SUA_CO_COAK
Definition: sua.h:71
enum osmo_ss7_asp_protocol proto
Definition: osmo_ss7.h:431
@ OSMO_XLM_PRIM_M_ASP_STATUS
Definition: sigtran_sap.h:18
#define CS7_STR
Definition: xua_internal.h:109
void osmo_sccp_local_addr_by_instance(struct osmo_sccp_addr *dest_addr, const struct osmo_sccp_instance *inst, uint32_t ssn)
derive a basic local SCCP-Address from a given SCCP instance.
Definition: sccp_user.c:287
const struct value_string osmo_sccp_sp_status_names[]
Definition: sccp_sap.c:123
uint8_t smi
Definition: sccp_scmg.h:18
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
struct osmo_ss7_as * as
pointer to Application Server
Definition: osmo_ss7.h:219
@ OSMO_SCU_PRIM_N_DISCONNECT
Definition: sccp_sap.h:37
struct osmo_timer_list t_conn
Definition: sccp_scoc.c:115
@ OSMO_XLM_PRIM_M_SCTP_RELEASE
Definition: sigtran_sap.h:15
mtp_unavail_cause
Definition: mtp.h:28
Definition: osmo_ss7.h:300
@ SCOC_E_SCU_N_DISC_REQ
Definition: sccp_scoc.c:146
struct osmo_timer_list t_iar
Definition: sccp_scoc.c:119
void * priv
Definition: sccp_internal.h:75
const struct value_string osmo_sccp_timer_names[]
Definition: sccp_scoc.c:263
uint8_t msg_type
Definition: sccp_scmg.h:2
@ OSMO_SCCP_SSN_GMLC_MAP
Definition: sccp_sap.h:125
static void conn_restart_rx_inact_timer(struct sccp_connection *conn)
Definition: sccp_scoc.c:337
void sccp_scoc_show_connections(struct vty *vty, struct osmo_sccp_instance *inst)
Definition: sccp_scoc.c:1978
int osmo_ss7_asp_peer_set_hosts(struct osmo_ss7_asp_peer *peer, void *talloc_ctx, const char *const *hosts, size_t host_cnt)
Set (copy) addresses for a given ASP peer.
Definition: osmo_ss7_asp.c:245
struct osmo_ss7_instance::@20 cfg
static void conn_stop_release_timers(struct sccp_connection *conn)
Definition: sccp_scoc.c:375
struct osmo_xua_server::@29 cfg
@ OSMO_SCU_PRIM_N_UNITDATA
Definition: sccp_sap.h:41
bool simple_client_allocated
Were we allocated by "simple client" support?
Definition: osmo_ss7.h:312
@ OSMO_SS7_ASP_PROT_IPA
Definition: osmo_ss7.h:281
struct osmo_sccp_user * user
Definition: sccp_scoc.c:83
uint16_t port
Definition: osmo_ss7.h:370
struct osmo_timer_list t_rep_rel
Definition: sccp_scoc.c:124
static const char * osmo_scu_prim_type_name(enum osmo_scu_prim_type val)
Definition: sccp_sap.h:290
bool sctp_role_set_by_vty
Definition: osmo_ss7.h:436
const struct value_string osmo_sccp_gti_names[]
Definition: sccp_sap.c:114
char * name
human-readable name of this user
Definition: sccp_internal.h:64
#define SUA_CO_RELCO
Definition: sua.h:74
#define SUA_CL_CLDR
Definition: sua.h:68
static void tx_coerr_from_xua(struct osmo_sccp_instance *inst, struct xua_msg *in, uint32_t err_cause)
Definition: sccp_scoc.c:1570
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
Definition: sccp_sap.h:249
struct osmo_scu_state_param state
Definition: sccp_sap.h:282
int osmo_ss7_xua_server_bind(struct osmo_xua_server *xs)
Set the xUA server to bind/listen to the currently configured ip/port.
Definition: osmo_ss7_xua_srv.c:226
@ OSMO_SCU_PRIM_N_NOTICE
Definition: sccp_sap.h:42
#define SUA_CO_COREF
Definition: sua.h:72
bool ss7_initialized
Definition: osmo_ss7.c:59
static bool xua_opt_data_cache_keep(struct sccp_connection *conn, const struct osmo_scu_prim *prim, int msg_type)
Definition: sccp_scoc.c:640
Definition: sccp_internal.h:58
@ OSMO_SCCP_TIMERS_LEN
Definition: sccp_internal.h:27
Definition: sccp_sap.h:183
const char * xua_class_msg_name(const struct xua_msg_class *xmc, uint16_t msg_type)
Definition: xua_msg.c:443
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:746
@ OSMO_SCCP_GTI_TT_NPL_ENC_NAI
Definition: sccp_sap.h:75
@ SCCP_SCMG_MSGT_SSA
Definition: sccp_scmg.h:6
void sccp_lbcs_local_bcast_state(struct osmo_sccp_instance *inst, const struct osmo_scu_state_param *state)
Definition: sccp_lbcs.c:55
uint16_t ssn
SSN and/or point code to which we are bound.
Definition: sccp_internal.h:67
bool ss7_ipv6_sctp_supported(const char *host, bool bind)
Definition: osmo_ss7.c:1116
uint32_t in_sequence_control
Definition: sccp_sap.h:242
#define SUA_CO_CODT
Definition: sua.h:77
int sccp_sclc_user_sap_down_nofree(struct osmo_sccp_user *scu, struct osmo_prim_hdr *oph)
Main entrance function for primitives from SCCP User.
Definition: sccp_sclc.c:123
Definition: sccp_scoc.c:75
uint32_t importance
Definition: sccp_sap.h:253
static void scoc_fsm_active(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: sccp_scoc.c:1186
uint32_t pc
Definition: sccp_sap.h:187
uint32_t importance
Definition: sccp_sap.h:203
uint32_t conn_id
Definition: sccp_sap.h:210
#define OSMO_SCCP_ADDR_T_PC
Definition: sccp_sap.h:50
struct msgb * opt_data_cache
Definition: sccp_scoc.c:106
uint32_t npi
Definition: sccp_sap.h:178
DEFUN(show_sccp_users, show_sccp_users_cmd, "show cs7 instance <0-15> sccp users", SHOW_STR CS7_STR INST_STR INST_STR SCCP_STR "Show List of SCCP Users registered\n")
Definition: sccp_vty.c:57
#define SUA_IEI_ROUTE_CTX
Definition: sua.h:83
@ S_IDLE
Definition: sccp_scoc.c:132
int sccp_scrc_rx_sclc_msg(struct osmo_sccp_instance *inst, struct xua_msg *xua)
Definition: sccp_scrc.c:418
#define OSMO_SCCP_SSN_SMLC_BSSAP
Definition: sccp_sap.h:169
Definition: sccp_sap.h:197
int osmo_ss7_user_unregister(struct osmo_ss7_instance *inst, uint8_t service_ind, struct osmo_ss7_user *user)
Unregister a MTP user for a given service indicator.
Definition: osmo_ss7.c:454
@ OSMO_SCCP_TIMER_IAR
Definition: sccp_internal.h:19
int sccp_scrc_rx_scoc_conn_msg(struct osmo_sccp_instance *inst, struct xua_msg *xua)
Definition: sccp_scrc.c:396
struct osmo_scu_pcstate_param pcstate
Definition: sccp_sap.h:283
Definition: sccp_sap.h:239
@ SCOC_E_RCOC_CC_IND
Definition: sccp_scoc.c:156
struct osmo_fsm_inst * fi
Definition: sccp_scoc.c:112
@ OSMO_SCU_PRIM_N_RESET
Definition: sccp_sap.h:38
void sccp_lbcs_local_bcast_state(struct osmo_sccp_instance *inst, const struct osmo_scu_state_param *state)
Definition: sccp_lbcs.c:55
uint32_t primary_pc
Definition: osmo_ss7.h:98
uint32_t dpc
Definition: m3ua.h:3
bool simple_client_allocated
Were we allocated by "simple client" support?
Definition: osmo_ss7.h:420
@ OSMO_SCCP_REM_SCCP_S_CONGESTED
Definition: sccp_sap.h:159
@ OSMO_SCU_PRIM_N_PCSTATE
Definition: sccp_sap.h:46
@ OSMO_SCCP_SSN_SGSN_MAP
Definition: sccp_sap.h:129
static void tx_relco_from_xua(struct osmo_sccp_instance *inst, struct xua_msg *in)
Definition: sccp_scoc.c:1606
@ OSMO_SCU_PRIM_N_STATE
Definition: sccp_sap.h:45
uint32_t presence
Definition: sccp_sap.h:184
@ S_RESET_IN
Definition: sccp_scoc.c:137
void sccp_scoc_flush_connections(struct osmo_sccp_instance *inst)
Definition: sccp_scoc.c:1941
struct in_addr v4
Definition: sccp_sap.h:190
int osmo_sccp_user_sap_down(struct osmo_sccp_user *scu, struct osmo_prim_hdr *oph)
Main entrance function for primitives from SCCP User.
Definition: sccp_scoc.c:1932
uint32_t importance
Definition: sccp_scoc.c:102
Definition: sccp_sap.h:222
@ OSMO_SS7_ASP_PROT_M3UA
Definition: osmo_ss7.h:280
union osmo_mtp_prim::@18 u
Definition: sccp_sap.h:209
ss7_asp_ctr
Definition: ss7_internal.h:31
#define SUA_IEI_DATA
Definition: sua.h:107
osmo_prim_cb prim_cb
Definition: sccp_internal.h:74
uint32_t importance
Definition: sccp_sap.h:244
@ OSMO_SCCP_RI_NONE
Definition: sccp_sap.h:58
void osmo_ss7_asp_destroy(struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:685
@ OSMO_SCCP_SSN_PCAP
Definition: sccp_sap.h:132
const char * osmo_sccp_user_name(struct osmo_sccp_user *scu)
Compose a human readable string to describe the SCCP user's connection.
Definition: sccp_user.c:468
const char * osmo_ss7_pointcode_print2(const struct osmo_ss7_instance *inst, uint32_t pc)
Definition: osmo_ss7.c:279
uint32_t cause
Definition: sccp_sap.h:225
struct osmo_ss7_as * osmo_ss7_as_find_by_proto(struct osmo_ss7_instance *inst, enum osmo_ss7_asp_protocol proto)
Find Application Server (AS) by given protocol.
Definition: osmo_ss7.c:928
void sccp_scoc_rx_from_scrc(struct osmo_sccp_instance *inst, struct xua_msg *xua)
Main entrance function for primitives from the SCRC (Routing Control)
Definition: sccp_scoc.c:1775
@ SCCP_SCMG_MSGT_SST
Definition: sccp_scmg.h:8
char * osmo_xlm_prim_name(struct osmo_prim_hdr *oph)
Definition: sccp_sap.c:96
static int scmg_rx(struct osmo_sccp_user *scu, const struct osmo_sccp_addr *calling_addr, const struct osmo_sccp_addr *called_addr, const struct sccp_scmg_msg *scmg)
Definition: sccp_scmg.c:250
@ OSMO_XLM_PRIM_M_RK_DEREG
Definition: sigtran_sap.h:31
char * osmo_scu_prim_name(const struct osmo_prim_hdr *oph)
Definition: sccp_sap.c:46
int ss7_asp_xua_srv_conn_closed_cb(struct osmo_stream_srv *srv)
Definition: osmo_ss7_asp.c:1121
uint32_t affected_pc
Definition: sccp_sap.h:259
uint32_t sccp_class
Definition: sccp_sap.h:202
Definition: sccp_scmg.h:14
int osmo_ss7_asp_restart(struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:721
@ OSMO_SCCP_SSN_RES_INTL
Definition: sccp_sap.h:119
struct osmo_ss7_instance * inst
Definition: osmo_ss7.h:527
void * priv
Definition: osmo_ss7.h:134
@ SS7_ASP_CTR_PKT_RX_TOTAL
Definition: ss7_internal.h:32
#define SUA_IEI_SRC_ADDR
Definition: sua.h:98
#define SUA_CAUSE_T_RELEASE
Definition: sua.h:136
static const struct osmo_prim_event_map scu_scoc_event_map[]
Definition: sccp_scoc.c:219
@ SCCP_SCMG_MSGT_SSC
Definition: sccp_scmg.h:11
uint32_t conn_id
Definition: sccp_sap.h:235
@ OSMO_SCCP_SSN_RANAP
Definition: sccp_sap.h:123
@ SCOC_E_RCOC_REL_COMPL_IND
Definition: sccp_scoc.c:154
uint32_t pc
Definition: osmo_ss7.h:257
@ SCOC_E_RCOC_ERROR_IND
Definition: sccp_scoc.c:161
const struct value_string osmo_sccp_pnc_names[]
Definition: sccp_types.c:29
const struct value_string osmo_sccp_rem_sccp_status_names[]
Definition: sccp_sap.c:130
Definition: osmo_ss7.h:525
static int scmg_rx_ssa(struct osmo_sccp_user *scu, const struct osmo_sccp_addr *calling_addr, const struct osmo_sccp_addr *called_addr, const struct sccp_scmg_msg *ssa)
Definition: sccp_scmg.c:204
static uint32_t scu_prim_conn_id(const struct osmo_scu_prim *prim)
Definition: sccp_scoc.c:1854
@ OSMO_SCCP_SSN_MGMT
Definition: sccp_sap.h:108
@ MTP_SAP_USER
Definition: sigtran_sap.h:10
const struct xua_msg_class * class[256]
Definition: xua_msg.h:60
uint32_t xua_msg_get_u32(const struct xua_msg *xua, uint16_t iei)
Definition: xua_msg.c:292
static uint8_t get_cref_cause_for_ret(uint8_t ret_cause)
Definition: sccp_scoc.c:1467
struct osmo_ss7_asp_peer local
Definition: osmo_ss7.h:438
struct osmo_prim_hdr oph
Definition: mtp_sap.h:57
@ OSMO_SCU_PRIM_N_COORD
Definition: sccp_sap.h:44
static struct sccp_connection * conn_find_by_id(const struct osmo_sccp_instance *inst, uint32_t id)
Definition: sccp_scoc.c:401
static void conn_destroy(struct sccp_connection *conn)
Definition: sccp_scoc.c:542
void osmo_sccp_set_max_optional_data(struct osmo_sccp_instance *inst, int val)
Adjust the upper bound for the optional data length (the payload) for CR, CC, CREF and RLSD messages.
Definition: sccp_user.c:877
struct osmo_scu_connect_param connect
Definition: sccp_sap.h:276
int osmo_ss7_user_mtp_xfer_req(struct osmo_ss7_instance *inst, struct osmo_mtp_prim *omp)
Definition: osmo_ss7_hmrt.c:293
static void rel_tmr_cb(void *data)
Definition: sccp_scoc.c:303
int osmo_scu_prim_hdr_name_buf(char *buf, size_t buflen, const struct osmo_prim_hdr *oph)
Definition: sccp_sap.c:52
int ss7_asp_apply_primary_address(const struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:386
static int scrc_node_4(struct osmo_sccp_instance *inst, struct xua_msg *xua, uint32_t return_cause)
Definition: sccp_scrc.c:248
uint8_t * dat
Definition: xua_msg.h:43
static void conn_start_rep_rel_timer(struct sccp_connection *conn)
Definition: sccp_scoc.c:363
struct osmo_sccp_addr calling_addr
Definition: sccp_sap.h:199
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:1002
static LLIST_HEAD(sccp_instances)
struct osmo_ss7_instance * inst
Definition: osmo_ss7.h:393
osmo_ss7_asp_protocol
Definition: osmo_ss7.h:277
struct osmo_ss7_as::@25 cfg
#define SUA_CL_CLDT
Definition: sua.h:67
@ S_WAIT_CONN_CONF
Definition: sccp_scoc.c:140
@ OSMO_SCCP_ORIG_UNDEFINED
Definition: sccp_sap.h:218
uint32_t importance
Definition: sccp_sap.h:211
@ OSMO_SS7_ASP_ROLE_SG
Definition: osmo_ss7.h:384
bool ss7_xua_server_set_default_local_hosts(struct osmo_xua_server *oxs)
Definition: osmo_ss7_xua_srv.c:287
@ OSMO_SCCP_REM_SCCP_S_UNEQUIPPED
Definition: sccp_sap.h:157
@ OSMO_SCCP_TIMER_REASSEMBLY
Definition: sccp_internal.h:25
@ OSMO_XLM_PRIM_M_NOTIFY
Definition: sigtran_sap.h:20
@ OSMO_SCCP_SSN_EIR
Definition: sccp_sap.h:115
#define SUA_IEI_IMPORTANCE
Definition: sua.h:114
@ SCOC_E_RCOC_IT_IND
Definition: sccp_scoc.c:159
void * osmo_sccp_user_get_priv(struct osmo_sccp_user *scu)
Definition: sccp_user.c:165
uint32_t importance
Definition: sccp_sap.h:227
struct rb_root connections
Definition: sccp_internal.h:41
struct osmo_ss7_route::@23 dest
#define OSMO_SCCP_ADDR_T_IPv4
Definition: sccp_sap.h:52
@ S_DISCONN_PEND
Definition: sccp_scoc.c:136
#define SUA_IEI_SEQ_CTRL
Definition: sua.h:117
#define SUA_IEI_DEST_REF
Definition: sua.h:101
Definition: sccp_sap.h:258
#define SUA_IEI_PROTO_CLASS
Definition: sua.h:116
struct osmo_xua_server * osmo_ss7_xua_server_find(struct osmo_ss7_instance *inst, enum osmo_ss7_asp_protocol proto, uint16_t local_port)
Definition: osmo_ss7.c:1211
static void conn_start_connect_timer(struct sccp_connection *conn)
Definition: sccp_scoc.c:383
struct in6_addr v6
Definition: sccp_sap.h:191
static int sclc_rx_cldr(struct osmo_sccp_instance *inst, struct xua_msg *xua)
Definition: sccp_sclc.c:206
@ OSMO_SCCP_SSN_BISDN
Definition: sccp_sap.h:120
@ OSMO_SCCP_SSN_RNSAP
Definition: sccp_sap.h:124
uint8_t data[0]
Definition: xua_types.h:7
struct osmo_sccp_user * osmo_sccp_user_bind(struct osmo_sccp_instance *inst, const char *name, osmo_prim_cb prim_cb, uint16_t ssn)
Bind a given SCCP User to a given SSN (at any PC)
Definition: sccp_user.c:141
DEFUN_ATTR(sccp_timer, sccp_timer_cmd, NULL, NULL, CMD_ATTR_IMMEDIATE)
Definition: sccp_vty.c:148
uint16_t affected_pc
Definition: sccp_scmg.h:17
static void conn_start_inact_timers(struct sccp_connection *conn)
Definition: sccp_scoc.c:343
@ OSMO_SCU_PRIM_N_CONNECT
Definition: sccp_sap.h:34
struct osmo_sccp_user * sccp_user_find(struct osmo_sccp_instance *inst, uint16_t ssn, uint32_t pc)
Find a SCCP User registered for given PC+SSN or SSN only First search all users with a valid PC for a...
Definition: sccp_user.c:52
bool ss7_asp_set_default_peer_hosts(struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:495
sccp_scoc_event
Definition: sccp_scoc.c:142
static int scrc_local_out_common(struct osmo_sccp_instance *inst, struct xua_msg *xua, const struct osmo_sccp_addr *called)
Definition: sccp_scrc.c:356
#define OSMO_SCCP_ADDR_T_SSN
Definition: sccp_sap.h:51
struct osmo_scu_unitdata_param unitdata
Definition: sccp_sap.h:280
bool osmo_sccp_conn_id_exists(const struct osmo_sccp_instance *inst, uint32_t id)
Definition: sccp_scoc.c:445
sccp_connection_state
Definition: sccp_scoc.c:129
static int scrc_node_6(struct osmo_sccp_instance *inst, struct xua_msg *xua, const struct osmo_sccp_addr *called)
Definition: sccp_scrc.c:312
static const char * sccp_scmg_msgt_name(enum sccp_scmg_msg_type msgt)
Definition: sccp_scmg.h:24
struct osmo_prim_hdr oph
Definition: sccp_sap.h:274
static void conn_restart_tx_inact_timer(struct sccp_connection *conn)
Definition: sccp_scoc.c:331
int sccp_scmg_init(struct osmo_sccp_instance *inst)
Definition: sccp_scmg.c:311
uint32_t opc
Definition: mtp_sap.h:37
static int gen_mtp_transfer_req_xua(struct osmo_sccp_instance *inst, struct xua_msg *xua, const struct osmo_sccp_addr *called)
Definition: sccp_scrc.c:113
#define OSMO_SCCP_ADDR_T_GT
Definition: sccp_sap.h:49
Definition: osmo_ss7.h:73
#define SUA_IEI_SEGMENTATION
Definition: sua.h:118
char * name
Definition: osmo_ss7.h:191
#define SUA_MSGC_CL
Definition: sua.h:35
@ SCOC_E_T_IAR_EXP
Definition: sccp_scoc.c:164
void sccp_scoc_flush_connections(struct osmo_sccp_instance *inst)
Definition: sccp_scoc.c:1941
char * osmo_sccp_addr_dump(const struct osmo_sccp_addr *addr)
Definition: sccp_helpers.c:325
const char * osmo_ss7_pointcode_print(const struct osmo_ss7_instance *inst, uint32_t pc)
Definition: osmo_ss7.c:271
static void scu_gen_encode_and_send(struct sccp_connection *conn, uint32_t event, struct xua_msg *xua, unsigned int primitive, enum osmo_prim_operation operation)
Definition: sccp_scoc.c:860
struct osmo_ss7_asp * ss7_asp_find_by_socket_addr(int fd)
Find an ASP definition matching the local+remote IP/PORT of given fd.
Definition: osmo_ss7_asp.c:563
const struct value_string osmo_sccp_timer_names[]
Definition: sccp_scoc.c:263
static struct xua_msg * gen_rlsd(uint32_t route_ctx, uint32_t dest_ref, uint32_t src_ref)
Definition: sccp_scoc.c:1630
static bool dpc_accessible(struct osmo_sccp_instance *inst, uint32_t pc)
Definition: sccp_scrc.c:59
static struct xua_msg * gen_ret_msg(struct osmo_sccp_instance *inst, const struct xua_msg *xua_in, uint32_t ret_cause)
Definition: sccp_sclc.c:282
@ SCCP_SCMG_MSGT_SSP
Definition: sccp_scmg.h:7
static bool sccp_available(struct osmo_sccp_instance *inst, const struct osmo_sccp_addr *addr)
Definition: sccp_scrc.c:65
static bool xua_opt_data_length_lim(struct sccp_connection *conn, const struct osmo_scu_prim *prim, int msg_type)
Definition: sccp_scoc.c:669
@ OSMO_XLM_PRIM_M_AS_ACTIVE
Definition: sigtran_sap.h:26
void osmo_sccp_vty_init(void)
Definition: sccp_vty.c:284
@ SCOC_E_RCOC_ROUT_FAIL_IND
Definition: sccp_scoc.c:152
@ SCOC_E_RCOC_DT1_IND
Definition: sccp_scoc.c:157
@ OSMO_SCCP_RI_SSN_PC
Definition: sccp_sap.h:60
struct msgb * osmo_sua_to_sccp(struct xua_msg *xua)
convert parsed SUA message to SCCP message
Definition: sccp2sua.c:1553
static const char * osmo_ss7_asp_protocol_name(enum osmo_ss7_asp_protocol mode)
Definition: osmo_ss7.h:288
static void sccp_scoc_rx_inval_src_ref(struct sccp_connection *conn, struct xua_msg *xua, uint32_t inval_src_ref)
Definition: sccp_scoc.c:1709
const struct value_string osmo_scu_prim_type_names[]
Definition: sccp_sap.c:28
@ OSMO_XLM_PRIM_M_ASP_INACTIVE
Definition: sigtran_sap.h:25
int osmo_sccp_gt_cmp(const struct osmo_sccp_gt *a, const struct osmo_sccp_gt *b)
Compare two SCCP Global Titles.
Definition: sccp_user.c:350
struct xua_msg_part * xua_msg_find_tag(const struct xua_msg *msg, uint16_t tag)
Definition: xua_msg.c:86
@ OSMO_SCCP_SP_S_INACCESSIBLE
Definition: sccp_sap.h:142
@ S_CONN_PEND_OUT
Definition: sccp_scoc.c:134
static const struct value_string scoc_event_names[]
Definition: sccp_scoc.c:174
static struct xua_msg * xua_gen_msg_co(struct sccp_connection *conn, uint32_t event, const struct osmo_scu_prim *prim, int msg_type)
Definition: sccp_scoc.c:708
static int sclc_rx_cldt(struct osmo_sccp_instance *inst, struct xua_msg *xua)
Definition: sccp_sclc.c:157
static struct sccp_connection * conn_create_id(struct osmo_sccp_user *user, uint32_t conn_id)
Definition: sccp_scoc.c:453
static void scoc_fsm_conn_pend_out(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: sccp_scoc.c:1059
#define SUA_IEI_MSG_PRIO
Definition: sua.h:115
static void sccp_scoc_rx_inval_opc(struct sccp_connection *conn, struct xua_msg *xua)
Definition: sccp_scoc.c:1742
@ SS7_AS_CTR_RX_MSU_TOTAL
Definition: ss7_internal.h:27
static struct msgb * scu_msgb_alloc(void)
Definition: sccp_scoc.c:557
@ OSMO_SCCP_SSN_gsmSCF_MAP
Definition: sccp_sap.h:127
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:1081
static int xua_gen_encode_and_send(struct osmo_sccp_user *scu, uint32_t event, struct osmo_scu_prim *prim, int msg_type)
Definition: sccp_sclc.c:103
struct osmo_sccp_instance * inst
pointer back to SCCP instance
Definition: sccp_internal.h:62
void * priv
Definition: sccp_internal.h:49
int sccp_scrc_rx_scoc_conn_msg(struct osmo_sccp_instance *inst, struct xua_msg *xua)
Definition: sccp_scrc.c:396
static void xua_opt_data_send_cache(struct sccp_connection *conn, int exp_type, uint8_t msg_class)
Definition: sccp_scoc.c:604
struct osmo_sccp_instance * sccp
Definition: osmo_ss7.h:92
@ OSMO_SCCP_SSN_ISDN_SS
Definition: sccp_sap.h:118
static void tx_inact_tmr_cb(void *data)
Definition: sccp_scoc.c:289
struct rb_node node
Definition: sccp_scoc.c:79
static int translate(struct osmo_sccp_instance *inst, const struct osmo_sccp_addr *called, struct osmo_sccp_addr *translated)
Definition: sccp_scrc.c:175
#define INIT_TIMER(x, fn, priv)
Definition: sccp_scoc.c:450
struct msgb * sccp_msgb_alloc(const char *name)
Definition: sua.c:64
@ OSMO_SCCP_SSN_CAP
Definition: sccp_sap.h:126
@ OSMO_XLM_PRIM_M_SCTP_RESTART
Definition: sigtran_sap.h:16
struct osmo_sccp_addr called_addr
Definition: sccp_scoc.c:90
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
@ OSMO_XLM_PRIM_M_SCTP_ESTABLISH
Definition: sigtran_sap.h:14
@ OSMO_SCCP_REM_SCCP_S_AVAILABLE
Definition: sccp_sap.h:155
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:963
#define SUA_CO_RELRE
Definition: sua.h:73
struct osmo_ss7_instance * inst
Definition: osmo_ss7.h:128
@ SCCP_SCMG_MSGT_SOG
Definition: sccp_scmg.h:10
void sccp_scoc_rx_scrc_rout_fail(struct osmo_sccp_instance *inst, struct xua_msg *xua, uint32_t cause)
SCOC: Receive SCRC Routing Failure.
Definition: sccp_scoc.c:1530
@ OSMO_XLM_PRIM_M_RK_REG
Definition: sigtran_sap.h:30
uint8_t sio
Definition: mtp_sap.h:40
static struct xua_msg * xua_gen_msg_cl(uint32_t event, struct osmo_scu_prim *prim, int msg_type)
Definition: sccp_sclc.c:65
int ss7_asp_apply_peer_primary_address(const struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:346
#define MTP_SIO(service, net_ind)
Definition: mtp_sap.h:34
#define SCU_MSGB_SIZE
Definition: sccp_scoc.c:68
char * name
Definition: osmo_ss7.h:429
@ OSMO_XLM_PRIM_M_AS_INACTIVE
Definition: sigtran_sap.h:27
struct osmo_sccp_user * osmo_sccp_user_find(struct osmo_sccp_instance *inst, uint16_t ssn, uint32_t pc)
Find a SCCP User registered for given PC+SSN or SSN only.
Definition: sccp_user.c:82
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
static int mtp_user_prim_cb(struct osmo_prim_hdr *oph, void *ctx)
Definition: sccp_user.c:182
@ SS7_ASP_CTR_PKT_RX_UNKNOWN
Definition: ss7_internal.h:33
@ OSMO_SCCP_SP_S_ACCESSIBLE
Definition: sccp_sap.h:144
@ OSMO_SCCP_GTI_NAI_ONLY
Definition: sccp_sap.h:72
@ MTP_SI_SCCP
Definition: mtp.h:10
@ OSMO_SCU_PRIM_N_EXPEDITED_DATA
Definition: sccp_sap.h:36
@ SCOC_E_SCU_N_DATA_REQ
Definition: sccp_scoc.c:147
static void conn_start_rel_timer(struct sccp_connection *conn)
Definition: sccp_scoc.c:357
int osmo_sccp_user_sap_down(struct osmo_sccp_user *scu, struct osmo_prim_hdr *oph)
Main entrance function for primitives from SCCP User.
Definition: sccp_scoc.c:1932
char * name
Definition: osmo_ss7.h:318
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
@ OSMO_XLM_PRIM_M_ASP_DOWN
Definition: sigtran_sap.h:23
struct osmo_sccp_addr called_addr
Definition: sccp_sap.h:240
@ SCOC_E_SCU_N_CONN_RESP
Definition: sccp_scoc.c:145
Definition: sccp_sap.h:266
int ss7_asp_proto_to_ip_proto(enum osmo_ss7_asp_protocol proto)
Definition: osmo_ss7_asp.c:130
static const struct osmo_fsm_state sccp_scoc_states[]
Definition: sccp_scoc.c:1353
@ OSMO_SCCP_TIMER_RESET
Definition: sccp_internal.h:24
uint8_t msg_class
Definition: xua_types.h:34
struct xua_common_hdr hdr
Definition: xua_msg.h:32
static int scrc_node_12(struct osmo_sccp_instance *inst, struct xua_msg *xua, const struct osmo_sccp_addr *called)
Definition: sccp_scrc.c:193
struct osmo_sccp_addr responding_addr
Definition: sccp_sap.h:224
uint8_t sls
Definition: mtp_sap.h:39
const struct value_string sccp_scmg_msgt_names[]
Definition: sccp_scmg.c:158
@ OSMO_SCCP_SSN_SIWF_MAP
Definition: sccp_sap.h:128
static int xua_gen_relre_and_send(struct sccp_connection *conn, uint32_t cause, struct osmo_scu_prim *prim)
Definition: sccp_scoc.c:586
struct osmo_sccp_user * osmo_sccp_user_bind_pc(struct osmo_sccp_instance *inst, const char *name, osmo_prim_cb prim_cb, uint16_t ssn, uint32_t pc)
Bind a given SCCP User to a given SSN+PC.
Definition: sccp_user.c:129
void osmo_ss7_route_destroy(struct osmo_ss7_route *rt)
Destroy a given SS7 route.
Definition: osmo_ss7.c:799
const struct value_string osmo_xlm_prim_names[]
Definition: sccp_sap.c:74
static char prim_name_buf[128]
Definition: sccp_sap.c:44
@ OSMO_MTP_PRIM_TRANSFER
Definition: mtp_sap.h:28
static const struct xua_msg_event_map sua_scoc_event_map[]
Definition: sccp_scoc.c:206
int xua_msg_add_sccp_addr(struct xua_msg *xua, uint16_t iei, const struct osmo_sccp_addr *addr)
Definition: xua_msg.c:371
static bool sua_is_connectionless(struct xua_msg *xua)
Definition: sccp_scrc.c:42
struct osmo_scu_notice_param notice
Definition: sccp_sap.h:281
enum osmo_ss7_asp_role role
Definition: osmo_ss7.h:434
static void write_sccp_timers(struct vty *vty, const char *indent, struct osmo_sccp_instance *inst, bool default_if_unset)
Definition: sccp_vty.c:237
@ SCOC_E_CONN_TMR_EXP
Definition: sccp_scoc.c:167
union osmo_scu_prim::@32 u
static struct osmo_scu_prim * scu_prim_alloc(unsigned int primitive, enum osmo_prim_operation operation)
Definition: sccp_scoc.c:846
@ OSMO_SCCP_REM_SCCP_S_INACCESSIBLE
Definition: sccp_sap.h:158
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
@ OSMO_SCCP_GTI_TT_NPL_ENC
Definition: sccp_sap.h:74
static bool osmo_ss7_pc_is_valid(uint32_t pc)
Definition: osmo_ss7.h:35
@ SCOC_E_RCOC_RLSD_IND
Definition: sccp_scoc.c:153
void sccp_lbcs_local_bcast_pcstate(struct osmo_sccp_instance *inst, const struct osmo_scu_pcstate_param *pcstate)
Definition: sccp_lbcs.c:39
const struct value_string osmo_sccp_routing_ind_names[]
Definition: sccp_sap.c:106
struct llist_head asp_list
list of osmo_ss7_asp
Definition: osmo_ss7.h:81
@ OSMO_SCCP_SSN_HLR
Definition: sccp_sap.h:112
static void gen_sccp_timer_cmd_strs(struct cmd_element *cmd)
Definition: sccp_vty.c:200
struct osmo_sccp_instance * osmo_sccp_simple_server(void *ctx, uint32_t pc, enum osmo_ss7_asp_protocol prot, int local_port, const char *local_ip)
Definition: sccp_user.c:793
static struct osmo_sccp_user * sccp_find_user(struct osmo_sccp_instance *inst, struct xua_msg *xua)
Definition: sccp_scoc.c:1502
struct osmo_ss7_route_table * rtable_system
Definition: osmo_ss7.h:90
#define OSMO_SS7_PC_INVALID
Definition: osmo_ss7.h:34
#define INST_STR
Definition: xua_internal.h:111
uint32_t release_cause
Definition: sccp_scoc.c:104
@ SCOC_E_T_INT_EXP
Definition: sccp_scoc.c:170
#define SUA_IEI_DEST_ADDR
Definition: sua.h:99
void osmo_ss7_xua_server_destroy(struct osmo_xua_server *xs)
Definition: osmo_ss7_xua_srv.c:301
static int scrc_node_2(struct osmo_sccp_instance *inst, struct xua_msg *xua, const struct osmo_sccp_addr *called)
Definition: sccp_scrc.c:203
int xua_msg_add_u32(struct xua_msg *xua, uint16_t iei, uint32_t val)
Definition: xua_msg.c:280
struct osmo_sccp_instance * inst
Definition: sccp_scoc.c:81
static void int_tmr_cb(void *data)
Definition: sccp_scoc.c:310
struct xua_msg * xua_msg_alloc(void)
Definition: xua_msg.c:44
@ SCOC_E_RCOC_OTHER_NPDU
Definition: sccp_scoc.c:160
struct llist_head as_list
list of osmo_ss7_as
Definition: osmo_ss7.h:79
@ SS7_ASP_CTR_PKT_TX_TOTAL
Definition: ss7_internal.h:34
struct osmo_ss7_instance * osmo_ss7_instance_find_or_create(void *ctx, uint32_t id)
Find or create a SS7 Instance.
Definition: osmo_ss7.c:328
int ss7_asp_xua_srv_conn_cb(struct osmo_stream_srv *conn)
Definition: osmo_ss7_asp.c:913
@ OSMO_SCCP_SSN_OMAP
Definition: sccp_sap.h:110
int scrc_rx_mtp_xfer_ind_xua(struct osmo_sccp_instance *inst, struct xua_msg *xua)
Definition: sccp_scrc.c:465
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:710
char * osmo_sccp_addr_name(const struct osmo_ss7_instance *ss7, const struct osmo_sccp_addr *addr)
Definition: sccp_helpers.c:408
static void sccp_timer_schedule(const struct sccp_connection *conn, struct osmo_timer_list *timer, enum osmo_sccp_timer timer_name)
Definition: sccp_scoc.c:280
size_t host_cnt
Definition: osmo_ss7.h:369
@ OSMO_SCCP_SSN_MAP
Definition: sccp_sap.h:111
struct osmo_ss7_linkset::@22 cfg
@ SS7_AS_CTR_TX_MSU_TOTAL
Definition: ss7_internal.h:28
static int scmg_rx_ssp(struct osmo_sccp_user *scu, const struct osmo_sccp_addr *calling_addr, const struct osmo_sccp_addr *called_addr, const struct sccp_scmg_msg *ssp)
Definition: sccp_scmg.c:222
@ OSMO_SCCP_SP_S_CONGESTED
Definition: sccp_sap.h:143
static int scrc_translate_node_9(struct osmo_sccp_instance *inst, struct xua_msg *xua, const struct osmo_sccp_addr *called)
Definition: sccp_scrc.c:262
@ OSMO_XLM_PRIM_M_AS_DOWN
Definition: sigtran_sap.h:28
char * osmo_scu_prim_name(const struct osmo_prim_hdr *oph)
Definition: sccp_sap.c:46
void osmo_sccp_user_set_priv(struct osmo_sccp_user *scu, void *priv)
Definition: sccp_user.c:160
static struct xua_msg * gen_coerr(uint32_t route_ctx, uint32_t dest_ref, uint32_t err_cause)
Definition: sccp_scoc.c:1556
const struct osmo_tdef osmo_sccp_timer_defaults[OSMO_SCCP_TIMERS_LEN]
Definition: sccp_scoc.c:239
#define SUA_IEI_CAUSE
Definition: sua.h:102
bool is_server
Definition: osmo_ss7.h:433
Definition: sccp_sap.h:175
void osmo_sccp_vty_write_cs7_node(struct vty *vty, const char *indent, struct osmo_sccp_instance *inst)
Definition: sccp_vty.c:253
uint32_t return_option
Definition: sccp_sap.h:243
@ OSMO_XLM_PRIM_M_AS_STATUS
Definition: sigtran_sap.h:19
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
void osmo_sccp_make_addr_pc_ssn(struct osmo_sccp_addr *addr, uint32_t pc, uint32_t ssn)
Definition: sccp_helpers.c:46
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_mtp_transfer_param transfer
Definition: mtp_sap.h:59
struct osmo_sccp_addr calling_addr
Definition: sccp_sap.h:241
int osmo_ss7_asp_peer_add_host(struct osmo_ss7_asp_peer *peer, void *talloc_ctx, const char *host)
Append (copy) address to a given ASP peer.
Definition: osmo_ss7_asp.c:340
uint32_t conn_id
Definition: sccp_scoc.c:94
uint32_t route_ctx
Definition: sccp_internal.h:45
uint8_t msg_class
Definition: xua_types.h:4
struct osmo_sccp_user * osmo_sccp_user_bind(struct osmo_sccp_instance *inst, const char *name, osmo_prim_cb prim_cb, uint16_t ssn)
Bind a given SCCP User to a given SSN (at any PC)
Definition: sccp_user.c:141
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
struct osmo_ss7_asp_peer local
Definition: osmo_ss7.h:536
@ OSMO_SCCP_TIMER_CONN_EST
Definition: sccp_internal.h:17
@ OSMO_SCU_PRIM_N_INFORM
Definition: sccp_sap.h:39
@ SCCP_SAP_USER
Definition: sigtran_sap.h:7
void sccp_sclc_rx_scrc_rout_fail(struct osmo_sccp_instance *inst, struct xua_msg *xua_in, uint32_t cause)
SCRC -> SCLC (Routing Failure.
Definition: sccp_sclc.c:332
const char * name
Definition: osmo_ss7.h:130
struct llist_head list
entry in list of sccp users of osmo_sccp_instance
Definition: sccp_internal.h:60
static void rx_inact_tmr_cb(void *data)
Definition: sccp_scoc.c:296
struct osmo_xua_server * osmo_ss7_xua_server_create(struct osmo_ss7_instance *inst, enum osmo_ss7_asp_protocol proto, uint16_t local_port, const char *local_host)
create a new xUA server configured with given ip/port
Definition: osmo_ss7_xua_srv.c:180
@ OSMO_XLM_PRIM_M_ERROR
Definition: sigtran_sap.h:21
struct osmo_timer_list t_rel
Definition: sccp_scoc.c:122
bool osmo_ss7_pc_is_local(struct osmo_ss7_instance *inst, uint32_t pc)
Definition: osmo_ss7.c:1225
@ OSMO_SS7_ASP_PROT_SUA
Definition: osmo_ss7.h:279
#define SUA_CO_RESCO
Definition: sua.h:75
struct osmo_sccp_instance * osmo_sccp_instance_create(struct osmo_ss7_instance *ss7, void *priv)
create a SCCP Instance and register it as user with SS7 inst
Definition: sccp_user.c:222
#define SUA_CO_CORE
Definition: sua.h:70
#define SCCP_STR
Definition: sccp_internal.h:12
struct llist_head list
entry in 'ref osmo_ss7_instance.as_list
Definition: osmo_ss7.h:302
enum osmo_ss7_asp_protocol proto
Definition: osmo_ss7.h:320
@ S_BOTHWAY_RESET
Definition: sccp_scoc.c:139
osmo_static_assert(ARRAY_SIZE(osmo_sccp_timer_defaults)==(OSMO_SCCP_TIMERS_LEN) &&ARRAY_SIZE(osmo_sccp_timer_names)==(OSMO_SCCP_TIMERS_LEN), assert_osmo_sccp_timers_count)
void sccp_scoc_rx_from_scrc(struct osmo_sccp_instance *inst, struct xua_msg *xua)
Main entrance function for primitives from the SCRC (Routing Control)
Definition: sccp_scoc.c:1775
@ OSMO_SCCP_TIMER_INT
Definition: sccp_internal.h:22
static bool xua_drop_data_check_drop(const struct osmo_scu_prim *prim, unsigned lim, const char *message)
Definition: sccp_scoc.c:627
@ OSMO_XLM_PRIM_M_ASP_ACTIVE
Definition: sigtran_sap.h:24
uint32_t remote_pc
Definition: sccp_scoc.c:86
uint32_t nai
Definition: sccp_sap.h:179
uint32_t cause
Definition: sccp_sap.h:252
static void conn_opt_data_clear_cache(struct sccp_connection *conn)
Definition: sccp_scoc.c:532
static void vty_show_connection(struct vty *vty, struct sccp_connection *conn)
Definition: sccp_scoc.c:1953
struct osmo_ss7_asp::@27 cfg
@ OSMO_SCCP_TIMER_GUARD
Definition: sccp_internal.h:23
struct osmo_ss7_routing_key routing_key
Definition: osmo_ss7.h:321
int osmo_sccp_instance_next_conn_id(struct osmo_sccp_instance *sccp)
Definition: sccp_scoc.c:495
static bool sua_is_cr(struct xua_msg *xua)
Definition: sccp_scrc.c:50
@ SCOC_E_RCOC_CONN_IND
Definition: sccp_scoc.c:151
char * osmo_scu_prim_hdr_name_c(void *ctx, const struct osmo_prim_hdr *oph)
Definition: sccp_sap.c:67
uint32_t sccp_class
Definition: sccp_scoc.c:103
int sccp_scrc_rx_sclc_msg(struct osmo_sccp_instance *inst, struct xua_msg *xua)
Definition: sccp_scrc.c:418
@ SCOC_E_T_REL_EXP
Definition: sccp_scoc.c:169
struct osmo_ss7_route * osmo_ss7_route_find_dpc_mask(struct osmo_ss7_route_table *rtbl, uint32_t dpc, uint32_t mask)
Find a SS7 route for given destination point code + mask in given table.
Definition: osmo_ss7.c:689
struct osmo_sccp_addr calling_addr
Definition: sccp_scoc.c:89
@ OSMO_XLM_PRIM_M_SCTP_STATUS
Definition: sigtran_sap.h:17
struct osmo_fsm sccp_scoc_fsm
Definition: sccp_scoc.c:1443
static int sua2sccp_tx_m3ua(struct osmo_sccp_instance *inst, struct xua_msg *sua)
Definition: sccp_scrc.c:72
struct osmo_ss7_asp * ss7_asp_alloc(struct osmo_ss7_instance *inst, const char *name, uint16_t remote_port, uint16_t local_port, enum osmo_ss7_asp_protocol proto)
Definition: osmo_ss7_asp.c:654
struct osmo_sccp_addr called_addr
Definition: sccp_sap.h:198
static int scrc_node_7(struct osmo_sccp_instance *inst, struct xua_msg *xua, const struct osmo_sccp_addr *called)
Definition: sccp_scrc.c:226
#define SUA_CO_COIT
Definition: sua.h:80
char * host[OSMO_SOCK_MAX_ADDRS]
Definition: osmo_ss7.h:368
struct osmo_scu_disconn_param disconnect
Definition: sccp_sap.h:278
struct xua_msg * osmo_sccp_to_xua(struct msgb *msg)
convert SCCP message to a SUA message
Definition: sccp2sua.c:1447
static struct osmo_sccp_user * sccp_user_bind_pc(struct osmo_sccp_instance *inst, const char *name, osmo_prim_cb prim_cb, uint16_t ssn, uint32_t pc)
Bind a SCCP User to a given Point Code.
Definition: sccp_user.c:94
struct osmo_sccp_addr calling_addr
Definition: sccp_sap.h:251
@ OSMO_SCCP_SSN_BSSAP
Definition: sccp_sap.h:137
ss7_as_ctr
Definition: ss7_internal.h:26
struct osmo_sccp_instance * osmo_ss7_ensure_sccp(struct osmo_ss7_instance *inst)
Allocate an SCCP instance, if not present yet.
Definition: osmo_ss7.c:411
@ OSMO_SCCP_SSN_MSC_BSSAP_LE
Definition: sccp_sap.h:134
union osmo_sccp_addr::@31 ip
struct osmo_sccp_instance * osmo_sccp_simple_server_on_ss7_id(void *ctx, uint32_t ss7_id, uint32_t pc, enum osmo_ss7_asp_protocol prot, int local_port, const char *local_ip)
Definition: sccp_user.c:752
static void rep_rel_tmr_cb(void *data)
Definition: sccp_scoc.c:317
static void scoc_fsm_wait_conn_conf(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: sccp_scoc.c:1142
@ OSMO_SCCP_GTI_NO_GT
Definition: sccp_sap.h:71
Definition: osmo_ss7.h:207
static struct sccp_connection * conn_create(struct osmo_sccp_user *user)
Definition: sccp_scoc.c:524
void sccp_sclc_rx_scrc_rout_fail(struct osmo_sccp_instance *inst, struct xua_msg *xua, uint32_t cause)
SCRC -> SCLC (Routing Failure.
Definition: sccp_sclc.c:332
static struct xua_msg * gen_relco(uint32_t route_ctx, uint32_t dest_ref, uint32_t src_ref)
Definition: sccp_scoc.c:1592
int sccp_sclc_rx_from_scrc(struct osmo_sccp_instance *inst, struct xua_msg *xua)
SCRC -> SCLC (connectionless message)
Definition: sccp_sclc.c:256
@ OSMO_SCCP_TIMER_REPEAT_REL
Definition: sccp_internal.h:21
bool osmo_sccp_check_addr(struct osmo_sccp_addr *addr, uint32_t presence)
check whether a given SCCP-Address is consistent.
Definition: sccp_user.c:307
uint32_t conn_id
Definition: sccp_sap.h:226
static void conn_tmr_cb(void *data)
Definition: sccp_scoc.c:324
void xua_msg_free(struct xua_msg *msg)
Definition: xua_msg.c:56
static void scoc_fsm_idle(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: sccp_scoc.c:951
void osmo_sccp_set_priv(struct osmo_sccp_instance *sccp, void *priv)
Definition: sccp_user.c:273
uint8_t ssc_congestion_lvl[0]
Definition: sccp_scmg.h:20
Definition: sccp_sap.h:273
@ OSMO_SCCP_SSN_BSC_BSSAP_LE
Definition: sccp_sap.h:133
void osmo_sccp_user_unbind(struct osmo_sccp_user *scu)
Unbind a given SCCP user.
Definition: sccp_user.c:150
void osmo_ss7_instance_destroy(struct osmo_ss7_instance *inst)
Destroy a SS7 Instance.
Definition: osmo_ss7.c:369
struct osmo_timer_list t_ias
Definition: sccp_scoc.c:118
@ SCOC_E_RCOC_DT2_IND
Definition: sccp_scoc.c:158
static void conn_stop_inact_timers(struct sccp_connection *conn)
Definition: sccp_scoc.c:350
void sccp_scoc_show_connections(struct vty *vty, struct osmo_sccp_instance *inst)
Definition: sccp_scoc.c:1978
int ss7_asp_ipa_srv_conn_cb(struct osmo_stream_srv *conn)
Definition: osmo_ss7_asp.c:882
struct osmo_scu_reset_param reset
Definition: sccp_sap.h:279
bool incoming
Definition: sccp_scoc.c:109
#define OSMO_SCCP_ADDR_T_IPv6
Definition: sccp_sap.h:53
struct osmo_ss7_linkset * linkset
pointer to linkset (destination) of route
Definition: osmo_ss7.h:217
int osmo_sccp_addr_ri_cmp(const struct osmo_sccp_addr *a, const struct osmo_sccp_addr *b)
Compare the routing information of two SCCP addresses.
Definition: sccp_user.c:432
int sccp_sclc_rx_from_scrc(struct osmo_sccp_instance *inst, struct xua_msg *xua)
SCRC -> SCLC (connectionless message)
Definition: sccp_sclc.c:256
int osmo_ss7_asp_use_default_lm(struct osmo_ss7_asp *asp, int log_level)
Definition: xua_default_lm_fsm.c:413
uint32_t remote_ref
Definition: sccp_scoc.c:100
#define S(x)
Definition: sccp_scoc.c:67
static int sccp_scmg_tx(struct osmo_sccp_user *scu, const struct osmo_sccp_addr *calling_addr, const struct osmo_sccp_addr *called_addr, uint8_t msg_type, uint8_t ssn, uint16_t pc, uint8_t smi, uint8_t *ssc_cong_lvl)
Definition: sccp_scmg.c:168
uint32_t conn_id
Definition: sccp_sap.h:204
@ S_ACTIVE
Definition: sccp_scoc.c:135
void sccp_scoc_rx_scrc_rout_fail(struct osmo_sccp_instance *inst, struct xua_msg *xua, uint32_t return_cause)
SCOC: Receive SCRC Routing Failure.
Definition: sccp_scoc.c:1530
static void ensure_opc_in_calling_ssn(struct osmo_sccp_instance *inst, struct xua_msg *xua)
Definition: sccp_scrc.c:444
static void show_user(struct vty *vty, struct osmo_sccp_user *user)
Definition: sccp_vty.c:45
int osmo_sccp_user_sap_down_nofree(struct osmo_sccp_user *scu, struct osmo_prim_hdr *oph)
Main entrance function for primitives from SCCP User.
Definition: sccp_scoc.c:1875
@ OSMO_XLM_PRIM_M_ASP_UP
Definition: sigtran_sap.h:22
static int conn_add_node(struct osmo_sccp_instance *inst, struct sccp_connection *conn)
Definition: sccp_scoc.c:418
int sccp_user_prim_up(struct osmo_sccp_user *scu, struct osmo_scu_prim *prim)
Send a SCCP User SAP Primitive up to the User.
Definition: sccp_user.c:174
@ OSMO_SCCP_GTI_TT_ONLY
Definition: sccp_sap.h:73
static void conn_stop_connect_timer(struct sccp_connection *conn)
Definition: sccp_scoc.c:389
@ SCOC_E_T_REP_REL_EXP
Definition: sccp_scoc.c:171
struct osmo_ss7_instance * osmo_sccp_get_ss7(const struct osmo_sccp_instance *sccp)
get the SS7 instance that is related to the given SCCP instance
Definition: sccp_user.c:889
@ OSMO_SCCP_SSN_TC_TEST
Definition: sccp_sap.h:121
struct llist_head list
Definition: sccp_internal.h:39
uint32_t affected_pc
Definition: sccp_sap.h:267
Definition: osmo_ss7.h:390
int sccp_sclc_user_sap_down_nofree(struct osmo_sccp_user *scu, struct osmo_prim_hdr *oph)
Main entrance function for primitives from SCCP User.
Definition: sccp_sclc.c:123
#define SUA_IEI_S7_HOP_CTR
Definition: sua.h:97
@ OSMO_SS7_ASP_ROLE_ASP
Definition: osmo_ss7.h:383
void * osmo_sccp_get_priv(struct osmo_sccp_instance *sccp)
Definition: sccp_user.c:278
@ MTP_UNAVAIL_C_INACC_REM_USER
Definition: mtp.h:31
@ OSMO_SCCP_RI_GT
Definition: sccp_sap.h:59
#define SUA_IEI_CORR_ID
Definition: sua.h:91
int sccp_scmg_init(struct osmo_sccp_instance *inst)
Definition: sccp_scmg.c:311
@ OSMO_SCCP_SSN_BSS_OAM
Definition: sccp_sap.h:136
char * xua_msg_dump(struct xua_msg *xua, const struct xua_dialect *dialect)
Definition: xua_msg.c:527
struct osmo_ss7_user ss7_user
Definition: sccp_internal.h:51
@ MTP_UNAVAIL_C_UNEQUIP_REM_USER
Definition: mtp.h:30
void sccp_lbcs_local_bcast_pcstate(struct osmo_sccp_instance *inst, const struct osmo_scu_pcstate_param *pcstate)
Definition: sccp_lbcs.c:39
static struct xua_msg * xua_gen_relre(struct sccp_connection *conn, uint32_t cause, struct osmo_scu_prim *prim)
Definition: sccp_scoc.c:563
int sccp_sclc_user_sap_down(struct osmo_sccp_user *scu, struct osmo_prim_hdr *oph)
Main entrance function for primitives from SCCP User.
Definition: sccp_sclc.c:147
void osmo_sccp_instance_destroy(struct osmo_sccp_instance *inst)
Definition: sccp_user.c:258
const struct value_string osmo_sccp_ssn_names[]
Definition: sccp_sap.c:139
uint8_t msg_type
Definition: xua_types.h:35
@ OSMO_SCCP_SSN_AUC
Definition: sccp_sap.h:116
bool ss7_asp_set_default_peer_hosts(struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:495
#define SUA_CAUSE_T_REFUSAL
Definition: sua.h:135
static int scmg_rx_sst(struct osmo_sccp_user *scu, const struct osmo_sccp_addr *calling_addr, const struct osmo_sccp_addr *called_addr, const struct sccp_scmg_msg *sst)
Definition: sccp_scmg.c:231
@ OSMO_SCCP_SSN_GGSN_MAP
Definition: sccp_sap.h:130
#define SUA_CO_CODA
Definition: sua.h:78
struct osmo_ss7_asp * osmo_ss7_asp_find_or_create(struct osmo_ss7_instance *inst, const char *name, uint16_t remote_port, uint16_t local_port, enum osmo_ss7_asp_protocol proto)
Definition: osmo_ss7.c:1191
uint32_t max_optional_data
Definition: sccp_internal.h:55
int osmo_ss7_user_register(struct osmo_ss7_instance *inst, uint8_t service_ind, struct osmo_ss7_user *user)
Register a MTP user for a given service indicator.
Definition: osmo_ss7.c:430
uint32_t pc
Definition: sccp_internal.h:68
uint16_t len
Definition: xua_msg.h:42
struct osmo_sccp_addr called_addr
Definition: sccp_sap.h:250
@ OSMO_SCCP_TIMER_REL
Definition: sccp_internal.h:20
bool role_set_by_vty
Definition: osmo_ss7.h:435
void osmo_ss7_as_destroy(struct osmo_ss7_as *as)
Destroy given Application Server.
Definition: osmo_ss7.c:1055
int osmo_ss7_asp_protocol_port(enum osmo_ss7_asp_protocol prot)
Definition: osmo_ss7_asp.c:149
struct osmo_sccp_gt gt
Definition: sccp_sap.h:186
int sccp_user_prim_up(struct osmo_sccp_user *scut, struct osmo_scu_prim *prim)
Send a SCCP User SAP Primitive up to the User.
Definition: sccp_user.c:174
static int xua_gen_encode_and_send(struct sccp_connection *conn, uint32_t event, const struct osmo_scu_prim *prim, int msg_type)
Definition: sccp_scoc.c:828
struct osmo_ss7_asp_peer remote
Definition: osmo_ss7.h:439
static void scoc_fsm_idle_onenter(struct osmo_fsm_inst *fi, uint32_t old_state)
Definition: sccp_scoc.c:1026
uint8_t gti
Definition: sccp_sap.h:176
#define SUA_CO_COERR
Definition: sua.h:79
osmo_sccp_timer
Definition: sccp_internal.h:15
@ SCOC_E_SCU_N_EXP_DATA_REQ
Definition: sccp_scoc.c:148
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
struct llist_head list
entry in osmo_ss7_instance::asp_list
Definition: osmo_ss7.h:392
uint32_t next_id
Definition: sccp_internal.h:47
struct osmo_tdef * tdefs
Definition: sccp_internal.h:53
@ OSMO_SCU_PRIM_N_DATA
Definition: sccp_sap.h:35
enum osmo_sccp_routing_ind ri
Definition: sccp_sap.h:185
static void scoc_fsm_conn_pend_in(struct osmo_fsm_inst *fi, uint32_t event, void *data)
Definition: sccp_scoc.c:1032
const struct xua_dialect xua_dialect_sua
Definition: sua.c:216
struct osmo_ss7_instance * inst
Definition: osmo_ss7.h:303
@ OSMO_SCCP_RI_SSN_IP
Definition: sccp_sap.h:61
@ OSMO_SCCP_SSN_MSC
Definition: sccp_sap.h:114
struct osmo_sccp_user * sccp_user_find(struct osmo_sccp_instance *inst, uint16_t ssn, uint32_t pc)
Find a SCCP User registered for given PC+SSN or SSN only First search all users with a valid PC for a...
Definition: sccp_user.c:52
static struct xua_msg * gen_coref_without_conn(struct osmo_sccp_instance *inst, struct xua_msg *xua_in, uint32_t ref_cause)
Definition: sccp_scoc.c:1477
@ SCCP_SCMG_MSGT_SOR
Definition: sccp_scmg.h:9
enum osmo_sccp_originator originator
Definition: sccp_sap.h:223
struct osmo_timer_list t_int
Definition: sccp_scoc.c:123
void osmo_sccp_set_max_optional_data(struct osmo_sccp_instance *inst, int val)
Adjust the upper bound for the optional data length (the payload) for CR, CC, CREF and RLSD messages.
Definition: sccp_user.c:877
static void tx_rlsd_from_xua_twoway(struct sccp_connection *conn, struct xua_msg *in)
Definition: sccp_scoc.c:1644
int xua_msg_free_tag(struct xua_msg *xua, uint16_t tag)
Definition: xua_msg.c:97
uint32_t id
Definition: osmo_ss7.h:95
uint8_t affected_ssn
Definition: sccp_scmg.h:16
struct osmo_mtp_transfer_param mtp
Definition: xua_msg.h:33
const struct value_string osmo_sccp_msg_type_names[]
Definition: sccp_types.c:4
@ OSMO_SCCP_REM_SCCP_S_UNAVAILABLE_UNKNOWN
Definition: sccp_sap.h:156
#define SUA_IEI_SRC_REF
Definition: sua.h:100
struct osmo_sccp_instance * osmo_sccp_simple_server_add_clnt(struct osmo_sccp_instance *inst, enum osmo_ss7_asp_protocol prot, const char *name, uint32_t pc, int local_port, int remote_port, const char *remote_ip)
Definition: sccp_user.c:802
const struct osmo_tdef osmo_sccp_timer_defaults[OSMO_SCCP_TIMERS_LEN]
Definition: sccp_scoc.c:239
uint8_t msg_type
Definition: sccp_scmg.h:15
struct llist_head users
Definition: sccp_internal.h:43
#define SUA_CAUSE_T_ERROR
Definition: sua.h:138
#define SUA_CAUSE_T_RETURN
Definition: sua.h:134
#define SUA_CO_RESRE
Definition: sua.h:76
char * xua_hdr_dump(struct xua_msg *xua, const struct xua_dialect *dialect)
Definition: xua_msg.c:467
struct osmo_sccp_instance * osmo_sccp_simple_client(void *ctx, const char *name, uint32_t default_pc, enum osmo_ss7_asp_protocol prot, int default_local_port, const char *default_local_ip, int default_remote_port, const char *default_remote_ip)
request an sccp client instance
Definition: sccp_user.c:731
struct osmo_ss7_asp * osmo_ss7_asp_find_by_proto(struct osmo_ss7_as *as, enum osmo_ss7_asp_protocol proto)
Find an ASP that matches the given protocol.
Definition: osmo_ss7.c:1159
static void conn_start_int_timer(struct sccp_connection *conn)
Definition: sccp_scoc.c:369
static void sccp_scoc_rx_unass_local_ref(struct osmo_sccp_instance *inst, struct xua_msg *xua)
Definition: sccp_scoc.c:1676
@ MTP_UNAVAIL_C_UNKNOWN
Definition: mtp.h:29
#define SUA_MSGC_CO
Definition: sua.h:36
@ SCOC_E_SCU_N_CONN_REQ
Definition: sccp_scoc.c:144
#define XUA_HDR(class, type)
Definition: xua_msg.h:25
uint32_t ssn
Definition: sccp_sap.h:188