libosmo-sigtran 2.0.0.52-6412
Osmocom SIGTRAN library
xua_snm.c File Reference
#include <stdint.h>
#include <osmocom/core/utils.h>
#include <osmocom/core/talloc.h>
#include <osmocom/core/linuxlist.h>
#include <osmocom/sigtran/osmo_ss7.h>
#include <osmocom/sigtran/protocol/m3ua.h>
#include <osmocom/sigtran/protocol/sua.h>
#include <osmocom/sigtran/protocol/mtp.h>
#include "ss7_as.h"
#include "ss7_asp.h"
#include "ss7_internal.h"
#include "xua_internal.h"
#include "sccp_internal.h"

Functions

 osmo_static_assert (M3UA_SNM_DUNA==SUA_SNM_DUNA, _sa_duna)
 
 osmo_static_assert (M3UA_SNM_DAVA==SUA_SNM_DAVA, _sa_dava)
 
 osmo_static_assert (M3UA_SNM_DAUD==SUA_SNM_DAUD, _sa_dava)
 
 osmo_static_assert (M3UA_IEI_AFFECTED_PC==SUA_IEI_AFFECTED_PC, _sa_aff_pc)
 
 osmo_static_assert (M3UA_IEI_ROUTE_CTX==SUA_IEI_ROUTE_CTX, _sa_rctx)
 
 osmo_static_assert (M3UA_IEI_INFO_STRING==SUA_IEI_INFO_STRING, _sa_inf_str)
 
static const char * format_affected_pcs_c (void *ctx, const struct osmo_ss7_instance *s7i, const struct xua_msg_part *ie_aff_pc)
 
static unsigned int get_all_rctx_for_asp (uint32_t *rctx, unsigned int rctx_size, struct osmo_ss7_asp *asp, struct osmo_ss7_as *excl_as)
 
static void xua_tx_snm_available (struct osmo_ss7_asp *asp, const uint32_t *rctx, unsigned int num_rctx, const uint32_t *aff_pc, unsigned int num_aff_pc, const char *info_str, bool available)
 
static void xua_tx_upu (struct osmo_ss7_asp *asp, const uint32_t *rctx, unsigned int num_rctx, uint32_t dpc, uint16_t user, uint16_t cause, const char *info_str)
 
static void xua_tx_scon (struct osmo_ss7_asp *asp, const uint32_t *rctx, unsigned int num_rctx, const uint32_t *aff_pc, unsigned int num_aff_pc, const uint32_t *concerned_dpc, const uint8_t *cong_level, const char *info_string)
 
static void xua_snm_pc_available_to_sccp (struct osmo_sccp_instance *sccp, const uint32_t *aff_pc, unsigned int num_aff_pc, bool available)
 
void xua_snm_pc_available (struct osmo_ss7_as *as, const uint32_t *aff_pc, unsigned int num_aff_pc, const char *info_str, bool available)
 
static void sua_snm_ssn_available_to_sccp (struct osmo_sccp_instance *sccp, uint32_t aff_pc, uint32_t aff_ssn, uint32_t smi, bool available)
 
static void sua_snm_ssn_available (struct osmo_ss7_as *as, uint32_t aff_pc, uint32_t aff_ssn, const uint32_t *smi, const char *info_str, bool available)
 
static void xua_snm_upu (struct osmo_ss7_as *as, uint32_t dpc, uint16_t user, uint16_t cause, const char *info_str)
 
static void xua_snm_scon (struct osmo_ss7_as *as, const uint32_t *aff_pc, unsigned int num_aff_pc, const uint32_t *concerned_dpc, const uint8_t *cong_level, const char *info_string)
 
void xua_snm_rx_daud (struct osmo_ss7_asp *asp, struct xua_msg *xua)
 
void xua_snm_rx_duna (struct osmo_ss7_asp *asp, struct osmo_ss7_as *as, struct xua_msg *xua)
 
void xua_snm_rx_dava (struct osmo_ss7_asp *asp, struct osmo_ss7_as *as, struct xua_msg *xua)
 
void xua_snm_rx_dupu (struct osmo_ss7_asp *asp, struct osmo_ss7_as *as, struct xua_msg *xua)
 
void xua_snm_rx_scon (struct osmo_ss7_asp *asp, struct osmo_ss7_as *as, struct xua_msg *xua)
 

