libosmo-sigtran: src/tcap_trans_tracking.c File Reference

libosmo-sigtran 2.2.1.99-1c6a Osmocom SIGTRAN library

Functions
tcap_trans_tracking.c File Reference
`#include <stdint.h>`
`#include <osmocom/core/msgb.h>`
`#include <osmocom/sigtran/osmo_ss7.h>`
`#include <osmocom/sigtran/sccp_sap.h>`
`#include "ss7_asp.h"`
`#include "ss7_as.h"`
`#include "tcap_trans_tracking.h"`

## Functions
static void | entry_update_tstamp (struct tcap_trans_track_entry *entry)
static uint64_t | gen_hash (uint32_t tid, uint8_t ssn, uint32_t pc)
static uint64_t | gen_hash_addr (uint32_t tid, const struct osmo_sccp_addr *addr)
static void | trans_sccp_addr_cpy (struct osmo_sccp_addr *dst, const struct osmo_sccp_addr *src)
struct tcap_trans_track_entry * | tcap_trans_track_entry_create (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)
void | tcap_trans_track_entry_free (struct tcap_trans_track_entry *entry)
struct tcap_trans_track_entry * | tcap_trans_track_entry_find (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)
struct tcap_trans_track_entry * | tcap_trans_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)
struct osmo_ss7_asp * | tcap_trans_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)
struct osmo_ss7_asp * | tcap_trans_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)
int | tcap_trans_track_garbage_collect (struct osmo_ss7_as *as)
static void | tcap_trans_track_garbage_collect_cb (void *data)
void | tcap_trans_track_garbage_collect_start (struct osmo_ss7_as *as)
void | tcap_trans_track_garbage_collect_stop (struct osmo_ss7_as *as)
int | tcap_trans_track_entries_free_by_asp (struct osmo_ss7_as *as, struct osmo_ss7_asp *asp)
int | tcap_trans_track_entries_free_all (struct osmo_ss7_as *as)

## Function Documentation

## ◆ entry_update_tstamp()

static void entry_update_tstamp | ( | struct tcap_trans_track_entry * | entry | ) |
| inlinestatic

References tcap_trans_track_entry::tstamp.

Referenced by tcap_trans_track_begin(), tcap_trans_track_continue(), and tcap_trans_track_entry_create().

## ◆ gen_hash()

static uint64_t gen_hash | ( | uint32_t | tid,
|  | uint8_t | ssn,
|  | uint32_t | pc
| ) |  |
| inlinestatic

References pc, and ssn.

Referenced by gen_hash_addr().

## ◆ gen_hash_addr()

static uint64_t gen_hash_addr | ( | uint32_t | tid,
|  | const struct osmo_sccp_addr * | addr
| ) |  |
| inlinestatic

References gen_hash(), OSMO_SCCP_ADDR_T_PC, OSMO_SCCP_ADDR_T_SSN, osmo_sccp_addr::pc, pc, osmo_sccp_addr::presence, osmo_sccp_addr::ssn, and ssn.

Referenced by tcap_trans_track_continue(), tcap_trans_track_entry_create(), and tcap_trans_track_entry_find().

## ◆ tcap_trans_track_begin()

struct tcap_trans_track_entry * tcap_trans_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
| ) |  |

References tcap_trans_track_entry::asp, entry_update_tstamp(), tcap_trans_track_entry::own_addr, tcap_trans_track_entry::own_tid, tcap_trans_track_entry::peer_addr, tcap_trans_track_entry::peer_tid, tcap_trans_track_entry_create(), and tcap_trans_track_entry_find().

Referenced by asp_loadshare_tcap_sccp(), and tcap_as_rx_sccp_asp().

## ◆ tcap_trans_track_continue()

struct osmo_ss7_asp * tcap_trans_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
| ) |  |

References tcap_trans_track_entry::asp, entry_update_tstamp(), gen_hash_addr(), tcap_trans_track_tid_entry::list, NULL, tcap_trans_track_entry::own_addr, tcap_trans_track_entry::own_tid, tcap_trans_track_entry::peer_addr, tcap_trans_track_entry::peer_tid, tcap_trans_track_entry_find(), tcap_trans_track_tid_entry::tid, and tcap_trans_track_tid_entry::tid_valid.

Referenced by asp_loadshare_tcap_sccp(), and tcap_as_rx_sccp_asp().

## ◆ tcap_trans_track_end()

struct osmo_ss7_asp * tcap_trans_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
| ) |  |

References tcap_trans_track_entry::asp, NULL, tcap_trans_track_entry::own_addr, tcap_trans_track_entry::own_tid, tcap_trans_track_entry::peer_addr, tcap_trans_track_entry::peer_tid, tcap_trans_track_entry_find(), and tcap_trans_track_entry_free().

Referenced by asp_loadshare_tcap_sccp(), and tcap_as_rx_sccp_asp().

## ◆ tcap_trans_track_entries_free_all()

