Loading...
Searching...
No Matches
iuup.h File Reference
`#include <stdint.h>`
`#include <osmocom/core/prim.h>`
`#include <osmocom/gsm/protocol/gsm_25_415.h>`

Go to the source code of this file.

## Data Structures

struct | osmo_iuup_tnl_prim
struct | osmo_iuup_rnl_config_timer
struct | osmo_iuup_rfci
struct | osmo_iuup_rnl_config
struct | osmo_iuup_rnl_data
struct | osmo_iuup_rnl_status
struct | osmo_iuup_rnl_prim

## Macros

#define | IUUP_MAX_SUBFLOWS 7
#define | IUUP_MAX_RFCIS 64
#define | IUUP_TIMER_INIT_T_DEFAULT 1000
#define | IUUP_TIMER_TA_T_DEFAULT 500
#define | IUUP_TIMER_RC_T_DEFAULT 500
#define | IUUP_TIMER_INIT_N_DEFAULT 3
#define | IUUP_TIMER_TA_N_DEFAULT 1
#define | IUUP_TIMER_RC_N_DEFAULT 1

## Enumerations

enum | osmo_iuup_tnl_prim_type { OSMO_IUUP_TNL_UNITDATA }
enum | osmo_iuup_rnl_prim_type { OSMO_IUUP_RNL_CONFIG , OSMO_IUUP_RNL_DATA , OSMO_IUUP_RNL_STATUS , OSMO_IUUP_RNL_UNIT_DATA }

## Functions

struct osmo_iuup_instance * | osmo_iuup_instance_alloc (void *ctx, const char *id)
void | osmo_iuup_instance_free (struct osmo_iuup_instance *iui)
void | osmo_iuup_instance_set_user_prim_cb (struct osmo_iuup_instance *iui, osmo_prim_cb func, void *priv)
void | osmo_iuup_instance_set_transport_prim_cb (struct osmo_iuup_instance *iui, osmo_prim_cb func, void *priv)
int | osmo_iuup_tnl_prim_up (struct osmo_iuup_instance *iui, struct osmo_iuup_tnl_prim *itp)
int | osmo_iuup_rnl_prim_down (struct osmo_iuup_instance *inst, struct osmo_iuup_rnl_prim *irp)
int | osmo_iuup_compute_header_crc (const uint8_t *iuup_pdu, unsigned int pdu_len)
int | osmo_iuup_compute_payload_crc (const uint8_t *iuup_pdu, unsigned int pdu_len)
struct osmo_iuup_rnl_prim * | osmo_iuup_rnl_prim_alloc (void *ctx, unsigned int primitive, unsigned int operation, unsigned int size)
struct osmo_iuup_tnl_prim * | osmo_iuup_tnl_prim_alloc (void *ctx, unsigned int primitive, unsigned int operation, unsigned int size)

## Macro Definition Documentation

## IUUP_MAX_RFCIS

#define IUUP_MAX_RFCIS 64

Referenced by iuup_rx_initialization().

## IUUP_MAX_SUBFLOWS

#define IUUP_MAX_SUBFLOWS 7

## IUUP_TIMER_INIT_N_DEFAULT

#define IUUP_TIMER_INIT_N_DEFAULT 3

## IUUP_TIMER_INIT_T_DEFAULT

#define IUUP_TIMER_INIT_T_DEFAULT 1000

## IUUP_TIMER_RC_N_DEFAULT

#define IUUP_TIMER_RC_N_DEFAULT 1

## IUUP_TIMER_RC_T_DEFAULT

#define IUUP_TIMER_RC_T_DEFAULT 500

## IUUP_TIMER_TA_N_DEFAULT

#define IUUP_TIMER_TA_N_DEFAULT 1

## IUUP_TIMER_TA_T_DEFAULT

#define IUUP_TIMER_TA_T_DEFAULT 500

## Enumeration Type Documentation

## osmo_iuup_rnl_prim_type

enum osmo_iuup_rnl_prim_type

Enumerator
OSMO_IUUP_RNL_CONFIG |
OSMO_IUUP_RNL_DATA |
OSMO_IUUP_RNL_STATUS |
OSMO_IUUP_RNL_UNIT_DATA |

## osmo_iuup_tnl_prim_type

enum osmo_iuup_tnl_prim_type

Enumerator
OSMO_IUUP_TNL_UNITDATA |

## Function Documentation

## osmo_iuup_compute_header_crc()

int osmo_iuup_compute_header_crc | ( | const uint8_t * | iuup_pdu,
|  | unsigned int | pdu_len )

References iuup_hdr_crc_code.

