libosmogsm 1.13.1.1-afb4 Osmocom GSM library

Data Structures | Macros | Enumerations | Functions
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

## ◆ 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, osmo_crc8gen_compute_bits(), and osmo_pbit2ubit().

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, iuup_get_payload_offset(), osmo_crc16gen_compute_bits(), osmo_pbit2ubit(), and pdu_type.

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, iuup_fsm, LOGL_DEBUG, and osmo_fsm_inst_alloc().

## ◆ osmo_iuup_instance_free()

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

References osmo_iuup_instance::fi, and osmo_fsm_inst_free().

## ◆ 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(), osmo_prim_init(), 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, msgb_free(), osmo_iuup_rnl_prim::oph, OSMO_ASSERT, osmo_fsm_inst_dispatch, OSMO_IUUP_RNL_CONFIG, OSMO_IUUP_RNL_DATA, OSMO_IUUP_RNL_STATUS, OSMO_PRIM, OSMO_PRIM_HDR, PRIM_OP_REQUEST, 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(), osmo_prim_init(), 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, LOGL_ERROR, LOGL_NOTICE, LOGPFSML, osmo_prim_hdr::msg, msgb_l2, msgb_l2len(), osmo_iuup_tnl_prim::oph, OSMO_ASSERT, osmo_fsm_inst_dispatch, osmo_hexdump(), OSMO_IUUP_TNL_UNITDATA, OSMO_PRIM, OSMO_PRIM_HDR, PRIM_OP_INDICATION, osmo_prim_hdr::sap, and SAP_IUUP_TNL.