Loading...
Searching...
No Matches
ss7_instance.h
Go to the documentation of this file.
#pragma once
#include <stdint.h>
#include <stdbool.h>
#include <osmocom/core/linuxlist.h>
/***********************************************************************
* SS7 Instances
***********************************************************************/
struct osmo_ss7_user;
struct osmo_ss7_route_table;
struct osmo_sccp_instance;
struct osmo_ss7_pc_fmt {
char delimiter;
uint8_t component_len[3];
};
struct osmo_ss7_instance {
struct llist_head list;
struct llist_head linksets;
struct llist_head as_list;
struct llist_head asp_list;
struct llist_head rtable_list;
struct llist_head xua_servers;
/* array for faster lookup of user (indexed by service
* indicator) */
const struct osmo_ss7_user *user[16];
struct osmo_ss7_route_table *rtable_system;
struct osmo_sccp_instance *sccp;
struct {
uint32_t id;
char *name;
char *description;
uint32_t primary_pc;
/* capability PCs */
uint8_t network_indicator;
struct osmo_ss7_pc_fmt pc_fmt;
bool permit_dyn_rkm_alloc;
struct llist_head sccp_address_book;
uint32_t secondary_pc;
} cfg;
};
struct osmo_ss7_instance *
ss7_instance_alloc(void *ctx, uint32_t id);
uint32_t ss7_find_free_l_rk_id(struct osmo_ss7_instance *inst);
#define _LOGSS7(inst, subsys, level, fmt, args ...) \
LOGP(subsys, level, "%u: " fmt, inst ? (inst)->cfg.id : 0, ## args)
#define LOGSS7(inst, level, fmt, args ...) \
_LOGSS7(inst, DLSS7, level, fmt, ## args)
ss7_find_free_l_rk_id
uint32_t ss7_find_free_l_rk_id(struct osmo_ss7_instance *inst)
Definition osmo_ss7_instance.c:194
ss7_instance_alloc
struct osmo_ss7_instance * ss7_instance_alloc(void *ctx, uint32_t id)
Definition osmo_ss7_instance.c:52
osmo_sccp_instance
Definition sccp_internal.h:39
osmo_ss7_instance
Definition ss7_instance.h:20
osmo_ss7_instance::sccp
struct osmo_sccp_instance * sccp
Definition ss7_instance.h:39
osmo_ss7_instance::secondary_pc
uint32_t secondary_pc
Definition ss7_instance.h:51
osmo_ss7_instance::rtable_system
struct osmo_ss7_route_table * rtable_system
Definition ss7_instance.h:37
osmo_ss7_instance::linksets
struct llist_head linksets
list of osmo_ss7_linkset
Definition ss7_instance.h:24
osmo_ss7_instance::name
char * name
Definition ss7_instance.h:43
osmo_ss7_instance::primary_pc
uint32_t primary_pc
Definition ss7_instance.h:45
osmo_ss7_instance::cfg
struct osmo_ss7_instance::@26 cfg
osmo_ss7_instance::as_list
struct llist_head as_list
list of osmo_ss7_as
Definition ss7_instance.h:26
osmo_ss7_instance::rtable_list
struct llist_head rtable_list
list of osmo_ss7_route_table
Definition ss7_instance.h:30
osmo_ss7_instance::network_indicator
uint8_t network_indicator
Definition ss7_instance.h:47
osmo_ss7_instance::description
char * description
Definition ss7_instance.h:44
osmo_ss7_instance::id
uint32_t id
Definition ss7_instance.h:42
osmo_ss7_instance::asp_list
struct llist_head asp_list
list of osmo_ss7_asp
Definition ss7_instance.h:28
osmo_ss7_instance::user
const struct osmo_ss7_user * user[16]
Definition ss7_instance.h:35
osmo_ss7_instance::permit_dyn_rkm_alloc
bool permit_dyn_rkm_alloc
Definition ss7_instance.h:49
osmo_ss7_instance::list
struct llist_head list
member of global list of instances
Definition ss7_instance.h:22
osmo_ss7_instance::xua_servers
struct llist_head xua_servers
list of osmo_xua_servers
Definition ss7_instance.h:32
osmo_ss7_pc_fmt
Definition ss7_instance.h:15
osmo_ss7_pc_fmt::delimiter
char delimiter
Definition ss7_instance.h:16
osmo_ss7_pc_fmt::component_len
uint8_t component_len[3]
Definition ss7_instance.h:17
osmo_ss7_route_table
Definition ss7_route_table.h:12
osmo_ss7_user
Definition ss7_user.h:13