Function Documentation

◆ format_affected_pcs_c()

static const char * format_affected_pcs_c ( void *  ctx,
const struct osmo_ss7_instance s7i,
const struct xua_msg_part ie_aff_pc 
)
static

◆ get_all_rctx_for_asp()

static unsigned int get_all_rctx_for_asp ( uint32_t *  rctx,
unsigned int  rctx_size,
struct osmo_ss7_asp asp,
struct osmo_ss7_as excl_as 
)
static

◆ osmo_static_assert() [1/6]

osmo_static_assert ( M3UA_IEI_AFFECTED_PC  = =SUA_IEI_AFFECTED_PC,
_sa_aff_pc   
)

◆ osmo_static_assert() [2/6]

osmo_static_assert ( M3UA_IEI_INFO_STRING  = =SUA_IEI_INFO_STRING,
_sa_inf_str   
)

◆ osmo_static_assert() [3/6]

osmo_static_assert ( M3UA_IEI_ROUTE_CTX  = =SUA_IEI_ROUTE_CTX,
_sa_rctx   
)

◆ osmo_static_assert() [4/6]

osmo_static_assert ( M3UA_SNM_DAUD  = =SUA_SNM_DAUD,
_sa_dava   
)

◆ osmo_static_assert() [5/6]

osmo_static_assert ( M3UA_SNM_DAVA  = =SUA_SNM_DAVA,
_sa_dava   
)

◆ osmo_static_assert() [6/6]

osmo_static_assert ( M3UA_SNM_DUNA  = =SUA_SNM_DUNA,
_sa_duna   
)

◆ sua_snm_ssn_available()

static void sua_snm_ssn_available ( struct osmo_ss7_as as,
uint32_t  aff_pc,
uint32_t  aff_ssn,
const uint32_t *  smi,
const char *  info_str,
bool  available 
)
static

◆ sua_snm_ssn_available_to_sccp()

static void sua_snm_ssn_available_to_sccp ( struct osmo_sccp_instance sccp,
uint32_t  aff_pc,
uint32_t  aff_ssn,
uint32_t  smi,
bool  available 
)
static

◆ xua_snm_pc_available()

void xua_snm_pc_available ( struct osmo_ss7_as as,
const uint32_t *  aff_pc,
unsigned int  num_aff_pc,
const char *  info_str,
bool  available 
)

◆ xua_snm_pc_available_to_sccp()

static void xua_snm_pc_available_to_sccp ( struct osmo_sccp_instance sccp,
const uint32_t *  aff_pc,
unsigned int  num_aff_pc,
bool  available 
)
static

◆ xua_snm_rx_daud()

◆ xua_snm_rx_dava()

◆ xua_snm_rx_duna()

◆ xua_snm_rx_dupu()

◆ xua_snm_rx_scon()

◆ xua_snm_scon()

static void xua_snm_scon ( struct osmo_ss7_as as,
const uint32_t *  aff_pc,
unsigned int  num_aff_pc,
const uint32_t *  concerned_dpc,
const uint8_t *  cong_level,
const char *  info_string 
)
static

◆ xua_snm_upu()

static void xua_snm_upu ( struct osmo_ss7_as as,
uint32_t  dpc,
uint16_t  user,
uint16_t  cause,
const char *  info_str 
)
static

◆ xua_tx_scon()

static void xua_tx_scon ( struct osmo_ss7_asp asp,
const uint32_t *  rctx,
unsigned int  num_rctx,
const uint32_t *  aff_pc,
unsigned int  num_aff_pc,
const uint32_t *  concerned_dpc,
const uint8_t *  cong_level,
const char *  info_string 
)
static

◆ xua_tx_snm_available()

static void xua_tx_snm_available ( struct osmo_ss7_asp asp,
const uint32_t *  rctx,
unsigned int  num_rctx,
const uint32_t *  aff_pc,
unsigned int  num_aff_pc,
const char *  info_str,
bool  available 
)
static

◆ xua_tx_upu()

static void xua_tx_upu ( struct osmo_ss7_asp asp,
const uint32_t *  rctx,
unsigned int  num_rctx,
uint32_t  dpc,
uint16_t  user,
uint16_t  cause,
const char *  info_str 
)
static