int tcap_trans_track_entries_free_all | ( | struct osmo_ss7_as * | as | ) |

References tcap_trans_track_entry::asp, LOGPASP, tcap_trans_track_entry::own_tid, tcap_trans_track_entry::peer_tid, tcap_trans_track_entry_free(), and tcap_trans_track_tid_entry::tid.

Referenced by tcap_disable().

## ◆ tcap_trans_track_entries_free_by_asp()

int tcap_trans_track_entries_free_by_asp | ( | struct osmo_ss7_as * | as,
|  | struct osmo_ss7_asp * | asp
| ) |  |

References tcap_trans_track_entry::asp, LOGPASP, tcap_trans_track_entry::own_tid, tcap_trans_track_entry::peer_tid, tcap_trans_track_entry_free(), and tcap_trans_track_tid_entry::tid.

Referenced by _tcap_range_asp_down().

## ◆ tcap_trans_track_entry_create()

struct tcap_trans_track_entry * tcap_trans_track_entry_create | ( | 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
| ) |  |

References tcap_trans_track_entry::asp, entry_update_tstamp(), err, gen_hash_addr(), osmo_ss7_as::inst, tcap_trans_track_tid_entry::list, LOGPASP, MAX_PC_STR_LEN, NULL, osmo_ss7_pointcode_print_buf(), tcap_trans_track_entry::own_addr, tcap_trans_track_entry::own_tid, osmo_sccp_addr::pc, tcap_trans_track_entry::peer_addr, tcap_trans_track_entry::peer_tid, osmo_sccp_addr::ssn, tcap_trans_track_tid_entry::tid, tcap_trans_track_tid_entry::tid_valid, and trans_sccp_addr_cpy().

Referenced by asp_loadshare_tcap_sccp(), and tcap_trans_track_begin().

## ◆ tcap_trans_track_entry_find()

struct tcap_trans_track_entry * tcap_trans_track_entry_find | ( | 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
| ) |  |

References gen_hash_addr(), tcap_trans_track_tid_entry::list, NULL, osmo_sccp_addr_cmp(), OSMO_SCCP_ADDR_T_PC, OSMO_SCCP_ADDR_T_SSN, tcap_trans_track_entry::own_addr, tcap_trans_track_entry::own_tid, tcap_trans_track_entry::peer_addr, tcap_trans_track_entry::peer_tid, tcap_trans_track_tid_entry::tid, and tcap_trans_track_tid_entry::tid_valid.

Referenced by tcap_trans_track_begin(), tcap_trans_track_continue(), and tcap_trans_track_end().

## ◆ tcap_trans_track_entry_free()

void tcap_trans_track_entry_free | ( | struct tcap_trans_track_entry * | entry | ) |

References tcap_trans_track_tid_entry::list, tcap_trans_track_entry::own_tid, tcap_trans_track_entry::peer_tid, and tcap_trans_track_tid_entry::tid_valid.

Referenced by tcap_trans_track_end(), tcap_trans_track_entries_free_all(), tcap_trans_track_entries_free_by_asp(), and tcap_trans_track_garbage_collect().

## ◆ tcap_trans_track_garbage_collect()

int tcap_trans_track_garbage_collect | ( | struct osmo_ss7_as * | as | ) |

References tcap_trans_track_entry::asp, osmo_ss7_as::cfg, osmo_ss7_as::loadshare, LOGPASP, tcap_trans_track_entry::own_tid, tcap_trans_track_entry::peer_tid, tcap_trans_track_entry_free(), tcap_trans_track_tid_entry::tid, and tcap_trans_track_entry::tstamp.

Referenced by tcap_trans_track_garbage_collect_cb().

## ◆ tcap_trans_track_garbage_collect_cb()

static void tcap_trans_track_garbage_collect_cb | ( | void * | data | ) |
| static

References osmo_ss7_as::cfg, data, osmo_ss7_as::loadshare, LOGPAS, and tcap_trans_track_garbage_collect().

Referenced by tcap_trans_track_garbage_collect_start().

## ◆ tcap_trans_track_garbage_collect_start()

void tcap_trans_track_garbage_collect_start | ( | struct osmo_ss7_as * | as | ) |

References tcap_trans_track_garbage_collect_cb().

Referenced by tcap_enable().

## ◆ tcap_trans_track_garbage_collect_stop()

void tcap_trans_track_garbage_collect_stop | ( | struct osmo_ss7_as * | as | ) |

Referenced by tcap_disable().

## ◆ trans_sccp_addr_cpy()

static void trans_sccp_addr_cpy | ( | struct osmo_sccp_addr * | dst,
|  | const struct osmo_sccp_addr * | src
| ) |  |
| static

References OSMO_SCCP_ADDR_T_PC, OSMO_SCCP_ADDR_T_SSN, osmo_sccp_addr::pc, osmo_sccp_addr::presence, and osmo_sccp_addr::ssn.

Referenced by tcap_trans_track_entry_create().