aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-gsm_a_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-gsm_a_common.c')
-rw-r--r--epan/dissectors/packet-gsm_a_common.c725
1 files changed, 331 insertions, 394 deletions
diff --git a/epan/dissectors/packet-gsm_a_common.c b/epan/dissectors/packet-gsm_a_common.c
index 18da413836..490dc0eed1 100644
--- a/epan/dissectors/packet-gsm_a_common.c
+++ b/epan/dissectors/packet-gsm_a_common.c
@@ -544,230 +544,231 @@ const value_string gsm_a_rr_rxqual_vals[] = {
};
/* Initialize the protocol and registered fields */
-static int proto_a_common = -1;
-static int proto_3gpp = -1;
-
-int gsm_a_tap = -1;
-
-int hf_gsm_a_common_elem_id = -1;
-static int hf_gsm_a_common_elem_id_f0 = -1;
-static int hf_gsm_a_l_ext = -1;
-int hf_gsm_a_tmsi = -1;
-static int hf_gsm_a_imei = -1;
-static int hf_gsm_a_imeisv = -1;
-
-static int hf_gsm_a_MSC_rev = -1;
-static int hf_gsm_a_ES_IND = -1;
-static int hf_gsm_a_A5_1_algorithm_sup = -1;
-static int hf_gsm_a_RF_power_capability = -1;
-static int hf_gsm_a_ps_sup_cap = -1;
-static int hf_gsm_a_SS_screening_indicator = -1;
-static int hf_gsm_a_SM_capability = -1;
-static int hf_gsm_a_VBS_notification_rec = -1;
-static int hf_gsm_a_VGCS_notification_rec = -1;
-static int hf_gsm_a_FC_frequency_cap = -1;
-static int hf_gsm_a_CM3 = -1;
-static int hf_gsm_a_LCS_VA_cap = -1;
-static int hf_gsm_a_UCS2_treatment = -1;
-static int hf_gsm_a_SoLSA = -1;
-static int hf_gsm_a_CMSP = -1;
-static int hf_gsm_a_A5_7_algorithm_sup = -1;
-static int hf_gsm_a_A5_6_algorithm_sup = -1;
-static int hf_gsm_a_A5_5_algorithm_sup = -1;
-static int hf_gsm_a_A5_4_algorithm_sup = -1;
-static int hf_gsm_a_A5_3_algorithm_sup = -1;
-static int hf_gsm_a_A5_2_algorithm_sup = -1;
-
-static int hf_gsm_a_odd_even_ind = -1;
-static int hf_gsm_a_id_dig_1 = -1;
-static int hf_gsm_a_unused = -1;
-static int hf_gsm_a_mobile_identity_type = -1;
-static int hf_gsm_a_tmgi_mcc_mnc_ind = -1;
-static int hf_gsm_a_mbs_ses_id_ind = -1;
-static int hf_gsm_a_mbs_service_id = -1;
-static int hf_gsm_a_mbs_session_id = -1;
-static int hf_gsm_a_length = -1;
-static int hf_gsm_a_element_value = -1;
-int hf_gsm_a_extension = -1;
-int hf_gsm_a_L3_protocol_discriminator = -1;
-int hf_gsm_a_call_prio = -1;
-int hf_gsm_a_skip_ind = -1;
-int hf_gsm_a_spare_bits = -1;
-int hf_gsm_a_lac = -1;
-
-static int hf_gsm_a_spare_nibble = -1;
-static int hf_gsm_a_type_of_ciph_alg = -1;
-static int hf_gsm_a_att = -1;
-static int hf_gsm_a_nmo_1 = -1;
-static int hf_gsm_a_nmo = -1;
-static int hf_gsm_a_old_xid = -1;
-static int hf_gsm_a_iov_ui = -1;
-static int hf_gsm_a_ext_periodic_timers = -1;
-static int hf_gsm_a_b7spare = -1;
-int hf_gsm_a_b8spare = -1;
-static int hf_gsm_a_multi_bnd_sup_fields = -1;
-static int hf_gsm_a_pgsm_supported = -1;
-static int hf_gsm_a_egsm_supported = -1;
-static int hf_gsm_a_gsm1800_supported = -1;
-static int hf_gsm_a_ass_radio_cap1 = -1;
-static int hf_gsm_a_ass_radio_cap2 = -1;
-static int hf_gsm_a_rsupport = -1;
-static int hf_gsm_a_r_capabilities = -1;
-static int hf_gsm_a_multislot_capabilities = -1;
-static int hf_gsm_a_multislot_class = -1;
-static int hf_gsm_a_ucs2_treatment = -1;
-static int hf_gsm_a_extended_measurement_cap = -1;
-static int hf_gsm_a_ms_measurement_capability = -1;
-static int hf_gsm_a_sms_value =-1;
-static int hf_gsm_a_sm_value =-1;
-static int hf_gsm_a_key_seq = -1;
-static int hf_gsm_a_ms_pos_method_cap_present = -1;
-static int hf_gsm_a_ms_pos_method = -1;
-static int hf_gsm_a_ms_assisted_e_otd = -1;
-static int hf_gsm_a_ms_based_e_otd = -1;
-static int hf_gsm_a_ms_assisted_gps = -1;
-static int hf_gsm_a_ms_based_gps = -1;
-static int hf_gsm_a_ms_conventional_gps = -1;
-static int hf_gsm_a_ecsd_multi_slot_capability = -1;
-static int hf_gsm_a_ecsd_multi_slot_class = -1;
-static int hf_gsm_a_8_psk_struct_present = -1;
-static int hf_gsm_a_8_psk_struct = -1;
-static int hf_gsm_a_modulation_capability = -1;
-static int hf_gsm_a_8_psk_rf_power_capability_1_present = -1;
-static int hf_gsm_a_8_psk_rf_power_capability_1 = -1;
-static int hf_gsm_a_8_psk_rf_power_capability_2_present = -1;
-static int hf_gsm_a_8_psk_rf_power_capability_2 = -1;
-static int hf_gsm_a_gsm_400_band_info_present = -1;
-static int hf_gsm_a_gsm_400_bands_supported = -1;
-static int hf_gsm_a_gsm_400_assoc_radio_cap = -1;
-static int hf_gsm_a_gsm_850_assoc_radio_cap_present = -1;
-static int hf_gsm_a_gsm_850_assoc_radio_cap = -1;
-static int hf_gsm_a_gsm_1900_assoc_radio_cap_present = -1;
-static int hf_gsm_a_gsm_1900_assoc_radio_cap = -1;
-static int hf_gsm_a_cm3_A5_bits = -1;
-static int hf_gsm_a_umts_fdd_rat_cap = -1;
-static int hf_gsm_a_umts_384_mcps_tdd_rat_cap = -1;
-static int hf_gsm_a_cdma_2000_rat_cap = -1;
-static int hf_gsm_a_dtm_e_gprs_multi_slot_info_present = -1;
-static int hf_gsm_a_dtm_gprs_multi_slot_class = -1;
-static int hf_gsm_a_single_slot_dtm = -1;
-static int hf_gsm_a_dtm_egprs_multi_slot_class_present = -1;
-static int hf_gsm_a_dtm_egprs_multi_slot_class = -1;
-static int hf_gsm_a_single_band_support = -1;
-static int hf_gsm_a_gsm_band = -1;
-static int hf_gsm_a_gsm_750_assoc_radio_cap_present = -1;
-static int hf_gsm_a_gsm_750_assoc_radio_cap = -1;
-static int hf_gsm_a_umts_128_mcps_tdd_rat_cap = -1;
-static int hf_gsm_a_geran_feature_package_1 = -1;
-static int hf_gsm_a_ext_dtm_e_gprs_multi_slot_info_present = -1;
-static int hf_gsm_a_ext_dtm_gprs_multi_slot_class = -1;
-static int hf_gsm_a_ext_dtm_egprs_multi_slot_class = -1;
-static int hf_gsm_a_high_multislot_cap_present = -1;
-static int hf_gsm_a_high_multislot_cap = -1;
-static int hf_gsm_a_geran_iu_mode_support = -1;
-static int hf_gsm_a_geran_iu_mode_cap = -1;
-static int hf_gsm_a_geran_iu_mode_cap_length = -1;
-static int hf_gsm_a_flo_iu_cap = -1;
-static int hf_gsm_a_geran_feature_package_2 = -1;
-static int hf_gsm_a_gmsk_multislot_power_prof = -1;
-static int hf_gsm_a_8_psk_multislot_power_prof = -1;
-static int hf_gsm_a_t_gsm_400_band_info_present = -1;
-static int hf_gsm_a_t_gsm_400_bands_supported = -1;
-static int hf_gsm_a_t_gsm_400_assoc_radio_cap = -1;
-static int hf_gsm_a_t_gsm_900_assoc_radio_cap_present = -1;
-static int hf_gsm_a_t_gsm_900_assoc_radio_cap = -1;
-static int hf_gsm_a_downlink_adv_receiver_perf = -1;
-static int hf_gsm_a_dtm_enhancements_cap = -1;
-static int hf_gsm_a_dtm_e_gprs_high_multi_slot_info_present = -1;
-static int hf_gsm_a_dtm_gprs_high_multi_slot_class = -1;
-static int hf_gsm_a_offset_required = -1;
-static int hf_gsm_a_dtm_egprs_high_multi_slot_class_present = -1;
-static int hf_gsm_a_dtm_egprs_high_multi_slot_class = -1;
-static int hf_gsm_a_repeated_acch_cap = -1;
-static int hf_gsm_a_gsm_710_assoc_radio_cap_present = -1;
-static int hf_gsm_a_gsm_710_assoc_radio_cap = -1;
-static int hf_gsm_a_t_gsm_810_assoc_radio_cap_present = -1;
-static int hf_gsm_a_t_gsm_810_assoc_radio_cap = -1;
-static int hf_gsm_a_ciphering_mode_setting_cap = -1;
-static int hf_gsm_a_additional_positioning_caps = -1;
-static int hf_gsm_a_e_utra_fdd_support = -1;
-static int hf_gsm_a_e_utra_tdd_support = -1;
-static int hf_gsm_a_e_utra_meas_and_report_support = -1;
-static int hf_gsm_a_prio_based_resel_support = -1;
-static int hf_gsm_a_utra_csg_cells_reporting = -1;
-static int hf_gsm_a_vamos_level = -1;
-static int hf_gsm_a_tighter_cap = -1;
-static int hf_gsm_a_selective_ciph_down_sacch = -1;
-static int hf_gsm_a_cs_to_ps_srvcc_geran_to_utra = -1;
-static int hf_gsm_a_cs_to_ps_srvcc_geran_to_eutra = -1;
-static int hf_gsm_a_geran_network_sharing_support = -1;
-static int hf_gsm_a_eutra_wb_rsrq_support = -1;
-static int hf_gsm_a_er_band_support = -1;
-static int hf_gsm_a_utra_mfbi_support = -1;
-static int hf_gsm_a_eutra_mfbi_support = -1;
-static int hf_gsm_a_ext_tsc_set_cap_support = -1;
-static int hf_gsm_a_ext_earfcn_value_range = -1;
-
-static int hf_gsm_a_geo_loc_type_of_shape = -1;
-static int hf_gsm_a_geo_loc_sign_of_lat = -1;
-static int hf_gsm_a_geo_loc_deg_of_lat =-1;
-static int hf_gsm_a_geo_loc_deg_of_long =-1;
-static int hf_gsm_a_geo_loc_osm_uri =-1;
-static int hf_gsm_a_geo_loc_uncertainty_code = -1;
-static int hf_gsm_a_geo_loc_uncertainty_semi_major = -1;
-static int hf_gsm_a_geo_loc_uncertainty_semi_minor = -1;
-static int hf_gsm_a_geo_loc_orientation_of_major_axis = -1;
-static int hf_gsm_a_geo_loc_uncertainty_altitude = -1;
-static int hf_gsm_a_geo_loc_confidence = -1;
-static int hf_gsm_a_geo_loc_horizontal_confidence = -1;
-static int hf_gsm_a_geo_loc_vertical_confidence = -1;
-static int hf_gsm_a_geo_loc_high_acc_uncertainty_alt = -1;
-static int hf_gsm_a_geo_loc_no_of_points = -1;
-static int hf_gsm_a_geo_loc_high_acc_deg_of_lat = -1;
-static int hf_gsm_a_geo_loc_high_acc_deg_of_long = -1;
-static int hf_gsm_a_geo_loc_high_acc_uncertainty_semi_major = -1;
-static int hf_gsm_a_geo_loc_high_acc_uncertainty_semi_minor = -1;
-static int hf_gsm_a_geo_loc_high_acc_alt = -1;
-static int hf_gsm_a_velocity_type = -1;
-static int hf_gsm_a_bearing = -1;
-static int hf_gsm_a_horizontal_speed = -1;
-static int hf_gsm_a_uncertainty_speed = -1;
-static int hf_gsm_a_h_uncertainty_speed = -1;
-static int hf_gsm_a_v_uncertainty_speed = -1;
-static int hf_gsm_a_vertical_speed = -1;
-static int hf_gsm_a_d = -1;
-static int hf_gsm_a_geo_loc_D = -1;
-static int hf_gsm_a_geo_loc_altitude = -1;
-static int hf_gsm_a_geo_loc_inner_radius = -1;
-static int hf_gsm_a_geo_loc_uncertainty_radius = -1;
-static int hf_gsm_a_geo_loc_offset_angle = -1;
-static int hf_gsm_a_geo_loc_included_angle = -1;
+static int proto_a_common;
+static int proto_3gpp;
+
+int gsm_a_tap;
+
+int hf_gsm_a_common_elem_id;
+static int hf_gsm_a_common_elem_id_f0;
+static int hf_gsm_a_l_ext;
+int hf_gsm_a_tmsi;
+static int hf_gsm_a_imei;
+static int hf_gsm_a_imeisv;
+
+static int hf_gsm_a_MSC_rev;
+static int hf_gsm_a_ES_IND;
+static int hf_gsm_a_A5_1_algorithm_sup;
+static int hf_gsm_a_RF_power_capability;
+static int hf_gsm_a_ps_sup_cap;
+static int hf_gsm_a_SS_screening_indicator;
+static int hf_gsm_a_SM_capability;
+static int hf_gsm_a_VBS_notification_rec;
+static int hf_gsm_a_VGCS_notification_rec;
+static int hf_gsm_a_FC_frequency_cap;
+static int hf_gsm_a_CM3;
+static int hf_gsm_a_LCS_VA_cap;
+static int hf_gsm_a_UCS2_treatment;
+static int hf_gsm_a_SoLSA;
+static int hf_gsm_a_CMSP;
+static int hf_gsm_a_A5_7_algorithm_sup;
+static int hf_gsm_a_A5_6_algorithm_sup;
+static int hf_gsm_a_A5_5_algorithm_sup;
+static int hf_gsm_a_A5_4_algorithm_sup;
+static int hf_gsm_a_A5_3_algorithm_sup;
+static int hf_gsm_a_A5_2_algorithm_sup;
+
+static int hf_gsm_a_odd_even_ind;
+static int hf_gsm_a_id_dig_1;
+static int hf_gsm_a_unused;
+static int hf_gsm_a_mobile_identity_type;
+static int hf_gsm_a_tmgi_mcc_mnc_ind;
+static int hf_gsm_a_mbs_ses_id_ind;
+static int hf_gsm_a_mbs_service_id;
+static int hf_gsm_a_mbs_session_id;
+static int hf_gsm_a_length;
+static int hf_gsm_a_element_value;
+int hf_gsm_a_extension;
+int hf_gsm_a_L3_protocol_discriminator;
+int hf_gsm_a_call_prio;
+int hf_gsm_a_skip_ind;
+int hf_gsm_a_spare_bits;
+int hf_gsm_a_lac;
+
+static int hf_gsm_a_spare_nibble;
+static int hf_gsm_a_type_of_ciph_alg;
+static int hf_gsm_a_att;
+static int hf_gsm_a_nmo_1;
+static int hf_gsm_a_nmo;
+static int hf_gsm_a_old_xid;
+static int hf_gsm_a_iov_ui;
+static int hf_gsm_a_ext_periodic_timers;
+static int hf_gsm_a_b7spare;
+int hf_gsm_a_b8spare;
+static int hf_gsm_a_multi_bnd_sup_fields;
+static int hf_gsm_a_pgsm_supported;
+static int hf_gsm_a_egsm_supported;
+static int hf_gsm_a_gsm1800_supported;
+static int hf_gsm_a_ass_radio_cap1;
+static int hf_gsm_a_ass_radio_cap2;
+static int hf_gsm_a_rsupport;
+static int hf_gsm_a_r_capabilities;
+static int hf_gsm_a_multislot_capabilities;
+static int hf_gsm_a_multislot_class;
+static int hf_gsm_a_ucs2_treatment;
+static int hf_gsm_a_extended_measurement_cap;
+static int hf_gsm_a_ms_measurement_capability;
+static int hf_gsm_a_sms_value;
+static int hf_gsm_a_sm_value;
+static int hf_gsm_a_key_seq;
+static int hf_gsm_a_ms_pos_method_cap_present;
+static int hf_gsm_a_ms_pos_method;
+static int hf_gsm_a_ms_assisted_e_otd;
+static int hf_gsm_a_ms_based_e_otd;
+static int hf_gsm_a_ms_assisted_gps;
+static int hf_gsm_a_ms_based_gps;
+static int hf_gsm_a_ms_conventional_gps;
+static int hf_gsm_a_ecsd_multi_slot_capability;
+static int hf_gsm_a_ecsd_multi_slot_class;
+static int hf_gsm_a_8_psk_struct_present;
+static int hf_gsm_a_8_psk_struct;
+static int hf_gsm_a_modulation_capability;
+static int hf_gsm_a_8_psk_rf_power_capability_1_present;
+static int hf_gsm_a_8_psk_rf_power_capability_1;
+static int hf_gsm_a_8_psk_rf_power_capability_2_present;
+static int hf_gsm_a_8_psk_rf_power_capability_2;
+static int hf_gsm_a_gsm_400_band_info_present;
+static int hf_gsm_a_gsm_400_bands_supported;
+static int hf_gsm_a_gsm_400_assoc_radio_cap;
+static int hf_gsm_a_gsm_850_assoc_radio_cap_present;
+static int hf_gsm_a_gsm_850_assoc_radio_cap;
+static int hf_gsm_a_gsm_1900_assoc_radio_cap_present;
+static int hf_gsm_a_gsm_1900_assoc_radio_cap;
+static int hf_gsm_a_cm3_A5_bits;
+static int hf_gsm_a_umts_fdd_rat_cap;
+static int hf_gsm_a_umts_384_mcps_tdd_rat_cap;
+static int hf_gsm_a_cdma_2000_rat_cap;
+static int hf_gsm_a_dtm_e_gprs_multi_slot_info_present;
+static int hf_gsm_a_dtm_gprs_multi_slot_class;
+static int hf_gsm_a_single_slot_dtm;
+static int hf_gsm_a_dtm_egprs_multi_slot_class_present;
+static int hf_gsm_a_dtm_egprs_multi_slot_class;
+static int hf_gsm_a_single_band_support;
+static int hf_gsm_a_gsm_band;
+static int hf_gsm_a_gsm_750_assoc_radio_cap_present;
+static int hf_gsm_a_gsm_750_assoc_radio_cap;
+static int hf_gsm_a_umts_128_mcps_tdd_rat_cap;
+static int hf_gsm_a_geran_feature_package_1;
+static int hf_gsm_a_ext_dtm_e_gprs_multi_slot_info_present;
+static int hf_gsm_a_ext_dtm_gprs_multi_slot_class;
+static int hf_gsm_a_ext_dtm_egprs_multi_slot_class;
+static int hf_gsm_a_high_multislot_cap_present;
+static int hf_gsm_a_high_multislot_cap;
+static int hf_gsm_a_geran_iu_mode_support;
+static int hf_gsm_a_geran_iu_mode_cap;
+static int hf_gsm_a_geran_iu_mode_cap_length;
+static int hf_gsm_a_flo_iu_cap;
+static int hf_gsm_a_geran_feature_package_2;
+static int hf_gsm_a_gmsk_multislot_power_prof;
+static int hf_gsm_a_8_psk_multislot_power_prof;
+static int hf_gsm_a_t_gsm_400_band_info_present;
+static int hf_gsm_a_t_gsm_400_bands_supported;
+static int hf_gsm_a_t_gsm_400_assoc_radio_cap;
+static int hf_gsm_a_t_gsm_900_assoc_radio_cap_present;
+static int hf_gsm_a_t_gsm_900_assoc_radio_cap;
+static int hf_gsm_a_downlink_adv_receiver_perf;
+static int hf_gsm_a_dtm_enhancements_cap;
+static int hf_gsm_a_dtm_e_gprs_high_multi_slot_info_present;
+static int hf_gsm_a_dtm_gprs_high_multi_slot_class;
+static int hf_gsm_a_offset_required;
+static int hf_gsm_a_dtm_egprs_high_multi_slot_class_present;
+static int hf_gsm_a_dtm_egprs_high_multi_slot_class;
+static int hf_gsm_a_repeated_acch_cap;
+static int hf_gsm_a_gsm_710_assoc_radio_cap_present;
+static int hf_gsm_a_gsm_710_assoc_radio_cap;
+static int hf_gsm_a_t_gsm_810_assoc_radio_cap_present;
+static int hf_gsm_a_t_gsm_810_assoc_radio_cap;
+static int hf_gsm_a_ciphering_mode_setting_cap;
+static int hf_gsm_a_additional_positioning_caps;
+static int hf_gsm_a_e_utra_fdd_support;
+static int hf_gsm_a_e_utra_tdd_support;
+static int hf_gsm_a_e_utra_meas_and_report_support;
+static int hf_gsm_a_prio_based_resel_support;
+static int hf_gsm_a_utra_csg_cells_reporting;
+static int hf_gsm_a_vamos_level;
+static int hf_gsm_a_tighter_cap;
+static int hf_gsm_a_selective_ciph_down_sacch;
+static int hf_gsm_a_cs_to_ps_srvcc_geran_to_utra;
+static int hf_gsm_a_cs_to_ps_srvcc_geran_to_eutra;
+static int hf_gsm_a_geran_network_sharing_support;
+static int hf_gsm_a_eutra_wb_rsrq_support;
+static int hf_gsm_a_er_band_support;
+static int hf_gsm_a_utra_mfbi_support;
+static int hf_gsm_a_eutra_mfbi_support;
+static int hf_gsm_a_ext_tsc_set_cap_support;
+static int hf_gsm_a_ext_earfcn_value_range;
+
+static int hf_gsm_a_geo_loc_type_of_shape;
+static int hf_gsm_a_geo_loc_sign_of_lat;
+static int hf_gsm_a_geo_loc_deg_of_lat;
+static int hf_gsm_a_geo_loc_deg_of_long;
+static int hf_gsm_a_geo_loc_osm_uri;
+static int hf_gsm_a_geo_loc_uncertainty_code;
+static int hf_gsm_a_geo_loc_uncertainty_semi_major;
+static int hf_gsm_a_geo_loc_uncertainty_semi_minor;
+static int hf_gsm_a_geo_loc_orientation_of_major_axis;
+static int hf_gsm_a_geo_loc_uncertainty_altitude;
+static int hf_gsm_a_geo_loc_confidence;
+static int hf_gsm_a_geo_loc_uncertainty_range;
+static int hf_gsm_a_geo_loc_horizontal_confidence;
+static int hf_gsm_a_geo_loc_horizontal_uncertainty_range;
+static int hf_gsm_a_geo_loc_vertical_confidence;
+static int hf_gsm_a_geo_loc_vertical_uncertainty_range;
+static int hf_gsm_a_geo_loc_high_acc_uncertainty_alt;
+static int hf_gsm_a_geo_loc_no_of_points;
+static int hf_gsm_a_geo_loc_high_acc_deg_of_lat;
+static int hf_gsm_a_geo_loc_high_acc_deg_of_long;
+static int hf_gsm_a_geo_loc_high_acc_uncertainty_semi_major;
+static int hf_gsm_a_geo_loc_high_acc_uncertainty_semi_minor;
+static int hf_gsm_a_geo_loc_high_acc_alt;
+static int hf_gsm_a_velocity_type;
+static int hf_gsm_a_bearing;
+static int hf_gsm_a_horizontal_speed;
+static int hf_gsm_a_uncertainty_speed;
+static int hf_gsm_a_h_uncertainty_speed;
+static int hf_gsm_a_v_uncertainty_speed;
+static int hf_gsm_a_vertical_speed;
+static int hf_gsm_a_d;
+static int hf_gsm_a_geo_loc_D;
+static int hf_gsm_a_geo_loc_altitude;
+static int hf_gsm_a_geo_loc_inner_radius;
+static int hf_gsm_a_geo_loc_uncertainty_radius;
+static int hf_gsm_a_geo_loc_offset_angle;
+static int hf_gsm_a_geo_loc_included_angle;
/* Generated from convert_proto_tree_add_text.pl */
-static int hf_gsm_a_filler = -1;
-static int hf_gsm_a_identity_digit1 = -1;
-static int hf_gsm_a_group_call_reference = -1;
-static int hf_gsm_a_service_flag = -1;
-static int hf_gsm_a_af_acknowledgement = -1;
-static int hf_gsm_a_call_priority = -1;
-static int hf_gsm_a_ciphering_info = -1;
-static int hf_gsm_a_sapi = -1;
-static int hf_gsm_a_mobile_country_code = -1;
-static int hf_gsm_a_mobile_network_code = -1;
+static int hf_gsm_a_filler;
+static int hf_gsm_a_identity_digit1;
+static int hf_gsm_a_group_call_reference;
+static int hf_gsm_a_service_flag;
+static int hf_gsm_a_af_acknowledgement;
+static int hf_gsm_a_call_priority;
+static int hf_gsm_a_ciphering_info;
+static int hf_gsm_a_sapi;
/* Inter protocol hf */
-int hf_3gpp_tmsi = -1;
+int hf_3gpp_tmsi;
-static int ett_gsm_a_plmn = -1;
-static int ett_gsm_a_poly_pnt = -1;
+static int ett_gsm_a_plmn;
+static int ett_gsm_a_poly_pnt;
-static expert_field ei_gsm_a_extraneous_data = EI_INIT;
-static expert_field ei_gsm_a_unknown_element = EI_INIT;
-static expert_field ei_gsm_a_unknown_pdu_type = EI_INIT;
-static expert_field ei_gsm_a_no_element_dissector = EI_INIT;
-static expert_field ei_gsm_a_format_not_supported = EI_INIT;
-static expert_field ei_gsm_a_mobile_identity_type = EI_INIT;
-static expert_field ei_gsm_a_ie_length_too_short = EI_INIT;
+static expert_field ei_gsm_a_extraneous_data;
+static expert_field ei_gsm_a_unknown_element;
+static expert_field ei_gsm_a_unknown_pdu_type;
+static expert_field ei_gsm_a_no_element_dissector;
+static expert_field ei_gsm_a_format_not_supported;
+static expert_field ei_gsm_a_mobile_identity_type;
+static expert_field ei_gsm_a_ie_length_too_short;
sccp_assoc_info_t* sccp_assoc = NULL;
@@ -784,6 +785,8 @@ gint ett_gsm_common_elem[NUM_GSM_COMMON_ELEM];
#define ELLIPSOID_ARC 10
#define HIGH_ACC_ELLIPSOID_PNT_WITH_UNCERT_ELLIPSE 11
#define HIGH_ACC_ELLIPSOID_PNT_WITH_ALT_AND_UNCERT_ELLIPSOID 12
+#define HIGH_ACC_ELLIPSOID_PNT_WITH_SCALABLE_UNCERT_ELLIPSE 13
+#define HIGH_ACC_ELLIPSOID_PNT_WITH_ALT_AND_SCALABLE_UNCERT_ELLIPSOID 14
/*
4 3 2 1
0 0 0 0 Ellipsoid Point
@@ -795,20 +798,24 @@ gint ett_gsm_common_elem[NUM_GSM_COMMON_ELEM];
1 0 1 0 Ellipsoid Arc
1 0 1 1 High Accuracy Ellipsoid point with uncertainty ellipse
1 1 0 0 High Accuracy Ellipsoid point with altitude and uncertainty ellipsoid
+1 1 0 1 High Accuracy Ellipsoid point with scalable uncertainty ellipse
+1 1 1 0 High Accuracy Ellipsoid point with altitude and scalable uncertainty ellipsoid
other values reserved for future use
*/
/* TS 23 032 Table 2a: Coding of Type of Shape */
static const value_string type_of_shape_vals[] = {
- { ELLIPSOID_POINT, "Ellipsoid Point"},
- { ELLIPSOID_POINT_WITH_UNCERT_CIRC, "Ellipsoid point with uncertainty Circle"},
- { ELLIPSOID_POINT_WITH_UNCERT_ELLIPSE, "Ellipsoid point with uncertainty Ellipse"},
- { POLYGON, "Polygon"},
- { ELLIPSOID_POINT_WITH_ALT, "Ellipsoid point with altitude"},
- { ELLIPSOID_POINT_WITH_ALT_AND_UNCERT_ELLIPSOID, "Ellipsoid point with altitude and uncertainty Ellipsoid"},
- { ELLIPSOID_ARC, "Ellipsoid Arc"},
- { HIGH_ACC_ELLIPSOID_PNT_WITH_UNCERT_ELLIPSE, "High Accuracy Ellipsoid point with uncertainty ellipse"},
- { HIGH_ACC_ELLIPSOID_PNT_WITH_ALT_AND_UNCERT_ELLIPSOID, "High Accuracy Ellipsoid point with altitude and uncertainty ellipsoid"},
+ { ELLIPSOID_POINT, "Ellipsoid Point"},
+ { ELLIPSOID_POINT_WITH_UNCERT_CIRC, "Ellipsoid point with uncertainty Circle"},
+ { ELLIPSOID_POINT_WITH_UNCERT_ELLIPSE, "Ellipsoid point with uncertainty Ellipse"},
+ { POLYGON, "Polygon"},
+ { ELLIPSOID_POINT_WITH_ALT, "Ellipsoid point with altitude"},
+ { ELLIPSOID_POINT_WITH_ALT_AND_UNCERT_ELLIPSOID, "Ellipsoid point with altitude and uncertainty Ellipsoid"},
+ { ELLIPSOID_ARC, "Ellipsoid Arc"},
+ { HIGH_ACC_ELLIPSOID_PNT_WITH_UNCERT_ELLIPSE, "High Accuracy Ellipsoid point with uncertainty ellipse"},
+ { HIGH_ACC_ELLIPSOID_PNT_WITH_ALT_AND_UNCERT_ELLIPSOID, "High Accuracy Ellipsoid point with altitude and uncertainty ellipsoid"},
+ { HIGH_ACC_ELLIPSOID_PNT_WITH_SCALABLE_UNCERT_ELLIPSE, "High Accuracy Ellipsoid point with scalable uncertainty ellipse"},
+ { HIGH_ACC_ELLIPSOID_PNT_WITH_ALT_AND_SCALABLE_UNCERT_ELLIPSOID, "High Accuracy Ellipsoid point with altitude and scalable uncertainty ellipsoid"},
{ 0, NULL }
};
@@ -825,6 +832,12 @@ static const value_string dir_of_alt_vals[] = {
{ 0, NULL }
};
+static const value_string uncertainty_range[] = {
+ { 0, "High Accuracy default uncertainty range used"},
+ { 1, "High Accuracy Extended Uncertainty Range used"},
+ { 0, NULL }
+};
+
typedef guint16 (**elem_func_hander)(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
int
@@ -1000,7 +1013,7 @@ dissect_geographical_description(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr
proto_item *ti;
proto_tree_add_item_ret_uint(tree, hf_gsm_a_geo_loc_no_of_points, tvb, 0, 1, ENC_BIG_ENDIAN, &no_of_points);
- /* offset increased with 1 after reading of shape abowe*/
+ /* offset increased with 1 after reading of shape above */
while (no_of_points > 0) {
point_no++;
sub_tree = proto_tree_add_subtree_format(tree, tvb, offset, 6,
@@ -1034,6 +1047,7 @@ dissect_geographical_description(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr
}
break;
case HIGH_ACC_ELLIPSOID_PNT_WITH_UNCERT_ELLIPSE:
+ case HIGH_ACC_ELLIPSOID_PNT_WITH_SCALABLE_UNCERT_ELLIPSE:
loc_offset = offset;
lat_item = proto_tree_add_item_ret_int(tree, hf_gsm_a_geo_loc_high_acc_deg_of_lat, tvb, offset, 4, ENC_BIG_ENDIAN, &svalue32);
deg_lat_str = wmem_strdup_printf(pinfo->pool, "%s%.5f",
@@ -1061,7 +1075,12 @@ dissect_geographical_description(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr
offset++;
/* Confidence */
proto_tree_add_item(tree, hf_gsm_a_geo_loc_confidence, tvb, offset, 1, ENC_BIG_ENDIAN);
+ if (type_of_shape == HIGH_ACC_ELLIPSOID_PNT_WITH_SCALABLE_UNCERT_ELLIPSE) {
+ /* Uncertainty Range */
+ proto_tree_add_item(tree, hf_gsm_a_geo_loc_uncertainty_range, tvb, offset, 1, ENC_BIG_ENDIAN);
+ }
offset++;
+
osm_uri = wmem_strdup_printf(pinfo->pool, "https://www.openstreetmap.org/?mlat=%s&mlon=%s&zoom=12", deg_lat_str, deg_lon_str);
loc_uri_item = proto_tree_add_string(tree, hf_gsm_a_geo_loc_osm_uri, tvb, loc_offset, 6, osm_uri);
proto_item_set_url(loc_uri_item);
@@ -1069,6 +1088,7 @@ dissect_geographical_description(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr
break;
case HIGH_ACC_ELLIPSOID_PNT_WITH_ALT_AND_UNCERT_ELLIPSOID:
+ case HIGH_ACC_ELLIPSOID_PNT_WITH_ALT_AND_SCALABLE_UNCERT_ELLIPSOID:
lat_item = proto_tree_add_item_ret_int(tree, hf_gsm_a_geo_loc_high_acc_deg_of_lat, tvb, offset, 4, ENC_BIG_ENDIAN, &svalue32);
deg_lat_str = wmem_strdup_printf(pinfo->pool, "%s%.5f",
(svalue32 & 0x80000000) ? "-" : "",
@@ -1105,9 +1125,13 @@ dissect_geographical_description(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr
/* Horizontal confidence */
proto_tree_add_item(tree, hf_gsm_a_geo_loc_horizontal_confidence, tvb, offset, 1, ENC_BIG_ENDIAN);
+ if (type_of_shape == HIGH_ACC_ELLIPSOID_PNT_WITH_ALT_AND_SCALABLE_UNCERT_ELLIPSOID) {
+ /* Horizontal Uncertainty Range */
+ proto_tree_add_item(tree, hf_gsm_a_geo_loc_horizontal_uncertainty_range, tvb, offset, 1, ENC_BIG_ENDIAN);
+ }
offset++;
- /* High accuracy uncertenty altitude */
+ /* High accuracy uncertainty altitude */
value = tvb_get_guint8(tvb, offset) & 0x7f;
alt_item = proto_tree_add_item(tree, hf_gsm_a_geo_loc_high_acc_uncertainty_alt, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_item_append_text(alt_item, " (%.1f m)", 45 * (pow(1.025, (double)value) - 1));
@@ -1115,6 +1139,10 @@ dissect_geographical_description(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr
/* Vertical confidence*/
proto_tree_add_item(tree, hf_gsm_a_geo_loc_vertical_confidence, tvb, offset, 1, ENC_BIG_ENDIAN);
+ if (type_of_shape == HIGH_ACC_ELLIPSOID_PNT_WITH_ALT_AND_SCALABLE_UNCERT_ELLIPSOID) {
+ /* Vertical Uncertainty Range */
+ proto_tree_add_item(tree, hf_gsm_a_geo_loc_vertical_uncertainty_range, tvb, offset, 1, ENC_BIG_ENDIAN);
+ }
offset++;
break;
@@ -2070,13 +2098,6 @@ guint16 elem_v_short(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gint p
}
-static dgt_set_t Dgt_tbcd = {
- {
- /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */
- '0','1','2','3','4','5','6','7','8','9','?','B','C','*','#','?'
- }
-};
-
static dgt_set_t Dgt1_9_bcd = {
{
/* 0 1 2 3 4 5 6 7 8 9 a b c d e f */
@@ -2086,88 +2107,6 @@ static dgt_set_t Dgt1_9_bcd = {
/* FUNCTIONS */
-/*
- * Decode the MCC/MNC from 3 octets in 'octs'
- */
-static void
-mcc_mnc_aux(guint8 *octs, gchar *mcc, gchar *mnc)
-{
- if ((octs[0] & 0x0f) <= 9)
- {
- mcc[0] = Dgt_tbcd.out[octs[0] & 0x0f];
- }
- else
- {
- mcc[0] = (octs[0] & 0x0f) + 55;
- }
-
- if (((octs[0] & 0xf0) >> 4) <= 9)
- {
- mcc[1] = Dgt_tbcd.out[(octs[0] & 0xf0) >> 4];
- }
- else
- {
- mcc[1] = ((octs[0] & 0xf0) >> 4) + 55;
- }
-
- if ((octs[1] & 0x0f) <= 9)
- {
- mcc[2] = Dgt_tbcd.out[octs[1] & 0x0f];
- }
- else
- {
- mcc[2] = (octs[1] & 0x0f) + 55;
- }
-
- mcc[3] = '\0';
-
- if (((octs[1] & 0xf0) >> 4) <= 9)
- {
- mnc[2] = Dgt_tbcd.out[(octs[1] & 0xf0) >> 4];
- }
- else
- {
- mnc[2] = ((octs[1] & 0xf0) >> 4) + 55;
- }
-
- if ((octs[2] & 0x0f) <= 9)
- {
- mnc[0] = Dgt_tbcd.out[octs[2] & 0x0f];
- }
- else
- {
- mnc[0] = (octs[2] & 0x0f) + 55;
- }
-
- if (((octs[2] & 0xf0) >> 4) <= 9)
- {
- mnc[1] = Dgt_tbcd.out[(octs[2] & 0xf0) >> 4];
- }
- else
- {
- mnc[1] = ((octs[2] & 0xf0) >> 4) + 55;
- }
-
- if (mnc[1] == 'F')
- {
- /*
- * only a 1 digit MNC (very old)
- */
- mnc[1] = '\0';
- }
- else if (mnc[2] == 'F')
- {
- /*
- * only a 2 digit MNC
- */
- mnc[2] = '\0';
- }
- else
- {
- mnc[3] = '\0';
- }
-}
-
/* 3GPP TS 24.008
* [3] 10.5.1.1 Cell Identity
*/
@@ -2241,13 +2180,11 @@ de_ciph_key_seq_num( tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
guint16
de_lai(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
{
- guint8 octs[3];
guint16 value;
guint32 curr_offset;
proto_tree *subtree;
proto_item *item;
- gchar mcc[4];
- gchar mnc[4];
+ gchar *mcc_mnc_str;
curr_offset = offset;
@@ -2255,19 +2192,15 @@ de_lai(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guin
tvb, curr_offset, 5, ett_gsm_common_elem[DE_LAI], &item,
val_to_str_ext_const(DE_LAI, &gsm_common_elem_strings_ext, ""));
- octs[0] = tvb_get_guint8(tvb, curr_offset);
- octs[1] = tvb_get_guint8(tvb, curr_offset + 1);
- octs[2] = tvb_get_guint8(tvb, curr_offset + 2);
-
- mcc_mnc_aux(octs, mcc, mnc);
+ mcc_mnc_str = dissect_e212_mcc_mnc_wmem_packet_str(tvb, pinfo, subtree, curr_offset, E212_LAI, TRUE);
- curr_offset = dissect_e212_mcc_mnc(tvb, pinfo, subtree, curr_offset, E212_LAI, TRUE);
+ curr_offset += 3;
value = tvb_get_ntohs(tvb, curr_offset);
proto_tree_add_item(subtree, hf_gsm_a_lac, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
- proto_item_append_text(item, " - %s/%s/%u", mcc,mnc,value);
+ proto_item_append_text(item, " - %s, LAC %u", mcc_mnc_str, value);
curr_offset += 2;
@@ -2303,7 +2236,7 @@ de_mid(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guin
proto_tree_add_item(tree, hf_gsm_a_mobile_identity_type, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
if (add_string)
- g_snprintf(add_string, string_len, " - No Identity Code");
+ snprintf(add_string, string_len, " - No Identity Code");
curr_offset++;
@@ -2347,7 +2280,7 @@ de_mid(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guin
}
if (add_string)
- g_snprintf(add_string, string_len, " - %s (%s)",
+ snprintf(add_string, string_len, " - %s (%s)",
((oct & 0x07) == 3) ? "IMEISV" : "IMSI",
digit_str);
@@ -2379,7 +2312,7 @@ de_mid(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guin
digit_str);
if (add_string)
- g_snprintf(add_string, string_len, " - IMEI (%s)", digit_str);
+ snprintf(add_string, string_len, " - IMEI (%s)", digit_str);
curr_offset += len - (curr_offset - offset);
break;
@@ -2393,7 +2326,7 @@ de_mid(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guin
proto_tree_add_item_ret_uint(tree, hf_3gpp_tmsi, tvb, curr_offset, 4, ENC_BIG_ENDIAN, &value);
if (add_string)
- g_snprintf(add_string, string_len, " - TMSI/P-TMSI (0x%04x)", value);
+ snprintf(add_string, string_len, " - TMSI/P-TMSI (0x%04x)", value);
curr_offset += 4;
break;
@@ -2435,7 +2368,7 @@ de_mid(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guin
expert_add_info_format(pinfo, ti, &ei_gsm_a_mobile_identity_type, "Unknown format %u", (oct & 0x07));
if (add_string)
- g_snprintf(add_string, string_len, " - Format Unknown");
+ snprintf(add_string, string_len, " - Format Unknown");
curr_offset += len;
break;
@@ -3546,10 +3479,8 @@ de_ps_domain_spec_sys_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
guint16
de_plmn_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len)
{
- guint8 octs[3];
+ gchar *mcc_mnc_str;
guint32 curr_offset;
- gchar mcc[4];
- gchar mnc[4];
guint8 num_plmn;
proto_tree* subtree;
@@ -3558,15 +3489,9 @@ de_plmn_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset
num_plmn = 0;
while ((len - (curr_offset - offset)) >= 3)
{
- octs[0] = tvb_get_guint8(tvb, curr_offset);
- octs[1] = tvb_get_guint8(tvb, curr_offset + 1);
- octs[2] = tvb_get_guint8(tvb, curr_offset + 2);
-
- mcc_mnc_aux(octs, mcc, mnc);
-
subtree = proto_tree_add_subtree_format(tree, tvb, curr_offset, 3, ett_gsm_a_plmn, NULL, "PLMN[%u]", num_plmn + 1);
- proto_tree_add_string(subtree, hf_gsm_a_mobile_country_code, tvb, curr_offset, 3, mcc);
- proto_tree_add_string(subtree, hf_gsm_a_mobile_network_code, tvb, curr_offset, 3, mnc);
+ mcc_mnc_str = dissect_e212_mcc_mnc_wmem_packet_str(tvb, pinfo, subtree, curr_offset, E212_NONE, TRUE);
+ proto_item_append_text(subtree, ": %s", mcc_mnc_str);
curr_offset += 3;
@@ -3574,7 +3499,7 @@ de_plmn_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset
}
if (add_string)
- g_snprintf(add_string, string_len, " - %u PLMN%s",
+ snprintf(add_string, string_len, " - %u PLMN%s",
num_plmn, plurality(num_plmn, "", "s"));
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_gsm_a_extraneous_data);
@@ -3712,7 +3637,7 @@ static void gsm_a_stat_init(stat_tap_table_ui* new_stat, const char *table_title
if (msg_str) {
col_str = g_strdup(msg_str);
} else {
- col_str = g_strdup_printf("Unknown message %d", i);
+ col_str = ws_strdup_printf("Unknown message %d", i);
}
items[IEI_COLUMN].value.uint_value = i;
@@ -3802,61 +3727,61 @@ gsm_a_stat_packet(void *tapdata, const void *gatr_ptr, guint8 pdu_type, int prot
}
static tap_packet_status
-gsm_a_bssmap_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gatr_ptr)
+gsm_a_bssmap_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gatr_ptr, tap_flags_t flags _U_)
{
return gsm_a_stat_packet(tapdata, gatr_ptr, BSSAP_PDU_TYPE_BSSMAP, 0);
}
static tap_packet_status
-gsm_a_dtap_mm_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gatr_ptr)
+gsm_a_dtap_mm_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gatr_ptr, tap_flags_t flags _U_)
{
return gsm_a_stat_packet(tapdata, gatr_ptr, BSSAP_PDU_TYPE_DTAP, PD_MM);
}
static tap_packet_status
-gsm_a_dtap_rr_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gatr_ptr)
+gsm_a_dtap_rr_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gatr_ptr, tap_flags_t flags _U_)
{
return gsm_a_stat_packet(tapdata, gatr_ptr, BSSAP_PDU_TYPE_DTAP, PD_RR);
}
static tap_packet_status
-gsm_a_dtap_cc_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gatr_ptr)
+gsm_a_dtap_cc_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gatr_ptr, tap_flags_t flags _U_)
{
return gsm_a_stat_packet(tapdata, gatr_ptr, BSSAP_PDU_TYPE_DTAP, PD_CC);
}
static tap_packet_status
-gsm_a_dtap_gmm_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gatr_ptr)
+gsm_a_dtap_gmm_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gatr_ptr, tap_flags_t flags _U_)
{
return gsm_a_stat_packet(tapdata, gatr_ptr, BSSAP_PDU_TYPE_DTAP, PD_GMM);
}
static tap_packet_status
-gsm_a_dtap_sms_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gatr_ptr)
+gsm_a_dtap_sms_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gatr_ptr, tap_flags_t flags _U_)
{
return gsm_a_stat_packet(tapdata, gatr_ptr, BSSAP_PDU_TYPE_DTAP, PD_SMS);
}
static tap_packet_status
-gsm_a_dtap_sm_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gatr_ptr)
+gsm_a_dtap_sm_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gatr_ptr, tap_flags_t flags _U_)
{
return gsm_a_stat_packet(tapdata, gatr_ptr, BSSAP_PDU_TYPE_DTAP, PD_SM);
}
static tap_packet_status
-gsm_a_dtap_ss_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gatr_ptr)
+gsm_a_dtap_ss_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gatr_ptr, tap_flags_t flags _U_)
{
return gsm_a_stat_packet(tapdata, gatr_ptr, BSSAP_PDU_TYPE_DTAP, PD_SS);
}
static tap_packet_status
-gsm_a_dtap_tp_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gatr_ptr)
+gsm_a_dtap_tp_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gatr_ptr, tap_flags_t flags _U_)
{
return gsm_a_stat_packet(tapdata, gatr_ptr, BSSAP_PDU_TYPE_DTAP, PD_TP);
}
static tap_packet_status
-gsm_a_sacch_rr_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gatr_ptr)
+gsm_a_sacch_rr_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gatr_ptr, tap_flags_t flags _U_)
{
return gsm_a_stat_packet(tapdata, gatr_ptr, GSM_A_PDU_TYPE_SACCH, 0);
}
@@ -4093,7 +4018,7 @@ proto_register_gsm_a_common(void)
NULL, HFILL }
},
{ &hf_gsm_a_type_of_ciph_alg,
- { "Call priority", "gsm_a.call_prio",
+ { "Type of ciphering algorithm", "gsm_a.type_of_ciph_alg",
FT_UINT8, BASE_DEC, VALS(gsm_a_gm_type_of_ciph_alg_vals), 0x07,
NULL, HFILL }
},
@@ -4154,17 +4079,17 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_pgsm_supported,
{ "P-GSM Supported", "gsm_a.classmark3.pgsmSupported",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x0,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0,
NULL, HFILL}
},
{ &hf_gsm_a_egsm_supported,
{ "E-GSM or R-GSM Supported", "gsm_a.classmark3.egsmSupported",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x0,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0,
NULL, HFILL}
},
{ &hf_gsm_a_gsm1800_supported,
{ "GSM 1800 Supported", "gsm_a.classmark3.gsm1800Supported",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x0,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0,
NULL, HFILL}
},
{ &hf_gsm_a_ass_radio_cap1,
@@ -4184,7 +4109,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_rsupport,
{ "R Support", "gsm_a.classmark3.rsupport",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x0,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0,
NULL, HFILL}
},
{ &hf_gsm_a_r_capabilities,
@@ -4194,7 +4119,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_multislot_capabilities,
{ "HSCSD Multi Slot Capability", "gsm_a.classmark3.multislot_capabilities",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x0,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0,
NULL, HFILL}
},
{ &hf_gsm_a_multislot_class,
@@ -4209,12 +4134,12 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_extended_measurement_cap,
{ "Extended Measurement Capability", "gsm_a.classmark3.ext_meas_cap",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x0,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0,
NULL, HFILL}
},
{ &hf_gsm_a_ms_measurement_capability,
{ "MS measurement capability", "gsm_a.classmark3.ms_measurement_capability",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x0,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0,
NULL, HFILL}
},
{ &hf_gsm_a_sms_value,
@@ -4229,7 +4154,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_ms_pos_method_cap_present,
{ "MS Positioning Method Capability present", "gsm_a.classmark3.ms_pos_method_cap_present",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_ms_pos_method,
@@ -4264,7 +4189,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_ecsd_multi_slot_capability,
{ "ECSD Multi Slot Capability present", "gsm_a.classmark3.ecsd_multi_slot_capability",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_ecsd_multi_slot_class,
@@ -4274,7 +4199,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_8_psk_struct_present,
{ "8-PSK Struct present", "gsm_a.classmark3.8_psk_struct_present",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_8_psk_struct,
@@ -4289,7 +4214,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_8_psk_rf_power_capability_1_present,
{ "8-PSK RF Power Capability 1 present", "gsm_a.classmark3.8_psk_rf_power_capability_1_present",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_8_psk_rf_power_capability_1,
@@ -4299,7 +4224,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_8_psk_rf_power_capability_2_present,
{ "8-PSK RF Power Capability 2 present", "gsm_a.classmark3.8_psk_rf_power_capability_2_present",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_8_psk_rf_power_capability_2,
@@ -4309,7 +4234,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_gsm_400_band_info_present,
{ "GSM 400 Band Information present", "gsm_a.classmark3.gsm_400_band_info_present",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_gsm_400_bands_supported,
@@ -4324,7 +4249,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_gsm_850_assoc_radio_cap_present,
{ "GSM 850 Associated Radio Capability present", "gsm_a.classmark3.gsm_850_assoc_radio_cap_present",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_gsm_850_assoc_radio_cap,
@@ -4334,7 +4259,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_gsm_1900_assoc_radio_cap_present,
{ "GSM 1900 Associated Radio Capability present", "gsm_a.classmark3.gsm_1900_assoc_radio_cap_present",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_gsm_1900_assoc_radio_cap,
@@ -4359,7 +4284,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_dtm_e_gprs_multi_slot_info_present,
{ "DTM E/GPRS Multi Slot Information present", "gsm_a.classmark3.dtm_e_gprs_multi_slot_info_present",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_dtm_gprs_multi_slot_class,
@@ -4374,7 +4299,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_dtm_egprs_multi_slot_class_present,
{ "DTM EGPRS Multi Slot Class present", "gsm_a.classmark3.dtm_egprs_multi_slot_class_present",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_dtm_egprs_multi_slot_class,
@@ -4384,7 +4309,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_single_band_support,
{ "Single Band Support", "gsm_a.classmark3.single_band_support",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_gsm_band,
@@ -4394,7 +4319,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_gsm_750_assoc_radio_cap_present,
{ "GSM 750 Associated Radio Capability present", "gsm_a.classmark3.gsm_750_assoc_radio_cap_present",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_gsm_750_assoc_radio_cap,
@@ -4414,7 +4339,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_ext_dtm_e_gprs_multi_slot_info_present,
{ "Extended DTM E/GPRS Multi Slot Information present", "gsm_a.classmark3.ext_dtm_e_gprs_info_present",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_ext_dtm_gprs_multi_slot_class,
@@ -4429,7 +4354,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_high_multislot_cap_present,
{ "High Multislot Capability present", "gsm_a.classmark3.high_multislot_cap_present",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_high_multislot_cap,
@@ -4439,7 +4364,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_geran_iu_mode_support,
{ "GERAN Iu Mode Support", "gsm_a.classmark3.geran_iu_mode_support",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_geran_iu_mode_cap,
@@ -4474,7 +4399,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_t_gsm_400_band_info_present,
{ "T-GSM 400 Band Information present", "gsm_a.classmark3.gsm_400_band_info_present",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_t_gsm_400_bands_supported,
@@ -4489,7 +4414,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_t_gsm_900_assoc_radio_cap_present,
{ "T-GSM 900 Associated Radio Capability present", "gsm_a.classmark3.t_gsm_900_assoc_radio_cap_present",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_t_gsm_900_assoc_radio_cap,
@@ -4509,7 +4434,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_dtm_e_gprs_high_multi_slot_info_present,
{ "DTM E/GPRS High Multi Slot Information present", "gsm_a.classmark3.dtm_e_gprs_high_mutli_slot_info_present",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_dtm_gprs_high_multi_slot_class,
@@ -4524,7 +4449,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_dtm_egprs_high_multi_slot_class_present,
{ "DTM EGPRS High Multi Slot Class present", "gsm_a.classmark3.dtm_egprs_high_multi_slot_class_present",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_dtm_egprs_high_multi_slot_class,
@@ -4539,7 +4464,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_gsm_710_assoc_radio_cap_present,
{ "GSM 710 Associated Radio Capability present", "gsm_a.classmark3.gsm_710_assoc_radio_cap_present",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_gsm_710_assoc_radio_cap,
@@ -4549,7 +4474,7 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_t_gsm_810_assoc_radio_cap_present,
{ "T-GSM 810 Associated Radio Capability present", "gsm_a.classmark3.t_gsm_810_assoc_radio_cap_present",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_t_gsm_810_assoc_radio_cap,
@@ -4619,32 +4544,32 @@ proto_register_gsm_a_common(void)
},
{ &hf_gsm_a_geran_network_sharing_support,
{ "GERAN Network Sharing support", "gsm_a.classmark3.geran_network_sharing_support",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_eutra_wb_rsrq_support,
{ "E-UTRA Wideband RSRQ measurements support", "gsm_a.classmark3.eutra_wb_rsrq_support",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_er_band_support,
{ "ER Band support", "gsm_a.classmark3.er_band_support",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_utra_mfbi_support,
{ "UTRA Multiple Frequency Band Indicators support", "gsm_a.classmark3.utra_mfbi_support",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_eutra_mfbi_support,
{ "E-UTRA Multiple Frequency Band Indicators support", "gsm_a.classmark3.eutra_mfbi_support",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_ext_tsc_set_cap_support,
{ "Extended TSC Set Capability support", "gsm_a.classmark3.ext_tsc_set_cap_support",
- FT_BOOLEAN, BASE_NONE, TFS(&tfs_true_false), 0x00,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00,
NULL, HFILL}
},
{ &hf_gsm_a_ext_earfcn_value_range,
@@ -4707,16 +4632,31 @@ proto_register_gsm_a_common(void)
FT_UINT8, BASE_DEC, NULL, 0x7f,
NULL, HFILL }
},
+ { &hf_gsm_a_geo_loc_uncertainty_range,
+ { "Uncertainty Range", "gsm_a.gad.uncertainty_range",
+ FT_UINT8, BASE_DEC, VALS(uncertainty_range), 0x80,
+ NULL, HFILL }
+ },
{ &hf_gsm_a_geo_loc_horizontal_confidence,
{ "Horizontal confidence(%)", "gsm_a.gad.horizontal_confidence",
FT_UINT8, BASE_DEC, NULL, 0x7f,
NULL, HFILL }
},
+ { &hf_gsm_a_geo_loc_horizontal_uncertainty_range,
+ { "Horizontal Uncertainty Range", "gsm_a.gad.horizontal_uncertainty_range",
+ FT_UINT8, BASE_DEC, VALS(uncertainty_range), 0x80,
+ NULL, HFILL }
+ },
{ &hf_gsm_a_geo_loc_vertical_confidence,
{ "Vertical Confidence(%)", "gsm_a.gad.vertical_confidence",
FT_UINT8, BASE_DEC, NULL, 0x7f,
NULL, HFILL }
},
+ { &hf_gsm_a_geo_loc_vertical_uncertainty_range,
+ { "Vertical Uncertainty Range", "gsm_a.gad.vertical_uncertainty_range",
+ FT_UINT8, BASE_DEC, VALS(uncertainty_range), 0x80,
+ NULL, HFILL }
+ },
{ &hf_gsm_a_geo_loc_high_acc_uncertainty_alt,
{ "High accuracy uncertainty altitude", "gsm_a.gad.high_acc_uncertainty_alt",
FT_UINT8, BASE_DEC, NULL, 0x0,
@@ -4846,8 +4786,6 @@ proto_register_gsm_a_common(void)
{ &hf_gsm_a_call_priority, { "Call Priority", "gsm_a.call_priority", FT_UINT32, BASE_DEC, VALS(gsm_a_call_priority_vals), 0x00000007, NULL, HFILL }},
{ &hf_gsm_a_ciphering_info, { "Ciphering Information", "gsm_a.ciphering_info", FT_UINT8, BASE_HEX, NULL, 0xf0, NULL, HFILL }},
{ &hf_gsm_a_sapi, { "SAPI (Service Access Point Identifier)", "gsm_a.sapi", FT_UINT8, BASE_DEC, VALS(gsm_a_sapi_vals), 0x30, NULL, HFILL }},
- { &hf_gsm_a_mobile_country_code, { "Mobile Country Code (MCC)", "gsm_a.mobile_country_code", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
- { &hf_gsm_a_mobile_network_code, { "Mobile Network Code (MNC)", "gsm_a.mobile_network_code", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
};
/* Setup protocol subtree array */
@@ -5037,7 +4975,6 @@ proto_register_gsm_a_common(void)
ett[1] = &ett_gsm_a_poly_pnt;
for (i=0; i < NUM_GSM_COMMON_ELEM; i++, last_offset++)
{
- ett_gsm_common_elem[i] = -1;
ett[last_offset] = &ett_gsm_common_elem[i];
}