libosmo-sigtran  1.8.0
Osmocom SIGTRAN library
sccp_internal.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <osmocom/core/fsm.h>
4 #include <osmocom/core/prim.h>
5 #include <osmocom/core/linuxlist.h>
6 #include <osmocom/core/linuxrbtree.h>
7 #include <osmocom/core/tdef.h>
11 
12 #define SCCP_STR "Signalling Connection Control Part\n"
13 
14 /* Appendix C.4 of Q.714 */
16  /* 0 kept unused on purpose since it's handled specially by osmo_fsm */
26  /* This must remain the last item: */
28 };
29 
30 extern const struct osmo_tdef osmo_sccp_timer_defaults[OSMO_SCCP_TIMERS_LEN];
31 
32 extern const struct value_string osmo_sccp_timer_names[];
33 static inline const char *osmo_sccp_timer_name(enum osmo_sccp_timer val)
34 { return get_value_string(osmo_sccp_timer_names, val); }
35 
36 /* an instance of the SCCP stack */
38  /* entry in global list of ss7 instances */
39  struct llist_head list;
40  /* rbtree root of 'struct sccp_connection' in this instance */
41  struct rb_root connections;
42  /* list of SCCP users in this instance */
43  struct llist_head users;
44  /* routing context to be used in all outbound messages */
45  uint32_t route_ctx;
46  /* next connection ID to allocate */
47  uint32_t next_id;
49  void *priv;
50 
52 
53  struct osmo_tdef *tdefs;
54 
56 };
57 
60  struct llist_head list;
64  char *name;
65 
67  uint16_t ssn;
68  uint32_t pc;
69 
70  /* set if we are a server */
71  struct llist_head links;
72 
73  /* user call-back function in case of incoming primitives */
74  osmo_prim_cb prim_cb;
75  void *priv;
76 
77  /* Application Server FSM Instance */
78  struct osmo_fsm_inst *as_fi;
79 };
80 
81 extern int DSCCP;
82 
83 struct xua_msg;
84 
85 struct osmo_sccp_user *
86 sccp_user_find(struct osmo_sccp_instance *inst, uint16_t ssn, uint32_t pc);
87 
88 /* Message from SCOC -> SCRC */
90  struct xua_msg *xua);
91 
92 /* Message from SCLC -> SCRC */
93 int sccp_scrc_rx_sclc_msg(struct osmo_sccp_instance *inst, struct xua_msg *xua);
94 
95 /* Message from MTP (SUA) -> SCRC */
97  struct xua_msg *xua);
98 
99 /* Message from SCRC -> SCOC */
101  struct xua_msg *xua);
103  struct xua_msg *xua, uint32_t cause);
104 
106 
107 /* Message from SCRC -> SCLC */
109  struct xua_msg *xua);
111  struct xua_msg *xua, uint32_t cause);
112 
113 int sccp_user_prim_up(struct osmo_sccp_user *scut, struct osmo_scu_prim *prim);
114 
115 /* SCU -> SCLC */
116 int sccp_sclc_user_sap_down(struct osmo_sccp_user *scu, struct osmo_prim_hdr *oph);
117 int sccp_sclc_user_sap_down_nofree(struct osmo_sccp_user *scu, struct osmo_prim_hdr *oph);
118 
119 struct msgb *sccp_msgb_alloc(const char *name);
120 
121 extern struct osmo_fsm sccp_scoc_fsm;
122 
123 void sccp_scoc_show_connections(struct vty *vty, struct osmo_sccp_instance *inst);
124 
125 void osmo_sccp_vty_write_cs7_node(struct vty *vty, const char *indent, struct osmo_sccp_instance *inst);
126 
127 /* Local Broadcast (LBCS) */
129  const struct osmo_scu_pcstate_param *pcstate);
131  const struct osmo_scu_state_param *state);
132 
133 /* SCCP Management (SCMG) */
134 void sccp_scmg_rx_ssn_allowed(struct osmo_sccp_instance *inst, uint32_t dpc, uint32_t ssn, uint32_t smi);
135 void sccp_scmg_rx_ssn_prohibited(struct osmo_sccp_instance *inst, uint32_t dpc, uint32_t ssn, uint32_t smi);
136 void sccp_scmg_rx_mtp_pause(struct osmo_sccp_instance *inst, uint32_t dpc);
137 void sccp_scmg_rx_mtp_resume(struct osmo_sccp_instance *inst, uint32_t dpc);
138 void sccp_scmg_rx_mtp_status(struct osmo_sccp_instance *inst, uint32_t dpc, enum mtp_unavail_cause cause);
139 int sccp_scmg_init(struct osmo_sccp_instance *inst);
osmo_scu_prim::data
struct osmo_scu_data_param data
Definition: sccp_sap.h:277
osmo_ss7_user::prim_cb
osmo_prim_cb prim_cb
Definition: osmo_ss7.h:132
M3UA_MSGC_SNM
#define M3UA_MSGC_SNM
Definition: m3ua.h:31
osmo_sccp_instance::ss7
struct osmo_ss7_instance * ss7
Definition: sccp_internal.h:48
osmo_ss7_instance_find
struct osmo_ss7_instance * osmo_ss7_instance_find(uint32_t id)
Find a SS7 Instance with given ID.
Definition: osmo_ss7.c:311
APPEND
#define APPEND(fmt, args ...)
osmo_sccp_instance
Definition: sccp_internal.h:37
osmo_ss7_instance_find_or_create
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
osmo_mtp_transfer_param::dpc
uint32_t dpc
Definition: mtp_sap.h:38
_sccp_parse_xudt
static int _sccp_parse_xudt(struct msgb *msgb, struct sccp_parse_result *result)
Definition: sccp.c:506
_sccp_parse_connection_release_complete
int _sccp_parse_connection_release_complete(struct msgb *msgb, struct sccp_parse_result *result)
Definition: sccp.c:371
osmo_ss7_instance::network_indicator
uint8_t network_indicator
Definition: osmo_ss7.h:101
OSMO_SCCP_TIMER_IAS
@ OSMO_SCCP_TIMER_IAS
Definition: sccp_internal.h:18
sccp_scoc_fsm
struct osmo_fsm sccp_scoc_fsm
Definition: sccp_scoc.c:1443
smi
uint8_t smi
Definition: sccp_scmg.h:5
mtp_si_vals
const struct value_string mtp_si_vals[]
Definition: osmo_ss7_vty.c:1226
sua_to_sccp_udt
static int sua_to_sccp_udt(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1235
osmo_ss7_instances
struct llist_head osmo_ss7_instances
MAND_IES
#define MAND_IES(msgt, ies)
Definition: m3ua.c:130
vty_init_addr
static void vty_init_addr(void)
Definition: osmo_ss7_vty.c:2247
osmo_ss7_instance::list
struct llist_head list
member of global list of instances
Definition: osmo_ss7.h:75
osmo_sccp_tx_conn_req_msg
int osmo_sccp_tx_conn_req_msg(struct osmo_sccp_user *scu, uint32_t conn_id, const struct osmo_sccp_addr *calling_addr, const struct osmo_sccp_addr *called_addr, struct msgb *msg)
Definition: sccp_helpers.c:140
osmo_ss7_linkset::links
struct osmo_ss7_link * links[16]
array of osmo_ss7_link
Definition: osmo_ss7.h:188
sccp_create_cr
struct msgb * sccp_create_cr(const struct sccp_source_reference *src_ref, const struct sockaddr_sccp *called, const uint8_t *l3_data, size_t l3_length)
Definition: sccp.c:836
osmo_ss7_as_del_asp
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:1031
OSMO_SS7_ASP_QUIRK_DAUD_IN_ASP
#define OSMO_SS7_ASP_QUIRK_DAUD_IN_ASP
Accept DAUD in ASP role (RFC states only permitted in ASP->SG role)
Definition: osmo_ss7.h:462
SUA_CO_COAK
#define SUA_CO_COAK
Definition: sua.h:71
osmo_ss7_asp::proto
enum osmo_ss7_asp_protocol proto
Definition: osmo_ss7.h:431
CS7_STR
#define CS7_STR
Definition: xua_internal.h:109
xua_msg_part::entry
struct llist_head entry
Definition: xua_msg.h:39
xua_common_hdr::data
uint8_t data[0]
Definition: xua_types.h:37
sccp_scmg_rx_mtp_status
void sccp_scmg_rx_mtp_status(struct osmo_sccp_instance *inst, uint32_t dpc, enum mtp_unavail_cause cause)
Definition: sccp_scmg.c:125
ss7_ipv6_sctp_supported
bool ss7_ipv6_sctp_supported(const char *host, bool bind)
Definition: osmo_ss7.c:1116
osmo_xlm_prim_notify::status_info
uint16_t status_info
Definition: sigtran_sap.h:40
osmo_ss7_route::as
struct osmo_ss7_as * as
pointer to Application Server
Definition: osmo_ss7.h:219
OSMO_SCU_PRIM_N_DISCONNECT
@ OSMO_SCU_PRIM_N_DISCONNECT
Definition: sccp_sap.h:37
osmo_sccp_gt_dump
char * osmo_sccp_gt_dump(const struct osmo_sccp_gt *gt)
Definition: sccp_helpers.c:293
m3ua_snm_msgt_names
static const struct value_string m3ua_snm_msgt_names[]
Definition: m3ua.c:167
OSMO_XLM_PRIM_M_SCTP_RELEASE
@ OSMO_XLM_PRIM_M_SCTP_RELEASE
Definition: sigtran_sap.h:15
M3UA_IEI_DEREG_STATUS
#define M3UA_IEI_DEREG_STATUS
Definition: m3ua.h:92
osmo_ss7_route_table::inst
struct osmo_ss7_instance * inst
osmo_ss7_instance to which we belong
Definition: osmo_ss7.h:50
_sccp_parse_err
static int _sccp_parse_err(struct msgb *msgb, struct sccp_parse_result *result)
Definition: sccp.c:549
mtp_unavail_cause
mtp_unavail_cause
Definition: mtp.h:28
osmo_sccp_instance_create
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
osmo_ss7_as
Definition: osmo_ss7.h:300
osmo_xlm_prim_notify::info_string
char * info_string
Definition: sigtran_sap.h:43
M3UA_IEI_SVC_IND
#define M3UA_IEI_SVC_IND
Definition: m3ua.h:88
osmo_sccp_user::priv
void * priv
Definition: sccp_internal.h:75
msg_type
uint8_t msg_type
Definition: sccp_scmg.h:2
osmo_ss7_asp_peer_snprintf
int osmo_ss7_asp_peer_snprintf(char *buf, size_t buf_len, struct osmo_ss7_asp_peer *peer)
Definition: osmo_ss7_asp.c:177
osmo_ss7_asp_peer_set_hosts
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
osmo_ss7_instance::cfg
struct osmo_ss7_instance::@20 cfg
default_pc_fmt
static const struct osmo_ss7_pc_fmt default_pc_fmt
Definition: osmo_ss7.c:106
sccp_to_xua_rlc
static struct xua_msg * sccp_to_xua_rlc(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1152
_setsockopt_peer_primary_addr
static int _setsockopt_peer_primary_addr(int fd, const struct osmo_sockaddr *saddr)
Definition: osmo_ss7_asp.c:57
osmo_ss7_xua_server_add_local_host
int osmo_ss7_xua_server_add_local_host(struct osmo_xua_server *xs, const char *local_host)
Definition: osmo_ss7_xua_srv.c:277
num_pc_comp_exp
static unsigned int num_pc_comp_exp(const struct osmo_ss7_pc_fmt *pc_fmt)
Definition: osmo_ss7.c:156
osmo_xua_server::cfg
struct osmo_xua_server::@29 cfg
host_is_ip_anyaddr
static bool host_is_ip_anyaddr(const char *host, bool is_v6)
Definition: osmo_ss7_asp.c:251
osmo_ss7_as_traffic_mode
osmo_ss7_as_traffic_mode
Definition: osmo_ss7.h:261
SCCP_MSG_SIZE
#define SCCP_MSG_SIZE
Definition: sccp.c:40
M3UA_ERR_INVAL_ROUT_CTX
@ M3UA_ERR_INVAL_ROUT_CTX
Definition: m3ua.h:171
OSMO_SCU_PRIM_N_UNITDATA
@ OSMO_SCU_PRIM_N_UNITDATA
Definition: sccp_sap.h:41
osmo_ss7_as::simple_client_allocated
bool simple_client_allocated
Were we allocated by "simple client" support?
Definition: osmo_ss7.h:312
M3UA_NOTIFY_T_STATCHG
#define M3UA_NOTIFY_T_STATCHG
Definition: m3ua.h:107
dava_mand_ies
static const uint16_t dava_mand_ies[]
Definition: m3ua.c:152
OSMO_SS7_ASP_PROT_IPA
@ OSMO_SS7_ASP_PROT_IPA
Definition: osmo_ss7.h:281
osmo_ss7_pc_is_local
bool osmo_ss7_pc_is_local(struct osmo_ss7_instance *inst, uint32_t pc)
Definition: osmo_ss7.c:1225
osmo_ss7_asp_peer::port
uint16_t port
Definition: osmo_ss7.h:370
XUA_AS_E_TRANSFER_REQ
@ XUA_AS_E_TRANSFER_REQ
Definition: xua_as_fsm.h:17
osmo_ss7_pointcode_parse_mask_or_len
int osmo_ss7_pointcode_parse_mask_or_len(struct osmo_ss7_instance *inst, const char *in)
Definition: osmo_ss7.c:285
osmo_ss7_asp_peer
Definition: osmo_ss7.h:365
osmo_ss7_asp::sctp_role_set_by_vty
bool sctp_role_set_by_vty
Definition: osmo_ss7.h:436
osmo_sccp_tx_unitdata_ranap
int osmo_sccp_tx_unitdata_ranap(struct osmo_sccp_user *scu, uint32_t src_point_code, uint32_t dst_point_code, const uint8_t *data, unsigned int len)
Definition: sccp_helpers.c:83
M3UA_ERR_UNSUPP_TRAF_MOD_TYP
@ M3UA_ERR_UNSUPP_TRAF_MOD_TYP
Definition: m3ua.h:151
MAX_PC_STR_LEN
#define MAX_PC_STR_LEN
Definition: osmo_ss7.c:57
osmo_ss7_link_find_or_create
struct osmo_ss7_link * osmo_ss7_link_find_or_create(struct osmo_ss7_linkset *lset, uint32_t id)
Find or create SS7 Link with given ID in given Linkset.
Definition: osmo_ss7.c:596
osmo_ss7_as::fi
struct osmo_fsm_inst * fi
AS FSM.
Definition: osmo_ss7.h:306
osmo_sccp_user::name
char * name
human-readable name of this user
Definition: sccp_internal.h:64
SUA_CO_RELCO
#define SUA_CO_RELCO
Definition: sua.h:74
SUA_CL_CLDR
#define SUA_CL_CLDR
Definition: sua.h:68
_sccp_send_data
static int _sccp_send_data(int class, const struct sockaddr_sccp *in, const struct sockaddr_sccp *out, struct msgb *payload, void *ctx)
Definition: sccp.c:647
osmo_ss7_xua_server_bind
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
store_local_ref
static int store_local_ref(struct sccp_source_reference *local_ref, struct xua_msg *xua, uint16_t iei)
Definition: sccp2sua.c:1007
dupu_mand_ies
static const uint16_t dupu_mand_ies[]
Definition: m3ua.c:161
osmo_ss7_as_down
bool osmo_ss7_as_down(const struct osmo_ss7_as *as)
Determine if given AS is in the down state.
Definition: osmo_ss7.c:1107
osmo_ss7_route::list
struct llist_head list
member in osmo_ss7_route_table::routes
Definition: osmo_ss7.h:211
M3UA_MSG_SIZE
#define M3UA_MSG_SIZE
Definition: m3ua.c:313
ss7_initialized
bool ss7_initialized
Definition: osmo_ss7.c:59
M3UA_NOTIFY_I_RESERVED
#define M3UA_NOTIFY_I_RESERVED
Definition: m3ua.h:110
SUA_CO_COREF
#define SUA_CO_COREF
Definition: sua.h:72
_sccp_parse_unitdata
static int _sccp_parse_unitdata(struct msgb *msgb, struct sccp_parse_result *result, const struct udt_offsets *offs)
Definition: sccp.c:438
M3UA_RKM_DEREG_REQ
#define M3UA_RKM_DEREG_REQ
Definition: m3ua.h:63
osmo_sccp_user
Definition: sccp_internal.h:58
vty_dump_rtable
static void vty_dump_rtable(struct vty *vty, struct osmo_ss7_route_table *rtbl)
Definition: osmo_ss7_vty.c:406
sccpaddr_gt_node
static struct cmd_node sccpaddr_gt_node
Definition: osmo_ss7_vty.c:1504
_sccp_parse_udts
int _sccp_parse_udts(struct msgb *msgb, struct sccp_parse_result *result)
Definition: sccp.c:494
osmo_ss7_route::priority
uint32_t priority
lower priority is higher
Definition: osmo_ss7.h:229
m3ua_msg_class_snm
const struct xua_msg_class m3ua_msg_class_snm
Definition: m3ua.c:176
OSMO_SCCP_TIMERS_LEN
@ OSMO_SCCP_TIMERS_LEN
Definition: sccp_internal.h:27
osmo_sccp_addr
Definition: sccp_sap.h:183
osmo_sccp_addr_entry::inst
struct osmo_ss7_instance * inst
Definition: osmo_ss7_vty.c:1495
osmo_ss7_routing_key::l_rk_id
uint32_t l_rk_id
Definition: osmo_ss7.h:255
OSMO_SS7_ASP_ROLE_IPSP
@ OSMO_SS7_ASP_ROLE_IPSP
Definition: osmo_ss7.h:385
M3UA_IEI_ERR_CODE
#define M3UA_IEI_ERR_CODE
Definition: m3ua.h:71
XUA_ASP_E_ASPSM_BEAT
@ XUA_ASP_E_ASPSM_BEAT
Definition: xua_asp_fsm.h:28
osmo_ss7_route_table_destroy
void osmo_ss7_route_table_destroy(struct osmo_ss7_route_table *rtbl)
Definition: osmo_ss7.c:655
osmo_ss7_route_create
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
@ OSMO_SCCP_GTI_TT_NPL_ENC_NAI
Definition: sccp_sap.h:75
M3UA_MSGC_ASPTM
#define M3UA_MSGC_ASPTM
Definition: m3ua.h:33
M3UA_ASPSM_BEAT_ACK
#define M3UA_ASPSM_BEAT_ACK
Definition: m3ua.h:54
sua_to_sccp_it
static int sua_to_sccp_it(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1395
M3UA_NOTIFY_I_AS_INACT
#define M3UA_NOTIFY_I_AS_INACT
Definition: m3ua.h:111
sccp_data_callback::ssn
uint8_t ssn
Definition: sccp.c:70
osmo_ss7_route_print
const char * osmo_ss7_route_print(const struct osmo_ss7_route *rt)
Definition: osmo_ss7.c:838
osmo_sccp_user::ssn
uint16_t ssn
SSN and/or point code to which we are bound.
Definition: sccp_internal.h:67
SUA_CO_CODT
#define SUA_CO_CODT
Definition: sua.h:77
sccp_sclc_user_sap_down_nofree
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
osmo_ss7_instance::linksets
struct llist_head linksets
list of osmo_ss7_linkset
Definition: osmo_ss7.h:77
osmo_sccp_addr_to_str_buf
int osmo_sccp_addr_to_str_buf(char *buf, size_t buf_len, const struct osmo_ss7_instance *ss7, const struct osmo_sccp_addr *addr)
Definition: sccp_helpers.c:375
ni
uint8_t ni
Definition: m3ua.h:5
sccp_connection
Definition: sccp_scoc.c:75
m3ua_aspsm_msgt_names
static const struct value_string m3ua_aspsm_msgt_names[]
Definition: m3ua.c:190
osmo_ss7_as_find_by_rctx
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:893
XUA_ASP_E_SCTP_COMM_DOWN_IND
@ XUA_ASP_E_SCTP_COMM_DOWN_IND
Definition: xua_asp_fsm.h:15
osmo_sccp_addr_entry::name
char name[32]
Definition: osmo_ss7_vty.c:1496
_sccp_send_connection_released
static int _sccp_send_connection_released(struct sccp_connection *conn, int cause)
Definition: sccp.c:1013
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
osmo_ss7_pointcode_print
const char * osmo_ss7_pointcode_print(const struct osmo_ss7_instance *inst, uint32_t pc)
Definition: osmo_ss7.c:271
xua_cli_close_and_reconnect
static void xua_cli_close_and_reconnect(struct osmo_stream_cli *cli)
Definition: osmo_ss7_asp.c:1023
osmo_sccp_addr::pc
uint32_t pc
Definition: sccp_sap.h:187
osmo_scu_data_param::conn_id
uint32_t conn_id
Definition: sccp_sap.h:210
OSMO_SCCP_ADDR_T_PC
#define OSMO_SCCP_ADDR_T_PC
Definition: sccp_sap.h:50
M3UA_ASPSM_BEAT
#define M3UA_ASPSM_BEAT
Definition: m3ua.h:51
_sccp_send_connection_data
static int _sccp_send_connection_data(struct sccp_connection *conn, struct msgb *_data)
Definition: sccp.c:942
osmo_sccp_gt::npi
uint32_t npi
Definition: sccp_sap.h:178
M3UA_ASPSM_DOWN
#define M3UA_ASPSM_DOWN
Definition: m3ua.h:50
SUA_IEI_ROUTE_CTX
#define SUA_IEI_ROUTE_CTX
Definition: sua.h:83
sccp_scrc_rx_sclc_msg
int sccp_scrc_rx_sclc_msg(struct osmo_sccp_instance *inst, struct xua_msg *xua)
Definition: sccp_scrc.c:418
osmo_sccp_tx_conn_req
int osmo_sccp_tx_conn_req(struct osmo_sccp_user *scu, uint32_t conn_id, const struct osmo_sccp_addr *calling_addr, const struct osmo_sccp_addr *called_addr, const uint8_t *data, unsigned int len)
Definition: sccp_helpers.c:112
m3ua_asptm_msgt_names
const struct value_string m3ua_asptm_msgt_names[]
Definition: m3ua.c:205
_sccp_handle_read
static int _sccp_handle_read(struct msgb *msgb)
Definition: sccp.c:661
M3UA_SNM_DUPU
#define M3UA_SNM_DUPU
Definition: m3ua.h:46
osmo_xlm_prim::error
struct osmo_xlm_prim_error error
Definition: sigtran_sap.h:70
osmo_ss7_routing_key
Definition: osmo_ss7.h:251
osmo_ss7_linkset
Definition: osmo_ss7.h:181
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_scu_connect_param
Definition: sccp_sap.h:197
ASP_SCTP_PARAM_INIT_FIELDS
#define ASP_SCTP_PARAM_INIT_FIELDS
Definition: osmo_ss7_vty.c:805
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
write_one_rtable
static void write_one_rtable(struct vty *vty, struct osmo_ss7_route_table *rtable)
Definition: osmo_ss7_vty.c:386
OSMO_SCCP_TIMER_IAR
@ OSMO_SCCP_TIMER_IAR
Definition: sccp_internal.h:19
chop_v4_mapped_on_v6_prefix
static void chop_v4_mapped_on_v6_prefix(char *buf)
Definition: osmo_ss7_asp.c:542
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_sccp_conn_id_exists
bool osmo_sccp_conn_id_exists(const struct osmo_sccp_instance *inst, uint32_t id)
Definition: sccp_scoc.c:445
M3UA_SNM_DUNA
#define M3UA_SNM_DUNA
Definition: m3ua.h:42
osmo_scu_unitdata_param
Definition: sccp_sap.h:239
write_one_as
static void write_one_as(struct vty *vty, struct osmo_ss7_as *as, bool show_dyn_config)
Definition: osmo_ss7_vty.c:1395
M3UA_ERR_DEST_STATUS_UNKN
@ M3UA_ERR_DEST_STATUS_UNKN
Definition: m3ua.h:166
M3UA_MSG_HEADROOM
#define M3UA_MSG_HEADROOM
Definition: m3ua.c:314
udt_offsets::called_offset
uint32_t called_offset
Definition: sccp.c:433
ss7_xua_server_set_default_local_hosts
bool ss7_xua_server_set_default_local_hosts(struct osmo_xua_server *oxs)
Definition: osmo_ss7_xua_srv.c:287
pcaprec_hdr::incl_len
uint32_t incl_len
Definition: mtp_pcap.c:44
M3UA_ERR_INVAL_NET_APPEAR
@ M3UA_ERR_INVAL_NET_APPEAR
Definition: m3ua.h:167
m3ua_iei_names
static const struct value_string m3ua_iei_names[]
Definition: m3ua.c:101
sccp_lbcs_local_bcast_state
void sccp_lbcs_local_bcast_state(struct osmo_sccp_instance *inst, const struct osmo_scu_state_param *state)
Definition: sccp_lbcs.c:55
write_one_asp
static void write_one_asp(struct vty *vty, struct osmo_ss7_asp *asp, bool show_dyn_config)
Definition: osmo_ss7_vty.c:1037
sccp_to_xua_rlsd
static struct xua_msg * sccp_to_xua_rlsd(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1119
osmo_ss7_instance::primary_pc
uint32_t primary_pc
Definition: osmo_ss7.h:98
dpc
uint32_t dpc
Definition: m3ua.h:3
osmo_xua_server::sctp_init
struct osmo_xua_server::@29::@30 sctp_init
osmo_ss7_asp::simple_client_allocated
bool simple_client_allocated
Were we allocated by "simple client" support?
Definition: osmo_ss7.h:420
osmo_ss7_asp_peer_add_host2
int osmo_ss7_asp_peer_add_host2(struct osmo_ss7_asp_peer *peer, void *talloc_ctx, const char *host, bool is_primary_addr)
Append (copy) address to a given ASP peer.
Definition: osmo_ss7_asp.c:266
data_mand_ies
static const uint16_t data_mand_ies[]
Definition: m3ua.c:133
osmo_sccp_addr::presence
uint32_t presence
Definition: sccp_sap.h:184
sccp_scoc_flush_connections
void sccp_scoc_flush_connections(struct osmo_sccp_instance *inst)
Definition: sccp_scoc.c:1941
osmo_sccp_addr::v4
struct in_addr v4
Definition: sccp_sap.h:190
osmo_scu_disconn_param
Definition: sccp_sap.h:222
OSMO_SS7_ASP_PROT_M3UA
@ OSMO_SS7_ASP_PROT_M3UA
Definition: osmo_ss7.h:280
IPA_ASP_E_ID_RESP
@ IPA_ASP_E_ID_RESP
Definition: xua_asp_fsm.h:32
m3ua_encode_duna
static struct xua_msg * m3ua_encode_duna(const uint32_t *rctx, unsigned int num_rctx, const uint32_t *aff_pc, unsigned int num_aff_pc, const char *info_string)
Definition: m3ua.c:775
osmo_mtp_prim::u
union osmo_mtp_prim::@18 u
xua_snm_rx_daud
void xua_snm_rx_daud(struct osmo_ss7_asp *asp, struct xua_msg *xua)
Definition: xua_snm.c:309
osmo_sccp_vty_write_cs7_node
void osmo_sccp_vty_write_cs7_node(struct vty *vty, const char *indent, struct osmo_sccp_instance *inst)
Definition: sccp_vty.c:253
write_all_cs7
static int write_all_cs7(struct vty *vty, bool show_dyn_config)
Definition: osmo_ss7_vty.c:230
osmo_ss7_xua_server_bind
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_ss7_linkset_destroy
void osmo_ss7_linkset_destroy(struct osmo_ss7_linkset *lset)
Destroy a SS7 Linkset.
Definition: osmo_ss7.c:505
SUA_IEI_DATA
#define SUA_IEI_DATA
Definition: sua.h:107
osmo_sccp_user::prim_cb
osmo_prim_cb prim_cb
Definition: sccp_internal.h:74
xua_node
static struct cmd_node xua_node
Definition: osmo_ss7_vty.c:449
OSMO_SCCP_RI_NONE
@ OSMO_SCCP_RI_NONE
Definition: sccp_sap.h:58
osmo_ss7_asp_destroy
void osmo_ss7_asp_destroy(struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:685
M3UA_PORT
#define M3UA_PORT
Definition: m3ua.h:26
XUA_ASP_E_ASPTM_ASPIA
@ XUA_ASP_E_ASPTM_ASPIA
Definition: xua_asp_fsm.h:25
osmo_ss7_pointcode_print2
const char * osmo_ss7_pointcode_print2(const struct osmo_ss7_instance *inst, uint32_t pc)
Definition: osmo_ss7.c:279
osmo_sccp_addr_entry
Definition: osmo_ss7_vty.c:1490
osmo_scu_disconn_param::cause
uint32_t cause
Definition: sccp_sap.h:225
LLIST_HEAD
static LLIST_HEAD(sccp_connections)
M3UA_MSGC_RKM
#define M3UA_MSGC_RKM
Definition: m3ua.h:34
osmo_ss7_route_lookup
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
m3ua_msg_class_rkm
const struct xua_msg_class m3ua_msg_class_rkm
Definition: m3ua.c:260
_sccp_parse_connection_confirm
int _sccp_parse_connection_confirm(struct msgb *msgb, struct sccp_parse_result *result)
Definition: sccp.c:328
osmo_ss7_linkset_find_or_create
struct osmo_ss7_linkset * osmo_ss7_linkset_find_or_create(struct osmo_ss7_instance *inst, const char *name, uint32_t pc)
Find or allocate SS7 Linkset.
Definition: osmo_ss7.c:552
osmo_xua_server::proto
enum osmo_ss7_asp_protocol proto
Definition: osmo_ss7.h:537
m3ua_rx_asp
static int m3ua_rx_asp(struct osmo_ss7_asp *asp, struct xua_msg *xua)
Definition: m3ua.c:667
xua_dialect
Definition: xua_msg.h:55
osmo_ss7_init
int osmo_ss7_init(void)
Definition: osmo_ss7.c:1234
sccp_internal.h
osmo_ss7_instance_destroy
void osmo_ss7_instance_destroy(struct osmo_ss7_instance *inst)
Destroy a SS7 Instance.
Definition: osmo_ss7.c:369
NUM_SCCP_MSGT
#define NUM_SCCP_MSGT
Definition: sccp2sua.c:761
osmo_ss7_as::rkm_dyn_allocated
bool rkm_dyn_allocated
Were we dynamically allocated by RKM?
Definition: osmo_ss7.h:309
sccp_addr_to_sua
static int sccp_addr_to_sua(struct xua_msg *xua, uint16_t iei, const uint8_t *addr, unsigned int addrlen)
convert SCCP address to SUA address
Definition: sccp2sua.c:322
osmo_ss7_xua_server_set_local_hosts
int osmo_ss7_xua_server_set_local_hosts(struct osmo_xua_server *xs, const char **local_hosts, size_t local_host_cnt)
Definition: osmo_ss7_xua_srv.c:265
osmo_ss7_route_name
const char * osmo_ss7_route_name(struct osmo_ss7_route *rt, bool list_asps)
Return human readable representation of the route, in a static buffer.
Definition: osmo_ss7_hmrt.c:150
M3UA_ERR_INVALID_VERSION
@ M3UA_ERR_INVALID_VERSION
Definition: m3ua.h:147
osmo_xua_server::server
struct osmo_stream_srv_link * server
Definition: osmo_ss7.h:532
osmo_scu_connect_param::sccp_class
uint32_t sccp_class
Definition: sccp_sap.h:202
addr_entry_by_name_global
static struct osmo_sccp_addr_entry * addr_entry_by_name_global(const char *name)
Definition: osmo_ss7_vty.c:1534
sua_to_sccp_xudt
static int sua_to_sccp_xudt(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1278
osmo_ss7_asp_restart
int osmo_ss7_asp_restart(struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:721
osmo_xua_server::inst
struct osmo_ss7_instance * inst
Definition: osmo_ss7.h:527
osmo_ss7_user::priv
void * priv
Definition: osmo_ss7.h:134
SS7_ASP_CTR_PKT_RX_TOTAL
@ SS7_ASP_CTR_PKT_RX_TOTAL
Definition: ss7_internal.h:32
SUA_IEI_SRC_ADDR
#define SUA_IEI_SRC_ADDR
Definition: sua.h:98
M3UA_NOTIFY_I_OT_ALT_ASP_ACT
#define M3UA_NOTIFY_I_OT_ALT_ASP_ACT
Definition: m3ua.h:116
next_l_rk_id
static int32_t next_l_rk_id
Definition: osmo_ss7.c:63
osmo_xlm_prim_notify
Definition: sigtran_sap.h:37
osmo_sccp_tx_data
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
SUA_CAUSE_T_RELEASE
#define SUA_CAUSE_T_RELEASE
Definition: sua.h:136
parse_asp_proto
static enum osmo_ss7_asp_protocol parse_asp_proto(const char *protocol)
Definition: osmo_ss7_vty.c:444
osmo_ss7_instance_find
struct osmo_ss7_instance * osmo_ss7_instance_find(uint32_t id)
Find a SS7 Instance with given ID.
Definition: osmo_ss7.c:311
osmo_ss7_linkset::list
struct llist_head list
Definition: osmo_ss7.h:184
sccp_is_mandatory
static bool sccp_is_mandatory(enum sccp_message_types type, const struct xua_msg_part *part)
Definition: sccp2sua.c:942
SCCP_MSG_HEADROOM
#define SCCP_MSG_HEADROOM
Definition: sccp.c:41
pcaprec_hdr::orig_len
uint32_t orig_len
Definition: mtp_pcap.c:45
_sccp_parse_connection_refused
int _sccp_parse_connection_refused(struct msgb *msgb, struct sccp_parse_result *result)
Definition: sccp.c:285
OSMO_SCCP_SSN_RANAP
@ OSMO_SCCP_SSN_RANAP
Definition: sccp_sap.h:123
append_to_buf
static void append_to_buf(char *buf, size_t size, bool *comma, const char *fmt,...)
Definition: sccp_helpers.c:277
osmo_ss7_routing_key::pc
uint32_t pc
Definition: osmo_ss7.h:257
ss7_as_rcd
static const struct rate_ctr_desc ss7_as_rcd[]
Definition: osmo_ss7.c:858
osmo_ss7_as::mode
enum osmo_ss7_as_traffic_mode mode
Definition: osmo_ss7.h:322
XUA_ASP_S_INACTIVE
@ XUA_ASP_S_INACTIVE
Definition: xua_asp_fsm.h:5
osmo_xua_server
Definition: osmo_ss7.h:525
MTP_SI_GCP
@ MTP_SI_GCP
Definition: mtp.h:21
M3UA_MGMT_ERR
#define M3UA_MGMT_ERR
Definition: m3ua.h:37
DEFUN_ATTR
DEFUN_ATTR(cs7_instance, cs7_instance_cmd, "cs7 instance <0-15>", CS7_STR "Configure a SS7 Instance\n" INST_STR "Number of the instance\n", CMD_ATTR_IMMEDIATE)
Definition: osmo_ss7_vty.c:85
MTP_SAP_USER
@ MTP_SAP_USER
Definition: sigtran_sap.h:10
_sccp_parse_connection_dt1
int _sccp_parse_connection_dt1(struct msgb *msgb, struct sccp_parse_result *result)
Definition: sccp.c:391
mtp_prim_to_m3ua
static struct xua_msg * mtp_prim_to_m3ua(struct osmo_mtp_prim *prim)
Definition: osmo_ss7_hmrt.c:72
xua_msg_get_u32
uint32_t xua_msg_get_u32(const struct xua_msg *xua, uint16_t iei)
Definition: xua_msg.c:292
XUA_VAR_HELP_STR
#define XUA_VAR_HELP_STR
Definition: osmo_ss7_vty.c:52
osmo_ss7_asp::local
struct osmo_ss7_asp_peer local
Definition: osmo_ss7.h:438
osmo_mtp_prim::oph
struct osmo_prim_hdr oph
Definition: mtp_sap.h:57
XUA_SRV_SCTP_PARAM_INIT_FIELDS
#define XUA_SRV_SCTP_PARAM_INIT_FIELDS
Definition: osmo_ss7_vty.c:536
u32_masklen
static int u32_masklen(uint32_t mask, unsigned int nbits)
Definition: osmo_ss7.c:825
osmo_ss7_route::linkset_name
char * linkset_name
human-specified linkset name
Definition: osmo_ss7.h:227
osmo_ss7_as_traffic_mode_vals
struct value_string osmo_ss7_as_traffic_mode_vals[]
Definition: osmo_ss7.c:72
osmo_ss7_asp_send
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_asp.c:1156
_send_msg
static void _send_msg(struct sccp_connection *conn, struct msgb *msg, void *ctx)
Definition: sccp.c:98
osmo_scu_prim::connect
struct osmo_scu_connect_param connect
Definition: sccp_sap.h:276
xua_as_fsm.h
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
ss7_asp_apply_peer_primary_address
int ss7_asp_apply_peer_primary_address(const struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:346
pcap_hdr::version_major
uint16_t version_major
Definition: mtp_pcap.c:33
get_logevel_by_sn_type
static int get_logevel_by_sn_type(int sn_type)
Definition: osmo_ss7_asp.c:822
osmo_ss7_pointcode_parse
int osmo_ss7_pointcode_parse(struct osmo_ss7_instance *inst, const char *str)
Definition: osmo_ss7.c:213
gen_asp_timer_cmd_strs
static void gen_asp_timer_cmd_strs(struct cmd_element *cmd)
Definition: osmo_ss7_vty.c:922
xua_msg_part::dat
uint8_t * dat
Definition: xua_msg.h:43
osmo_scu_connect_param::calling_addr
struct osmo_sccp_addr calling_addr
Definition: sccp_sap.h:199
osmo_ss7_as_add_asp
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
osmo_ss7_asp_peer_snprintf
int osmo_ss7_asp_peer_snprintf(char *buf, size_t buf_len, struct osmo_ss7_asp_peer *peer)
Definition: osmo_ss7_asp.c:177
osmo_ss7_asp::inst
struct osmo_ss7_instance * inst
Definition: osmo_ss7.h:393
XUA_ASP_E_ASPSM_ASPDN_ACK
@ XUA_ASP_E_ASPSM_ASPDN_ACK
Definition: xua_asp_fsm.h:24
osmo_ss7_instance::permit_dyn_rkm_alloc
bool permit_dyn_rkm_alloc
Definition: osmo_ss7.h:103
M3UA_ERR_INVAL_PARAM_VAL
@ M3UA_ERR_INVAL_PARAM_VAL
Definition: m3ua.h:163
osmo_ss7_asp_protocol
osmo_ss7_asp_protocol
Definition: osmo_ss7.h:277
osmo_ss7_as::cfg
struct osmo_ss7_as::@25 cfg
SUA_CL_CLDT
#define SUA_CL_CLDT
Definition: sua.h:67
OSMO_SS7_ASP_ROLE_SG
@ OSMO_SS7_ASP_ROLE_SG
Definition: osmo_ss7.h:384
xua_from_msg
struct xua_msg * xua_from_msg(const int version, uint16_t len, uint8_t *data)
Definition: xua_msg.c:151
ss7_asp_apply_primary_address
int ss7_asp_apply_primary_address(const struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:386
ipa_rx_msg_ccm
static int ipa_rx_msg_ccm(struct osmo_ss7_asp *asp, struct msgb *msg)
Definition: ipa.c:100
ss7_asp_find_by_socket_addr
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
OSMO_SCCP_TIMER_REASSEMBLY
@ OSMO_SCCP_TIMER_REASSEMBLY
Definition: sccp_internal.h:25
_sccp_parse_optional_data
static int _sccp_parse_optional_data(const int offset, struct msgb *msgb, struct sccp_optional_data *data)
Definition: sccp.c:158
xua_common_hdr::version
uint8_t version
Definition: xua_types.h:32
sua_to_sccp_cref
static int sua_to_sccp_cref(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1102
OSMO_XLM_PRIM_M_NOTIFY
@ OSMO_XLM_PRIM_M_NOTIFY
Definition: sigtran_sap.h:20
SUA_IEI_IMPORTANCE
#define SUA_IEI_IMPORTANCE
Definition: sua.h:114
osmo_sccp_instance::connections
struct rb_root connections
Definition: sccp_internal.h:41
osmo_ss7_route::dest
struct osmo_ss7_route::@23 dest
osmo_xlm_prim_notify::route_ctx
uint32_t route_ctx
Definition: sigtran_sap.h:42
m3ua_rx_rkm
int m3ua_rx_rkm(struct osmo_ss7_asp *asp, struct xua_msg *xua)
Definition: xua_rkm.c:527
OSMO_SCCP_ADDR_T_IPv4
#define OSMO_SCCP_ADDR_T_IPv4
Definition: sccp_sap.h:52
ss7_asp_rcd
static const struct rate_ctr_desc ss7_asp_rcd[]
Definition: osmo_ss7_asp.c:157
sua_to_sccp_cr
static int sua_to_sccp_cr(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1037
sccp_system::write_context
void * write_context
Definition: sccp.c:53
SUA_IEI_SEQ_CTRL
#define SUA_IEI_SEQ_CTRL
Definition: sua.h:117
SUA_IEI_DEST_REF
#define SUA_IEI_DEST_REF
Definition: sua.h:101
sccp_msg_add_sua_opt
static int sccp_msg_add_sua_opt(enum sccp_message_types type, struct msgb *msg, struct xua_msg_part *opt)
Convert a given SUA option/IE to SCCP and add it to given * msgb.
Definition: sccp2sua.c:590
osmo_scu_state_param
Definition: sccp_sap.h:258
SUA_IEI_PROTO_CLASS
#define SUA_IEI_PROTO_CLASS
Definition: sua.h:116
osmo_ss7_xua_server_find
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
M3UA_NOTIFY_I_OT_ASP_FAILURE
#define M3UA_NOTIFY_I_OT_ASP_FAILURE
Definition: m3ua.h:117
sccp_to_xua_cc
static struct xua_msg * sccp_to_xua_cc(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1057
sccp_scmg_rx_ssn_prohibited
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
osmo_sccp_addr::v6
struct in6_addr v6
Definition: sccp_sap.h:191
sccp_data_to_sua_ptr
static int sccp_data_to_sua_ptr(struct xua_msg *xua, uint16_t iei, struct msgb *msg, uint8_t *ptr_addr)
convenience wrapper around xua_msg_add_data() for variable mandatory data
Definition: sccp2sua.c:459
M3UA_IEI_NET_APPEAR
#define M3UA_IEI_NET_APPEAR
Definition: m3ua.h:79
M3UA_XFER_DATA
#define M3UA_XFER_DATA
Definition: m3ua.h:40
osmo_ss7_asp::quirks
uint32_t quirks
Definition: osmo_ss7.h:441
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
M3UA_NOTIFY
#define M3UA_NOTIFY(type, info)
Definition: m3ua.h:106
xua_msg_event_map
Definition: xua_msg.h:63
osmo_ss7_route_find_dpc_mask
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
data
uint8_t data[0]
Definition: xua_types.h:7
OSMO_SS7_PATCH_NONE
@ OSMO_SS7_PATCH_NONE
Definition: osmo_ss7.h:296
patch_sccp_with_pc
static struct msgb * patch_sccp_with_pc(struct osmo_ss7_asp *asp, struct msgb *sccp_msg_in, uint32_t opc, uint32_t dpc)
Definition: ipa.c:151
osmo_ss7_asp_role_names
const struct value_string osmo_ss7_asp_role_names[]
Definition: osmo_ss7_asp.c:123
osmo_ss7_route_table::description
char * description
Definition: osmo_ss7.h:56
pcap_hdr::version_minor
uint16_t version_minor
Definition: mtp_pcap.c:34
M3UA_ERR_REFUSED_MGMT_BLOCKING
@ M3UA_ERR_REFUSED_MGMT_BLOCKING
Definition: m3ua.h:159
osmo_ss7_user_register
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
OSMO_SCU_PRIM_N_CONNECT
@ OSMO_SCU_PRIM_N_CONNECT
Definition: sccp_sap.h:34
ss7_asp_set_default_peer_hosts
bool ss7_asp_set_default_peer_hosts(struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:495
sua.h
g_osmo_ss7_asp_rx_unknown_cb
static osmo_ss7_asp_rx_unknown_cb * g_osmo_ss7_asp_rx_unknown_cb
Definition: osmo_ss7_asp.c:1210
OSMO_SCCP_ADDR_T_SSN
#define OSMO_SCCP_ADDR_T_SSN
Definition: sccp_sap.h:51
XUA_ASP_E_ASPTM_ASPAC_ACK
@ XUA_ASP_E_ASPTM_ASPAC_ACK
Definition: xua_asp_fsm.h:22
M3UA_VERSION
#define M3UA_VERSION
Definition: m3ua.h:24
osmo_scu_prim::unitdata
struct osmo_scu_unitdata_param unitdata
Definition: sccp_sap.h:280
M3UA_IEI_LOC_RKEY_ID
#define M3UA_IEI_LOC_RKEY_ID
Definition: m3ua.h:86
sccp_connection_free
int sccp_connection_free(struct sccp_connection *connection)
Definition: sccp.c:1400
m3ua_decode_notify
int m3ua_decode_notify(struct osmo_xlm_prim_notify *npar, void *ctx, const struct xua_msg *xua)
Definition: m3ua.c:410
m3ua_msg_class_aspsm
const struct xua_msg_class m3ua_msg_class_aspsm
Definition: m3ua.c:199
sccp_set_log_area
void sccp_set_log_area(int log_area)
Definition: sccp.c:1572
osmo_ss7_route_find_dpc
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:669
osmo_ss7_linkset_find_by_name
struct osmo_ss7_linkset * osmo_ss7_linkset_find_by_name(struct osmo_ss7_instance *inst, const char *name)
Find SS7 Linkset by given name.
Definition: osmo_ss7.c:535
m3ua_rx_mgmt_ntfy
static int m3ua_rx_mgmt_ntfy(struct osmo_ss7_asp *asp, struct xua_msg *xua)
Definition: m3ua.c:602
osmo_scu_prim::oph
struct osmo_prim_hdr oph
Definition: sccp_sap.h:274
xua_internal.h
sua_to_sccp_err
static int sua_to_sccp_err(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1429
ROUTING_KEY_SI_ARG
#define ROUTING_KEY_SI_ARG
Definition: osmo_ss7_vty.c:1245
osmo_mtp_transfer_param::opc
uint32_t opc
Definition: mtp_sap.h:37
M3UA_NOTIFY_I_AS_PEND
#define M3UA_NOTIFY_I_AS_PEND
Definition: m3ua.h:113
OSMO_SCCP_ADDR_T_GT
#define OSMO_SCCP_ADDR_T_GT
Definition: sccp_sap.h:49
osmo_ss7_instance
Definition: osmo_ss7.h:73
osmo_ss7_as_active
bool osmo_ss7_as_active(const struct osmo_ss7_as *as)
Determine if given AS is in the active state.
Definition: osmo_ss7.c:1097
SUA_IEI_SEGMENTATION
#define SUA_IEI_SEGMENTATION
Definition: sua.h:118
IPA_ASP_E_ID_GET
@ IPA_ASP_E_ID_GET
Definition: xua_asp_fsm.h:34
M3UA_RKM_DEREG_RSP
#define M3UA_RKM_DEREG_RSP
Definition: m3ua.h:64
osmo_ss7_asp::siblings
struct llist_head siblings
Definition: osmo_ss7.h:400
osmo_ss7_ensure_sccp
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
M3UA_ERR_PARAM_FIELD_ERR
@ M3UA_ERR_PARAM_FIELD_ERR
Definition: m3ua.h:164
osmo_ss7_as::asps
struct osmo_ss7_asp * asps[16]
Definition: osmo_ss7.h:334
sccp_to_xua_xudt
static struct xua_msg * sccp_to_xua_xudt(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1256
m3ua_ntfy_stchg_names
const struct value_string m3ua_ntfy_stchg_names[]
Definition: m3ua.c:86
osmo_ss7_asp::pending_msg
struct msgb * pending_msg
Pending message for non-blocking IPA read.
Definition: osmo_ss7.h:426
osmo_ss7_linkset::name
char * name
Definition: osmo_ss7.h:191
SUA_MSGC_CL
#define SUA_MSGC_CL
Definition: sua.h:35
sccp_src_ref_to_int
uint32_t sccp_src_ref_to_int(struct sccp_source_reference *ref)
Definition: sccp.c:1477
sccp_to_xua_it
static struct xua_msg * sccp_to_xua_it(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1380
xua_as_fsm
struct osmo_fsm xua_as_fsm
Definition: xua_as_fsm.c:580
sccp_to_xua_err
static struct xua_msg * sccp_to_xua_err(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1419
MTP_SI_ISUP
@ MTP_SI_ISUP
Definition: mtp.h:12
ROUTING_KEY_SI_ARG_STRS
#define ROUTING_KEY_SI_ARG_STRS
Definition: osmo_ss7_vty.c:1246
osmo_sccp_addr_dump
char * osmo_sccp_addr_dump(const struct osmo_sccp_addr *addr)
Definition: sccp_helpers.c:325
_sccp_parse_connection_released
int _sccp_parse_connection_released(struct msgb *msgb, struct sccp_parse_result *result)
Definition: sccp.c:245
osmo_ss7_pointcode_print
const char * osmo_ss7_pointcode_print(const struct osmo_ss7_instance *inst, uint32_t pc)
Definition: osmo_ss7.c:271
udt_offsets::header_size
uint32_t header_size
Definition: sccp.c:432
rtable_node
static struct cmd_node rtable_node
Definition: osmo_ss7_vty.c:275
cs7_role
static enum cs7_role_t cs7_role
Definition: osmo_ss7_vty.c:76
osmo_ss7_instance_set_pc_fmt
int osmo_ss7_instance_set_pc_fmt(struct osmo_ss7_instance *inst, uint8_t c0, uint8_t c1, uint8_t c2)
Set the point code format used in given SS7 instance.
Definition: osmo_ss7.c:392
osmo_sccp_timer_names
const struct value_string osmo_sccp_timer_names[]
Definition: sccp_scoc.c:263
sccp_write
int sccp_write(struct msgb *data, const struct sockaddr_sccp *in, const struct sockaddr_sccp *out, int class, void *ctx)
Definition: sccp.c:1452
M3UA_ERR_INVAL_ASP_ID
@ M3UA_ERR_INVAL_ASP_ID
Definition: m3ua.h:161
osmo_ss7_xua_server_set_local_host
int osmo_ss7_xua_server_set_local_host(struct osmo_xua_server *xs, const char *local_host)
Definition: osmo_ss7_xua_srv.c:259
DSCCP
static int DSCCP
Definition: sccp.c:35
__attribute__
struct pcap_hdr __attribute__((packed))
_sccp_parse_udt
int _sccp_parse_udt(struct msgb *msgb, struct sccp_parse_result *result)
Definition: sccp.c:482
MTP_SI_BICC
@ MTP_SI_BICC
Definition: mtp.h:20
M3UA_IEI_HEARDBT_DATA
#define M3UA_IEI_HEARDBT_DATA
Definition: m3ua.h:69
pcap_hdr::thiszone
int32_t thiszone
Definition: mtp_pcap.c:35
osmo_ss7_asp::client
struct osmo_stream_cli * client
osmo_stream / libosmo-netif handles
Definition: osmo_ss7.h:403
XUA_ASP_E_ASPTM_ASPIA_ACK
@ XUA_ASP_E_ASPTM_ASPIA_ACK
Definition: xua_asp_fsm.h:26
osmo_sccp_user::links
struct llist_head links
Definition: sccp_internal.h:71
osmo_ss7_asp_peer_init
void osmo_ss7_asp_peer_init(struct osmo_ss7_asp_peer *peer)
Definition: osmo_ss7_asp.c:171
osmo_ss7_pc_fmt::delimiter
char delimiter
Definition: osmo_ss7.h:71
OSMO_SCCP_RI_SSN_PC
@ OSMO_SCCP_RI_SSN_PC
Definition: sccp_sap.h:60
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
m3ua_rx_snm_asp
static int m3ua_rx_snm_asp(struct osmo_ss7_asp *asp, struct xua_msg *xua)
Definition: m3ua.c:920
source_local_reference_is_free
static int source_local_reference_is_free(struct sccp_source_reference *reference)
Definition: sccp.c:682
CS7_ROLE_ASP
@ CS7_ROLE_ASP
Definition: osmo_ss7_vty.c:77
osmo_ss7_asp_protocol_name
static const char * osmo_ss7_asp_protocol_name(enum osmo_ss7_asp_protocol mode)
Definition: osmo_ss7.h:288
osmo_ss7_asp_get_proto
enum osmo_ss7_asp_protocol osmo_ss7_asp_get_proto(const struct osmo_ss7_asp *asp)
Get the proto of a given ASP.
Definition: osmo_ss7_asp.c:1264
sccp_connection_force_free
int sccp_connection_force_free(struct sccp_connection *con)
Definition: sccp.c:1412
m3ua_ntfy_type_names
const struct value_string m3ua_ntfy_type_names[]
Definition: m3ua.c:80
ss7_asp_xua_srv_conn_cb
int ss7_asp_xua_srv_conn_cb(struct osmo_stream_srv *conn)
Definition: osmo_ss7_asp.c:913
osmo_ss7_asp_find
struct osmo_ss7_asp * osmo_ss7_asp_find(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:1173
xua_msg_find_tag
struct xua_msg_part * xua_msg_find_tag(const struct xua_msg *msg, uint16_t tag)
Definition: xua_msg.c:86
osmo_sccp_addr_to_str_c
char * osmo_sccp_addr_to_str_c(void *ctx, const struct osmo_ss7_instance *ss7, const struct osmo_sccp_addr *addr)
Definition: sccp_helpers.c:381
osmo_ss7_vty_init_sg
void osmo_ss7_vty_init_sg(void *ctx)
Definition: osmo_ss7_vty.c:2358
sccp_data_callback::read_cb
int(* read_cb)(struct msgb *, unsigned int, void *)
Definition: sccp.c:67
osmo_ss7_route::mask
uint32_t mask
Definition: osmo_ss7.h:225
osmo_ss7_as::mode_set_by_vty
bool mode_set_by_vty
Definition: osmo_ss7.h:324
sccp_set_read
int sccp_set_read(const struct sockaddr_sccp *sock, int(*read_cb)(struct msgb *, unsigned int, void *), void *context)
Definition: sccp.c:1458
osmo_ss7_pc_fmt::component_len
uint8_t component_len[3]
Definition: osmo_ss7.h:72
sccp_create_rlsd
struct msgb * sccp_create_rlsd(struct sccp_source_reference *src_ref, struct sccp_source_reference *dst_ref, int cause)
Definition: sccp.c:983
sccp_data_callback
Definition: sccp.c:61
sccp_create_sccp_addr
int sccp_create_sccp_addr(struct msgb *msg, const struct sockaddr_sccp *sock)
Definition: sccp.c:567
M3UA_IEI_PROT_DATA
#define M3UA_IEI_PROT_DATA
Definition: m3ua.h:90
M3UA_ASPSM_UP_ACK
#define M3UA_ASPSM_UP_ACK
Definition: m3ua.h:52
osmo_ss7_asp::lm
const struct osmo_xua_layer_manager * lm
Definition: osmo_ss7.h:413
SS7_AS_CTR_RX_MSU_TOTAL
@ SS7_AS_CTR_RX_MSU_TOTAL
Definition: ss7_internal.h:27
osmo_sccp_tx_conn_resp_msg
int osmo_sccp_tx_conn_resp_msg(struct osmo_sccp_user *scu, uint32_t conn_id, const struct osmo_sccp_addr *resp_addr, struct msgb *msg)
Definition: sccp_helpers.c:238
osmo_ss7_find_free_rctx
int osmo_ss7_find_free_rctx(struct osmo_ss7_instance *inst)
Definition: osmo_ss7.c:80
osmo_ss7_as_has_asp
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
m3ua_to_xfer_ind
struct osmo_mtp_prim * m3ua_to_xfer_ind(struct xua_msg *xua)
Definition: osmo_ss7_hmrt.c:41
osmo_sccp_user::inst
struct osmo_sccp_instance * inst
pointer back to SCCP instance
Definition: sccp_internal.h:62
M3UA_IEI_TRAF_MODE_TYP
#define M3UA_IEI_TRAF_MODE_TYP
Definition: m3ua.h:70
osmo_sccp_instance::priv
void * priv
Definition: sccp_internal.h:49
ss7_asp_lm_timer
ss7_asp_lm_timer
Definition: xua_internal.h:89
pc_comp_shift_and_mask
static uint32_t pc_comp_shift_and_mask(const struct osmo_ss7_pc_fmt *pc_fmt, unsigned int comp_num, uint32_t pc)
Definition: osmo_ss7.c:202
DEFUN
DEFUN(show_cs7_user, show_cs7_user_cmd, "show cs7 instance <0-15> users", SHOW_STR CS7_STR INST_STR INST_STR "User Table\n")
Definition: osmo_ss7_vty.c:245
osmo_ss7_register_rx_unknown_cb
void osmo_ss7_register_rx_unknown_cb(osmo_ss7_asp_rx_unknown_cb *cb)
Register a call-back function for unknown SCTP PPID / IPA Stream ID.
Definition: osmo_ss7_asp.c:1213
sccp_to_xua_xudts
static struct xua_msg * sccp_to_xua_xudts(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1340
osmo_sccp_gt::tt
uint8_t tt
Definition: sccp_sap.h:177
osmo_sccp_tx_data_msg
int osmo_sccp_tx_data_msg(struct osmo_sccp_user *scu, uint32_t conn_id, struct msgb *msg)
Definition: sccp_helpers.c:184
M3UA_TMOD_OVERRIDE
@ M3UA_TMOD_OVERRIDE
Definition: m3ua.h:176
XUA_ASP_E_ASPSM_ASPDN
@ XUA_ASP_E_ASPSM_ASPDN
Definition: xua_asp_fsm.h:23
hmrt_message_for_routing
static int hmrt_message_for_routing(struct osmo_ss7_instance *inst, struct xua_msg *xua)
Definition: osmo_ss7_hmrt.c:205
osmo_ss7_link_destroy
void osmo_ss7_link_destroy(struct osmo_ss7_link *link)
Destroy SS7 Link.
Definition: osmo_ss7.c:579
sccp_scrc_rx_scoc_conn_msg
int sccp_scrc_rx_scoc_conn_msg(struct osmo_sccp_instance *inst, struct xua_msg *xua)
Definition: sccp_scrc.c:396
osmo_sccp_tx_disconn_data
int osmo_sccp_tx_disconn_data(struct osmo_sccp_user *scu, uint32_t conn_id, const struct osmo_sccp_addr *resp_addr, uint32_t cause, const uint8_t *data, size_t len)
Definition: sccp_helpers.c:196
xua_dialect::name
const char * name
Definition: xua_msg.h:56
osmo_ss7_instance::sccp
struct osmo_sccp_instance * sccp
Definition: osmo_ss7.h:92
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
M3UA_IEI_STATUS
#define M3UA_IEI_STATUS
Definition: m3ua.h:72
xua_ies_to_sccp_opts
static int xua_ies_to_sccp_opts(struct msgb *msg, uint8_t *ptr_opt, enum sccp_message_types type, struct xua_msg *xua)
Definition: sccp2sua.c:986
sccp_parse_header
int sccp_parse_header(struct msgb *msg, struct sccp_parse_result *result)
Definition: sccp.c:1511
sccp_optional
static const uint16_t sccp_optional[NUM_SCCP_MSGT][MAX_IES]
Definition: sccp2sua.c:856
xua_msg_event_map::event
int event
Definition: xua_msg.h:66
osmo_sccp_addr_entry::list_global
struct llist_head list_global
Definition: osmo_ss7_vty.c:1494
osmo_sccp_tx_disconn
int osmo_sccp_tx_disconn(struct osmo_sccp_user *scu, uint32_t conn_id, const struct osmo_sccp_addr *resp_addr, uint32_t cause)
Definition: sccp_helpers.c:230
M3UA_IEI_ORIG_PC
#define M3UA_IEI_ORIG_PC
Definition: m3ua.h:89
xua_msg_add_sccp_opt
static int xua_msg_add_sccp_opt(struct xua_msg *xua, uint8_t sccp_opt_type, uint16_t opt_len, uint8_t *opt)
Convert a given SCCP option to SUA and add it to given xua_msg.
Definition: sccp2sua.c:473
ss7_asp_proto_to_ip_proto
int ss7_asp_proto_to_ip_proto(enum osmo_ss7_asp_protocol proto)
Definition: osmo_ss7_asp.c:130
osmo_ss7_as_find_by_name
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:876
m3ua_msg_class_mgmt
const struct xua_msg_class m3ua_msg_class_mgmt
Definition: m3ua.c:230
xua_common_hdr
Definition: xua_types.h:31
pcap_hdr::network
uint32_t network
Definition: mtp_pcap.c:38
sccp_msgb_alloc
struct msgb * sccp_msgb_alloc(const char *name)
Definition: sua.c:64
M3UA_ERR_ASP_ID_REQD
@ M3UA_ERR_ASP_ID_REQD
Definition: m3ua.h:160
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
m3ua_rx_mgmt_err
static int m3ua_rx_mgmt_err(struct osmo_ss7_asp *asp, struct xua_msg *xua)
Definition: m3ua.c:583
MTP_SI_DUP
@ MTP_SI_DUP
Definition: mtp.h:13
osmo_ss7_asp_get_log_subsys
int osmo_ss7_asp_get_log_subsys(const struct osmo_ss7_asp *asp)
Get the logging subsystem for a given ASP.
Definition: osmo_ss7_asp.c:1239
OSMO_SS7_PATCH_BOTH
@ OSMO_SS7_PATCH_BOTH
Definition: osmo_ss7.h:297
OSMO_XLM_PRIM_M_SCTP_RESTART
@ OSMO_XLM_PRIM_M_SCTP_RESTART
Definition: sigtran_sap.h:16
osmo_ss7_instance::pc_fmt
struct osmo_ss7_pc_fmt pc_fmt
Definition: osmo_ss7.h:102
next_rctx
static int32_t next_rctx
Definition: osmo_ss7.c:62
MTP_SI_TUP
@ MTP_SI_TUP
Definition: mtp.h:11
OSMO_XLM_PRIM_M_SCTP_ESTABLISH
@ OSMO_XLM_PRIM_M_SCTP_ESTABLISH
Definition: sigtran_sap.h:14
ROUTING_KEY_CMD_STRS
#define ROUTING_KEY_CMD_STRS
Definition: osmo_ss7_vty.c:1241
osmo_ss7_as_find_or_create
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
SUA_CO_RELRE
#define SUA_CO_RELRE
Definition: sua.h:73
XUA_ASP_E_ASPTM_ASPAC
@ XUA_ASP_E_ASPTM_ASPAC
Definition: xua_asp_fsm.h:21
osmo_ss7_user::inst
struct osmo_ss7_instance * inst
Definition: osmo_ss7.h:128
NOTIFY_PAR_P_ASP_ID
#define NOTIFY_PAR_P_ASP_ID
Definition: sigtran_sap.h:34
osmo_ss7_pointcode_print_buf
const char * osmo_ss7_pointcode_print_buf(char *buf, size_t len, const struct osmo_ss7_instance *inst, uint32_t pc)
Definition: osmo_ss7.c:247
sccp_scoc_rx_scrc_rout_fail
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_ss7_instance::name
char * name
Definition: osmo_ss7.h:96
osmo_ss7_asp_peer_add_host
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
osmo_ss7_xua_server_add_local_host
int osmo_ss7_xua_server_add_local_host(struct osmo_xua_server *xs, const char *local_host)
Definition: osmo_ss7_xua_srv.c:277
osmo_mtp_transfer_param::sio
uint8_t sio
Definition: mtp_sap.h:40
SCU_MSG_SIZE
#define SCU_MSG_SIZE
Definition: sccp_helpers.c:38
osmo_ss7_vty_init_asp
void osmo_ss7_vty_init_asp(void *ctx)
Definition: osmo_ss7_vty.c:2352
prot2port
static const uint16_t prot2port[]
Definition: osmo_ss7_asp.c:142
xua_asp_fsm_start
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:778
sccp_connection_set_incoming
int sccp_connection_set_incoming(const struct sockaddr_sccp *sock, int(*accept_cb)(struct sccp_connection *, void *), void *context)
Definition: sccp.c:1435
LOGSS7
#define LOGSS7(inst, level, fmt, args ...)
Definition: osmo_ss7.h:510
osmo_ss7_asp::name
char * name
Definition: osmo_ss7.h:429
msgb_put_u24be
static void msgb_put_u24be(struct msgb *msg, uint32_t val)
Definition: sccp2sua.c:44
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
udt_offsets::calling_offset
uint32_t calling_offset
Definition: sccp.c:434
msg_class_xfer
static const struct xua_msg_class msg_class_xfer
Definition: m3ua.c:140
osmo_sccp_tx_conn_resp
int osmo_sccp_tx_conn_resp(struct osmo_sccp_user *scu, uint32_t conn_id, const struct osmo_sccp_addr *resp_addr, const uint8_t *data, unsigned int len)
Definition: sccp_helpers.c:264
osmo_ss7_asp_role_names
const struct value_string osmo_ss7_asp_role_names[]
Definition: osmo_ss7_asp.c:123
SUA_IEI_CREDIT
#define SUA_IEI_CREDIT
Definition: sua.h:106
sccp_scmg_rx_mtp_resume
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
CS7_ROLE_SG
@ CS7_ROLE_SG
Definition: osmo_ss7_vty.c:77
sccp_data_callback::callback
struct llist_head callback
Definition: sccp.c:71
SS7_ASP_CTR_PKT_RX_UNKNOWN
@ SS7_ASP_CTR_PKT_RX_UNKNOWN
Definition: ss7_internal.h:33
OSMO_SCCP_GTI_NAI_ONLY
@ OSMO_SCCP_GTI_NAI_ONLY
Definition: sccp_sap.h:72
M3UA_IEI_CORR_ID
#define M3UA_IEI_CORR_ID
Definition: m3ua.h:75
MTP_SI_SCCP
@ MTP_SI_SCCP
Definition: mtp.h:10
M3UA_IEI_REG_STATUS
#define M3UA_IEI_REG_STATUS
Definition: m3ua.h:91
osmo_ss7_as::pc_override
struct osmo_ss7_as::@25::@26 pc_override
osmo_sccp_user_sap_down
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
osmo_ss7_as::name
char * name
Definition: osmo_ss7.h:318
scu_msgb_alloc
static struct msgb * scu_msgb_alloc(const char *name)
Definition: sccp_helpers.c:41
osmo_ss7_pointcode_parse_mask_or_len
int osmo_ss7_pointcode_parse_mask_or_len(struct osmo_ss7_instance *inst, const char *in)
Definition: osmo_ss7.c:285
_sccp_send_connection_request
static int _sccp_send_connection_request(struct sccp_connection *connection, const struct sockaddr_sccp *called, struct msgb *msg)
Definition: sccp.c:885
osmo_ss7_asp_find_or_create
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
osmo_ss7_route_table::name
char * name
Definition: osmo_ss7.h:55
osmo_ss7_asp_get_name
const char * osmo_ss7_asp_get_name(const struct osmo_ss7_asp *asp)
Get the name of a given ASP.
Definition: osmo_ss7_asp.c:1255
osmo_scu_unitdata_param::called_addr
struct osmo_sccp_addr called_addr
Definition: sccp_sap.h:240
sua_to_sccp_udts
static int sua_to_sccp_udts(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1319
SUA_IEI_RX_SEQ_NR
#define SUA_IEI_RX_SEQ_NR
Definition: sua.h:104
osmo_ss7_pointcode_parse
int osmo_ss7_pointcode_parse(struct osmo_ss7_instance *inst, const char *str)
Definition: osmo_ss7.c:213
pcaprec_hdr::ts_usec
uint32_t ts_usec
Definition: mtp_pcap.c:43
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
M3UA_MSGC_XFER
#define M3UA_MSGC_XFER
Definition: m3ua.h:30
sua_to_sccp_rlc
static int sua_to_sccp_rlc(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1163
ss7_network_indicator_vals
static const struct value_string ss7_network_indicator_vals[]
Definition: osmo_ss7_vty.c:107
osmo_ss7_linkset::inst
struct osmo_ss7_instance * inst
osmo_ss7_instance to which we belong
Definition: osmo_ss7.h:186
sccp_system_incoming
int sccp_system_incoming(struct msgb *msgb)
Definition: sccp.c:1314
write_asp_timers
static void write_asp_timers(struct vty *vty, const char *indent, struct osmo_ss7_asp *asp)
Definition: osmo_ss7_vty.c:960
osmo_ss7_as::ctrg
struct rate_ctr_group * ctrg
Rate Counter Group.
Definition: osmo_ss7.h:315
osmo_scu_pcstate_param
Definition: sccp_sap.h:266
osmo_ss7_as::description
char * description
Definition: osmo_ss7.h:319
osmo_ss7_as_destroy
void osmo_ss7_as_destroy(struct osmo_ss7_as *as)
Destroy given Application Server.
Definition: osmo_ss7.c:1055
_sccp_parse_connection_request
int _sccp_parse_connection_request(struct msgb *msgb, struct sccp_parse_result *result)
Definition: sccp.c:195
osmo_ss7_user_mtp_xfer_req
int osmo_ss7_user_mtp_xfer_req(struct osmo_ss7_instance *inst, struct osmo_mtp_prim *omp)
Definition: osmo_ss7_hmrt.c:293
sccp_addr_to_sua_ptr
static int sccp_addr_to_sua_ptr(struct xua_msg *xua, uint16_t iei, struct msgb *msg, uint8_t *ptr_addr)
convenience wrapper around sccp_addr_to_sua() for variable mandatory addresses
Definition: sccp2sua.c:341
xua_accept_cb
static int xua_accept_cb(struct osmo_stream_srv_link *link, int fd)
Definition: osmo_ss7_xua_srv.c:63
m3ua.h
osmo_ss7_as_tmode_compatible_xua
bool osmo_ss7_as_tmode_compatible_xua(struct osmo_ss7_as *as, uint32_t m3ua_tmt)
Definition: osmo_ss7.c:1288
OSMO_SCCP_TIMER_RESET
@ OSMO_SCCP_TIMER_RESET
Definition: sccp_internal.h:24
xua_common_hdr::msg_class
uint8_t msg_class
Definition: xua_types.h:34
reg_rsp_ies
static const uint16_t reg_rsp_ies[]
Definition: m3ua.c:244
xua_msg::hdr
struct xua_common_hdr hdr
Definition: xua_msg.h:32
osmo_scu_disconn_param::responding_addr
struct osmo_sccp_addr responding_addr
Definition: sccp_sap.h:224
osmo_sccp_addr_to_id_c
char * osmo_sccp_addr_to_id_c(void *ctx, const struct osmo_ss7_instance *ss7, const struct osmo_sccp_addr *addr)
Definition: sccp_helpers.c:402
sccp_create_refuse
struct msgb * sccp_create_refuse(struct sccp_source_reference *src_ref, int cause, uint8_t *inp, int length)
Definition: sccp.c:744
osmo_ss7_instance::description
char * description
Definition: osmo_ss7.h:97
osmo_mtp_transfer_param::sls
uint8_t sls
Definition: mtp_sap.h:39
m3ua_data_hdr::opc
uint32_t opc
Definition: m3ua.h:96
osmo_ss7_vty_go_parent
int osmo_ss7_vty_go_parent(struct vty *vty)
Definition: osmo_ss7_vty.c:2176
XUA_ASP_E_ASPSM_BEAT_ACK
@ XUA_ASP_E_ASPSM_BEAT_ACK
Definition: xua_asp_fsm.h:29
_sccp_parse_xudts
static int _sccp_parse_xudts(struct msgb *msgb, struct sccp_parse_result *result)
Definition: sccp.c:518
osmo_ss7_route_print
const char * osmo_ss7_route_print(const struct osmo_ss7_route *rt)
Definition: osmo_ss7.c:838
osmo_ss7_route_destroy
void osmo_ss7_route_destroy(struct osmo_ss7_route *rt)
Destroy a given SS7 route.
Definition: osmo_ss7.c:799
osmo_mtp_transfer_param
Definition: mtp_sap.h:36
OSMO_SCCP_ORIG_NS_USER
@ OSMO_SCCP_ORIG_NS_USER
Definition: sccp_sap.h:217
pcap_hdr::sigfigs
uint32_t sigfigs
Definition: mtp_pcap.c:36
ss7_asp_alloc
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
OSMO_MTP_PRIM_TRANSFER
@ OSMO_MTP_PRIM_TRANSFER
Definition: mtp_sap.h:28
M3UA_SNM_DAVA
#define M3UA_SNM_DAVA
Definition: m3ua.h:43
xua_msg_add_sccp_addr
int xua_msg_add_sccp_addr(struct xua_msg *xua, uint16_t iei, const struct osmo_sccp_addr *addr)
Definition: xua_msg.c:371
osmo_xua_layer_manager::prim_cb
osmo_prim_cb prim_cb
Definition: osmo_ss7.h:524
sccp_add_var_addr
static int sccp_add_var_addr(struct msgb *msg, uint8_t *var_ptr, struct xua_msg *xua, uint16_t iei)
Add a "SCCP Variable Mandatory Part" (Address format) to the given msgb.
Definition: sccp2sua.c:373
asp_quirk_descs
static const struct value_string asp_quirk_descs[]
Definition: osmo_ss7_vty.c:64
osmo_ss7_asp::role
enum osmo_ss7_asp_role role
Definition: osmo_ss7.h:434
sccp_add_variable_part
static int sccp_add_variable_part(struct msgb *msg, uint8_t *var_ptr, struct xua_msg *xua, uint16_t iei)
Add a "SCCP Variable Mandatory Part" to the given msgb.
Definition: sccp2sua.c:404
osmo_ss7_asp_rx_unknown_cb
int osmo_ss7_asp_rx_unknown_cb(struct osmo_ss7_asp *asp, int ppid_mux, struct msgb *msg)
Weak function to handle payload for unknown/unsupported PPID or IPA StreamID.
Definition: osmo_ss7.h:504
osmo_scu_prim::u
union osmo_scu_prim::@32 u
xua_cli_connect_cb
static int xua_cli_connect_cb(struct osmo_stream_cli *cli)
Definition: osmo_ss7_asp.c:980
osmo_ss7.h
osmo_xlm_prim::u
union osmo_xlm_prim::@33 u
sua_to_sccp_rlsd
static int sua_to_sccp_rlsd(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1131
_sccp_send_connection_release_complete
static int _sccp_send_connection_release_complete(struct sccp_connection *connection)
Definition: sccp.c:1168
osmo_sccp_ssn_name
static const char * osmo_sccp_ssn_name(enum osmo_sccp_ssn val)
Definition: sccp_sap.h:172
xua_msg_part
Definition: xua_msg.h:38
osmo_ss7_user
Definition: osmo_ss7.h:124
osmo_ss7_route_table::routes
struct llist_head routes
list of osmo_ss7_route
Definition: osmo_ss7.h:52
sua_addr_to_sccp
static int sua_addr_to_sccp(struct msgb *msg, struct xua_msg_part *part)
convert SUA address to SCCP address
Definition: sccp2sua.c:353
xua_msg_event_map
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_ASP_S_ACTIVE
@ XUA_ASP_S_ACTIVE
Definition: xua_asp_fsm.h:6
OSMO_SCCP_GTI_TT_NPL_ENC
@ OSMO_SCCP_GTI_TT_NPL_ENC
Definition: sccp_sap.h:74
osmo_ss7_pc_is_valid
static bool osmo_ss7_pc_is_valid(uint32_t pc)
Definition: osmo_ss7.h:35
osmo_ss7_asp_send
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_asp.c:1156
M3UA_ASPTM_ACTIVE_ACK
#define M3UA_ASPTM_ACTIVE_ACK
Definition: m3ua.h:58
osmo_ss7_asp::fi
struct osmo_fsm_inst * fi
ASP FSM.
Definition: osmo_ss7.h:396
ss7_asp_rcgd
static const struct rate_ctr_group_desc ss7_asp_rcgd
Definition: osmo_ss7_asp.c:163
M3UA_NOTIFY_T_OTHER
#define M3UA_NOTIFY_T_OTHER
Definition: m3ua.h:108
M3UA_IEI_DEST_PC
#define M3UA_IEI_DEST_PC
Definition: m3ua.h:87
data_hdr_from_m3ua
struct m3ua_data_hdr * data_hdr_from_m3ua(struct xua_msg *xua)
Definition: m3ua.c:521
M3UA_ASPTM_INACTIVE
#define M3UA_ASPTM_INACTIVE
Definition: m3ua.h:57
as_node
static struct cmd_node as_node
Definition: osmo_ss7_vty.c:1086
vty_dump_xua_server
static void vty_dump_xua_server(struct vty *vty, struct osmo_xua_server *xs)
Definition: osmo_ss7_vty.c:595
osmo_ss7_routing_key::si
uint8_t si
Definition: osmo_ss7.h:258
M3UA_NOTIFY_I_AS_ACT
#define M3UA_NOTIFY_I_AS_ACT
Definition: m3ua.h:112
osmo_ss7_instance::asp_list
struct llist_head asp_list
list of osmo_ss7_asp
Definition: osmo_ss7.h:81
M3UA_IEI_ASP_ID
#define M3UA_IEI_ASP_ID
Definition: m3ua.h:73
osmo_xlm_prim_notify::asp_id
uint32_t asp_id
Definition: sigtran_sap.h:41
osmo_ss7_asp::ctrg
struct rate_ctr_group * ctrg
Rate Counter Group.
Definition: osmo_ss7.h:423
osmo_ss7_instance::rtable_system
struct osmo_ss7_route_table * rtable_system
Definition: osmo_ss7.h:90
osmo_ss7_asp::description
char * description
Definition: osmo_ss7.h:430
osmo_sccp_addr_name
char * osmo_sccp_addr_name(const struct osmo_ss7_instance *ss7, const struct osmo_sccp_addr *addr)
Definition: sccp_helpers.c:408
OSMO_SS7_PC_INVALID
#define OSMO_SS7_PC_INVALID
Definition: osmo_ss7.h:34
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
INST_STR
#define INST_STR
Definition: xua_internal.h:111
SUA_IEI_DEST_ADDR
#define SUA_IEI_DEST_ADDR
Definition: sua.h:99
osmo_ss7_xua_server_destroy
void osmo_ss7_xua_server_destroy(struct osmo_xua_server *xs)
Definition: osmo_ss7_xua_srv.c:301
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
M3UA_IEI_USER_CAUSE
#define M3UA_IEI_USER_CAUSE
Definition: m3ua.h:80
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
DSCCP
int DSCCP
find_as_for_asp
static struct osmo_ss7_as * find_as_for_asp(struct osmo_ss7_asp *asp)
Definition: ipa.c:134
osmo_ss7_asp_find_by_proto
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
ROUTING_KEY_SSN_ARG
#define ROUTING_KEY_SSN_ARG
Definition: osmo_ss7_vty.c:1256
osmo_ss7_asp_find_by_name
struct osmo_ss7_asp * osmo_ss7_asp_find_by_name(struct osmo_ss7_instance *inst, const char *name)
Definition: osmo_ss7.c:1143
XUA_ASP_E_SCTP_EST_IND
@ XUA_ASP_E_SCTP_EST_IND
Definition: xua_asp_fsm.h:17
msgb_put_sccp_opt
static void msgb_put_sccp_opt(struct msgb *msg, uint8_t pnc, uint8_t len, const uint8_t *data)
append a SCCP option to the given message
Definition: sccp2sua.c:577
xua_msg_add_u32
int xua_msg_add_u32(struct xua_msg *xua, uint16_t iei, uint32_t val)
Definition: xua_msg.c:280
M3UA_SNM_DAUD
#define M3UA_SNM_DAUD
Definition: m3ua.h:44
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
m3ua_to_msg
static struct msgb * m3ua_to_msg(struct xua_msg *xua)
Definition: m3ua.c:456
osmo_ss7_as::recovery_timeout_msec
uint32_t recovery_timeout_msec
Definition: osmo_ss7.h:327
osmo_sccp_timer_name
static const char * osmo_sccp_timer_name(enum osmo_sccp_timer val)
Definition: sccp_internal.h:33
MTP_SI_B_ISUP
@ MTP_SI_B_ISUP
Definition: mtp.h:16
tall_sccp_ctx
static void * tall_sccp_ctx
Definition: sccp.c:37
sccp_connection_close
int sccp_connection_close(struct sccp_connection *connection, int cause)
Definition: sccp.c:1388
m3ua_xfer_msgt_names
static const struct value_string m3ua_xfer_msgt_names[]
Definition: m3ua.c:136
osmo_ss7_instance::user
const struct osmo_ss7_user * user[16]
Definition: osmo_ss7.h:88
M3UA_IEI_ROUT_KEY
#define M3UA_IEI_ROUT_KEY
Definition: m3ua.h:83
xua_msg.h
M3UA_IEI_INFO_STRING
#define M3UA_IEI_INFO_STRING
Definition: m3ua.h:66
ipa_asp_fsm
struct osmo_fsm ipa_asp_fsm
Definition: xua_asp_fsm.c:1168
sccp_create_udt
struct msgb * sccp_create_udt(int class, const struct sockaddr_sccp *in, const struct sockaddr_sccp *out, uint8_t *in_data, int len)
Definition: sccp.c:607
osmo_sccp_gt::digits
char digits[32]
Definition: sccp_sap.h:180
sccp_system
Definition: sccp.c:49
write_one_xua
static void write_one_xua(struct vty *vty, struct osmo_xua_server *xs)
Definition: osmo_ss7_vty.c:576
sccp_data_callback::accept_cb
int(* accept_cb)(struct sccp_connection *, void *)
Definition: sccp.c:63
config_write_cs7
static int config_write_cs7(struct vty *vty)
Definition: osmo_ss7_vty.c:240
xua_msg_alloc
struct xua_msg * xua_msg_alloc(void)
Definition: xua_msg.c:44
osmo_ss7_instance::as_list
struct llist_head as_list
list of osmo_ss7_as
Definition: osmo_ss7.h:79
sctp_peer_addr_change_ev_addr_matches_our_primary
static bool sctp_peer_addr_change_ev_addr_matches_our_primary(const struct osmo_ss7_asp *asp, const union sctp_notification *notif)
Definition: osmo_ss7_asp.c:419
asp_node
static struct cmd_node asp_node
Definition: osmo_ss7_vty.c:644
XUA_ASP_E_ASPSM_ASPUP_ACK
@ XUA_ASP_E_ASPSM_ASPUP_ACK
Definition: xua_asp_fsm.h:20
M3UA_MGMT_NTFY
#define M3UA_MGMT_NTFY
Definition: m3ua.h:38
m3ua_data_hdr::sls
uint8_t sls
Definition: m3ua.h:101
mtp_sap.h
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_CTR_PKT_TX_TOTAL
@ SS7_ASP_CTR_PKT_TX_TOTAL
Definition: ss7_internal.h:34
g_ss7_as_rcg_idx
static unsigned int g_ss7_as_rcg_idx
Definition: osmo_ss7.c:869
ASP_SCTP_PARAM_INIT_DESC
#define ASP_SCTP_PARAM_INIT_DESC
Definition: osmo_ss7_vty.c:798
udt_offsets
Definition: sccp.c:431
osmo_ss7_instance_find_or_create
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
xua_msg::headers
struct llist_head headers
Definition: xua_msg.h:35
sccp_to_xua_cref
static struct xua_msg * sccp_to_xua_cref(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1090
osmo_sccp_addr_set_ssn
void osmo_sccp_addr_set_ssn(struct osmo_sccp_addr *addr, uint32_t ssn)
Definition: sccp_helpers.c:56
scrc_rx_mtp_xfer_ind_xua
int scrc_rx_mtp_xfer_ind_xua(struct osmo_sccp_instance *inst, struct xua_msg *xua)
Definition: sccp_scrc.c:465
dereg_req_ies
static const uint16_t dereg_req_ies[]
Definition: m3ua.c:247
sccp_scmg_rx_mtp_pause
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
osmo_ss7_as_find_by_proto
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
osmo_ss7_route_lookup
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
mtp.h
_sccp_send_connection_it
static int _sccp_send_connection_it(struct sccp_connection *conn)
Definition: sccp.c:960
osmo_ss7_asp_find
struct osmo_ss7_asp * osmo_ss7_asp_find(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:1173
osmo_ss7_asp_peer::host_cnt
size_t host_cnt
Definition: osmo_ss7.h:369
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_ss7_asp::xua_server
struct osmo_xua_server * xua_server
osmo_xua_server over which we were established
Definition: osmo_ss7.h:399
osmo_ss7_linkset::cfg
struct osmo_ss7_linkset::@22 cfg
osmo_ss7_asp_peer_set_hosts2
int osmo_ss7_asp_peer_set_hosts2(struct osmo_ss7_asp_peer *peer, void *talloc_ctx, const char *const *hosts, size_t host_cnt, int idx_primary)
Set (copy) addresses for a given ASP peer.
Definition: osmo_ss7_asp.c:217
SS7_AS_CTR_TX_MSU_TOTAL
@ SS7_AS_CTR_TX_MSU_TOTAL
Definition: ss7_internal.h:28
m3ua_rx_xfer
static int m3ua_rx_xfer(struct osmo_ss7_asp *asp, struct xua_msg *xua)
Definition: m3ua.c:538
osmo_ss7_as_del_asp
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:1031
sccp_sap.h
MAX_IES
#define MAX_IES
Definition: sccp2sua.c:760
SUA_PPID
#define SUA_PPID
Definition: sua.h:27
osmo_sccp_timer_defaults
const struct osmo_tdef osmo_sccp_timer_defaults[OSMO_SCCP_TIMERS_LEN]
Definition: sccp_scoc.c:239
SUA_IEI_CAUSE
#define SUA_IEI_CAUSE
Definition: sua.h:102
sccp_option_permitted
static bool sccp_option_permitted(enum sccp_message_types type, const struct xua_msg_part *part)
Definition: sccp2sua.c:964
osmo_ss7_asp::is_server
bool is_server
Definition: osmo_ss7.h:433
osmo_ss7_is_config_node
int osmo_ss7_is_config_node(struct vty *vty, int node)
Definition: osmo_ss7_vty.c:2230
M3UA_SNM_SCON
#define M3UA_SNM_SCON
Definition: m3ua.h:45
osmo_sccp_gt
Definition: sccp_sap.h:175
osmo_ss7_asp::qos_class
uint8_t qos_class
Definition: osmo_ss7.h:440
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_ERR_UNEXPECTED_MSG
@ M3UA_ERR_UNEXPECTED_MSG
Definition: m3ua.h:152
osmo_sccp_routing_ind_name
static const char * osmo_sccp_routing_ind_name(enum osmo_sccp_routing_ind val)
Definition: sccp_sap.h:65
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
osmo_scu_unitdata_param::calling_addr
struct osmo_sccp_addr calling_addr
Definition: sccp_sap.h:241
osmo_mtp_prim::transfer
struct osmo_mtp_transfer_param transfer
Definition: mtp_sap.h:59
assign_source_local_reference
static int assign_source_local_reference(struct sccp_connection *connection)
Definition: sccp.c:706
scon_mand_ies
static const uint16_t scon_mand_ies[]
Definition: m3ua.c:158
osmo_ss7_asp_peer_add_host
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
xua_asp_fsm.h
msgb_put_sccp_opt_hdr
static void msgb_put_sccp_opt_hdr(struct msgb *msg, uint8_t pnc, uint8_t len)
append a SCCP option header to the given message
Definition: sccp2sua.c:566
_sccp_handle_connection_confirm
static int _sccp_handle_connection_confirm(struct msgb *msgb)
Definition: sccp.c:1270
osmo_sccp_instance::route_ctx
uint32_t route_ctx
Definition: sccp_internal.h:45
osmo_ss7_asp::dyn_allocated
bool dyn_allocated
Were we dynamically allocated.
Definition: osmo_ss7.h:417
reg_req_ies
static const uint16_t reg_req_ies[]
Definition: m3ua.c:241
count_leading_one_bits
static unsigned int count_leading_one_bits(uint32_t inp, unsigned int nbits)
Definition: osmo_ss7.c:813
xua_msg_add_data
int xua_msg_add_data(struct xua_msg *msg, uint16_t tag, uint16_t len, const uint8_t *dat)
Definition: xua_msg.c:61
xua_msg_part_get_u32
uint32_t xua_msg_part_get_u32(const struct xua_msg_part *part)
Definition: xua_msg.c:286
m3ua_gen_error_msg
static struct xua_msg * m3ua_gen_error_msg(uint32_t err_code, struct msgb *msg)
Definition: m3ua.c:363
OSMO_SCCP_TIMER_CONN_EST
@ OSMO_SCCP_TIMER_CONN_EST
Definition: sccp_internal.h:17
osmo_xua_server::local
struct osmo_ss7_asp_peer local
Definition: osmo_ss7.h:536
M3UA_ERR_PROTOCOL_ERR
@ M3UA_ERR_PROTOCOL_ERR
Definition: m3ua.h:153
get_pc_comp_shift
static unsigned int get_pc_comp_shift(const struct osmo_ss7_pc_fmt *pc_fmt, unsigned int comp_num)
Definition: osmo_ss7.c:185
xua_msg_part::tag
uint16_t tag
Definition: xua_msg.h:41
SCCP_SAP_USER
@ SCCP_SAP_USER
Definition: sigtran_sap.h:7
pcaprec_hdr
Definition: mtp_pcap.c:41
sccp_to_xua_udt
static struct xua_msg * sccp_to_xua_udt(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1213
osmo_ss7_user::name
const char * name
Definition: osmo_ss7.h:130
M3UA_MSGC_MGMT
#define M3UA_MSGC_MGMT
Definition: m3ua.h:29
m3ua_mgmt_msgt_names
static const struct value_string m3ua_mgmt_msgt_names[]
Definition: m3ua.c:225
osmo_sccp_user::list
struct llist_head list
entry in list of sccp users of osmo_sccp_instance
Definition: sccp_internal.h:60
M3UA_ERR_INVAL_STREAM_ID
@ M3UA_ERR_INVAL_STREAM_ID
Definition: m3ua.h:155
osmo_sccp_tx_unitdata
int osmo_sccp_tx_unitdata(struct osmo_sccp_user *scu, const struct osmo_sccp_addr *calling_addr, const struct osmo_sccp_addr *called_addr, const uint8_t *data, unsigned int len)
Definition: sccp_helpers.c:62
osmo_ss7_xua_server_create
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_ss7_asp::T_defs_lm
struct osmo_tdef * T_defs_lm
Definition: osmo_ss7.h:444
OSMO_XLM_PRIM_M_ERROR
@ OSMO_XLM_PRIM_M_ERROR
Definition: sigtran_sap.h:21
sccp_to_xua_opt
static struct xua_msg * sccp_to_xua_opt(struct msgb *msg, uint8_t *ptr_opt, struct xua_msg *xua)
convert SCCP optional part to list of SUA options
Definition: sccp2sua.c:702
g_ctx
static void * g_ctx
Definition: osmo_ss7_vty.c:77
osmo_ss7_as_find_by_name
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:876
osmo_ss7_as::mode_set_by_peer
bool mode_set_by_peer
Definition: osmo_ss7.h:326
M3UA_TMOD_BCAST
@ M3UA_TMOD_BCAST
Definition: m3ua.h:178
osmo_ss7_pc_is_local
bool osmo_ss7_pc_is_local(struct osmo_ss7_instance *inst, uint32_t pc)
Definition: osmo_ss7.c:1225
OSMO_SS7_ASP_PROT_SUA
@ OSMO_SS7_ASP_PROT_SUA
Definition: osmo_ss7.h:279
osmo_ss7_as_traffic_mode_vals
struct value_string osmo_ss7_as_traffic_mode_vals[]
Definition: osmo_ss7.c:72
SUA_CO_CORE
#define SUA_CO_CORE
Definition: sua.h:70
pcaprec_hdr::ts_sec
uint32_t ts_sec
Definition: mtp_pcap.c:42
SUA_ERR_INVAL_LOADSH_LEVEL
#define SUA_ERR_INVAL_LOADSH_LEVEL
Definition: sua.h:160
osmo_ss7_asp_peer::idx_primary
int idx_primary
Definition: osmo_ss7.h:372
SCCP_STR
#define SCCP_STR
Definition: sccp_internal.h:12
osmo_ss7_as::list
struct llist_head list
entry in 'ref osmo_ss7_instance.as_list
Definition: osmo_ss7.h:302
MTP_SI_AAL2_SIG
@ MTP_SI_AAL2_SIG
Definition: mtp.h:19
osmo_ss7_as::proto
enum osmo_ss7_asp_protocol proto
Definition: osmo_ss7.h:320
osmo_ss7_as_find_or_create
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
__attribute__
static __attribute__((constructor))
Definition: sccp.c:1562
OSMO_SS7_AS_TMOD_LOADSHARE
@ OSMO_SS7_AS_TMOD_LOADSHARE
Definition: osmo_ss7.h:264
osmo_ss7_mtp_to_user
int osmo_ss7_mtp_to_user(struct osmo_ss7_instance *inst, struct osmo_mtp_prim *omp)
Definition: osmo_ss7.c:474
osmo_xlm_prim::notify
struct osmo_xlm_prim_notify notify
Definition: sigtran_sap.h:69
m3ua_msgb_alloc
struct msgb * m3ua_msgb_alloc(const char *name)
Definition: m3ua.c:316
M3UA_IEI_AFFECTED_PC
#define M3UA_IEI_AFFECTED_PC
Definition: m3ua.h:74
sccp_ssn_bssap
const struct sockaddr_sccp sccp_ssn_bssap
Definition: sccp.c:44
sccp_scoc_rx_from_scrc
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_helpers.h
ntfy_req_ies
static const uint16_t ntfy_req_ies[]
Definition: m3ua.c:222
osmo_ss7_as_down
bool osmo_ss7_as_down(const struct osmo_ss7_as *as)
Determine if given AS is in the down state.
Definition: osmo_ss7.c:1107
OSMO_SCCP_TIMER_INT
@ OSMO_SCCP_TIMER_INT
Definition: sccp_internal.h:22
m3ua_data_hdr::ni
uint8_t ni
Definition: m3ua.h:99
XUA_ASP_E_ASPSM_ASPUP
@ XUA_ASP_E_ASPSM_ASPUP
Definition: xua_asp_fsm.h:19
M3UA_NOTIFY_I_OT_INS_RES
#define M3UA_NOTIFY_I_OT_INS_RES
Definition: m3ua.h:115
osmo_sccp_gt::nai
uint32_t nai
Definition: sccp_sap.h:179
m3ua_ntfy_other_names
const struct value_string m3ua_ntfy_other_names[]
Definition: m3ua.c:94
OSMO_SS7_AS_TMOD_BCAST
@ OSMO_SS7_AS_TMOD_BCAST
Definition: osmo_ss7.h:263
osmo_sccp_gti_name
static const char * osmo_sccp_gti_name(enum osmo_sccp_gti val)
Definition: sccp_sap.h:79
log_sctp_notification
static void log_sctp_notification(struct osmo_ss7_asp *asp, const char *pfx, union sctp_notification *notif)
Definition: osmo_ss7_asp.c:847
osmo_xua_server::asp_list
struct llist_head asp_list
Definition: osmo_ss7.h:530
_setsockopt_primary_addr
static int _setsockopt_primary_addr(int fd, const struct osmo_sockaddr *saddr)
Definition: osmo_ss7_asp.c:89
xua_to_msg
struct msgb * xua_to_msg(const int version, struct xua_msg *msg)
Definition: xua_msg.c:203
_sccp_send_connection_confirm
static int _sccp_send_connection_confirm(struct sccp_connection *connection)
Definition: sccp.c:819
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
get_in_port
static uint16_t get_in_port(struct sockaddr *sa)
Definition: osmo_ss7_asp.c:527
osmo_xua_server::list
struct llist_head list
Definition: osmo_ss7.h:526
pcap_hdr
Definition: mtp_pcap.c:31
osmo_ss7_asp::cfg
struct osmo_ss7_asp::@27 cfg
m3ua_aspxm_map
static const struct xua_msg_event_map m3ua_aspxm_map[]
Definition: m3ua.c:653
OSMO_SCCP_TIMER_GUARD
@ OSMO_SCCP_TIMER_GUARD
Definition: sccp_internal.h:23
vty_init_shared
static void vty_init_shared(void *ctx)
Definition: osmo_ss7_vty.c:2279
osmo_ss7_as::routing_key
struct osmo_ss7_routing_key routing_key
Definition: osmo_ss7.h:321
M3UA_RKM_REG_RSP
#define M3UA_RKM_REG_RSP
Definition: m3ua.h:62
sccp_connection_send_it
int sccp_connection_send_it(struct sccp_connection *connection)
Definition: sccp.c:1375
sccp_create_cc
struct msgb * sccp_create_cc(struct sccp_source_reference *src_ref, struct sccp_source_reference *dst_ref)
Definition: sccp.c:788
osmo_ss7_as_traffic_mode_name
static const char * osmo_ss7_as_traffic_mode_name(enum osmo_ss7_as_traffic_mode mode)
Definition: osmo_ss7.h:272
deliver_to_mtp_user
static int deliver_to_mtp_user(const struct osmo_ss7_user *osu, struct xua_msg *xua)
Definition: osmo_ss7_hmrt.c:84
len
uint16_t len
Definition: xua_types.h:3
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_sccp_name_by_addr
const char * osmo_sccp_name_by_addr(const struct osmo_sccp_addr *addr)
Reverse lookup the lookup-name of a specified SCCP address.
Definition: osmo_ss7_vty.c:1593
osmo_isup_party_encode
int osmo_isup_party_encode(struct msgb *msg, const char *in_digits)
Encode an ISUP style address of BCD digits.
Definition: sccp2sua.c:93
osmo_sccp_tx_unitdata_msg
int osmo_sccp_tx_unitdata_msg(struct osmo_sccp_user *scu, const struct osmo_sccp_addr *calling_addr, const struct osmo_sccp_addr *called_addr, struct msgb *msg)
Definition: sccp_helpers.c:98
sccp_sclc_user_sap_down
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
m3ua_gen_error
static struct xua_msg * m3ua_gen_error(uint32_t err_code)
Definition: m3ua.c:352
osmo_ss7_route_find_dpc_mask
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
XUA_VAR_STR
#define XUA_VAR_STR
Definition: osmo_ss7_vty.c:50
osmo_static_assert
osmo_static_assert(sizeof(struct sccp_source_reference)<=sizeof(uint32_t), enough_space)
sccp_determine_msg_type
int sccp_determine_msg_type(struct msgb *msg)
Definition: sccp.c:1503
si
uint8_t si
Definition: m3ua.h:4
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
osmo_mtp_prim
Definition: mtp_sap.h:56
osmo_scu_connect_param::called_addr
struct osmo_sccp_addr called_addr
Definition: sccp_sap.h:198
osmo_ss7_asp_peer_set_hosts
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
xua_asp_fsm
struct osmo_fsm xua_asp_fsm
Definition: xua_asp_fsm.c:755
XUA_AS_S_DOWN
@ XUA_AS_S_DOWN
Definition: xua_as_fsm.h:6
sccp_to_xua_udts
static struct xua_msg * sccp_to_xua_udts(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1296
SUA_CO_COIT
#define SUA_CO_COIT
Definition: sua.h:80
mtp_pcap_write_header
int mtp_pcap_write_header(int fd)
Definition: mtp_pcap.c:48
osmo_ss7_xua_server_destroy
void osmo_ss7_xua_server_destroy(struct osmo_xua_server *xs)
Definition: osmo_ss7_xua_srv.c:301
XUA_SRV_SCTP_PARAM_INIT_DESC
#define XUA_SRV_SCTP_PARAM_INIT_DESC
Definition: osmo_ss7_vty.c:531
M3UA_RKM_REG_REQ
#define M3UA_RKM_REG_REQ
Definition: m3ua.h:61
ss7_asp_ipa_srv_conn_cb
int ss7_asp_ipa_srv_conn_cb(struct osmo_stream_srv *conn)
Definition: osmo_ss7_asp.c:882
load_24be
static uint32_t load_24be(const void *ptr)
load a 24bit value as big-endian
Definition: sccp2sua.c:58
MTP_SI_TESTING
@ MTP_SI_TESTING
Definition: mtp.h:15
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
PC_STR
#define PC_STR
Definition: xua_internal.h:110
ss7_as_rcgd
static const struct rate_ctr_group_desc ss7_as_rcgd
Definition: osmo_ss7.c:863
osmo_ss7_user_unregister
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_ss7_asp_peer::host
char * host[OSMO_SOCK_MAX_ADDRS]
Definition: osmo_ss7.h:368
osmo_scu_prim::disconnect
struct osmo_scu_disconn_param disconnect
Definition: sccp_sap.h:278
err_req_ies
static const uint16_t err_req_ies[]
Definition: m3ua.c:219
osmo_ss7_asp_peer_add_host2
int osmo_ss7_asp_peer_add_host2(struct osmo_ss7_asp_peer *peer, void *talloc_ctx, const char *host, bool is_primary_addr)
Append (copy) address to a given ASP peer.
Definition: osmo_ss7_asp.c:266
asp_quirk_names
static const struct value_string asp_quirk_names[]
Definition: osmo_ss7_vty.c:57
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
m3ua_encode_dava
static struct xua_msg * m3ua_encode_dava(const uint32_t *rctx, unsigned int num_rctx, const uint32_t *aff_pc, unsigned int num_aff_pc, const char *info_string)
Definition: m3ua.c:797
osmo_ss7_route::rtable
struct osmo_ss7_route_table * rtable
osmo_ss7_route_table to which we belong
Definition: osmo_ss7.h:213
osmo_ss7_route::pc
uint32_t pc
Definition: osmo_ss7.h:224
osmo_xua_server::accept_dyn_reg
bool accept_dyn_reg
Definition: osmo_ss7.h:535
osmo_ss7_as_active
bool osmo_ss7_as_active(const struct osmo_ss7_as *as)
Determine if given AS is in the active state.
Definition: osmo_ss7.c:1097
_sccp_handle_connection_release_complete
static int _sccp_handle_connection_release_complete(struct msgb *msgb)
Definition: sccp.c:1109
osmo_ss7_route_destroy
void osmo_ss7_route_destroy(struct osmo_ss7_route *rt)
Destroy a given SS7 route.
Definition: osmo_ss7.c:799
m3ua_msg_class_asptm
const struct xua_msg_class m3ua_msg_class_asptm
Definition: m3ua.c:212
osmo_ss7_ensure_sccp
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
hmdt_message_for_distribution
static int hmdt_message_for_distribution(struct osmo_ss7_instance *inst, struct xua_msg *xua)
Definition: osmo_ss7_hmrt.c:101
opc
uint32_t opc
Definition: m3ua.h:2
osmo_sccp_addr::ip
union osmo_sccp_addr::@31 ip
osmo_sccp_inst_addr_to_str_c
char * osmo_sccp_inst_addr_to_str_c(void *ctx, const struct osmo_sccp_instance *sccp, const struct osmo_sccp_addr *addr)
Definition: sccp_helpers.c:421
osmo_sccp_addr_entry::list
struct llist_head list
Definition: osmo_ss7_vty.c:1493
M3UA_SNM_DRST
#define M3UA_SNM_DRST
Definition: m3ua.h:47
g_ss7_asp_rcg_idx
static unsigned int g_ss7_asp_rcg_idx
Definition: osmo_ss7_asp.c:169
m3ua_data_hdr::dpc
uint32_t dpc
Definition: m3ua.h:97
_rout_key
static int _rout_key(struct vty *vty, const char *rcontext, const char *dpc, const char *si, const char *ssn)
Definition: osmo_ss7_vty.c:1261
OSMO_SCCP_GTI_NO_GT
@ OSMO_SCCP_GTI_NO_GT
Definition: sccp_sap.h:71
sccp_connection_write
int sccp_connection_write(struct sccp_connection *connection, struct msgb *data)
Definition: sccp.c:1358
sccp_system::write_data
void(* write_data)(struct sccp_connection *conn, struct msgb *data, void *gctx, void *ctx)
Definition: sccp.c:51
osmo_sccp_addr_entry::addr
struct osmo_sccp_addr addr
Definition: osmo_ss7_vty.c:1497
osmo_ss7_asp_protocol_port
int osmo_ss7_asp_protocol_port(enum osmo_ss7_asp_protocol prot)
Definition: osmo_ss7_asp.c:149
MTP_SI_SAT_ISUP
@ MTP_SI_SAT_ISUP
Definition: mtp.h:17
find_free_l_rk_id
static uint32_t find_free_l_rk_id(struct osmo_ss7_instance *inst)
Definition: osmo_ss7.c:91
osmo_ss7_route
Definition: osmo_ss7.h:207
M3UA_IEI_DEREG_RESULT
#define M3UA_IEI_DEREG_RESULT
Definition: m3ua.h:85
sccp_sclc_rx_scrc_rout_fail
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
OSMO_SCCP_TIMER_REPEAT_REL
@ OSMO_SCCP_TIMER_REPEAT_REL
Definition: sccp_internal.h:21
as_list_for_asp
static char * as_list_for_asp(const struct osmo_ss7_asp *asp, char *buf, size_t buf_len)
Definition: osmo_ss7_vty.c:976
sccp_connection_socket
struct sccp_connection * sccp_connection_socket(void)
Definition: sccp.c:1423
_sccp_send_refuse
static int _sccp_send_refuse(struct sccp_source_reference *src_ref, int cause, void *ctx)
Definition: sccp.c:778
pcap_hdr::snaplen
uint32_t snaplen
Definition: mtp_pcap.c:37
sccpaddr_node
static struct cmd_node sccpaddr_node
Definition: osmo_ss7_vty.c:1498
xua_cli_read_cb
static int xua_cli_read_cb(struct osmo_stream_cli *conn)
Definition: osmo_ss7_asp.c:1060
SCU_MSG_HEADROOM
#define SCU_MSG_HEADROOM
Definition: sccp_helpers.c:39
IPA_ASP_E_ID_ACK
@ IPA_ASP_E_ID_ACK
Definition: xua_asp_fsm.h:33
osmo_scu_disconn_param::conn_id
uint32_t conn_id
Definition: sccp_sap.h:226
osmo_ss7_pointcode_print2
const char * osmo_ss7_pointcode_print2(const struct osmo_ss7_instance *inst, uint32_t pc)
Definition: osmo_ss7.c:279
dereg_rsp_ies
static const uint16_t dereg_rsp_ies[]
Definition: m3ua.c:250
osmo_ss7_route_table::cfg
struct osmo_ss7_route_table::@19 cfg
xua_msg_free
void xua_msg_free(struct xua_msg *msg)
Definition: xua_msg.c:56
m3ua_data_hdr::mp
uint8_t mp
Definition: m3ua.h:100
osmo_scu_prim
Definition: sccp_sap.h:273
gen_pc_fmtstr
static const char * gen_pc_fmtstr(const struct osmo_ss7_pc_fmt *pc_fmt, unsigned int *num_comp_exp)
Definition: osmo_ss7.c:127
_sccp_handle_connection_released
static int _sccp_handle_connection_released(struct msgb *msgb)
Definition: sccp.c:1196
osmo_ss7_routing_key::ssn
uint32_t ssn
Definition: osmo_ss7.h:259
xua_as_fsm_start
struct osmo_fsm_inst * xua_as_fsm_start(struct osmo_ss7_as *as, int log_level)
Start an AS FSM for a given Application Server.
Definition: xua_as_fsm.c:593
sccp_system_incoming_ctx
int sccp_system_incoming_ctx(struct msgb *msgb, void *ctx)
Definition: sccp.c:1319
SUA_ERR_SUBSYS_STATUS_UNKN
#define SUA_ERR_SUBSYS_STATUS_UNKN
Definition: sua.h:159
destination_local_reference_is_free
static int destination_local_reference_is_free(struct sccp_source_reference *reference)
Definition: sccp.c:694
osmo_ss7_route_create
struct osmo_ss7_route * osmo_ss7_route_create(struct osmo_ss7_route_table *rtbl, uint32_t pc, uint32_t mask, const char *linkset_name)
Create a new route in the given routing table.
Definition: osmo_ss7.c:746
daud_mand_ies
static const uint16_t daud_mand_ies[]
Definition: m3ua.c:155
sccp_scoc_show_connections
void sccp_scoc_show_connections(struct vty *vty, struct osmo_sccp_instance *inst)
Definition: sccp_scoc.c:1978
sccp_data_callback::accept_context
void * accept_context
Definition: sccp.c:64
m3ua_encode_dupu
static struct xua_msg * m3ua_encode_dupu(const uint32_t *rctx, unsigned int num_rctx, uint32_t dpc, uint16_t user, uint16_t cause, const char *info_string)
Definition: m3ua.c:823
osmo_ss7_as_has_asp
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
ss7_internal.h
xua_msg_class::name
const char * name
Definition: xua_msg.h:49
sccp_connection::incoming
bool incoming
Definition: sccp_scoc.c:109
OSMO_SCCP_ADDR_T_IPv6
#define OSMO_SCCP_ADDR_T_IPv6
Definition: sccp_sap.h:53
osmo_ss7_asp::server
struct osmo_stream_srv * server
Definition: osmo_ss7.h:404
osmo_ss7_route::linkset
struct osmo_ss7_linkset * linkset
pointer to linkset (destination) of route
Definition: osmo_ss7.h:217
M3UA_TMOD_LOADSHARE
@ M3UA_TMOD_LOADSHARE
Definition: m3ua.h:177
m3ua_encode_notify
struct xua_msg * m3ua_encode_notify(const struct osmo_xlm_prim_notify *npar)
Definition: m3ua.c:381
sccp_sclc_rx_from_scrc
int sccp_sclc_rx_from_scrc(struct osmo_sccp_instance *inst, struct xua_msg *xua)
SCRC -> SCLC (connectionless message)
Definition: sccp_sclc.c:256
write_sccp_addressbook
static void write_sccp_addressbook(struct vty *vty, const struct osmo_ss7_instance *inst)
Definition: osmo_ss7_vty.c:1606
OSMO_SS7_ASP_QUIRK_SNM_INACTIVE
#define OSMO_SS7_ASP_QUIRK_SNM_INACTIVE
Accept SSNM even if ASP is in AS-INACTIVE state.
Definition: osmo_ss7.h:464
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
osmo_ss7_asp::sock_name
char * sock_name
pre-formatted human readable local/remote socket name
Definition: osmo_ss7.h:406
_sccp_handle_connection_request
static int _sccp_handle_connection_request(struct msgb *msgb, void *ctx)
Definition: sccp.c:1037
osmo_scu_connect_param::conn_id
uint32_t conn_id
Definition: sccp_sap.h:204
osmo_ss7_instance::xua_servers
struct llist_head xua_servers
list of osmo_xua_servers
Definition: osmo_ss7.h:85
LOGPASP
#define LOGPASP(asp, subsys, level, fmt, args ...)
Definition: osmo_ss7.h:512
sccp_data_callback::read_context
void * read_context
Definition: sccp.c:68
NOTIFY_PAR_P_ROUTE_CTX
#define NOTIFY_PAR_P_ROUTE_CTX
Definition: sigtran_sap.h:35
xua_dialect_check_all_mand_ies
int xua_dialect_check_all_mand_ies(const struct xua_dialect *dialect, struct xua_msg *xua)
Definition: xua_msg.c:482
osmo_ss7_asp_active
bool osmo_ss7_asp_active(const struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:811
ipa_rx_msg_sccp
static int ipa_rx_msg_sccp(struct osmo_ss7_asp *asp, struct msgb *msg, uint8_t sls)
Definition: ipa.c:214
osmo_ss7_route_table_find
struct osmo_ss7_route_table * osmo_ss7_route_table_find(struct osmo_ss7_instance *inst, const char *name)
Definition: osmo_ss7.c:626
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
ROUTING_KEY_SSN_ARG_STRS
#define ROUTING_KEY_SSN_ARG_STRS
Definition: osmo_ss7_vty.c:1257
m3ua_err_names
const struct value_string m3ua_err_names[]
Definition: m3ua.c:56
msgb_put_u16le
static void msgb_put_u16le(struct msgb *msg, uint16_t val)
Definition: sccp2sua.c:51
OSMO_SCCP_GTI_TT_ONLY
@ OSMO_SCCP_GTI_TT_ONLY
Definition: sccp_sap.h:73
M3UA_MSGC_ASPSM
#define M3UA_MSGC_ASPSM
Definition: m3ua.h:32
cs7_node
static struct cmd_node cs7_node
Definition: osmo_ss7_vty.c:79
ROUTING_KEY_CMD
#define ROUTING_KEY_CMD
Definition: osmo_ss7_vty.c:1240
osmo_xlm_prim_error::code
uint32_t code
Definition: sigtran_sap.h:47
m3ua_rx_mgmt
static int m3ua_rx_mgmt(struct osmo_ss7_asp *asp, struct xua_msg *xua)
Definition: m3ua.c:640
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
_find_ssn
static struct sccp_data_callback * _find_ssn(uint8_t ssn)
Definition: sccp.c:76
OSMO_SS7_AS_TMOD_OVERRIDE
@ OSMO_SS7_AS_TMOD_OVERRIDE
Definition: osmo_ss7.h:262
xua_cli_close
static void xua_cli_close(struct osmo_stream_cli *cli)
Definition: osmo_ss7_asp.c:1013
osmo_sccp_instance::list
struct llist_head list
Definition: sccp_internal.h:39
osmo_ss7_asp
Definition: osmo_ss7.h:390
SUA_IEI_S7_HOP_CTR
#define SUA_IEI_S7_HOP_CTR
Definition: sua.h:97
osmo_ss7_instance::sccp_address_book
struct llist_head sccp_address_book
Definition: osmo_ss7.h:104
OSMO_SS7_ASP_ROLE_ASP
@ OSMO_SS7_ASP_ROLE_ASP
Definition: osmo_ss7.h:383
MTP_UNAVAIL_C_INACC_REM_USER
@ MTP_UNAVAIL_C_INACC_REM_USER
Definition: mtp.h:31
OSMO_SS7_ASP_PROT_NONE
@ OSMO_SS7_ASP_PROT_NONE
Definition: osmo_ss7.h:278
osmo_ss7_route_table_find_or_create
struct osmo_ss7_route_table * osmo_ss7_route_table_find_or_create(struct osmo_ss7_instance *inst, const char *name)
Definition: osmo_ss7.c:638
M3UA_IEI_REG_RESULT
#define M3UA_IEI_REG_RESULT
Definition: m3ua.h:84
osmo_ss7_asp_restart
int osmo_ss7_asp_restart(struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:721
OSMO_SCCP_RI_GT
@ OSMO_SCCP_RI_GT
Definition: sccp_sap.h:59
sccp_scmg_init
int sccp_scmg_init(struct osmo_sccp_instance *inst)
Definition: sccp_scmg.c:311
osmo_sccp_make_addr_pc_ssn
void osmo_sccp_make_addr_pc_ssn(struct osmo_sccp_addr *addr, uint32_t pc, uint32_t ssn)
Definition: sccp_helpers.c:46
M3UA_ASPTM_INACTIVE_ACK
#define M3UA_ASPTM_INACTIVE_ACK
Definition: m3ua.h:59
sua_to_sccp_cc
static int sua_to_sccp_cc(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1070
sccp_scmg_rx_ssn_allowed
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
xua_msg_dump
char * xua_msg_dump(struct xua_msg *xua, const struct xua_dialect *dialect)
Definition: xua_msg.c:527
osmo_ss7_pc_fmt
Definition: osmo_ss7.h:68
sccp_create_dt1
struct msgb * sccp_create_dt1(struct sccp_source_reference *dst_ref, uint8_t *inp_data, uint8_t len)
Definition: sccp.c:912
osmo_ss7_tmode_to_xua
int osmo_ss7_tmode_to_xua(enum osmo_ss7_as_traffic_mode tmod)
Definition: osmo_ss7.c:1260
osmo_sccp_instance::ss7_user
struct osmo_ss7_user ss7_user
Definition: sccp_internal.h:51
osmo_ss7_as_add_asp
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
MTP_UNAVAIL_C_UNEQUIP_REM_USER
@ MTP_UNAVAIL_C_UNEQUIP_REM_USER
Definition: mtp.h:30
sccp_lbcs_local_bcast_pcstate
void sccp_lbcs_local_bcast_pcstate(struct osmo_sccp_instance *inst, const struct osmo_scu_pcstate_param *pcstate)
Definition: sccp_lbcs.c:39
write_one_cs7
static void write_one_cs7(struct vty *vty, struct osmo_ss7_instance *inst, bool show_dyn_config)
Definition: osmo_ss7_vty.c:2111
M3UA_IEI_CONG_IND
#define M3UA_IEI_CONG_IND
Definition: m3ua.h:81
M3UA_ERR_MISSING_PARAM
@ M3UA_ERR_MISSING_PARAM
Definition: m3ua.h:168
mtp_unavail_cause_vals
const struct value_string mtp_unavail_cause_vals[]
Definition: osmo_ss7.c:65
osmo_ss7_as::qos_class
uint8_t qos_class
Definition: osmo_ss7.h:328
osmo_ss7_asp_destroy
void osmo_ss7_asp_destroy(struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:685
route_insert_sorted
static void route_insert_sorted(struct osmo_ss7_route_table *rtbl, struct osmo_ss7_route *cmp)
Definition: osmo_ss7.c:721
xua_common_hdr::msg_type
uint8_t msg_type
Definition: xua_types.h:35
xua_msg_class
Definition: xua_msg.h:48
LLIST_HEAD
LLIST_HEAD(osmo_ss7_instances)
osmo_sccp_user::as_fi
struct osmo_fsm_inst * as_fi
Definition: sccp_internal.h:78
osmo_sccp_inst_addr_name
char * osmo_sccp_inst_addr_name(const struct osmo_sccp_instance *sccp, const struct osmo_sccp_addr *addr)
Definition: sccp_helpers.c:430
m3ua_rx_snm
static int m3ua_rx_snm(struct osmo_ss7_asp *asp, struct xua_msg *xua)
Definition: m3ua.c:982
SUA_CAUSE_T_REFUSAL
#define SUA_CAUSE_T_REFUSAL
Definition: sua.h:135
osmo_ss7_xua_server_create
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_ss7_pc_normalize
uint32_t osmo_ss7_pc_normalize(const struct osmo_ss7_pc_fmt *pc_fmt, uint32_t pc)
Definition: osmo_ss7.c:177
osmo_ss7_asp::sctp_init
struct osmo_ss7_asp::@27::@28 sctp_init
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
_sccp_handle_connection_refused
static int _sccp_handle_connection_refused(struct msgb *msgb)
Definition: sccp.c:1237
M3UA_ASPTM_ACTIVE
#define M3UA_ASPTM_ACTIVE
Definition: m3ua.h:56
drst_mand_ies
static const uint16_t drst_mand_ies[]
Definition: m3ua.c:164
osmo_ss7_xua_server_find
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
M3UA_ERR_UNSUPP_MSG_CLASS
@ M3UA_ERR_UNSUPP_MSG_CLASS
Definition: m3ua.h:149
M3UA_ERR_NO_CONFGD_AS_FOR_ASP
@ M3UA_ERR_NO_CONFGD_AS_FOR_ASP
Definition: m3ua.h:172
sccp_addr_to_str_buf
static int sccp_addr_to_str_buf(char *buf, size_t buf_len, const struct osmo_ss7_instance *ss7, const struct osmo_sccp_addr *addr, char sep_char)
Definition: sccp_helpers.c:351
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_AS_TMOD_ROUNDROBIN
@ OSMO_SS7_AS_TMOD_ROUNDROBIN
Definition: osmo_ss7.h:265
sccp_to_xua_dt1
static struct xua_msg * sccp_to_xua_dt1(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1181
m3ua_data_hdr::si
uint8_t si
Definition: m3ua.h:98
osmo_ss7_asp_protocol_vals
struct value_string osmo_ss7_asp_protocol_vals[]
Definition: osmo_ss7_asp.c:115
sccp_src_ref_from_int
struct sccp_source_reference sccp_src_ref_from_int(uint32_t int_ref)
Definition: sccp.c:1490
ss7_asp_xua_srv_conn_closed_cb
int ss7_asp_xua_srv_conn_closed_cb(struct osmo_stream_srv *srv)
Definition: osmo_ss7_asp.c:1121
osmo_ss7_route::cfg
struct osmo_ss7_route::@24 cfg
osmo_sccp_addr_to_id_buf
int osmo_sccp_addr_to_id_buf(char *buf, size_t buf_len, const struct osmo_ss7_instance *ss7, const struct osmo_sccp_addr *addr)
like osmo_sccp_addr_to_str_buf, but using only characters passing osmo_identifier_valid().
Definition: sccp_helpers.c:393
osmo_ss7_asp_find_or_create
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
sccp_ptr_part_consistent
static bool sccp_ptr_part_consistent(struct msgb *msg, uint8_t *ptr_addr)
validate that SCCP part with pointer + length doesn't exceed msg tail
Definition: sccp2sua.c:434
osmo_sccp_instance::max_optional_data
uint32_t max_optional_data
Definition: sccp_internal.h:55
osmo_ss7_routing_key::context
uint32_t context
Definition: osmo_ss7.h:254
SUA_CAUSE_T_MASK
#define SUA_CAUSE_T_MASK
Definition: sua.h:133
osmo_ss7_route_table
Definition: osmo_ss7.h:44
osmo_sccp_user::pc
uint32_t pc
Definition: sccp_internal.h:68
osmo_ss7_route::qos_class
uint8_t qos_class
Definition: osmo_ss7.h:230
xua_msg_part::len
uint16_t len
Definition: xua_msg.h:42
_sccp_handle_connection_dt1
static int _sccp_handle_connection_dt1(struct msgb *msgb)
Definition: sccp.c:1141
OSMO_SCCP_TIMER_REL
@ OSMO_SCCP_TIMER_REL
Definition: sccp_internal.h:20
M3UA_ERR_UNEXP_PARAM
@ M3UA_ERR_UNEXP_PARAM
Definition: m3ua.h:165
LOGPAS
#define LOGPAS(as, subsys, level, fmt, args ...)
Definition: osmo_ss7.h:514
osmo_ss7_asp::role_set_by_vty
bool role_set_by_vty
Definition: osmo_ss7.h:435
osmo_ss7_as_destroy
void osmo_ss7_as_destroy(struct osmo_ss7_as *as)
Destroy given Application Server.
Definition: osmo_ss7.c:1055
osmo_sccp_addr::gt
struct osmo_sccp_gt gt
Definition: sccp_sap.h:186
addr_entry_by_name_local
static struct osmo_sccp_addr_entry * addr_entry_by_name_local(const char *name, const struct osmo_ss7_instance *inst)
Definition: osmo_ss7_vty.c:1516
sccp_user_prim_up
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
m3ua_data_hdr
Definition: m3ua.h:95
_sccp_set_connection_state
static void _sccp_set_connection_state(struct sccp_connection *connection, int new_state)
Definition: sccp.c:735
osmo_ss7_asp::remote
struct osmo_ss7_asp_peer remote
Definition: osmo_ss7.h:439
m3ua_rkm_msgt_names
static const struct value_string m3ua_rkm_msgt_names[]
Definition: m3ua.c:253
xua_as_transmit_msg
int xua_as_transmit_msg(struct osmo_ss7_as *as, struct msgb *msg)
Definition: xua_as_fsm.c:152
osmo_sccp_gt::gti
uint8_t gti
Definition: sccp_sap.h:176
SUA_CO_COERR
#define SUA_CO_COERR
Definition: sua.h:79
xua_msg
Definition: xua_msg.h:31
M3UA_IEI_CONC_DEST
#define M3UA_IEI_CONC_DEST
Definition: m3ua.h:82
m3ua_tx_xua_asp
static int m3ua_tx_xua_asp(struct osmo_ss7_asp *asp, struct xua_msg *xua)
Definition: m3ua.c:477
osmo_sccp_timer
osmo_sccp_timer
Definition: sccp_internal.h:15
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
osmo_sccp_instance::next_id
uint32_t next_id
Definition: sccp_internal.h:47
osmo_ss7_asp::list
struct llist_head list
entry in osmo_ss7_instance::asp_list
Definition: osmo_ss7.h:392
osmo_sccp_instance::tdefs
struct osmo_tdef * tdefs
Definition: sccp_internal.h:53
OSMO_SCU_PRIM_N_DATA
@ OSMO_SCU_PRIM_N_DATA
Definition: sccp_sap.h:35
asp_handle_sctp_notif_monitor_primary_address
static void asp_handle_sctp_notif_monitor_primary_address(const struct osmo_ss7_asp *asp, const union sctp_notification *notif)
Definition: osmo_ss7_asp.c:458
udt_offsets::data_offset
uint32_t data_offset
Definition: sccp.c:435
osmo_sccp_addr::ri
enum osmo_sccp_routing_ind ri
Definition: sccp_sap.h:185
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
ipa_cli_read_cb
static int ipa_cli_read_cb(struct osmo_stream_cli *conn)
Definition: osmo_ss7_asp.c:1030
M3UA_ERR_UNSUPP_MSG_TYPE
@ M3UA_ERR_UNSUPP_MSG_TYPE
Definition: m3ua.h:150
xua_dialect_sua
const struct xua_dialect xua_dialect_sua
Definition: sua.c:216
sccp_to_xua_cr
static struct xua_msg * sccp_to_xua_cr(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1021
osmo_ss7_as::inst
struct osmo_ss7_instance * inst
Definition: osmo_ss7.h:303
OSMO_SCCP_RI_SSN_IP
@ OSMO_SCCP_RI_SSN_IP
Definition: sccp_sap.h:61
osmo_xlm_prim_notify::presence
uint32_t presence
Definition: sigtran_sap.h:38
sccp_mandatory
static const uint16_t sccp_mandatory[NUM_SCCP_MSGT][MAX_IES]
Definition: sccp2sua.c:765
_sccp_parse_it
static int _sccp_parse_it(struct msgb *msgb, struct sccp_parse_result *result)
Definition: sccp.c:530
strnappendchar
static int strnappendchar(char *str, char c, size_t n)
Definition: osmo_ss7.c:112
XUA_ASP_E_M_ASP_UP_REQ
@ XUA_ASP_E_M_ASP_UP_REQ
Definition: xua_asp_fsm.h:10
sccp_connection_connect
int sccp_connection_connect(struct sccp_connection *conn, const struct sockaddr_sccp *local, struct msgb *data)
Definition: sccp.c:1428
sua_to_sccp_xudts
static int sua_to_sccp_xudts(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1362
osmo_sccp_addr_dump
char * osmo_sccp_addr_dump(const struct osmo_sccp_addr *addr)
Definition: sccp_helpers.c:325
m3ua_rx_snm_sg
static int m3ua_rx_snm_sg(struct osmo_ss7_asp *asp, struct xua_msg *xua)
Definition: m3ua.c:969
osmo_ss7_route_table::list
struct llist_head list
member in list of routing tables
Definition: osmo_ss7.h:48
sccp_user_find
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
osmo_sccp_inst_addr_to_str_buf
int osmo_sccp_inst_addr_to_str_buf(char *buf, size_t buf_len, const struct osmo_sccp_instance *sccp, const struct osmo_sccp_addr *addr)
Definition: sccp_helpers.c:415
M3UA_PPID
#define M3UA_PPID
Definition: m3ua.h:25
osmo_ss7_linkset::adjacent_pc
uint32_t adjacent_pc
Definition: osmo_ss7.h:193
osmo_scu_disconn_param::originator
enum osmo_sccp_originator originator
Definition: sccp_sap.h:223
xua_msg_free_tag
int xua_msg_free_tag(struct xua_msg *xua, uint16_t tag)
Definition: xua_msg.c:97
osmo_ss7_instance::id
uint32_t id
Definition: osmo_ss7.h:95
LLIST_HEAD
LLIST_HEAD(sccp_address_book_global)
osmo_ss7_asp_protocol_vals
struct value_string osmo_ss7_asp_protocol_vals[]
Definition: osmo_ss7_asp.c:115
duna_mand_ies
static const uint16_t duna_mand_ies[]
Definition: m3ua.c:149
sls
uint8_t sls
Definition: m3ua.h:7
xua_msg::mtp
struct osmo_mtp_transfer_param mtp
Definition: xua_msg.h:33
osmo_ss7_instance::rtable_list
struct llist_head rtable_list
list of osmo_ss7_route_table
Definition: osmo_ss7.h:83
sccp_system_init
int sccp_system_init(void(*outgoing)(struct sccp_connection *conn, struct msgb *data, void *, void *), void *ctx)
Definition: sccp.c:1305
xua_dialect_m3ua
const struct xua_dialect xua_dialect_m3ua
Definition: m3ua.c:273
osmo_ss7_pc_width
uint8_t osmo_ss7_pc_width(const struct osmo_ss7_pc_fmt *pc_fmt)
Definition: osmo_ss7.c:169
mtp_pcap_write_msu
int mtp_pcap_write_msu(int fd, const uint8_t *data, int length)
Definition: mtp_pcap.c:63
osmo_ss7_xua_server_set_local_hosts
int osmo_ss7_xua_server_set_local_hosts(struct osmo_xua_server *xs, const char **local_hosts, size_t local_host_cnt)
Definition: osmo_ss7_xua_srv.c:265
SS7_ASP_LM_TIMERS_LEN
@ SS7_ASP_LM_TIMERS_LEN
Definition: xua_internal.h:96
osmo_ss7_tmode_from_xua
enum osmo_ss7_as_traffic_mode osmo_ss7_tmode_from_xua(uint32_t in)
Definition: osmo_ss7.c:1274
SUA_IEI_SRC_REF
#define SUA_IEI_SRC_REF
Definition: sua.h:100
DEFUN_USRATTR
DEFUN_USRATTR(as_traf_mode, as_traf_mode_cmd, OSMO_SCCP_LIB_ATTR_RSTRT_ASP, "traffic-mode (broadcast | loadshare | roundrobin | override)", "Specifies traffic mode of operation of the ASP within the AS\n" "Broadcast to all ASP within AS\n" "Share Load among all ASP within AS\n" "Round-Robin between all ASP within AS\n" "Override\n")
Definition: osmo_ss7_vty.c:1176
pcap_hdr::magic_number
uint32_t magic_number
Definition: mtp_pcap.c:32
M3UA_ASPSM_DOWN_ACK
#define M3UA_ASPSM_DOWN_ACK
Definition: m3ua.h:53
copy_address
static int copy_address(struct sccp_address *addr, uint8_t offset, struct msgb *msgb)
Definition: sccp.c:106
XUA_AS_S_ACTIVE
@ XUA_AS_S_ACTIVE
Definition: xua_as_fsm.h:8
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
osmo_sccp_instance::users
struct llist_head users
Definition: sccp_internal.h:43
SUA_CAUSE_T_ERROR
#define SUA_CAUSE_T_ERROR
Definition: sua.h:138
SUA_CAUSE_T_RETURN
#define SUA_CAUSE_T_RETURN
Definition: sua.h:134
xua_hdr_dump
char * xua_hdr_dump(struct xua_msg *xua, const struct xua_dialect *dialect)
Definition: xua_msg.c:467
SUA_CAUSE_T_RESET
#define SUA_CAUSE_T_RESET
Definition: sua.h:137
osmo_ss7_asp_find_by_name
struct osmo_ss7_asp * osmo_ss7_asp_find_by_name(struct osmo_ss7_instance *inst, const char *name)
Definition: osmo_ss7.c:1143
sua_to_sccp_dt1
static int sua_to_sccp_dt1(struct msgb *msg, struct xua_msg *xua)
Definition: sccp2sua.c:1195
cs7_role_t
cs7_role_t
Definition: osmo_ss7_vty.c:75
osmo_ss7_asp_disconnect
void osmo_ss7_asp_disconnect(struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:1201
osmo_scu_connect_param::responding_addr
struct osmo_sccp_addr responding_addr
Definition: sccp_sap.h:200
MTP_UNAVAIL_C_UNKNOWN
@ MTP_UNAVAIL_C_UNKNOWN
Definition: mtp.h:29
M3UA_IEI_ROUTE_CTX
#define M3UA_IEI_ROUTE_CTX
Definition: m3ua.h:67
SUA_PORT
#define SUA_PORT
Definition: sua.h:28
M3UA_IEI_DIAG_INFO
#define M3UA_IEI_DIAG_INFO
Definition: m3ua.h:68
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
M3UA_ASPSM_UP
#define M3UA_ASPSM_UP
Definition: m3ua.h:49
SUA_MSGC_CO
#define SUA_MSGC_CO
Definition: sua.h:36
osmo_sccp_addr_by_name
struct osmo_ss7_instance * osmo_sccp_addr_by_name(struct osmo_sccp_addr *dest_addr, const char *name)
Lookup an SCCP address from the addressbook by its name.
Definition: osmo_ss7_vty.c:1553
ss7_asp_lm_timer_names
const struct value_string ss7_asp_lm_timer_names[]
Definition: xua_default_lm_fsm.c:96
XUA_HDR
#define XUA_HDR(class, type)
Definition: xua_msg.h:25
osmo_sccp_addr::ssn
uint32_t ssn
Definition: sccp_sap.h:188
osmo_sccp_addr_by_name_local
int osmo_sccp_addr_by_name_local(struct osmo_sccp_addr *dest_addr, const char *name, const struct osmo_ss7_instance *inst)
Lookup an SCCP address from the addressbook of a specific instance by its name.
Definition: osmo_ss7_vty.c:1575