libosmocore 1.7.0
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 0x01 currently | ||
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(), gsmtap_makemsg_ex(), gsmtap_send(), and gsmtap_send_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(), _syslog_output(), _systemd_output(), _systemd_raw_output(), level_color(), log_check_level(), log_parse_category_mask(), log_set_category_filter(), logp2(), logp2syslog_level(), logp2syslog_level(), osmo_log_backtrace(), and osmo_vlogp().
uint32_t line_nr |
line number
char name[32] |
source file name
Referenced by _osmo_it_q_by_name(), msgb_alloc(), msgb_alloc_c(), msgb_alloc_headroom(), msgb_alloc_headroom_c(), msgb_copy(), msgb_copy_c(), osmo_counter_alloc(), osmo_counter_get_by_name(), osmo_fsm_find_by_name(), osmo_fsm_inst_find_by_name(), osmo_it_q_alloc(), osmo_it_q_by_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(), 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)
uint32_t sec |
int8_t signal_dbm |
signal level in dBm
Referenced by gsmtap_makemsg(), gsmtap_makemsg_ex(), gsmtap_send(), and gsmtap_send_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__(), __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_select_main(), _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(), _syslog_output(), _systemd_output(), _systemd_raw_output(), addrinfo_has_in6addr_any(), addrinfo_has_v4v6addr(), addrinfo_helper(), addrinfo_helper_multi(), addrinfo_to_sockaddr(), 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(), is_tcp(), log_add_target(), 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_syslog(), 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(), logp2syslog_level(), logp_stub(), mangle_identifier_ifneeded(), map_subsys(), msgb_alloc_c(), msgb_copy_c(), msgb_dequeue(), msgb_free(), msgb_hexdump(), msgb_hexdump_buf(), msgb_hexdump_c(), msgb_printf(), msgb_reset(), msgb_resize_area(), msgb_talloc_ctx_init(), multiaddr_snprintf(), 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_fd_disp_fds(), osmo_fd_fill_fds(), osmo_fd_init_ofd(), osmo_fd_register(), osmo_fd_update_when(), 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_is_hexstr(), osmo_isqrt32(), osmo_log_backtrace(), osmo_luhn(), osmo_macaddr_parse(), osmo_mnl_destroy(), osmo_mnl_fd_cb(), osmo_mnl_init(), osmo_panic(), osmo_panic_default(), osmo_plugin_load_all(), 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_select_main(), osmo_select_main_ctx(), 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_signalfd_setup(), osmo_sock_get_ip_and_port(), osmo_sock_get_name(), osmo_sock_get_name2(), osmo_sock_get_name2_c(), osmo_sock_get_name_buf(), osmo_sock_init(), osmo_sock_init2(), osmo_sock_init2_multiaddr(), osmo_sock_init2_ofd(), osmo_sock_init_osa(), osmo_sock_init_sa(), osmo_sock_init_tail(), osmo_sock_local_ip(), osmo_sock_mcast_all_set(), osmo_sock_mcast_iface_set(), osmo_sock_mcast_loop_set(), osmo_sock_mcast_subscribe(), osmo_sock_mcast_ttl_set(), osmo_sock_set_dscp(), osmo_sock_set_priority(), osmo_sock_unix_init(), osmo_sock_unix_init_ofd(), osmo_sockaddr_cmp(), osmo_sockaddr_from_octets(), osmo_sockaddr_in_to_str_and_uint(), osmo_sockaddr_is_local(), osmo_sockaddr_local_ip(), osmo_sockaddr_ntop(), osmo_sockaddr_port(), osmo_sockaddr_set_port(), osmo_sockaddr_to_octets(), osmo_sockaddr_to_str(), osmo_sockaddr_to_str_and_uint(), osmo_sockaddr_to_str_buf(), osmo_sockaddr_to_str_buf2(), osmo_sockaddr_to_str_c(), 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_str2lower(), osmo_str2upper(), 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_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_timerfd_disable(), osmo_timerfd_schedule(), osmo_timerfd_setup(), osmo_timers_check(), osmo_timers_nearest_ms(), osmo_timers_prepare(), osmo_timers_update(), 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(), poll_disp_fds(), poll_fill_fds(), 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_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(), signalfd_callback(), sock_get_domain(), sockaddr_equal(), sockaddr_is_local_routed(), socket_helper(), socket_helper_multiaddr(), socket_helper_osa(), socket_helper_tail(), start_timer(), stats_tcp_poll_timer_cb(), subsys_lib2index(), update_nearest(), and update_srep_config().
uint8_t timeslot |
timeslot (0..7 on Um)
struct { ... } ts |
Referenced by gsmtap_makemsg(), gsmtap_makemsg_ex(), gsmtap_send(), and gsmtap_send_ex().
uint8_t type |
see GSMTAP_TYPE_*
uint32_t usec |
uint8_t version |
version, set to 0x01 currently