libosmo-sigtran 2.1.0.172-a2b0
Osmocom SIGTRAN library
Loading...
Searching...
No Matches
tcap_transaction_tracking.h
Go to the documentation of this file.
1#pragma once
2
3/* TCAP transaction tracking */
4
5#include <stdint.h>
6
7#include <osmocom/core/hashtable.h>
8#include <osmocom/core/msgb.h>
9
11
12struct osmo_ss7_as;
13struct osmo_ss7_asp;
14
16 struct hlist_node list;
18 uint32_t tid;
19};
20
22 struct tcap_trxn_track_tid_entry peer_tid; /* of the peer. If peer initiate transaction, this is otid */
23 struct tcap_trxn_track_tid_entry own_tid; /* assigned by this asp */
24
27
28 time_t tstamp; /* last time this cache was used */
29
31};
32
33/* Entry centric API
34 * Managing entries without management (e.g. update entries when used)
35 */
37 struct osmo_ss7_as *as,
38 struct osmo_ss7_asp *asp,
39 const struct osmo_sccp_addr *own_addr,
40 const uint32_t *own_tid,
41 const struct osmo_sccp_addr *peer_addr,
42 const uint32_t *peer_tid);
43
45 struct osmo_ss7_as *as,
46 const struct osmo_sccp_addr *own_addr,
47 const uint32_t *own_tid,
48 const struct osmo_sccp_addr *peer_addr,
49 const uint32_t *peer_tid);
50
52
55
56/* Transaction centric API
57 * It will update timestamp and used out of a TCAP transaction context
58 */
60 struct osmo_ss7_as *as,
61 struct osmo_ss7_asp *asp,
62 const struct osmo_sccp_addr *own_addr,
63 const uint32_t *own_tid,
64 const struct osmo_sccp_addr *peer_addr,
65 const uint32_t *peer_tid);
66
68 struct osmo_ss7_as *as,
69 const struct osmo_sccp_addr *own_addr,
70 const uint32_t *own_tid,
71 const struct osmo_sccp_addr *peer_addr,
72 const uint32_t *peer_tid);
73
75 struct osmo_ss7_as *as,
76 const struct osmo_sccp_addr *own_addr,
77 const uint32_t *own_tid,
78 const struct osmo_sccp_addr *peer_addr,
79 const uint32_t *peer_tid);
80
81/* Garbage collection */
83
86
Definition sccp_sap.h:183
Definition ss7_as.h:76
Definition ss7_asp.h:42
Definition tcap_transaction_tracking.h:21
time_t tstamp
Definition tcap_transaction_tracking.h:28
struct tcap_trxn_track_tid_entry peer_tid
Definition tcap_transaction_tracking.h:22
struct tcap_trxn_track_tid_entry own_tid
Definition tcap_transaction_tracking.h:23
struct osmo_sccp_addr * own_addr
Definition tcap_transaction_tracking.h:25
struct osmo_ss7_asp * asp
Definition tcap_transaction_tracking.h:30
struct osmo_sccp_addr * peer_addr
Definition tcap_transaction_tracking.h:26
Definition tcap_transaction_tracking.h:15
bool tid_valid
Definition tcap_transaction_tracking.h:17
uint32_t tid
Definition tcap_transaction_tracking.h:18
struct hlist_node list
Definition tcap_transaction_tracking.h:16
struct osmo_ss7_asp * tcap_trxn_track_continue(struct osmo_ss7_as *as, const struct osmo_sccp_addr *own_addr, const uint32_t *own_tid, const struct osmo_sccp_addr *peer_addr, const uint32_t *peer_tid)
Definition tcap_transaction_tracking.c:248
void tcap_trxn_track_garbage_collect_start(struct osmo_ss7_as *as)
Definition tcap_transaction_tracking.c:345
struct tcap_trxn_track_entry * tcap_trxn_track_find_entry(struct osmo_ss7_as *as, const struct osmo_sccp_addr *own_addr, const uint32_t *own_tid, const struct osmo_sccp_addr *peer_addr, const uint32_t *peer_tid)
Definition tcap_transaction_tracking.c:150
struct osmo_ss7_asp * tcap_trxn_track_end(struct osmo_ss7_as *as, const struct osmo_sccp_addr *own_addr, const uint32_t *own_tid, const struct osmo_sccp_addr *peer_addr, const uint32_t *peer_tid)
Definition tcap_transaction_tracking.c:281
struct tcap_trxn_track_entry * tcap_trxn_track_begin(struct osmo_ss7_as *as, struct osmo_ss7_asp *asp, const struct osmo_sccp_addr *own_addr, const uint32_t *own_tid, const struct osmo_sccp_addr *peer_addr, const uint32_t *peer_tid)
Definition tcap_transaction_tracking.c:229
void tcap_trxn_track_garbage_collect_stop(struct osmo_ss7_as *as)
Definition tcap_transaction_tracking.c:351
int tcap_trxn_track_garbage_collect(struct osmo_ss7_as *as)
Definition tcap_transaction_tracking.c:300
struct tcap_trxn_track_entry * tcap_trxn_track_create_entry(struct osmo_ss7_as *as, struct osmo_ss7_asp *asp, const struct osmo_sccp_addr *own_addr, const uint32_t *own_tid, const struct osmo_sccp_addr *peer_addr, const uint32_t *peer_tid)
Definition tcap_transaction_tracking.c:78
void tcap_trxn_track_free_entry(struct tcap_trxn_track_entry *entry)
Definition tcap_transaction_tracking.c:136
int tcap_trxn_track_free_all_entries(struct osmo_ss7_as *as)
Definition tcap_transaction_tracking.c:382
int tcap_trxn_track_free_asp_entries(struct osmo_ss7_as *as, struct osmo_ss7_asp *asp)
Definition tcap_transaction_tracking.c:357