libosmo-sigtran  2.0.0.40-d4e32.202411112026
Osmocom SIGTRAN library
ss7_internal.h
Go to the documentation of this file.
1 #pragma once
2 
3 /* Internal header used by libosmo-sccp, not available publicly for lib users */
4 
5 #include <stdbool.h>
6 #include <stdint.h>
8 
9 extern bool ss7_initialized;
10 uint32_t ss7_find_free_l_rk_id(struct osmo_ss7_instance *inst);
11 
12 bool ss7_ipv6_sctp_supported(const char *host, bool bind);
13 
14 struct osmo_ss7_as *ss7_as_alloc(struct osmo_ss7_instance *inst, const char *name,
16 
17 struct osmo_ss7_asp *ss7_asp_alloc(struct osmo_ss7_instance *inst, const char *name,
18  uint16_t remote_port, uint16_t local_port,
21 bool ss7_asp_is_started(const struct osmo_ss7_asp *asp);
22 int ss7_asp_get_fd(const struct osmo_ss7_asp *asp);
24 
27 int ss7_asp_ipa_srv_conn_rx_cb(struct osmo_stream_srv *conn, int res, struct msgb *msg);
28 int ss7_asp_xua_srv_conn_rx_cb(struct osmo_stream_srv *conn, int res, struct msgb *msg);
29 int ss7_asp_m3ua_tcp_srv_conn_rx_cb(struct osmo_stream_srv *conn, int res, struct msgb *msg);
30 int ss7_asp_xua_srv_conn_closed_cb(struct osmo_stream_srv *srv);
32 int ss7_asp_apply_primary_address(const struct osmo_ss7_asp *asp);
33 int ss7_asp_apply_new_local_address(const struct osmo_ss7_asp *asp, unsigned int loc_idx);
34 int ss7_asp_apply_drop_local_address(const struct osmo_ss7_asp *asp, unsigned int loc_idx);
35 
36 bool ss7_asp_peer_match_host(const struct osmo_ss7_asp_peer *peer, const char *host, bool host_is_v6);
37 int ss7_asp_peer_find_host(const struct osmo_ss7_asp_peer *peer, const char *host);
38 
39 int xua_tcp_segmentation_cb(struct msgb *msg);
40 
41 enum ss7_as_ctr {
44 };
45 
50 };
51 
52 #define _LOGSS7(inst, subsys, level, fmt, args ...) \
53  LOGP(subsys, level, "%u: " fmt, inst ? (inst)->cfg.id : 0, ## args)
54 #define LOGSS7(inst, level, fmt, args ...) \
55  _LOGSS7(inst, DLSS7, level, fmt, ## args)
56 
57 #define LOGPASP(asp, subsys, level, fmt, args ...) \
58  _LOGSS7((asp)->inst, subsys, level, "asp-%s: " fmt, (asp)->cfg.name, ## args)
59 #define LOGPAS(as, subsys, level, fmt, args ...) \
60  _LOGSS7((as)->inst, subsys, level, "as-%s: " fmt, (as)->cfg.name, ## args)
osmo_ss7_asp_protocol
Definition: osmo_ss7.h:198
bool ss7_asp_is_started(const struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:728
int ss7_asp_m3ua_tcp_srv_conn_rx_cb(struct osmo_stream_srv *conn, int res, struct msgb *msg)
Definition: osmo_ss7_asp.c:887
int ss7_asp_peer_find_host(const struct osmo_ss7_asp_peer *peer, const char *host)
Find the exact IP address match and return its index in the array.
Definition: osmo_ss7_asp_peer.c:285
int ss7_asp_xua_srv_conn_closed_cb(struct osmo_stream_srv *srv)
Definition: osmo_ss7_asp.c:1076
int ss7_asp_apply_primary_address(const struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:284
ss7_asp_ctr
Definition: ss7_internal.h:46
@ SS7_ASP_CTR_PKT_TX_TOTAL
Definition: ss7_internal.h:49
@ SS7_ASP_CTR_PKT_RX_UNKNOWN
Definition: ss7_internal.h:48
@ SS7_ASP_CTR_PKT_RX_TOTAL
Definition: ss7_internal.h:47
struct osmo_ss7_asp * ss7_asp_find_by_socket_addr(int fd, int trans_proto)
Find an ASP definition matching the local+remote IP/PORT of given fd.
Definition: osmo_ss7_asp.c:463
bool ss7_ipv6_sctp_supported(const char *host, bool bind)
Definition: osmo_ss7.c:658
int ss7_asp_xua_srv_conn_rx_cb(struct osmo_stream_srv *conn, int res, struct msgb *msg)
Definition: osmo_ss7_asp.c:822
int ss7_asp_apply_peer_primary_address(const struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:242
int ss7_asp_get_fd(const struct osmo_ss7_asp *asp)
Get the fd of a given ASP.
Definition: osmo_ss7_asp.c:1237
int ss7_asp_ipa_srv_conn_rx_cb(struct osmo_stream_srv *conn, int res, struct msgb *msg)
Definition: osmo_ss7_asp.c:800
uint32_t ss7_find_free_l_rk_id(struct osmo_ss7_instance *inst)
Definition: osmo_ss7.c:96
bool ss7_initialized
Definition: osmo_ss7.c:62
int xua_tcp_segmentation_cb(struct msgb *msg)
Definition: osmo_ss7_asp.c:872
int ss7_asp_apply_new_local_address(const struct osmo_ss7_asp *asp, unsigned int loc_idx)
Definition: osmo_ss7_asp.c:198
int ss7_asp_apply_drop_local_address(const struct osmo_ss7_asp *asp, unsigned int loc_idx)
Definition: osmo_ss7_asp.c:220
bool ss7_asp_protocol_check_trans_proto(enum osmo_ss7_asp_protocol proto, int trans_proto)
Definition: osmo_ss7_asp.c:133
int ss7_default_trans_proto_for_asp_proto(enum osmo_ss7_asp_protocol proto)
Definition: osmo_ss7_asp.c:157
ss7_as_ctr
Definition: ss7_internal.h:41
@ SS7_AS_CTR_RX_MSU_TOTAL
Definition: ss7_internal.h:42
@ SS7_AS_CTR_TX_MSU_TOTAL
Definition: ss7_internal.h:43
bool ss7_asp_peer_match_host(const struct osmo_ss7_asp_peer *peer, const char *host, bool host_is_v6)
Definition: osmo_ss7_asp_peer.c:266
struct osmo_ss7_asp * ss7_asp_alloc(struct osmo_ss7_instance *inst, const char *name, uint16_t remote_port, uint16_t local_port, int trans_proto, enum osmo_ss7_asp_protocol proto)
Definition: osmo_ss7_asp.c:533
struct osmo_ss7_as * ss7_as_alloc(struct osmo_ss7_instance *inst, const char *name, enum osmo_ss7_asp_protocol proto)
Allocate an Application Server.
Definition: osmo_ss7_as.c:72
bool ss7_asp_set_default_peer_hosts(struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:395
Definition: osmo_ss7.h:221
char * name
Definition: osmo_ss7.h:239
enum osmo_ss7_asp_protocol proto
Definition: osmo_ss7.h:241
struct osmo_ss7_instance * inst
Definition: osmo_ss7.h:224
Definition: osmo_ss7.h:287
Definition: osmo_ss7.h:312
enum osmo_ss7_asp_protocol proto
Definition: osmo_ss7.h:353
struct osmo_ss7_instance * inst
Definition: osmo_ss7.h:315
char * name
Definition: osmo_ss7.h:351
int trans_proto
The underlaying transport protocol (one of IPPROTO_*)
Definition: osmo_ss7.h:380
Definition: osmo_ss7.h:60