libosmocore 1.11.0.26-c59d.202505072026
Osmocom core library
|
gsmtap header, pseudo-header in front of the actua GSM payload. More...
#include <stdint.h>
Go to the source code of this file.
Data Structures | |
struct | gsmtap_hdr |
Structure of the GSMTAP pseudo-header. More... | |
struct | gsmtap_osmocore_log_hdr |
Structure of the GSMTAP libosmocore logging header. More... | |
Functions | |
struct gsmtap_hdr | __attribute__ ((packed)) |
Variables | ||
uint8_t | version | |
version, set to GSMTAP_VERSION | ||
uint8_t | hdr_len | |
length in number of 32bit words | ||
uint8_t | type | |
see GSMTAP_TYPE_* | ||
uint8_t | timeslot | |
timeslot (0..7 on Um) | ||
uint16_t | arfcn | |
ARFCN (frequency) | ||
int8_t | signal_dbm | |
signal level in dBm | ||
int8_t | snr_db | |
signal/noise ratio in dB | ||
uint32_t | frame_number | |
GSM Frame Number (FN) | ||
uint8_t | sub_type | |
Type of burst/channel, see above. | ||
uint8_t | antenna_nr | |
Antenna Number. | ||
uint8_t | sub_slot | |
sub-slot within timeslot | ||
uint8_t | res | |
reserved for future use (RFU) | ||
struct { | ||
uint32_t sec | ||
uint32_t usec | ||
} | ts | |
char | proc_name [16] | |
name of process | ||
uint32_t | pid | |
process ID | ||
uint8_t | level | |
logging level | ||
uint8_t | _pad [3] | |
char | subsys [16] | |
logging sub-system | ||
struct { | ||
char name [32] | ||
source file name More... | ||
uint32_t line_nr | ||
line number More... | ||
} | src_file | |
enum gsmtap_um_voice_type | __attribute__ | |
gsmtap header, pseudo-header in front of the actua GSM payload.
GSMTAP is a generic header format for GSM protocol captures, it uses the IANA-assigned UDP port number 4729 and carries payload in various formats of GSM interfaces such as Um MAC blocks or Um bursts.
Example programs generating GSMTAP data are airprobe (http://airprobe.org/) or OsmocomBB (http://bb.osmocom.org/)
#define GSMTAP_ARFCN_F_PCS 0x8000 |
#define GSMTAP_ARFCN_F_UPLINK 0x4000 |
#define GSMTAP_ARFCN_MASK 0x3fff |
#define GSMTAP_BURST_ACCESS 0x08 |
#define GSMTAP_BURST_COMPACT_SCH 0x05 |
#define GSMTAP_BURST_CTS_SCH 0x04 |
#define GSMTAP_BURST_DUMMY 0x07 |
#define GSMTAP_BURST_FCCH 0x01 |
#define GSMTAP_BURST_NONE 0x09 |
#define GSMTAP_BURST_NORMAL 0x06 |
#define GSMTAP_BURST_PARTIAL_SCH 0x02 |
#define GSMTAP_BURST_PHY_ATTRIBUTES 0x15 /* WiMAX PHY Attributes burst */ |
#define GSMTAP_BURST_SCH 0x03 |
#define GSMTAP_BURST_UNKNOWN 0x00 |
#define GSMTAP_CHANNEL_ACCH 0x80 |
#define GSMTAP_CHANNEL_AGCH 0x04 |
#define GSMTAP_CHANNEL_BCCH 0x01 |
#define GSMTAP_CHANNEL_CBCH51 0x0f |
#define GSMTAP_CHANNEL_CBCH52 0x0c |
#define GSMTAP_CHANNEL_CCCH 0x02 |
#define GSMTAP_CHANNEL_PACCH 0x0b |
#define GSMTAP_CHANNEL_PCH 0x05 |
#define GSMTAP_CHANNEL_PDCH GSMTAP_CHANNEL_PDTCH |
#define GSMTAP_CHANNEL_PDTCH 0x0d |
#define GSMTAP_CHANNEL_PTCCH 0x0e |
#define GSMTAP_CHANNEL_RACH 0x03 |
#define GSMTAP_CHANNEL_SDCCH 0x06 |
#define GSMTAP_CHANNEL_SDCCH4 0x07 |
#define GSMTAP_CHANNEL_SDCCH8 0x08 |
#define GSMTAP_CHANNEL_TCH_F GSMTAP_CHANNEL_FACCH_F /* We used the wrong naming in 2008 when we were young */ |
#define GSMTAP_CHANNEL_TCH_H GSMTAP_CHANNEL_FACCH_H /* We used the wrong naming in 2008 when we were young */ |
#define GSMTAP_CHANNEL_UNKNOWN 0x00 |
#define GSMTAP_GMR1_AGCH 0x04 |
#define GSMTAP_GMR1_BACH 0x05 |
#define GSMTAP_GMR1_BCCH 0x01 |
#define GSMTAP_GMR1_CBCH 0x07 |
#define GSMTAP_GMR1_GBCH 0x0a |
#define GSMTAP_GMR1_PCH 0x03 |
#define GSMTAP_GMR1_RACH 0x06 |
#define GSMTAP_GMR1_SDCCH 0x08 |
#define GSMTAP_GMR1_TACCH 0x09 |
#define GSMTAP_GMR1_TCH3 0x10 |
#define GSMTAP_GMR1_TCH6 0x14 |
#define GSMTAP_GMR1_TCH9 0x18 |
#define GSMTAP_GMR1_UNKNOWN 0x00 |
#define GSMTAP_GPRS_CS | ( | N | ) | (GSMTAP_GPRS_CS_BASE + N) |
#define GSMTAP_GPRS_CS_BASE 0x20 |
#define GSMTAP_GPRS_MCS | ( | N | ) | (GSMTAP_GPRS_MCS_BASE + N) |
#define GSMTAP_GPRS_MCS_BASE 0x30 |
#define GSMTAP_LTE_CH_BCCH 0x01 |
#define GSMTAP_LTE_CH_CCCH 0x02 |
#define GSMTAP_LTE_CH_DCCH 0x03 |
#define GSMTAP_LTE_CH_DTCH 0x06 |
#define GSMTAP_LTE_CH_MCCH 0x04 |
#define GSMTAP_LTE_CH_MTCH 0x07 |
#define GSMTAP_LTE_CH_PCCH 0x05 |
#define GSMTAP_TETRA_AACH 0x02 |
#define GSMTAP_TETRA_BNCH 0x06 |
#define GSMTAP_TETRA_BSCH 0x01 |
#define GSMTAP_TETRA_DMO_SCH_F 0x0b |
#define GSMTAP_TETRA_DMO_SCH_H 0x0a |
#define GSMTAP_TETRA_DMO_SCH_S 0x09 |
#define GSMTAP_TETRA_DMO_STCH 0x0c |
#define GSMTAP_TETRA_DMO_TCH 0x0d |
#define GSMTAP_TETRA_SCH_F 0x05 |
#define GSMTAP_TETRA_SCH_HD 0x04 |
#define GSMTAP_TETRA_SCH_HU 0x03 |
#define GSMTAP_TETRA_STCH 0x07 |
#define GSMTAP_TETRA_TCH_F 0x08 |
#define GSMTAP_TYPE_ABIS 0x02 |
#define GSMTAP_TYPE_GB_LLC 0x08 /* GPRS Gb interface: LLC */ |
#define GSMTAP_TYPE_GB_SNDCP 0x09 /* GPRS Gb interface: SNDCP */ |
#define GSMTAP_TYPE_OSMOCORE_LOG 0x10 /* libosmocore logging */ |
#define GSMTAP_TYPE_UM 0x01 |
#define GSMTAP_TYPE_UMTS_RLC_MAC 0x0b |
#define GSMTAP_TYPE_UMTS_RRC 0x0c |
#define GSMTAP_UDP_PORT 4729 |
#define GSMTAP_UMTS_CH_CCCH 0x02 |
#define GSMTAP_UMTS_CH_DCCH 0x03 |
#define GSMTAP_UMTS_CH_PCCH 0x01 |
#define GSMTAP_VERSION 0x02 |
First byte of type==GSMTAP_TYPE_UM sub_type==GSMTAP_CHANNEL_VOICE payload.
enum gsmtap_um_voice_type __attribute__ |
uint8_t _pad[3] |
uint8_t antenna_nr |
Antenna Number.
uint16_t arfcn |
ARFCN (frequency)
Referenced by gsmtap_makemsg(), and gsmtap_makemsg_ex().
uint32_t frame_number |
GSM Frame Number (FN)
uint8_t hdr_len |
length in number of 32bit words
uint8_t level |
logging level
Referenced by _file_raw_output(), _gsmtap_raw_output(), _msgb_eq(), _osmo_backtrace(), _output(), _output_buf(), _systemd_output(), _systemd_raw_output(), level_color(), log_cache_check(), log_cache_update(), log_check_level(), log_parse_category_mask(), log_set_category_filter(), logp2(), logp2syslog_level(), osmo_log_backtrace(), and osmo_vlogp().
uint32_t line_nr |
line number
char name[32] |
source file name
Referenced by msgb_alloc(), msgb_alloc_c(), msgb_alloc_headroom(), msgb_alloc_headroom_c(), msgb_copy(), msgb_copy_c(), msgb_copy_resize(), msgb_copy_resize_c(), osmo_counter_alloc(), osmo_counter_get_by_name(), osmo_fsm_find_by_name(), osmo_fsm_inst_find_by_name(), osmo_iofd_set_name(), osmo_iofd_setup(), osmo_netdev_alloc(), osmo_soft_uart_alloc(), osmo_soft_uart_set_name(), osmo_stat_item_get_by_name(), osmo_stat_item_get_group_by_name_idx(), osmo_stat_item_group_set_name(), osmo_stats_reporter_alloc(), osmo_stats_reporter_create_log(), osmo_stats_reporter_create_statsd(), osmo_stats_reporter_find(), osmo_stats_tcp_osmo_fd_register(), osmo_talloc_replace_string_fmt(), osmo_tundev_alloc(), rate_ctr_get_by_name(), rate_ctr_get_group_by_name_idx(), rate_ctr_get_unused_name_idx(), rate_ctr_group_desc_mangle(), rate_ctr_group_set_name(), and rate_ctrl_group_desc_validate().
uint32_t pid |
process ID
Referenced by osmo_daemonize().
char proc_name[16] |
name of process
uint8_t res |
reserved for future use (RFU)
Referenced by iofd_handle_segmented_read().
uint32_t sec |
int8_t signal_dbm |
signal level in dBm
Referenced by gsmtap_makemsg(), and gsmtap_makemsg_ex().
int8_t snr_db |
signal/noise ratio in dB
struct { ... } src_file |
uint8_t sub_slot |
sub-slot within timeslot
uint8_t sub_type |
Type of burst/channel, see above.
char subsys[16] |
logging sub-system
Referenced by __add_timer(), __attribute__(), __attribute__(), __rb_erase_color(), __rb_rotate_left(), __rb_rotate_right(), _file_output_stream(), _file_raw_output(), _file_wq_write_cb(), _gsmtap_raw_output(), _msgb_eq(), _osmo_backtrace(), _osmo_escape_str_buf(), _osmo_quote_str_buf(), _osmo_serial_set_baudrate(), _osmo_strrb_is_bufindex_valid(), _osmo_tdef_fsm_inst_state_chg(), _osmo_use_count_get_put(), _output(), _output_buf(), _rb_output(), _systemd_output(), _systemd_raw_output(), alloc_entries(), alloc_entry(), color(), const_basename(), count_safe(), fill_stats(), flush_all_reporters(), get_string_value(), get_value_string(), get_value_string_or_null(), handle_counter(), handle_line(), iofd_handle_recv(), iofd_handle_segmentation(), iofd_handle_send_completion(), iofd_msgb_alloc(), iofd_msghdr_alloc(), iofd_msghdr_free(), iofd_poll_ofd_cb_dispatch(), iofd_poll_ofd_cb_recvmsg_sendmsg(), iofd_txqueue_dequeue(), iofd_txqueue_enqueue(), iofd_txqueue_enqueue_front(), is_tcp(), log_add_target(), log_cache_enable(), log_category_name(), log_check_level(), log_del_target(), log_fini(), log_init(), log_reset_context(), log_set_all_filter(), log_set_category_filter(), log_set_context(), log_set_log_level(), log_set_print_category(), log_set_print_category_hex(), log_set_print_extended_timestamp(), log_set_print_filename(), log_set_print_filename2(), log_set_print_filename_pos(), log_set_print_level(), log_set_print_tid(), log_set_print_timestamp(), log_set_use_color(), log_target_create(), log_target_create_file(), log_target_create_file_stream(), log_target_create_gsmtap(), log_target_create_rb(), log_target_create_stderr(), log_target_create_systemd(), log_target_destroy(), log_target_file_reopen(), log_target_file_switch_to_stream(), log_target_file_switch_to_wqueue(), log_target_find(), log_target_rb_avail_size(), log_target_rb_get(), log_target_rb_used_size(), log_target_systemd_set_raw(), log_targets_reopen(), logp(), logp2(), logp2syslog_level(), logp_stub(), mangle_identifier_ifneeded(), map_subsys(), msgb_alloc_c(), msgb_copy_resize(), msgb_copy_resize_c(), msgb_dequeue(), msgb_free(), msgb_hexdump(), msgb_hexdump_buf(), msgb_hexdump_c(), msgb_printf(), msgb_reset(), msgb_resize_area(), msgb_talloc_ctx_init(), netdev_netns_ctx_alloc(), netdev_netns_ctx_find_by_netns_name(), netdev_netns_ctx_free(), netdev_netns_ctx_init(), osmo_bcd2char(), osmo_bcd2str(), osmo_config_list_parse(), osmo_constant_time_cmp(), osmo_decode_big_endian(), osmo_encode_big_endian(), osmo_escape_cstr_buf(), osmo_escape_cstr_c(), osmo_escape_str(), osmo_escape_str_buf(), osmo_escape_str_buf2(), osmo_escape_str_buf3(), osmo_escape_str_c(), osmo_event_for_prim(), osmo_float_str_to_int(), osmo_get_macaddr(), osmo_gettid(), osmo_gettimeofday(), osmo_gettimeofday_override_add(), osmo_hexdump_buf(), osmo_hexdump_c(), osmo_hexdump_nospc_c(), osmo_hexparse(), osmo_identifier_sanitize_buf(), osmo_int_to_float_str_buf(), osmo_int_to_float_str_c(), osmo_iofd_free(), osmo_iofd_get_ioops(), osmo_iofd_init(), osmo_iofd_register(), osmo_iofd_sendmsg_msgb(), osmo_iofd_sendto_msgb(), osmo_iofd_set_cmsg_size(), osmo_iofd_set_ioops(), osmo_iofd_setup(), osmo_iofd_write_msgb(), osmo_is_hexstr(), osmo_isqrt32(), osmo_log_backtrace(), osmo_luhn(), osmo_macaddr_parse(), osmo_mnl_destroy(), osmo_mnl_fd_cb(), osmo_mnl_init(), osmo_netdev_add_addr(), osmo_netdev_add_route(), osmo_netdev_alloc(), osmo_netdev_free(), osmo_netdev_ifupdown(), osmo_netdev_register(), osmo_netdev_set_ifindex(), osmo_netdev_set_mtu(), osmo_netdev_set_netns_name(), osmo_netdev_unregister(), osmo_panic(), osmo_panic_default(), osmo_prbs_get_ubit(), osmo_prbs_get_ubits(), osmo_prbs_process_bit(), osmo_prbs_state_init(), osmo_print_n(), osmo_quote_cstr_buf(), osmo_quote_cstr_c(), osmo_quote_str(), osmo_quote_str_buf(), osmo_quote_str_buf2(), osmo_quote_str_buf3(), osmo_quote_str_c(), osmo_separated_identifiers_valid(), osmo_sercomm_change_speed(), osmo_sercomm_drv_pull(), osmo_sercomm_drv_rx_char(), osmo_sercomm_init(), osmo_sercomm_register_rx_cb(), osmo_sercomm_sendmsg(), osmo_sercomm_tx_queue_depth(), osmo_serial_clear_custom_baudrate(), osmo_serial_init(), osmo_serial_set_baudrate(), osmo_serial_set_custom_baudrate(), osmo_serial_speed_t(), osmo_signal_dispatch(), osmo_signal_register_handler(), osmo_signal_talloc_ctx_init(), osmo_signal_unregister_handler(), osmo_soft_uart_alloc(), osmo_soft_uart_configure(), osmo_soft_uart_flush_rx(), osmo_soft_uart_free(), osmo_soft_uart_get_name(), osmo_soft_uart_get_status(), osmo_soft_uart_rx_ubits(), osmo_soft_uart_set_name(), osmo_soft_uart_set_rx(), osmo_soft_uart_set_status(), osmo_soft_uart_set_status_line(), osmo_soft_uart_set_tx(), osmo_soft_uart_tx_ubits(), osmo_stat_item_dec(), osmo_stat_item_flush(), osmo_stat_item_for_each_group(), osmo_stat_item_for_each_item(), osmo_stat_item_get_by_name(), osmo_stat_item_get_desc(), osmo_stat_item_get_group_by_name_idx(), osmo_stat_item_get_group_by_name_idxname(), osmo_stat_item_get_last(), osmo_stat_item_group_alloc(), osmo_stat_item_group_free(), osmo_stat_item_group_get_item(), osmo_stat_item_group_handler(), osmo_stat_item_group_reset(), osmo_stat_item_handler(), osmo_stat_item_inc(), osmo_stat_item_reset(), osmo_stat_item_set(), osmo_stats_report(), osmo_stats_reporter_alloc(), osmo_stats_reporter_check_config(), osmo_stats_reporter_create_log(), osmo_stats_reporter_create_statsd(), osmo_stats_reporter_disable(), osmo_stats_reporter_enable(), osmo_stats_reporter_find(), osmo_stats_reporter_free(), osmo_stats_reporter_log_send(), osmo_stats_reporter_log_send_counter(), osmo_stats_reporter_log_send_item(), osmo_stats_reporter_sanitize_name(), osmo_stats_reporter_send_counter(), osmo_stats_reporter_send_item(), osmo_stats_reporter_set_flush_period(), osmo_stats_reporter_set_max_class(), osmo_stats_reporter_set_name_prefix(), osmo_stats_reporter_statsd_send(), osmo_stats_reporter_statsd_send_counter(), osmo_stats_reporter_statsd_send_item(), osmo_stats_set_interval(), osmo_stats_tcp_osmo_fd_register(), osmo_stats_tcp_osmo_fd_unregister(), osmo_stats_timer_cb(), osmo_str2bcd(), osmo_str_startswith(), osmo_str_to_int(), osmo_str_to_int64(), osmo_str_tolower(), osmo_str_tolower_buf(), osmo_str_tolower_c(), osmo_str_toupper(), osmo_str_toupper_buf(), osmo_str_toupper_c(), osmo_strbuf_added_tail(), osmo_strbuf_drop_tail(), osmo_strlcpy(), osmo_strnchr(), osmo_strrb_add(), osmo_strrb_create(), osmo_strrb_get_nth(), osmo_talloc_replace_string_fmt(), osmo_tdef_factor(), osmo_tdef_get(), osmo_tdef_get_entry(), osmo_tdef_get_state_timeout(), osmo_tdef_range_str_buf(), osmo_tdef_round(), osmo_tdef_set(), osmo_tdef_val_in_range(), osmo_tdefs_reset(), osmo_timer_remaining(), osmo_timer_schedule(), osmo_timers_check(), osmo_timers_nearest_ms(), osmo_timers_prepare(), osmo_timers_update(), osmo_tundev_alloc(), osmo_tundev_close(), osmo_tundev_free(), osmo_tundev_get_dev_name(), osmo_tundev_get_fd(), osmo_tundev_get_name(), osmo_tundev_get_netdev(), osmo_tundev_get_netns_name(), osmo_tundev_get_priv_data(), osmo_tundev_is_open(), osmo_tundev_open(), osmo_tundev_send(), osmo_tundev_set_data_ind_cb(), osmo_tundev_set_dev_name(), osmo_tundev_set_netns_name(), osmo_tundev_set_priv_data(), osmo_ubit_dump_buf(), osmo_use_count_by(), osmo_use_count_create(), osmo_use_count_find(), osmo_use_count_free(), osmo_use_count_make_static_entries(), osmo_use_count_name_buf(), osmo_use_count_repurpose_zero_entry(), osmo_use_count_to_str_buf(), osmo_use_count_to_str_c(), osmo_use_count_total(), osmo_vlogp(), osmo_wqueue_bfd_cb(), osmo_wqueue_clear(), osmo_wqueue_enqueue(), osmo_wqueue_enqueue_quiet(), osmo_wqueue_set_maxlen(), rate_ctr_add(), rate_ctr_difference(), rate_ctr_for_each_counter(), rate_ctr_for_each_group(), rate_ctr_get_by_name(), rate_ctr_get_group_by_name_idx(), rate_ctr_get_unused_name_idx(), rate_ctr_group_alloc(), rate_ctr_group_desc_mangle(), rate_ctr_group_free(), rate_ctr_group_get_ctr(), rate_ctr_group_handler(), rate_ctr_group_intv(), rate_ctr_group_reset(), rate_ctr_group_set_name(), rate_ctr_handler(), rate_ctr_init(), rate_ctr_reset(), rate_ctr_timer_cb(), rate_ctrl_group_desc_validate(), rb_erase(), rb_first(), rb_insert_color(), rb_last(), rb_replace_node(), should_log_to_target(), start_timer(), stats_tcp_poll_timer_cb(), suart_rx_bit(), suart_rx_ch(), suart_rx_timer_cb(), suart_tx_bit(), suart_tx_pending(), subsys_lib2index(), tundev_decaps(), tundev_dev_name_chg_cb(), tundev_ifupdown_ind_cb(), tundev_mtu_chg_cb(), tundev_open_fd(), tundev_read_cb(), tundev_write_cb(), update_nearest(), and update_srep_config().
uint8_t timeslot |
timeslot (0..7 on Um)
struct { ... } ts |
Referenced by gsmtap_makemsg(), and gsmtap_makemsg_ex().
uint8_t type |
see GSMTAP_TYPE_*
uint32_t usec |
uint8_t version |
version, set to GSMTAP_VERSION