libosmo-sigtran 2.1.0.187-fd10
Osmocom SIGTRAN library
mtp_sap.c File Reference
#include <errno.h>
#include <osmocom/core/linuxlist.h>
#include <osmocom/core/logging.h>
#include <osmocom/core/talloc.h>
#include <osmocom/core/prim.h>
#include <osmocom/sigtran/osmo_ss7.h>
#include <osmocom/sigtran/mtp_sap.h>
#include "ss7_user.h"
#include "ss7_internal.h"
#include "xua_internal.h"

Functions

static int mtp_prim_hdr_name_buf (char *buf, size_t buflen, const struct osmo_prim_hdr *oph)
 
char * osmo_mtp_prim_name (const struct osmo_prim_hdr *oph)
 
static struct msgb * mtp_prim_msgb_alloc (void)
 
static struct osmo_mtp_primmtp_prim_resume_ind_alloc (uint32_t pc)
 
static struct osmo_mtp_primmtp_prim_pause_ind_alloc (uint32_t pc)
 
struct osmo_mtp_primmtp_prim_status_ind_alloc (uint32_t dpc, enum mtp_unavail_cause cause, bool cong_level_present, uint8_t cong_level)
 
struct osmo_mtp_primmtp_prim_xfer_ind_alloc (const struct osmo_mtp_transfer_param *param, const uint8_t *user_data, size_t user_data_len)
 
struct osmo_mtp_primosmo_mtp_prim_xfer_req_prepend (const struct osmo_mtp_transfer_param *param, struct msgb *msg)
 Wrap MTP payload into an MTP-TRANSFER.req primitive. More...
 
void mtp_resume_ind_up_to_all_users (struct osmo_ss7_instance *s7i, uint32_t pc)
 
void mtp_pause_ind_up_to_all_users (struct osmo_ss7_instance *s7i, uint32_t pc)
 
void mtp_status_ind_up_to_all_users (struct osmo_ss7_instance *s7i, uint32_t dpc, enum mtp_unavail_cause cause, bool cong_level_present, uint8_t cong_level)
 
int ss7_user_mtp_sap_prim_up (const struct osmo_ss7_user *osu, struct osmo_mtp_prim *omp)
 Send a MTP SAP Primitive up to the MTP User. More...
 
int osmo_ss7_user_mtp_sap_prim_down (struct osmo_ss7_user *osu, struct osmo_mtp_prim *omp)
 

Variables

const struct value_string osmo_mtp_prim_type_names []
 
static char prim_name_buf [128]
 

Function Documentation

◆ mtp_pause_ind_up_to_all_users()

void mtp_pause_ind_up_to_all_users ( struct osmo_ss7_instance s7i,
uint32_t  pc 
)

◆ mtp_prim_hdr_name_buf()

static int mtp_prim_hdr_name_buf ( char *  buf,
size_t  buflen,
const struct osmo_prim_hdr *  oph 
)
static

References osmo_mtp_prim_type_name().

Referenced by osmo_mtp_prim_name().

◆ mtp_prim_msgb_alloc()

static struct msgb * mtp_prim_msgb_alloc ( void  )
static

◆ mtp_prim_pause_ind_alloc()

◆ mtp_prim_resume_ind_alloc()

◆ mtp_prim_status_ind_alloc()

◆ mtp_prim_xfer_ind_alloc()

struct osmo_mtp_prim * mtp_prim_xfer_ind_alloc ( const struct osmo_mtp_transfer_param param,
const uint8_t *  user_data,
size_t  user_data_len 
)

◆ mtp_resume_ind_up_to_all_users()

void mtp_resume_ind_up_to_all_users ( struct osmo_ss7_instance s7i,
uint32_t  pc 
)

◆ mtp_status_ind_up_to_all_users()

void mtp_status_ind_up_to_all_users ( struct osmo_ss7_instance s7i,
uint32_t  dpc,
enum mtp_unavail_cause  cause,
bool  cong_level_present,
uint8_t  cong_level 
)

◆ osmo_mtp_prim_name()

char * osmo_mtp_prim_name ( const struct osmo_prim_hdr *  oph)

◆ osmo_mtp_prim_xfer_req_prepend()

struct osmo_mtp_prim * osmo_mtp_prim_xfer_req_prepend ( const struct osmo_mtp_transfer_param param,
struct msgb *  msg 
)

Wrap MTP payload into an MTP-TRANSFER.req primitive.

Parameters
[in]paramMTP-TRANSFER.req params to copy to the primitive (Optional, can be NULL)
[in]msgmsgb containing MTP payload and where primitive will be prepended
Returns
return MTP-TRANSFER.req prepended to msgb

References MTP_SAP_USER, osmo_mtp_prim::oph, OSMO_MTP_PRIM_TRANSFER, osmo_mtp_prim::transfer, and osmo_mtp_prim::u.

Referenced by sua2sccp_tx_m3ua().

◆ osmo_ss7_user_mtp_sap_prim_down()

◆ ss7_user_mtp_sap_prim_up()

int ss7_user_mtp_sap_prim_up ( const struct osmo_ss7_user osu,
struct osmo_mtp_prim omp 
)

Send a MTP SAP Primitive up to the MTP User.

Parameters
[in]osuMTP User to whom to send the primitive
[in]primPrimitive to send to the user
Returns
return value of the MTP User's prim_cb() function

Ownership of prim->oph->msg is passed to the user of the registered callback

References LOGPSS7U, osmo_mtp_prim::oph, osmo_mtp_prim_name(), osmo_ss7_user::prim_cb, and osmo_ss7_user::priv.

Referenced by deliver_to_mtp_user(), mtp_pause_ind_up_to_all_users(), mtp_resume_ind_up_to_all_users(), mtp_status_ind_up_to_all_users(), and xua_snm_upu().

Variable Documentation

◆ osmo_mtp_prim_type_names

const struct value_string osmo_mtp_prim_type_names[]
Initial value:
= {
{ OSMO_MTP_PRIM_TRANSFER, "MTP-TRANSFER" },
{ OSMO_MTP_PRIM_PAUSE, "MTP-PAUSE" },
{ OSMO_MTP_PRIM_RESUME, "MTP-RESUME" },
{ OSMO_MTP_PRIM_STATUS, "MTP-STATUS" },
{ 0, NULL }
}
@ OSMO_MTP_PRIM_RESUME
Definition: mtp_sap.h:30
@ OSMO_MTP_PRIM_TRANSFER
Definition: mtp_sap.h:28
@ OSMO_MTP_PRIM_PAUSE
Definition: mtp_sap.h:29
@ OSMO_MTP_PRIM_STATUS
Definition: mtp_sap.h:31
int and can be left NULL
Definition: osmo_ss7.h:363

Referenced by osmo_mtp_prim_type_name().

◆ prim_name_buf

char prim_name_buf[128]
static

Referenced by osmo_mtp_prim_name().