libosmogb 1.13.1.1-afb4 Osmocom Gb library

Data Structures | Macros | Enumerations | Functions | Variables
frame_relay.h File Reference
`#include <osmocom/core/linuxlist.h>`
`#include <osmocom/core/timer.h>`
`#include <osmocom/core/utils.h>`
`#include <stdint.h>`

Go to the source code of this file.

## Data Structures
struct | osmo_fr_network
struct | osmo_fr_link
struct | osmo_fr_dlc

## Macros
#define | FRAME_RELAY_MTU 1600
#define | FRAME_RELAY_SDU (FRAME_RELAY_MTU - 2)

## Enumerations
enum | osmo_fr_role { FR_ROLE_USER_EQUIPMENT , FR_ROLE_NETWORK_EQUIPMENT }

## Functions
static const char * | osmo_fr_role_str (enum osmo_fr_role role)
struct osmo_fr_network * | osmo_fr_network_alloc (void *ctx)
void | osmo_fr_network_free (struct osmo_fr_network *net)
void | osmo_fr_network_dump_vty (struct vty *vty, const struct osmo_fr_network *net)
struct osmo_fr_link * | osmo_fr_link_alloc (struct osmo_fr_network *net, enum osmo_fr_role role, const char *name)
void | osmo_fr_link_free (struct osmo_fr_link *link)
struct osmo_fr_dlc * | osmo_fr_dlc_alloc (struct osmo_fr_link *link, uint16_t dlci)
void | osmo_fr_dlc_free (struct osmo_fr_dlc *dlc)
struct osmo_fr_dlc * | osmo_fr_dlc_by_dlci (struct osmo_fr_link *link, uint16_t dlci)
int | osmo_fr_rx (struct msgb *msg)
int | osmo_fr_tx_dlc (struct msgb *msg)

## Variables
const struct value_string | osmo_fr_role_names []

## Macro Definition Documentation

## ◆ FRAME_RELAY_MTU

#define FRAME_RELAY_MTU 1600

## ◆ FRAME_RELAY_SDU

#define FRAME_RELAY_SDU (FRAME_RELAY_MTU - 2)

## Enumeration Type Documentation

## ◆ osmo_fr_role

enum osmo_fr_role

Enumerator
FR_ROLE_USER_EQUIPMENT |
FR_ROLE_NETWORK_EQUIPMENT |

## Function Documentation

## ◆ osmo_fr_dlc_alloc()

struct osmo_fr_dlc * osmo_fr_dlc_alloc | ( | struct osmo_fr_link * | link,
|  | uint16_t | dlci
| ) |  |

References osmo_fr_dlc::active, osmo_fr_dlc::add, osmo_fr_link::dlc_list, osmo_fr_dlc::dlci, osmo_fr_dlc::link, osmo_fr_dlc::list, llist_add_tail(), Q933_REPT_SINGLE_PVC_ASYNC_STS, and tx_lmi_q933_status().

Referenced by fr_alloc_vc(), parse_full_pvc_status(), and parse_link_pvc_status().

## ◆ osmo_fr_dlc_by_dlci()

struct osmo_fr_dlc * osmo_fr_dlc_by_dlci | ( | struct osmo_fr_link * | link,
|  | uint16_t | dlci
| ) |  |

References osmo_fr_link::dlc_list, osmo_fr_dlc::dlci, osmo_fr_dlc::link, list, and llist_for_each_entry.

Referenced by osmo_fr_rx(), parse_full_pvc_status(), and parse_link_pvc_status().

## ◆ osmo_fr_dlc_free()

void osmo_fr_dlc_free | ( | struct osmo_fr_dlc * | dlc | ) |

References osmo_fr_dlc::list, and llist_del().

Referenced by osmo_fr_link_free().

## ◆ osmo_fr_link_alloc()

struct osmo_fr_link * osmo_fr_link_alloc | ( | struct osmo_fr_network * | net,
|  | enum osmo_fr_role | role,
|  | const char * | name
| ) |  |

