109 lines
2.1 KiB
C
109 lines
2.1 KiB
C
#pragma once
|
|
|
|
#include <stdint.h>
|
|
|
|
struct gprs_air_if_summary {
|
|
uint32_t fn;
|
|
uint8_t band_ind;
|
|
uint8_t dl_ts;
|
|
uint8_t ul_ts;
|
|
uint16_t rx_power;
|
|
uint8_t tx_power_ts[4];
|
|
uint8_t ta;
|
|
uint32_t rlc_dl_rx;
|
|
uint32_t rlc_ul_tx;
|
|
uint32_t rlc_ul_retx;
|
|
uint32_t llpdu_tx_sum;
|
|
uint32_t llpdu_retx;
|
|
uint32_t llpdu_rx_sum;
|
|
uint32_t llpdu_rx_err;
|
|
uint32_t user_oct_dl;
|
|
uint32_t user_oct_ul;
|
|
} __attribute__ ((packed));
|
|
|
|
struct gprs_rx_msg_metr_a_v2 {
|
|
uint32_t fn;
|
|
uint8_t tn;
|
|
uint8_t chan;
|
|
uint8_t cs;
|
|
uint16_t rx_qual;
|
|
uint8_t _res:2,
|
|
crc_passed:1,
|
|
egprs_msg1_crc_passed:1,
|
|
egprs_msg2_crc_passed:1,
|
|
usf_match:1,
|
|
dl_tfi_match:1;
|
|
uint16_t msg_len;
|
|
uint8_t usf;
|
|
/* EGPRS specifics below */
|
|
uint8_t ir_status;
|
|
uint8_t mod_detected;
|
|
uint16_t blk_mean_bep_tslot;
|
|
uint16_t blk_cv_bep_tslot;
|
|
uint16_t filtered_cv_bep_tslot;
|
|
uint16_t reliability;
|
|
} __attribute__ ((packed));
|
|
|
|
struct gprs_xfer_sum {
|
|
uint8_t band_ind;
|
|
uint8_t current_alloc;
|
|
uint8_t ul_ptcch_ts;
|
|
uint8_t dl_ptcch_ts;
|
|
uint8_t ta;
|
|
uint8_t usf_granularity;
|
|
uint8_t ul_bitmap_tn;
|
|
uint8_t dl_bitmap_tn;
|
|
} __attribute__ ((packed));
|
|
|
|
struct gprs_power_control {
|
|
uint8_t tx_channel;
|
|
uint8_t tx_tn;
|
|
uint16_t tx_pwr;
|
|
uint8_t cs;
|
|
uint8_t gamma_tn;
|
|
uint16_t gamma_band;
|
|
uint8_t alpha;
|
|
uint8_t derived_c;
|
|
uint8_t pmax;
|
|
} __attribute__ ((packed));
|
|
|
|
enum gprs_tx_ul_chan_t {
|
|
DIAG_TX_UL_CH_T_PRACH,
|
|
DIAG_TX_UL_CH_T_UL_PTCCH,
|
|
DIAG_TX_UL_CH_T_UL_PACCH_PDTCH,
|
|
};
|
|
extern const struct value_string gprs_tx_ul_chans[];
|
|
|
|
enum gprs_coding_scheme {
|
|
DIAG_GPRS_CS_CS1,
|
|
DIAG_GPRS_CS_CS2,
|
|
DIAG_GPRS_CS_CS3,
|
|
DIAG_GPRS_CS_CS4,
|
|
DIAG_GPRS_CS_ACCESS,
|
|
DIAG_GPRS_CS_EXT_ACCESS,
|
|
DIAG_GPRS_CS_MCS1,
|
|
DIAG_GPRS_CS_MCS2,
|
|
DIAG_GPRS_CS_MCS3,
|
|
DIAG_GPRS_CS_MCS4,
|
|
DIAG_GPRS_CS_MCS5,
|
|
DIAG_GPRS_CS_MCS6,
|
|
DIAG_GPRS_CS_MCS7,
|
|
DIAG_GPRS_CS_MCS8,
|
|
DIAG_GPRS_CS_MCS9,
|
|
};
|
|
extern const struct value_string gprs_coding_schemes[];
|
|
|
|
struct gprs_tx_sched_res {
|
|
uint32_t fn;
|
|
uint8_t num_msg_tx;
|
|
uint16_t arfcn[4];
|
|
struct {
|
|
uint8_t tn;
|
|
uint8_t chan_type; /* gprs_tx_ul_chan_t */
|
|
uint8_t dyn_alloc;
|
|
int16_t power_idx;
|
|
uint8_t ta;
|
|
uint8_t cs;
|
|
} msg_info[4];
|
|
} __attribute__ ((packed));
|