libosmogsm 1.10.0.10-24ad1
Osmocom GSM library
|
GSM 04.08 System Information (SI) encoding and decoding. More...
#include <errno.h>
#include <string.h>
#include <stdio.h>
#include <osmocom/core/bitvec.h>
#include <osmocom/core/utils.h>
#include <osmocom/gsm/sysinfo.h>
#include <osmocom/gsm/protocol/gsm_04_08.h>
#include <osmocom/gsm/protocol/gsm_08_58.h>
Functions | |
osmo_static_assert (sizeof(struct gsm48_system_information_type_header)==3, _si_header_size) | |
osmo_static_assert (sizeof(struct gsm48_rach_control)==3, _si_rach_control) | |
osmo_static_assert (sizeof(struct gsm48_system_information_type_1)==22, _si1_size) | |
osmo_static_assert (sizeof(struct gsm48_system_information_type_2)==23, _si2_size) | |
osmo_static_assert (sizeof(struct gsm48_system_information_type_3)==19, _si3_size) | |
osmo_static_assert (sizeof(struct gsm48_system_information_type_4)==13, _si4_size) | |
osmo_static_assert (sizeof(struct gsm48_system_information_type_5)==18, _si5_size) | |
osmo_static_assert (sizeof(struct gsm48_system_information_type_6)==11, _si6_size) | |
osmo_static_assert (sizeof(struct gsm48_system_information_type_10)==1, _si10_size) | |
osmo_static_assert (sizeof(struct gsm48_system_information_type_13)==3, _si13_size) | |
int | osmo_earfcn_add (struct osmo_earfcn_si2q *e, uint16_t arfcn, uint8_t meas_bw) |
Add pair of arfcn and measurement bandwith value to earfcn struct. More... | |
size_t | osmo_earfcn_bit_size (const struct osmo_earfcn_si2q *e) |
Return number of bits necessary to represent earfcn struct as Repeated E-UTRAN Neighbour Cells IE from 3GPP TS 44.018 Table 10.5.2.33b.1. More... | |
size_t | osmo_earfcn_bit_size_ext (const struct osmo_earfcn_si2q *e, size_t offset) |
Return number of bits necessary to represent earfcn struct as Repeated E-UTRAN Neighbour Cells IE from 3GPP TS 44.018 Table 10.5.2.33b.1. More... | |
int | osmo_earfcn_del (struct osmo_earfcn_si2q *e, uint16_t arfcn) |
Delete arfcn (and corresponding measurement bandwith) from earfcn struct. More... | |
void | osmo_earfcn_init (struct osmo_earfcn_si2q *e) |
Initialize earfcn struct. More... | |
uint8_t | osmo_sitype2rsl (enum osmo_sysinfo_type si_type) |
enum osmo_sysinfo_type | osmo_rsl2sitype (uint8_t rsl_si) |
Variables | |
static const uint8_t | sitype2rsl [_MAX_SYSINFO_TYPE] |
static const uint8_t | rsl2sitype [256] |
const struct value_string | osmo_sitype_strs [_MAX_SYSINFO_TYPE] |
GSM 04.08 System Information (SI) encoding and decoding.
3GPP TS 04.08 version 7.21.0 Release 1998 / ETSI TS 100 940 V7.21.0
int osmo_earfcn_add | ( | struct osmo_earfcn_si2q * | e, |
uint16_t | arfcn, | ||
uint8_t | meas_bw | ||
) |
Add pair of arfcn and measurement bandwith value to earfcn struct.
[in,out] | e | earfcn struct |
[in] | arfcn | EARFCN value, 16 bits |
[in] | meas_bw | measurement bandwith value |
References arfcn, osmo_earfcn_si2q::arfcn, osmo_earfcn_si2q::length, osmo_earfcn_si2q::meas_bw, and OSMO_EARFCN_INVALID.
size_t osmo_earfcn_bit_size | ( | const struct osmo_earfcn_si2q * | e | ) |
Return number of bits necessary to represent earfcn struct as Repeated E-UTRAN Neighbour Cells IE from 3GPP TS 44.018 Table 10.5.2.33b.1.
[in,out] | e | earfcn struct |
References osmo_earfcn_bit_size_ext().
size_t osmo_earfcn_bit_size_ext | ( | const struct osmo_earfcn_si2q * | e, |
size_t | offset | ||
) |
Return number of bits necessary to represent earfcn struct as Repeated E-UTRAN Neighbour Cells IE from 3GPP TS 44.018 Table 10.5.2.33b.1.
[in,out] | e | earfcn struct |
[in] | offset | into earfcn struct: how many EARFCNs to skip while estimating size |
References osmo_earfcn_si2q::arfcn, osmo_earfcn_si2q::length, osmo_earfcn_si2q::meas_bw, OSMO_EARFCN_INVALID, OSMO_EARFCN_MEAS_INVALID, osmo_earfcn_si2q::prio_valid, osmo_earfcn_si2q::qrxlm_valid, and osmo_earfcn_si2q::thresh_lo_valid.
Referenced by osmo_earfcn_bit_size().
int osmo_earfcn_del | ( | struct osmo_earfcn_si2q * | e, |
uint16_t | arfcn | ||
) |
Delete arfcn (and corresponding measurement bandwith) from earfcn struct.
[in,out] | e | earfcn struct |
[in] | arfcn | EARFCN value, 16 bits |
References arfcn, osmo_earfcn_si2q::arfcn, osmo_earfcn_si2q::length, osmo_earfcn_si2q::meas_bw, OSMO_EARFCN_INVALID, and OSMO_EARFCN_MEAS_INVALID.
void osmo_earfcn_init | ( | struct osmo_earfcn_si2q * | e | ) |
Initialize earfcn struct.
[in,out] | e | earfcn struct |
References osmo_earfcn_si2q::arfcn, osmo_earfcn_si2q::length, osmo_earfcn_si2q::meas_bw, OSMO_EARFCN_INVALID, and OSMO_EARFCN_MEAS_INVALID.
enum osmo_sysinfo_type osmo_rsl2sitype | ( | uint8_t | rsl_si | ) |
References rsl2sitype.
uint8_t osmo_sitype2rsl | ( | enum osmo_sysinfo_type | si_type | ) |
References sitype2rsl.
osmo_static_assert | ( | sizeof(struct gsm48_rach_control) | = =3 , |
_si_rach_control | |||
) |
osmo_static_assert | ( | sizeof(struct gsm48_system_information_type_1) | = =22 , |
_si1_size | |||
) |
osmo_static_assert | ( | sizeof(struct gsm48_system_information_type_10) | = =1 , |
_si10_size | |||
) |
osmo_static_assert | ( | sizeof(struct gsm48_system_information_type_13) | = =3 , |
_si13_size | |||
) |
osmo_static_assert | ( | sizeof(struct gsm48_system_information_type_2) | = =23 , |
_si2_size | |||
) |
osmo_static_assert | ( | sizeof(struct gsm48_system_information_type_3) | = =19 , |
_si3_size | |||
) |
osmo_static_assert | ( | sizeof(struct gsm48_system_information_type_4) | = =13 , |
_si4_size | |||
) |
osmo_static_assert | ( | sizeof(struct gsm48_system_information_type_5) | = =18 , |
_si5_size | |||
) |
osmo_static_assert | ( | sizeof(struct gsm48_system_information_type_6) | = =11 , |
_si6_size | |||
) |
osmo_static_assert | ( | sizeof(struct gsm48_system_information_type_header) | = =3 , |
_si_header_size | |||
) |
const struct value_string osmo_sitype_strs[_MAX_SYSINFO_TYPE] |
|
static |
Referenced by osmo_rsl2sitype().
|
static |
Referenced by osmo_sitype2rsl().