References osmo_fr_link::dlc_list, FR_ROLE_NETWORK_EQUIPMENT, FR_ROLE_USER_EQUIPMENT, fr_t391_cb(), fr_t392_cb(), INIT_LLIST_HEAD, osmo_fr_link::list, llist_add_tail(), LOGL_INFO, LOGPFRL, name, osmo_fr_link::name, net, osmo_fr_link::net, osmo_fr_role_str(), osmo_tdef_get(), OSMO_TDEF_S, osmo_timer_schedule(), osmo_timer_setup(), osmo_fr_link::role, osmo_fr_link::t391, osmo_fr_link::t392, and osmo_fr_network::T_defs.

Referenced by gprs_ns2_fr_bind().

## ◆ osmo_fr_link_free()

void osmo_fr_link_free | ( | struct osmo_fr_link * | link | ) |

References osmo_fr_link::dlc_list, osmo_fr_dlc::link, list, osmo_fr_link::list, llist_del(), llist_for_each_entry_safe, osmo_fr_dlc_free(), osmo_timer_del(), osmo_fr_link::t391, and osmo_fr_link::t392.

Referenced by free_bind(), gprs_ns2_fr_bind(), and osmo_fr_network_free().

## ◆ osmo_fr_network_alloc()

struct osmo_fr_network * osmo_fr_network_alloc | ( | void * | ctx | ) |

References fr_tdefs, INIT_LLIST_HEAD, net, and osmo_tdefs_reset().

Referenced by gprs_ns2_vty_init_reduced().

## ◆ osmo_fr_network_dump_vty()

void osmo_fr_network_dump_vty | ( | struct vty * | vty,
|  | const struct osmo_fr_network * | net
| ) |  |

References fr_link_dump_vty(), list, llist_for_each_entry, net, osmo_tdef_vty_out_all(), VTY_NEWLINE, and vty_out().

Referenced by DEFUN_HIDDEN().

## ◆ osmo_fr_network_free()

void osmo_fr_network_free | ( | struct osmo_fr_network * | net | ) |

References list, llist_for_each_entry_safe, net, and osmo_fr_link_free().

## ◆ osmo_fr_role_str()

static const char * osmo_fr_role_str | ( | enum osmo_fr_role | role | ) |
| inline static

References get_value_string(), and osmo_fr_role_names.

Referenced by dump_vty(), and osmo_fr_link_alloc().

## ◆ osmo_fr_rx()

int osmo_fr_rx | ( | struct msgb * | msg | ) |

References osmo_fr_dlc::active, osmo_fr_dlc::cb_data, LMI_CISCO_DLCI, LMI_Q933A_DLCI, LOGL_ERROR, LOGL_NOTICE, LOGPFRL, msg, msgb_data(), msgb_free(), msgb_length(), OSMO_ASSERT, osmo_fr_dlc_by_dlci(), q922_to_dlci(), osmo_fr_dlc::rx_cb, rx_lmi_q922(), osmo_fr_link::state, osmo_fr_link::unknown_dlc_rx_cb, and osmo_fr_link::unknown_dlc_rx_cb_data.

Referenced by fr_netif_ofd_cb().

## ◆ osmo_fr_tx_dlc()

int osmo_fr_tx_dlc | ( | struct msgb * | msg | ) |

References osmo_fr_dlc::active, osmo_fr_link::cb_data, osmo_fr_dlc::dlci, dlci_to_q922(), osmo_fr_dlc::link, LOGL_DEBUG, LOGL_NOTICE, LOGPFRL, msg, msgb_free(), msgb_headroom(), msgb_push(), OSMO_ASSERT, osmo_fr_link::state, and osmo_fr_link::tx_cb.

Referenced by fr_vc_sendmsg().

## Variable Documentation

## ◆ osmo_fr_role_names

const struct value_string osmo_fr_role_names[]
| extern

Referenced by osmo_fr_role_str().