libosmo-sigtran  0.9.0.10.97db
Osmocom SIGTRAN library
xua_msg.c File Reference
#include <osmocom/sigtran/xua_msg.h>
#include <osmocom/sigtran/protocol/sua.h>
#include <osmocom/sigtran/sccp_sap.h>
#include <osmocom/core/utils.h>
#include <osmocom/core/msgb.h>
#include <osmocom/core/logging.h>
#include <osmocom/core/talloc.h>
#include <arpa/inet.h>
#include <string.h>
#include <errno.h>

Functions

struct xua_msgxua_msg_alloc (void)
 
void xua_msg_free (struct xua_msg *msg)
 
int xua_msg_add_data (struct xua_msg *msg, uint16_t tag, uint16_t len, uint8_t *dat)
 
struct xua_msg_partxua_msg_find_tag (const struct xua_msg *xua, uint16_t tag)
 
int xua_msg_free_tag (struct xua_msg *xua, uint16_t tag)
 
int xua_msg_copy_part (struct xua_msg *xua_out, uint16_t tag_out, const struct xua_msg *xua_in, uint16_t tag_in)
 
static int xua_from_msg_common (struct xua_msg *msg, const uint8_t *data, uint16_t pos, uint16_t len)
 
struct xua_msgxua_from_msg (const int version, uint16_t len, uint8_t *data)
 
struct xua_msgxua_from_nested (struct xua_msg_part *outer)
 
struct msgb * xua_to_msg (const int version, struct xua_msg *xua)
 
int msgb_t16l16vp_put (struct msgb *msg, uint16_t tag, uint16_t len, const uint8_t *data)
 
int msgb_t16l16vp_put_u32 (struct msgb *msg, uint16_t tag, uint32_t val)
 
int xua_msg_add_u32 (struct xua_msg *xua, uint16_t iei, uint32_t val)
 
uint32_t xua_msg_part_get_u32 (struct xua_msg_part *part)
 
uint32_t xua_msg_get_u32 (struct xua_msg *xua, uint16_t iei)
 
void xua_part_add_gt (struct msgb *msg, const struct osmo_sccp_gt *gt)
 
int xua_msg_add_sccp_addr (struct xua_msg *xua, uint16_t iei, const struct osmo_sccp_addr *addr)
 
int xua_msg_event_map (const struct xua_msg *xua, const struct xua_msg_event_map *maps, unsigned int num_maps)
 Map from a xua_msg (class+type) to an event. More...
 
const char * xua_class_msg_name (const struct xua_msg_class *xmc, uint16_t msg_type)
 
const char * xua_class_iei_name (const struct xua_msg_class *xmc, uint16_t iei)
 
char * xua_hdr_dump (struct xua_msg *xua, const struct xua_dialect *dialect)
 
int xua_dialect_check_all_mand_ies (const struct xua_dialect *dialect, struct xua_msg *xua)
 
static void append_to_buf (char *buf, bool *comma, const char *fmt,...)
 
char * xua_msg_dump (struct xua_msg *xua, const struct xua_dialect *dialect)
 

Variables

static void * tall_xua
 

Function Documentation

static void append_to_buf ( char *  buf,
bool *  comma,
const char *  fmt,
  ... 
)
static

Referenced by xua_msg_dump().

int msgb_t16l16vp_put ( struct msgb *  msg,
uint16_t  tag,
uint16_t  len,
const uint8_t *  data 
)

Referenced by msgb_t16l16vp_put_u32().

int msgb_t16l16vp_put_u32 ( struct msgb *  msg,
uint16_t  tag,
uint32_t  val 
)
const char* xua_class_iei_name ( const struct xua_msg_class xmc,
uint16_t  iei 
)
const char* xua_class_msg_name ( const struct xua_msg_class xmc,
uint16_t  msg_type 
)
struct xua_msg* xua_from_msg ( const int  version,
uint16_t  len,
uint8_t *  data 
)
static int xua_from_msg_common ( struct xua_msg msg,
const uint8_t *  data,
uint16_t  pos,
uint16_t  len 
)
static
int xua_msg_copy_part ( struct xua_msg xua_out,
uint16_t  tag_out,
const struct xua_msg xua_in,
uint16_t  tag_in 
)
int xua_msg_event_map ( const struct xua_msg xua,
const struct xua_msg_event_map maps,
unsigned int  num_maps 
)

Map from a xua_msg (class+type) to an event.

Parameters
[in]xuaxUA message which is to be mapped
[in]mapsTable containing msg type+class -> event maps [aram[in] num_maps number of entries in maps
Returns
event >= 0; negative on error (no map found)

References xua_msg_event_map::event, xua_msg::hdr, xua_common_hdr::msg_class, xua_msg_event_map::msg_class, xua_common_hdr::msg_type, and xua_msg_event_map::msg_type.

Referenced by m3ua_rx_asp(), sccp_scoc_rx_from_scrc(), and sua_rx_asp().

int xua_msg_free_tag ( struct xua_msg xua,
uint16_t  tag 
)
void xua_part_add_gt ( struct msgb *  msg,
const struct osmo_sccp_gt gt 
)

Variable Documentation

void* tall_xua
static

Referenced by xua_msg_alloc().