libosmo-sigtran 2.1.0.38-7781.202503072026
Osmocom SIGTRAN library
ss7_combined_linkset.h
Go to the documentation of this file.
1#pragma once
2
3#include <stdint.h>
4#include <osmocom/core/linuxlist.h>
5
6/***********************************************************************
7 * SS7 Combined Linkset
8 * Set of routes with same destination and priority.
9 ***********************************************************************/
10
12struct osmo_ss7_link;
14
15#define NUM_EXT_SLS 128
16typedef uint8_t ext_sls_t; /* range: 0-127, 7 bit */
17
19 /* ITU Q.704 4.2.1: "normal link set (combined link set)" */
21 /* ITU Q.704 4.2.1: "alternative link set (combined link set)" */
23};
24
27 struct llist_head list;
28
32
34 struct llist_head routes;
35 unsigned int num_routes;
37
38 struct {
39 uint32_t pc;
40 uint32_t mask;
42 uint32_t priority;
43 } cfg;
44};
45
47ss7_combined_linkset_alloc(struct osmo_ss7_route_table *rtbl, uint32_t pc, uint32_t mask, uint32_t prio);
48void
50struct osmo_ss7_linkset *
51ss7_combined_linkset_find_or_create(struct osmo_ss7_route_table *rtbl, uint32_t pc, uint32_t mask, uint32_t prio);
52
53void
55void
57struct osmo_ss7_route *
struct osmo_ss7_route * ss7_combined_linkset_lookup_route(struct osmo_ss7_combined_linkset *clset, const struct osmo_ss7_route_label *rtlabel)
Definition: osmo_ss7_combined_linkset.c:219
void ss7_combined_linkset_free(struct osmo_ss7_combined_linkset *clset)
Definition: osmo_ss7_combined_linkset.c:124
struct osmo_ss7_linkset * ss7_combined_linkset_find_or_create(struct osmo_ss7_route_table *rtbl, uint32_t pc, uint32_t mask, uint32_t prio)
struct osmo_ss7_combined_linkset * ss7_combined_linkset_alloc(struct osmo_ss7_route_table *rtbl, uint32_t pc, uint32_t mask, uint32_t prio)
Definition: osmo_ss7_combined_linkset.c:103
void ss7_combined_linkset_add_route(struct osmo_ss7_combined_linkset *clset, struct osmo_ss7_route *rt)
Definition: osmo_ss7_combined_linkset.c:132
void ss7_combined_linkset_del_route(struct osmo_ss7_route *rt)
Definition: osmo_ss7_combined_linkset.c:140
uint8_t ext_sls_t
Definition: ss7_combined_linkset.h:16
#define NUM_EXT_SLS
Definition: ss7_combined_linkset.h:15
Definition: ss7_combined_linkset.h:25
struct osmo_ss7_route_table * rtable
osmo_ss7_route_table to which we belong
Definition: ss7_combined_linkset.h:30
struct osmo_ss7_combined_linkset::@27 cfg
struct llist_head list
member in osmo_ss7_route_table::combined_linksets
Definition: ss7_combined_linkset.h:27
uint32_t mask
Definition: ss7_combined_linkset.h:40
uint32_t priority
lower priority is higher
Definition: ss7_combined_linkset.h:42
struct llist_head routes
list of osmo_ss7_route
Definition: ss7_combined_linkset.h:34
void * last_route_roundrobin
Definition: ss7_combined_linkset.h:36
struct osmo_ss7_esls_entry esls_table[NUM_EXT_SLS]
Definition: ss7_combined_linkset.h:31
uint32_t pc
Definition: ss7_combined_linkset.h:39
unsigned int num_routes
Definition: ss7_combined_linkset.h:35
Definition: ss7_combined_linkset.h:18
struct osmo_ss7_route * alt_rt
Definition: ss7_combined_linkset.h:22
struct osmo_ss7_route * normal_rt
Definition: ss7_combined_linkset.h:20
Definition: ss7_instance.h:21
Definition: ss7_linkset.h:13
Definition: ss7_route_table.h:13
Definition: ss7_route_table.h:20
Definition: ss7_route.h:17
struct osmo_ss7_combined_linkset * clset
Definition: ss7_route.h:23