libosmogsm 1.9.0.196-9975
Osmocom GSM library
gsm48_rest_octets.h File Reference
#include <stdbool.h>
#include <osmocom/gsm/sysinfo.h>
#include <osmocom/gsm/protocol/gsm_44_060.h>

Go to the source code of this file.

Data Structures

struct  osmo_gsm48_si_pch_nch_info
 
struct  osmo_gsm48_si_vbs_vgcs_options
 
struct  osmo_gsm48_si_dtm_support
 
struct  osmo_gsm48_si_gprs_ms_txpwr_max_ccch
 
struct  osmo_gsm48_si6_ro_info
 
struct  osmo_gsm48_si_selection_params
 
struct  osmo_gsm48_si_power_offset
 
struct  osmo_gsm48_si3_gprs_ind
 
struct  osmo_gsm48_lsa_params
 
struct  osmo_gsm48_si_ro_info
 
struct  osmo_gsm48_si13_info
 

Macros

#define SI2Q_MAX_NUM   16
 
#define SI2Q_MAX_LEN   160
 
#define SI2Q_MIN_LEN   18
 

Functions

int osmo_gsm48_rest_octets_si1_encode (uint8_t *data, uint8_t *nch_pos, int is1800_net)
 
int osmo_gsm48_si1ro_nch_pos_decode (uint8_t value, uint8_t *num_blocks, uint8_t *first_block)
 Decode the 5-bit 'NCH position' field within SI1 Rest Octets. More...
 
int osmo_gsm48_si1ro_nch_pos_encode (uint8_t num_blocks, uint8_t first_block)
 Encode the 5-bit 'NCH position' field within SI1 Rest Octets. More...
 
int osmo_gsm48_rest_octets_si2quater_encode (uint8_t *data, uint8_t si2q_index, uint8_t si2q_count, const uint16_t *uarfcn_list, size_t *u_offset, size_t uarfcn_length, uint16_t *scramble_list, struct osmo_earfcn_si2q *si2quater_neigh_list, size_t *e_offset)
 
int osmo_gsm48_rest_octets_si6_encode (uint8_t *data, const struct osmo_gsm48_si6_ro_info *in)
 
int osmo_gsm48_rest_octets_si3_encode (uint8_t *data, const struct osmo_gsm48_si_ro_info *si3)
 
int osmo_gsm48_rest_octets_si4_encode (uint8_t *data, const struct osmo_gsm48_si_ro_info *si4, int len)
 
int osmo_gsm48_rest_octets_si13_decode (struct osmo_gsm48_si13_info *si13, const uint8_t *data)
 Decode SI13 Rest Octests (04.08 Chapter 10.5.2.37b). More...
 
int osmo_gsm48_rest_octets_si13_encode (uint8_t *data, const struct osmo_gsm48_si13_info *si13)
 
void osmo_gsm48_rest_octets_si3_decode (struct osmo_gsm48_si_ro_info *si3, const uint8_t *data)
 Decode SI3 Rest Octests (Chapter 10.5.2.34 / Table 10.4.72). More...
 
void osmo_gsm48_rest_octets_si4_decode (struct osmo_gsm48_si_ro_info *si4, const uint8_t *data, int len)
 

Macro Definition Documentation

◆ SI2Q_MAX_LEN

#define SI2Q_MAX_LEN   160

◆ SI2Q_MAX_NUM

#define SI2Q_MAX_NUM   16

◆ SI2Q_MIN_LEN

#define SI2Q_MIN_LEN   18

Function Documentation

◆ osmo_gsm48_rest_octets_si13_decode()

int osmo_gsm48_rest_octets_si13_decode ( struct osmo_gsm48_si13_info si13,
const uint8_t *  data 
)

◆ osmo_gsm48_rest_octets_si13_encode()

◆ osmo_gsm48_rest_octets_si1_encode()

int osmo_gsm48_rest_octets_si1_encode ( uint8_t *  data,
uint8_t *  nch_pos,
int  is1800_net 
)

◆ osmo_gsm48_rest_octets_si2quater_encode()

int osmo_gsm48_rest_octets_si2quater_encode ( uint8_t *  data,
uint8_t  si2q_index,
uint8_t  si2q_count,
const uint16_t *  uarfcn_list,
size_t *  u_offset,
size_t  uarfcn_length,
uint16_t *  scramble_list,
struct osmo_earfcn_si2q si2quater_neigh_list,
size_t *  e_offset 
)

◆ osmo_gsm48_rest_octets_si3_decode()

◆ osmo_gsm48_rest_octets_si3_encode()

◆ osmo_gsm48_rest_octets_si4_decode()

◆ osmo_gsm48_rest_octets_si4_encode()

◆ osmo_gsm48_rest_octets_si6_encode()

◆ osmo_gsm48_si1ro_nch_pos_decode()

int osmo_gsm48_si1ro_nch_pos_decode ( uint8_t  value,
uint8_t *  num_blocks,
uint8_t *  first_block 
)

Decode the 5-bit 'NCH position' field within SI1 Rest Octets.

Parameters
[in]value5-bit value from SI1 rest octets
[out]num_blocksNumber of CCCH used for NCH
[out]first_blockFirst CCCH block used for NCH
Returns
0 on success; negative in case of error

References ARRAY_SIZE, nch_pos::first_block, nch_pos::num_blocks, and si1ro_nch_positions.

◆ osmo_gsm48_si1ro_nch_pos_encode()

int osmo_gsm48_si1ro_nch_pos_encode ( uint8_t  num_blocks,
uint8_t  first_block 
)

Encode the 5-bit 'NCH position' field within SI1 Rest Octets.

Parameters
[in]num_blocksNumber of CCCH used for NCH
[in]first_blockFirst CCCH block used for NCH
Returns
5-bit value for SI1 rest octets on success; negative in case of error

References ARRAY_SIZE, nch_pos::first_block, nch_pos::num_blocks, and si1ro_nch_positions.