libosmo-sigtran 2.0.0.52-6412
Osmocom SIGTRAN library
ss7_asp.h
Go to the documentation of this file.
1#pragma once
2
3#include <stdint.h>
4#include <osmocom/core/linuxlist.h>
5#include <osmocom/core/fsm.h>
6#include <osmocom/core/msgb.h>
7#include <osmocom/core/tdef.h>
8#include <osmocom/netif/stream.h>
9
11
12#include "ss7_asp_peer.h"
13#include "ss7_internal.h"
14
15/***********************************************************************
16 * SS7 Application Server Processes
17 ***********************************************************************/
18
21
26};
27
30 struct llist_head list;
32
34 struct osmo_fsm_inst *fi;
35
38 struct llist_head siblings;
39
41 struct osmo_stream_cli *client;
42 struct osmo_stream_srv *server;
44 char *sock_name;
45
46 /* ASP Identifier for ASP-UP + NTFY */
47 uint32_t asp_id;
49
50 /* Layer Manager to which we talk */
52 void *lm_priv;
53
56
59
61 struct rate_ctr_group *ctrg;
62
64 struct msgb *pending_msg;
65
66 struct {
67 char *name;
75
78 uint8_t qos_class;
79 uint32_t quirks;
80
81 /* T_defs used by the default_lm: */
82 struct osmo_tdef *T_defs_lm;
83
84 struct {
92 uint16_t max_init_timeo_value; /* ms */
94
97 } cfg;
98};
99
100struct osmo_ss7_asp *ss7_asp_alloc(struct osmo_ss7_instance *inst, const char *name,
101 uint16_t remote_port, uint16_t local_port,
104bool ss7_asp_is_started(const struct osmo_ss7_asp *asp);
105int ss7_asp_get_fd(const struct osmo_ss7_asp *asp);
106
108int ss7_asp_apply_primary_address(const struct osmo_ss7_asp *asp);
109int ss7_asp_apply_new_local_address(const struct osmo_ss7_asp *asp, unsigned int loc_idx);
110int ss7_asp_apply_drop_local_address(const struct osmo_ss7_asp *asp, unsigned int loc_idx);
111
112#define LOGPASP(asp, subsys, level, fmt, args ...) \
113 _LOGSS7((asp)->inst, subsys, level, "asp-%s: " fmt, (asp)->cfg.name, ## args)
osmo_ss7_asp_protocol
Definition: osmo_ss7.h:153
osmo_ss7_asp_role
Definition: osmo_ss7.h:238
osmo_ss7_asp_admin_state
Definition: osmo_ss7.h:229
bool ss7_asp_is_started(const struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:730
int ss7_asp_apply_primary_address(const struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:286
ss7_asp_ctr
Definition: ss7_asp.h:22
@ SS7_ASP_CTR_PKT_TX_TOTAL
Definition: ss7_asp.h:25
@ SS7_ASP_CTR_PKT_RX_UNKNOWN
Definition: ss7_asp.h:24
@ SS7_ASP_CTR_PKT_RX_TOTAL
Definition: ss7_asp.h:23
int ss7_asp_apply_peer_primary_address(const struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:244
int ss7_asp_get_fd(const struct osmo_ss7_asp *asp)
Get the fd of a given ASP.
Definition: osmo_ss7_asp.c:1239
int ss7_asp_apply_new_local_address(const struct osmo_ss7_asp *asp, unsigned int loc_idx)
Definition: osmo_ss7_asp.c:200
int ss7_asp_apply_drop_local_address(const struct osmo_ss7_asp *asp, unsigned int loc_idx)
Definition: osmo_ss7_asp.c:222
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:535
bool ss7_asp_set_default_peer_hosts(struct osmo_ss7_asp *asp)
Definition: osmo_ss7_asp.c:397
Definition: ss7_asp_peer.h:11
Definition: ss7_asp.h:28
enum osmo_ss7_asp_role role
Definition: ss7_asp.h:72
char * sock_name
pre-formatted human readable local/remote socket name
Definition: ss7_asp.h:44
bool role_set_by_vty
Definition: ss7_asp.h:73
struct osmo_ss7_asp_peer remote
Definition: ss7_asp.h:77
bool max_attempts_present
Definition: ss7_asp.h:87
bool max_instreams_present
Definition: ss7_asp.h:86
struct osmo_tdef * T_defs_lm
Definition: ss7_asp.h:82
struct osmo_ss7_asp::@24::@25 sctp_init
struct osmo_fsm_inst * fi
ASP FSM.
Definition: ss7_asp.h:34
uint16_t max_attempts_value
Definition: ss7_asp.h:91
uint16_t max_instreams_value
Definition: ss7_asp.h:90
struct llist_head list
entry in osmo_ss7_instance::asp_list
Definition: ss7_asp.h:30
enum osmo_ss7_asp_protocol proto
Definition: ss7_asp.h:69
void * lm_priv
Definition: ss7_asp.h:52
struct osmo_ss7_instance * inst
Definition: ss7_asp.h:31
const struct osmo_xua_layer_manager * lm
Definition: ss7_asp.h:51
bool num_ostreams_present
Definition: ss7_asp.h:85
struct osmo_stream_srv * server
Definition: ss7_asp.h:42
uint32_t quirks
Definition: ss7_asp.h:79
bool simple_client_allocated
Were we allocated by "simple client" support?
Definition: ss7_asp.h:58
struct osmo_stream_cli * client
osmo_stream / libosmo-netif handles
Definition: ss7_asp.h:41
bool trans_role_set_by_vty
Definition: ss7_asp.h:74
enum osmo_ss7_asp_admin_state adm_state
Definition: ss7_asp.h:70
struct osmo_xua_server * xua_server
osmo_xua_server over which we were established
Definition: ss7_asp.h:37
struct osmo_ss7_asp_peer local
Definition: ss7_asp.h:76
bool is_server
Definition: ss7_asp.h:71
bool dyn_allocated
Were we dynamically allocated.
Definition: ss7_asp.h:55
bool max_init_timeo_present
Definition: ss7_asp.h:88
char * name
Definition: ss7_asp.h:67
uint8_t qos_class
Definition: ss7_asp.h:78
struct msgb * pending_msg
Pending message for non-blocking IPA read.
Definition: ss7_asp.h:64
uint32_t asp_id
Definition: ss7_asp.h:47
struct osmo_ss7_asp::@24 cfg
uint16_t num_ostreams_value
Definition: ss7_asp.h:89
int trans_proto
The underlaying transport protocol (one of IPPROTO_*)
Definition: ss7_asp.h:96
char * description
Definition: ss7_asp.h:68
bool asp_id_present
Definition: ss7_asp.h:48
struct rate_ctr_group * ctrg
Rate Counter Group.
Definition: ss7_asp.h:61
struct llist_head siblings
Definition: ss7_asp.h:38
uint16_t max_init_timeo_value
Definition: ss7_asp.h:92
Definition: ss7_instance.h:20
Definition: ss7_xua_srv.h:18
Definition: ss7_xua_srv.h:22