libosmo-sigtran: src/sccp_scmg.c File Reference

libosmo-sigtran 2.2.1.95-893c Osmocom SIGTRAN library

Functions | Variables
sccp_scmg.c File Reference
`#include <string.h>`
`#include <osmocom/core/utils.h>`
`#include <osmocom/core/linuxlist.h>`
`#include <osmocom/core/logging.h>`
`#include <osmocom/core/timer.h>`
`#include <osmocom/core/fsm.h>`
`#include <osmocom/sigtran/sccp_sap.h>`
`#include <osmocom/sigtran/protocol/sua.h>`
`#include <osmocom/sigtran/protocol/sccp_scmg.h>`
`#include <osmocom/sccp/sccp_types.h>`
`#include "xua_internal.h"`
`#include "sccp_instance.h"`
`#include "ss7_internal.h"`
`#include "sccp_internal.h"`
`#include "sccp_user.h"`

## Functions
void | sccp_scmg_rx_ssn_allowed (struct osmo_sccp_instance *inst, uint32_t dpc, uint32_t ssn, uint32_t smi)
void | sccp_scmg_rx_ssn_prohibited (struct osmo_sccp_instance *inst, uint32_t dpc, uint32_t ssn, uint32_t smi)
void | sccp_scmg_rx_mtp_pause (struct osmo_sccp_instance *inst, uint32_t dpc)
| brief MTP -> SNM (MTP-PAUSE.ind) - inability to providing MTP service Q.714 5.2.2 More...
void | sccp_scmg_rx_mtp_resume (struct osmo_sccp_instance *inst, uint32_t dpc)
| brief MTP -> SNM (MTP-RESUME.ind) - ability of providing the MTP service Q.714 5.2.3 More...
void | sccp_scmg_rx_mtp_status (struct osmo_sccp_instance *inst, uint32_t dpc, enum mtp_unavail_cause cause, uint8_t cong_level)
static int | sccp_scmg_tx (struct osmo_sccp_user *scu, const struct osmo_sccp_addr *calling_addr, const struct osmo_sccp_addr *called_addr, const uint32_t *seq_ctrl, uint8_t msg_type, uint8_t ssn, uint16_t pc, uint8_t smi, uint8_t *ssc_cong_lvl)
static int | scmg_rx_ssa (struct osmo_sccp_user *scu, const struct osmo_sccp_addr *calling_addr, const struct osmo_sccp_addr *called_addr, const struct sccp_scmg_msg *ssa)
static int | scmg_rx_ssp (struct osmo_sccp_user *scu, const struct osmo_sccp_addr *calling_addr, const struct osmo_sccp_addr *called_addr, const struct sccp_scmg_msg *ssp)
static int | scmg_rx_sst (struct osmo_sccp_user *scu, const struct osmo_sccp_addr *calling_addr, const struct osmo_sccp_addr *called_addr, const struct sccp_scmg_msg *sst)
static int | scmg_rx (struct osmo_sccp_user *scu, const struct osmo_sccp_addr *calling_addr, const struct osmo_sccp_addr *called_addr, const struct sccp_scmg_msg *scmg)
static int | scmg_prim_cb (struct osmo_prim_hdr *oph, void *_scu)
int | sccp_scmg_init (struct osmo_sccp_instance *inst)

## Variables
const struct value_string | sccp_scmg_msgt_names []

## Function Documentation

## ◆ sccp_scmg_init()

int sccp_scmg_init | ( | struct osmo_sccp_instance * | inst | ) |

References osmo_sccp_user::inst, osmo_sccp_user_bind(), and scmg_prim_cb().

Referenced by osmo_sccp_instance_create().

## ◆ sccp_scmg_rx_mtp_pause()

void sccp_scmg_rx_mtp_pause | ( | struct osmo_sccp_instance * | inst,
|  | uint32_t | dpc
| ) |  |

brief MTP -> SNM (MTP-PAUSE.ind) - inability to providing MTP service Q.714 5.2.2

References osmo_scu_pcstate_param::affected_pc, dpc, OSMO_SCCP_REM_SCCP_S_UNAVAILABLE_UNKNOWN, OSMO_SCCP_SP_S_INACCESSIBLE, and sccp_lbcs_local_bcast_pcstate().

Referenced by mtp_user_prim_cb().

## ◆ sccp_scmg_rx_mtp_resume()

void sccp_scmg_rx_mtp_resume | ( | struct osmo_sccp_instance * | inst,
|  | uint32_t | dpc
| ) |  |