Referenced by itp_ctrl_ack_alloc(), iuup_verify_pdu(), rnl_to_tnl_data(), tnp_ctrl_init_alloc(), and tnp_ctrl_nack_alloc().

## osmo_iuup_compute_payload_crc()

int osmo_iuup_compute_payload_crc | ( | const uint8_t * | iuup_pdu,
|  | unsigned int | pdu_len )

References iuup_data_crc_code, and iuup_get_payload_offset().

Referenced by iuup_verify_pdu(), rnl_to_tnl_data(), and tnp_ctrl_init_alloc().

## osmo_iuup_instance_alloc()

struct osmo_iuup_instance * osmo_iuup_instance_alloc | ( | void * | ctx,
|  | const char * | id )

References osmo_iuup_instance::fi, and iuup_fsm.

## osmo_iuup_instance_free()

void osmo_iuup_instance_free | ( | struct osmo_iuup_instance * | iui | ) |

References osmo_iuup_instance::fi.

## osmo_iuup_instance_set_transport_prim_cb()

void osmo_iuup_instance_set_transport_prim_cb | ( | struct osmo_iuup_instance * | iui,
|  | osmo_prim_cb | func,
|  | void * | priv )

References osmo_iuup_instance::transport_prim_cb, and osmo_iuup_instance::transport_prim_priv.

## osmo_iuup_instance_set_user_prim_cb()

void osmo_iuup_instance_set_user_prim_cb | ( | struct osmo_iuup_instance * | iui,
|  | osmo_prim_cb | func,
|  | void * | priv )

References osmo_iuup_instance::user_prim_cb, and osmo_iuup_instance::user_prim_priv.

## osmo_iuup_rnl_prim_alloc()

struct osmo_iuup_rnl_prim * osmo_iuup_rnl_prim_alloc | ( | void * | ctx,
|  | unsigned int | primitive,
|  | unsigned int | operation,
|  | unsigned int | size )

References msg, osmo_iuup_rnl_prim::oph, osmo_iuup_msgb_alloc_c(), and SAP_IUUP_RNL.

Referenced by irp_init_ind_alloc().

## osmo_iuup_rnl_prim_down()

int osmo_iuup_rnl_prim_down | ( | struct osmo_iuup_instance * | inst,
|  | struct osmo_iuup_rnl_prim * | irp )

References osmo_iuup_instance::fi, IUUP_FSM_EVT_IUUP_CONFIG_REQ, IUUP_FSM_EVT_IUUP_DATA_REQ, IUUP_FSM_EVT_IUUP_STATUS_REQ, osmo_prim_hdr::msg, osmo_iuup_rnl_prim::oph, OSMO_IUUP_RNL_CONFIG, OSMO_IUUP_RNL_DATA, OSMO_IUUP_RNL_STATUS, osmo_prim_hdr::sap, and SAP_IUUP_RNL.

## osmo_iuup_tnl_prim_alloc()

struct osmo_iuup_tnl_prim * osmo_iuup_tnl_prim_alloc | ( | void * | ctx,
|  | unsigned int | primitive,
|  | unsigned int | operation,
|  | unsigned int | size )

References msg, osmo_iuup_tnl_prim::oph, osmo_iuup_msgb_alloc_c(), and SAP_IUUP_TNL.

Referenced by itp_ctrl_ack_alloc(), tnp_ctrl_init_alloc(), and tnp_ctrl_nack_alloc().

## osmo_iuup_tnl_prim_up()

int osmo_iuup_tnl_prim_up | ( | struct osmo_iuup_instance * | iui,
|  | struct osmo_iuup_tnl_prim * | itp )

References osmo_iuup_instance::fi, IUUP_AN_ACK, IUUP_AN_NACK, IUUP_AN_PROCEDURE, IUUP_FSM_EVT_INIT, IUUP_FSM_EVT_INIT_NACK, IUUP_FSM_EVT_IUUP_DATA_IND, IUUP_FSM_EVT_LAST_INIT_ACK, iuup_get_pdu_type(), IUUP_PDU_T_CONTROL, IUUP_PDU_T_DATA_CRC, IUUP_PDU_T_DATA_NOCRC, IUUP_PROC_ERR_EVENT, IUUP_PROC_INIT, IUUP_PROC_RATE_CTRL, IUUP_PROC_TIME_ALIGN, iuup_verify_pdu(), msgb::l3h, osmo_prim_hdr::msg, osmo_iuup_tnl_prim::oph, OSMO_IUUP_TNL_UNITDATA, osmo_prim_hdr::sap, and SAP_IUUP_TNL.