brief MTP -> SNM (MTP-RESUME.ind) - ability of providing the MTP service Q.714 5.2.3

References osmo_scu_pcstate_param::affected_pc, dpc, OSMO_SCCP_REM_SCCP_S_AVAILABLE, OSMO_SCCP_SP_S_ACCESSIBLE, and sccp_lbcs_local_bcast_pcstate().

Referenced by mtp_user_prim_cb().

## ◆ sccp_scmg_rx_mtp_status()

void sccp_scmg_rx_mtp_status | ( | struct osmo_sccp_instance * | inst,
|  | uint32_t | dpc,
|  | enum mtp_unavail_cause | cause,
|  | uint8_t | cong_level
| ) |  |

References osmo_scu_pcstate_param::affected_pc, dpc, MTP_UNAVAIL_C_CONGESTED, MTP_UNAVAIL_C_INACC_REM_USER, MTP_UNAVAIL_C_UNEQUIP_REM_USER, MTP_UNAVAIL_C_UNKNOWN, OSMO_SCCP_REM_SCCP_S_AVAILABLE, OSMO_SCCP_REM_SCCP_S_CONGESTED, OSMO_SCCP_REM_SCCP_S_UNAVAILABLE_UNKNOWN, OSMO_SCCP_SP_S_ACCESSIBLE, OSMO_SCCP_SP_S_CONGESTED, and sccp_lbcs_local_bcast_pcstate().

Referenced by mtp_user_prim_cb().

## ◆ sccp_scmg_rx_ssn_allowed()

void sccp_scmg_rx_ssn_allowed | ( | struct osmo_sccp_instance * | inst,
|  | uint32_t | dpc,
|  | uint32_t | ssn,
|  | uint32_t | smi
| ) |  |

References osmo_scu_state_param::affected_pc, dpc, sccp_lbcs_local_bcast_state(), smi, and ssn.

Referenced by scmg_rx_ssa(), and sua_snm_ssn_available_to_sccp().

## ◆ sccp_scmg_rx_ssn_prohibited()

void sccp_scmg_rx_ssn_prohibited | ( | struct osmo_sccp_instance * | inst,
|  | uint32_t | dpc,
|  | uint32_t | ssn,
|  | uint32_t | smi
| ) |  |

References osmo_scu_state_param::affected_pc, dpc, sccp_lbcs_local_bcast_state(), smi, and ssn.

Referenced by scmg_rx_ssp(), and sua_snm_ssn_available_to_sccp().

## ◆ sccp_scmg_tx()

static int sccp_scmg_tx | ( | struct osmo_sccp_user * | scu,
|  | const struct osmo_sccp_addr * | calling_addr,
|  | const struct osmo_sccp_addr * | called_addr,
|  | const uint32_t * | seq_ctrl,
|  | uint8_t | msg_type,
|  | uint8_t | ssn,
|  | uint16_t | pc,
|  | uint8_t | smi,
|  | uint8_t * | ssc_cong_lvl
| ) |  |
| static

References sccp_scmg_msg::affected_pc, sccp_scmg_msg::affected_ssn, osmo_scu_unitdata_param::called_addr, osmo_scu_unitdata_param::calling_addr, osmo_scu_unitdata_param::in_sequence_control, msg_type, sccp_scmg_msg::msg_type, osmo_scu_prim::oph, osmo_sccp_user_sap_down(), OSMO_SCU_PRIM_N_UNITDATA, OSMO_SCU_UNITDATA_REQ_P_SEQUENCE_CONTROL_NOT_PRESENT, pc, sccp_msgb_alloc(), SCCP_SAP_USER, SCCP_SCMG_MSGT_SSC, smi, sccp_scmg_msg::smi, sccp_scmg_msg::ssc_congestion_lvl, ssn, osmo_scu_prim::u, and osmo_scu_prim::unitdata.

Referenced by scmg_rx_sst().

## ◆ scmg_prim_cb()

static int scmg_prim_cb | ( | struct osmo_prim_hdr * | oph,
|  | void * | _scu
| ) |  |
| static

References sccp_scmg_msg::affected_pc, osmo_scu_unitdata_param::called_addr, osmo_scu_unitdata_param::calling_addr, LOGPSCU, sccp_scmg_msg::msg_type, osmo_scu_prim::oph, OSMO_SCU_PRIM_N_PCSTATE, OSMO_SCU_PRIM_N_UNITDATA, osmo_scu_prim_name(), SCCP_SCMG_MSGT_SSC, scmg_rx(), osmo_scu_prim::u, and osmo_scu_prim::unitdata.

Referenced by sccp_scmg_init().

## ◆ scmg_rx()

static int scmg_rx | ( | struct osmo_sccp_user * | scu,
|  | const struct osmo_sccp_addr * | calling_addr,
|  | const struct osmo_sccp_addr * | called_addr,
|  | const struct sccp_scmg_msg * | scmg
| ) |  |
| static

References LOGPSCU, sccp_scmg_msg::msg_type, sccp_scmg_msgt_name(), SCCP_SCMG_MSGT_SOG, SCCP_SCMG_MSGT_SOR, SCCP_SCMG_MSGT_SSA, SCCP_SCMG_MSGT_SSC, SCCP_SCMG_MSGT_SSP, SCCP_SCMG_MSGT_SST, scmg_rx_ssa(), scmg_rx_ssp(), and scmg_rx_sst().

Referenced by scmg_prim_cb().

## ◆ scmg_rx_ssa()

static int scmg_rx_ssa | ( | struct osmo_sccp_user * | scu,
|  | const struct osmo_sccp_addr * | calling_addr,
|  | const struct osmo_sccp_addr * | called_addr,
|  | const struct sccp_scmg_msg * | ssa
| ) |  |
| static

References sccp_scmg_msg::affected_pc, sccp_scmg_msg::affected_ssn, osmo_sccp_user::inst, sccp_scmg_rx_ssn_allowed(), and sccp_scmg_msg::smi.

Referenced by scmg_rx().

## ◆ scmg_rx_ssp()

static int scmg_rx_ssp | ( | struct osmo_sccp_user * | scu,
|  | const struct osmo_sccp_addr * | calling_addr,
|  | const struct osmo_sccp_addr * | called_addr,
|  | const struct sccp_scmg_msg * | ssp
| ) |  |
| static

References sccp_scmg_msg::affected_pc, sccp_scmg_msg::affected_ssn, osmo_sccp_user::inst, sccp_scmg_rx_ssn_prohibited(), and sccp_scmg_msg::smi.

Referenced by scmg_rx().

## ◆ scmg_rx_sst()

static int scmg_rx_sst | ( | struct osmo_sccp_user * | scu,
|  | const struct osmo_sccp_addr * | calling_addr,
|  | const struct osmo_sccp_addr * | called_addr,
|  | const struct sccp_scmg_msg * | sst
| ) |  |
| static

References sccp_scmg_msg::affected_pc, sccp_scmg_msg::affected_ssn, osmo_sccp_user::inst, NULL, SCCP_SCMG_MSGT_SSA, sccp_scmg_tx(), and sccp_user_find().

Referenced by scmg_rx().

## Variable Documentation

## ◆ sccp_scmg_msgt_names

const struct value_string sccp_scmg_msgt_names[]

Initial value:
= {
{ SCCP_SCMG_MSGT_SSA, "SSA (Subsystem Allowed)" },
{ SCCP_SCMG_MSGT_SSP, "SSP (Subsystem Prohibited)" },
{ SCCP_SCMG_MSGT_SST, "SST (Subsystem Status Test)" },
{ SCCP_SCMG_MSGT_SOR, "SOR (Subsystem Out-of-service Request)" },
{ SCCP_SCMG_MSGT_SOG, "SOG (Subsystem Out-of-service Grant)" },
{ SCCP_SCMG_MSGT_SSC, "SSC (Subsystem Congested)" },
{ 0, NULL }
}
NULL
int and can be left NULL
Definition: osmo_ss7.h:353
SCCP_SCMG_MSGT_SSC
@ SCCP_SCMG_MSGT_SSC
Definition: sccp_scmg.h:11
SCCP_SCMG_MSGT_SOG
@ SCCP_SCMG_MSGT_SOG
Definition: sccp_scmg.h:10
SCCP_SCMG_MSGT_SST
@ SCCP_SCMG_MSGT_SST
Definition: sccp_scmg.h:8
SCCP_SCMG_MSGT_SOR
@ SCCP_SCMG_MSGT_SOR
Definition: sccp_scmg.h:9
SCCP_SCMG_MSGT_SSP
@ SCCP_SCMG_MSGT_SSP
Definition: sccp_scmg.h:7
SCCP_SCMG_MSGT_SSA
@ SCCP_SCMG_MSGT_SSA
Definition: sccp_scmg.h:6

Referenced by sccp_scmg_msgt_name().