![Michael Mann](/assets/img/avatar_default.png)
Change-Id: I0d485b1337c669291ad58b6c096657ce2db353c8 Reviewed-on: https://code.wireshark.org/review/12516 Reviewed-by: Michael Mann <mmann78@netscape.net>
5495 lines
194 KiB
C
5495 lines
194 KiB
C
/* packet-wimaxmacphy.c
|
|
* Routines for wimaxmacphy (WiMAX MAX PHY over Ethernet) packet dissection
|
|
* Copyright 2008, Mobile Metrics - http://mobilemetrics.net/
|
|
*
|
|
* Wireshark - Network traffic analyzer
|
|
* By Gerald Combs <gerald@wireshark.org>
|
|
* Copyright 1998 Gerald Combs
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
|
* USA.
|
|
*/
|
|
|
|
#include "config.h"
|
|
|
|
#include <epan/packet.h>
|
|
#include <epan/prefs.h>
|
|
#include <epan/expert.h>
|
|
|
|
/* IF PROTO exposes code to other dissectors, then it must be exported
|
|
in a header file. If not, a header file is not needed at all. */
|
|
#include "packet-wimaxmacphy.h"
|
|
|
|
/* Initialize the protocol and registered fields */
|
|
|
|
static int proto_wimaxmacphy = -1;
|
|
static int hf_wimaxmacphy_hdr_phy_entity_id = -1;
|
|
static int hf_wimaxmacphy_hdr_message_segmentation = -1;
|
|
static int hf_wimaxmacphy_hdr_message_type = -1;
|
|
static int hf_wimaxmacphy_unknown = -1;
|
|
static int hf_wimaxmacphy_prim_length_of_txvector = -1;
|
|
static int hf_wimaxmacphy_prim_length_of_rxvector = -1;
|
|
static int hf_wimaxmacphy_prim_status = -1;
|
|
static int hf_wimaxmacphy_prim_txstart_indication_status = -1;
|
|
static int hf_wimaxmacphy_prim_reserved1 = -1;
|
|
static int hf_wimaxmacphy_prim_reserved2 = -1;
|
|
static int hf_wimaxmacphy_prim_reserved3 = -1;
|
|
static int hf_wimaxmacphy_prim_reserved4 = -1;
|
|
static int hf_wimaxmacphy_prim_reserved5 = -1;
|
|
static int hf_wimaxmacphy_prim_next_frame_number = -1;
|
|
static int hf_wimaxmacphy_prim_extended_frame_number = -1;
|
|
static int hf_wimaxmacphy_prim_current_frame_number_lsn = -1;
|
|
static int hf_wimaxmacphy_prim_initial_frame_number = -1;
|
|
static int hf_wimaxmacphy_prim_dl_zone_number = -1;
|
|
static int hf_wimaxmacphy_prim_sub_burst_burst_split_point = -1;
|
|
static int hf_wimaxmacphy_prim_dl_sub_burst_burst_number = -1;
|
|
static int hf_wimaxmacphy_prim_phy_sdu = -1;
|
|
static int hf_wimaxmacphy_prim_phy_request = -1;
|
|
static int hf_wimaxmacphy_prim_requested_aas_calibration_zone_size = -1;
|
|
static int hf_wimaxmacphy_prim_requested_aas_calibration_zone_alloc = -1;
|
|
static int hf_wimaxmacphy_prim_number_of_consecutive_frames_with_aas = -1;
|
|
static int hf_wimaxmacphy_prim_frame_number = -1;
|
|
static int hf_wimaxmacphy_prim_issid = -1;
|
|
static int hf_wimaxmacphy_prim_integrity = -1;
|
|
static int hf_wimaxmacphy_prim_number_of_bytes_received = -1;
|
|
static int hf_wimaxmacphy_prim_rssi_per_subcarrier_level = -1;
|
|
static int hf_wimaxmacphy_prim_cinr = -1;
|
|
static int hf_wimaxmacphy_prim_power_offset = -1;
|
|
static int hf_wimaxmacphy_prim_current_frame_number_msn = -1;
|
|
static int hf_wimaxmacphy_prim_acid_for_harq_data_bursts = -1;
|
|
static int hf_wimaxmacphy_prim_indication_type = -1;
|
|
static int hf_wimaxmacphy_prim_zone_permutation_type = -1;
|
|
static int hf_wimaxmacphy_prim_update_aas_handle_in_mac = -1;
|
|
static int hf_wimaxmacphy_prim_aas_handle = -1;
|
|
static int hf_wimaxmacphy_prim_time_deviation = -1;
|
|
static int hf_wimaxmacphy_prim_frequency_deviation = -1;
|
|
static int hf_wimaxmacphy_prim_phy_aas_report_present = -1;
|
|
static int hf_wimaxmacphy_prim_number_of_affected_ss = -1;
|
|
static int hf_wimaxmacphy_prim_zonexid = -1;
|
|
static int hf_wimaxmacphy_prim_cdma_code = -1;
|
|
static int hf_wimaxmacphy_prim_cdma_symbol = -1;
|
|
static int hf_wimaxmacphy_prim_cdma_subchannel = -1;
|
|
static int hf_wimaxmacphy_prim_harq_ack_issid = -1;
|
|
static int hf_wimaxmacphy_prim_harq_ack_acid = -1;
|
|
static int hf_wimaxmacphy_prim_harq_ack_reserved1 = -1;
|
|
static int hf_wimaxmacphy_prim_harq_ack_ack_valid = -1;
|
|
static int hf_wimaxmacphy_prim_harq_ack_unnamed = -1;
|
|
static int hf_wimaxmacphy_prim_harq_ack_reserved2 = -1;
|
|
static int hf_wimaxmacphy_prim_fast_issid = -1;
|
|
static int hf_wimaxmacphy_prim_fast_cqich_id = -1;
|
|
static int hf_wimaxmacphy_prim_fast_feedback_type_coding = -1;
|
|
static int hf_wimaxmacphy_prim_fast_feedback_type_coding_bit0 = -1;
|
|
static int hf_wimaxmacphy_prim_fast_feedback_type_coding_bit1 = -1;
|
|
static int hf_wimaxmacphy_prim_fast_feedback_type_coding_bit2 = -1;
|
|
static int hf_wimaxmacphy_prim_fast_feedback_type_coding_bit3 = -1;
|
|
static int hf_wimaxmacphy_prim_fast_feedback_type_coding_bit4 = -1;
|
|
static int hf_wimaxmacphy_prim_fast_feedback_type_coding_bit5 = -1;
|
|
static int hf_wimaxmacphy_prim_fast_feedback_type_coding_bit6 = -1;
|
|
static int hf_wimaxmacphy_prim_fast_feedback_type_coding_bit7 = -1;
|
|
static int hf_wimaxmacphy_prim_fast_feedback_valid = -1;
|
|
static int hf_wimaxmacphy_prim_fast_feedback_sub_type = -1;
|
|
static int hf_wimaxmacphy_prim_fast_reserved = -1;
|
|
static int hf_wimaxmacphy_prim_fast_feedback_value = -1;
|
|
static int hf_wimaxmacphy_subframe_subframe_type = -1;
|
|
static int hf_wimaxmacphy_subframe_frame_number = -1;
|
|
static int hf_wimaxmacphy_subframe_downlink_reserved1 = -1;
|
|
static int hf_wimaxmacphy_subframe_phy_sap_version_number = -1;
|
|
static int hf_wimaxmacphy_subframe_downlink_reserved2 = -1;
|
|
static int hf_wimaxmacphy_subframe_allocation_start_time = -1;
|
|
static int hf_wimaxmacphy_number_of_zone_descriptors = -1;
|
|
static int hf_wimaxmacphy_zone_padding = -1;
|
|
static int hf_wimaxmacphy_dl_zone_type = -1;
|
|
static int hf_wimaxmacphy_ul_zone_type = -1;
|
|
static int hf_wimaxmacphy_zone_number = -1;
|
|
static int hf_wimaxmacphy_zone_start_symbol_offset = -1;
|
|
static int hf_wimaxmacphy_zone_end_symbol_offset = -1;
|
|
static int hf_wimaxmacphy_dl_zone_permutation_type = -1;
|
|
static int hf_wimaxmacphy_ul_zone_permutation_type = -1;
|
|
static int hf_wimaxmacphy_dl_zone_use_all_subchannels_indicator = -1;
|
|
static int hf_wimaxmacphy_ul_zone_use_all_subchannels_indicator = -1;
|
|
static int hf_wimaxmacphy_ul_zone_disable_pusc_subchannel_rotation = -1;
|
|
static int hf_wimaxmacphy_zone_dl_perm_base = -1;
|
|
static int hf_wimaxmacphy_zone_ul_perm_base = -1;
|
|
static int hf_wimaxmacphy_zone_prbs_id = -1;
|
|
static int hf_wimaxmacphy_zone_agc_range_extension = -1;
|
|
static int hf_wimaxmacphy_zone_dedicated_pilots = -1;
|
|
static int hf_wimaxmacphy_zone_reserved = -1;
|
|
static int hf_wimaxmacphy_zone_stc_type = -1;
|
|
static int hf_wimaxmacphy_zone_matrix_indicator = -1;
|
|
static int hf_wimaxmacphy_zone_midamble_presence = -1;
|
|
static int hf_wimaxmacphy_zone_midamble_boosting = -1;
|
|
static int hf_wimaxmacphy_zone_preamble_configuration = -1;
|
|
static int hf_wimaxmacphy_zone_sdma_supported_indication = -1;
|
|
static int hf_wimaxmacphy_zone_preamble_type = -1;
|
|
static int hf_wimaxmacphy_dl_zone_aas_reserved = -1;
|
|
static int hf_wimaxmacphy_ul_zone_aas_reserved = -1;
|
|
static int hf_wimaxmacphy_number_of_burst_descriptors = -1;
|
|
static int hf_wimaxmacphy_burst_padding = -1;
|
|
static int hf_wimaxmacphy_dl_burst_type = -1;
|
|
static int hf_wimaxmacphy_ul_burst_type = -1;
|
|
static int hf_wimaxmacphy_burst_type_extension = -1;
|
|
static int hf_wimaxmacphy_burst_number = -1;
|
|
static int hf_wimaxmacphy_burst_modulation_fec_code_type = -1;
|
|
static int hf_wimaxmacphy_burst_data_length = -1;
|
|
static int hf_wimaxmacphy_burst_ofdma_symbol_offset = -1;
|
|
static int hf_wimaxmacphy_burst_subchannel_offset = -1;
|
|
static int hf_wimaxmacphy_burst_boosting = -1;
|
|
static int hf_wimaxmacphy_burst_reserved = -1;
|
|
static int hf_wimaxmacphy_burst_repetition_coding_indication = -1;
|
|
static int hf_wimaxmacphy_burst_issid = -1;
|
|
static int hf_wimaxmacphy_burst_aas_handle = -1;
|
|
static int hf_wimaxmacphy_dl_burst_map_number_of_slots = -1;
|
|
static int hf_wimaxmacphy_dl_burst_map_reserved = -1;
|
|
static int hf_wimaxmacphy_dl_burst_normal_number_of_symbols = -1;
|
|
static int hf_wimaxmacphy_dl_burst_normal_number_of_subchannels = -1;
|
|
static int hf_wimaxmacphy_dl_burst_normal_aas_handle = -1;
|
|
static int hf_wimaxmacphy_ul_burst_normal_number_of_slots = -1;
|
|
static int hf_wimaxmacphy_ul_burst_normal_reserved = -1;
|
|
static int hf_wimaxmacphy_burst_papr_number_of_symbols = -1;
|
|
static int hf_wimaxmacphy_burst_papr_number_of_subchannels = -1;
|
|
static int hf_wimaxmacphy_burst_papr_reserved = -1;
|
|
static int hf_wimaxmacphy_ul_burst_papr_unnamed = -1;
|
|
static int hf_wimaxmacphy_ul_burst_harq_ack_number_of_symbols = -1;
|
|
static int hf_wimaxmacphy_ul_burst_harq_ack_number_of_subchannels = -1;
|
|
static int hf_wimaxmacphy_ul_burst_harq_ack_reserved = -1;
|
|
static int hf_wimaxmacphy_ul_burst_fast_number_of_symbols = -1;
|
|
static int hf_wimaxmacphy_ul_burst_fast_number_of_subchannels = -1;
|
|
static int hf_wimaxmacphy_ul_burst_fast_reserved = -1;
|
|
static int hf_wimaxmacphy_ul_burst_initial_number_of_symbols = -1;
|
|
static int hf_wimaxmacphy_ul_burst_initial_number_of_subchannels = -1;
|
|
static int hf_wimaxmacphy_ul_burst_initial_ranging_method = -1;
|
|
static int hf_wimaxmacphy_ul_burst_initial_reserved1 = -1;
|
|
static int hf_wimaxmacphy_ul_burst_initial_zone_xid = -1;
|
|
static int hf_wimaxmacphy_ul_burst_initial_reserved2 = -1;
|
|
static int hf_wimaxmacphy_ul_burst_periodic_number_of_symbols = -1;
|
|
static int hf_wimaxmacphy_ul_burst_periodic_number_of_subchannels = -1;
|
|
static int hf_wimaxmacphy_ul_burst_periodic_ranging_method = -1;
|
|
static int hf_wimaxmacphy_ul_burst_periodic_reserved1 = -1;
|
|
static int hf_wimaxmacphy_ul_burst_periodic_zone_xid = -1;
|
|
static int hf_wimaxmacphy_ul_burst_periodic_reserved2 = -1;
|
|
static int hf_wimaxmacphy_ul_burst_sounding_number_of_symbols = -1;
|
|
static int hf_wimaxmacphy_ul_burst_sounding_number_of_subchannels = -1;
|
|
static int hf_wimaxmacphy_ul_burst_sounding_type = -1;
|
|
static int hf_wimaxmacphy_ul_burst_sounding_separability_type = -1;
|
|
static int hf_wimaxmacphy_ul_burst_sounding_max_cyclic_shift_indx = -1;
|
|
static int hf_wimaxmacphy_ul_burst_sounding_decimation_value = -1;
|
|
static int hf_wimaxmacphy_ul_burst_sounding_decimation_offset_rand = -1;
|
|
static int hf_wimaxmacphy_ul_burst_sounding_reserved = -1;
|
|
static int hf_wimaxmacphy_ul_burst_noise_number_of_symbols = -1;
|
|
static int hf_wimaxmacphy_ul_burst_noise_number_of_subchannels = -1;
|
|
static int hf_wimaxmacphy_ul_burst_noise_reserved = -1;
|
|
static int hf_wimaxmacphy_burst_opt_aas_preamble_modifier_type = -1;
|
|
static int hf_wimaxmacphy_burst_opt_aas_preamble_shift_index = -1;
|
|
static int hf_wimaxmacphy_burst_opt_aas_reserved = -1;
|
|
static int hf_wimaxmacphy_burst_opt_mimo_matrix_indicator = -1;
|
|
static int hf_wimaxmacphy_burst_opt_mimo_layer_index = -1;
|
|
static int hf_wimaxmacphy_dl_burst_opt_mimo_reserved = -1;
|
|
static int hf_wimaxmacphy_ul_burst_opt_mimo_matrix_indicator = -1;
|
|
static int hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns = -1;
|
|
static int hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit0 = -1;
|
|
static int hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit1 = -1;
|
|
static int hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit2 = -1;
|
|
static int hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit3 = -1;
|
|
static int hf_wimaxmacphy_ul_burst_opt_mimo_collaborative = -1;
|
|
static int hf_wimaxmacphy_ul_burst_opt_mimo_antenna_unnamed = -1;
|
|
static int hf_wimaxmacphy_number_of_sub_burst_descriptors = -1;
|
|
static int hf_wimaxmacphy_sub_burst_padding = -1;
|
|
static int hf_wimaxmacphy_dl_sub_burst_type = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_type = -1;
|
|
static int hf_wimaxmacphy_sub_burst_number = -1;
|
|
static int hf_wimaxmacphy_sub_burst_symbol_offset = -1;
|
|
static int hf_wimaxmacphy_sub_burst_subchannel_offset = -1;
|
|
static int hf_wimaxmacphy_sub_burst_number_of_slots = -1;
|
|
static int hf_wimaxmacphy_sub_burst_reserved1 = -1;
|
|
static int hf_wimaxmacphy_sub_burst_reserved2 = -1;
|
|
static int hf_wimaxmacphy_sub_burst_modulation_fec_code_type = -1;
|
|
static int hf_wimaxmacphy_sub_burst_issid = -1;
|
|
static int hf_wimaxmacphy_sub_burst_aas_handle = -1;
|
|
static int hf_wimaxmacphy_sub_burst_boosting = -1;
|
|
static int hf_wimaxmacphy_sub_burst_repetition_coding_indication = -1;
|
|
static int hf_wimaxmacphy_sub_burst_data_length = -1;
|
|
static int hf_wimaxmacphy_sub_burst_harq_chase_harq_channel_id = -1;
|
|
static int hf_wimaxmacphy_sub_burst_harq_chase_harq_sequence_number = -1;
|
|
static int hf_wimaxmacphy_sub_burst_harq_chase_flush_unnamed = -1;
|
|
static int hf_wimaxmacphy_sub_burst_harq_chase_reserved = -1;
|
|
static int hf_wimaxmacphy_sub_burst_mimo_chase_harq_channel_id = -1;
|
|
static int hf_wimaxmacphy_sub_burst_mimo_chase_harq_sequence_number = -1;
|
|
static int hf_wimaxmacphy_sub_burst_mimo_chase_flush_unnamed = -1;
|
|
static int hf_wimaxmacphy_sub_burst_mimo_chase_layer_index = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_ctype = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_mini_subchannel_index = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_mini_reserved = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_feedback_type_coding = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit0 = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit1 = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit2 = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit3 = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit4 = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit5 = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit6 = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit7 = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_feedback_reserved1 = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_feedback_sub_type = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_feedback_cqich_id = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_feedback_reserved2 = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_feedback_slot_offset = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_harq_ack_acid = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_harq_ack_reserved = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_sounding_symbol_index = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_sounding_power_assignment = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_sounding_power_boost = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_sounding_allocation_mode = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_sounding_start_freq_band = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_sounding_num_freq_bands = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_sounding_band_bit_map = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_sounding_cyclic_time_shift = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_sounding_decimation_offset = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_sounding_reserved = -1;
|
|
static int hf_wimaxmacphy_ul_sub_burst_mimo_chase_matrix = -1;
|
|
|
|
/* Initialize the subtree pointers */
|
|
static gint ett_wimaxmacphy = -1;
|
|
static gint ett_wimaxmacphy_primitive = -1;
|
|
static gint ett_wimaxmacphy_prim_harq_ack = -1;
|
|
static gint ett_wimaxmacphy_prim_fast_feedback = -1;
|
|
static gint ett_wimaxmacphy_prim_fast_feedback_type_coding = -1;
|
|
static gint ett_wimaxmacphy_dl_zone_descriptor = -1;
|
|
static gint ett_wimaxmacphy_dl_zone_stc = -1;
|
|
static gint ett_wimaxmacphy_dl_zone_aas = -1;
|
|
static gint ett_wimaxmacphy_dl_burst_descriptor = -1;
|
|
static gint ett_wimaxmacphy_dl_burst_map = -1;
|
|
static gint ett_wimaxmacphy_dl_burst_normal = -1;
|
|
static gint ett_wimaxmacphy_dl_burst_papr = -1;
|
|
static gint ett_wimaxmacphy_dl_sub_burst_descriptor = -1;
|
|
static gint ett_wimaxmacphy_dl_sub_burst_harq_chase = -1;
|
|
static gint ett_wimaxmacphy_dl_sub_burst_mimo_chase = -1;
|
|
static gint ett_wimaxmacphy_dl_burst_opt_aas = -1;
|
|
static gint ett_wimaxmacphy_dl_burst_opt_mimo = -1;
|
|
static gint ett_wimaxmacphy_ul_zone_descriptor = -1;
|
|
static gint ett_wimaxmacphy_ul_zone_aas = -1;
|
|
static gint ett_wimaxmacphy_ul_burst_descriptor = -1;
|
|
static gint ett_wimaxmacphy_ul_burst_harq_ack = -1;
|
|
static gint ett_wimaxmacphy_ul_burst_fast_feedback = -1;
|
|
static gint ett_wimaxmacphy_ul_burst_initial_ranging = -1;
|
|
static gint ett_wimaxmacphy_ul_burst_periodic_ranging = -1;
|
|
static gint ett_wimaxmacphy_ul_burst_papr_safety_zone = -1;
|
|
static gint ett_wimaxmacphy_ul_burst_sounding_zone = -1;
|
|
static gint ett_wimaxmacphy_ul_burst_noise_floor = -1;
|
|
static gint ett_wimaxmacphy_ul_burst_normal_data = -1;
|
|
static gint ett_wimaxmacphy_ul_burst_opt_aas = -1;
|
|
static gint ett_wimaxmacphy_ul_burst_opt_mimo = -1;
|
|
static gint ett_wimaxmacphy_ul_sub_burst_descriptor = -1;
|
|
static gint ett_wimaxmacphy_ul_pilot_patterns = -1;
|
|
static gint ett_wimaxmacphy_ul_feedback_type_coding = -1;
|
|
static gint ett_wimaxmacphy_ul_sub_burst_mini_subchannel = -1;
|
|
static gint ett_wimaxmacphy_ul_sub_burst_fast_feedback = -1;
|
|
static gint ett_wimaxmacphy_ul_sub_burst_harq_ack = -1;
|
|
static gint ett_wimaxmacphy_ul_sub_burst_sounding_signal = -1;
|
|
static gint ett_wimaxmacphy_ul_sub_burst_harq_chase = -1;
|
|
static gint ett_wimaxmacphy_ul_sub_burst_mimo_chase = -1;
|
|
static gint ett_wimaxmacphy_ul_sub_burst_sub_allocation_specific = -1;
|
|
|
|
static expert_field ei_wimaxmacphy_unknown = EI_INIT;
|
|
|
|
/* Preferences */
|
|
static guint wimaxmacphy_udp_port = 0;
|
|
|
|
|
|
/* PHY SAP message header size */
|
|
#define WIMAXMACPHY_HEADER_SIZE 2
|
|
|
|
#define WIMAXMACPHY_BIT(n) (1 << (n))
|
|
|
|
#define WIMAXMACPHY_PHY_TXSTART_REQUEST 1
|
|
#define WIMAXMACPHY_PHY_TXSTART_CONFIRMATION 2
|
|
#define WIMAXMACPHY_PHY_TXSTART_INDICATION 3
|
|
#define WIMAXMACPHY_PHY_TXSDU_REQUEST 4
|
|
#define WIMAXMACPHY_PHY_TXSDU_CONFIRMATION 5
|
|
#define WIMAXMACPHY_PHY_TXEND_INDICATION 6
|
|
#define WIMAXMACPHY_PHY_RXSTART_REQUEST 7
|
|
#define WIMAXMACPHY_PHY_RXSTART_CONFIRMATION 8
|
|
#define WIMAXMACPHY_PHY_RXSTART_INDICATION 9
|
|
#define WIMAXMACPHY_PHY_RXSDU_INDICATION 10
|
|
#define WIMAXMACPHY_PHY_RXEND_INDICATION 11
|
|
#define WIMAXMACPHY_PHY_RXCDMA_INDICATION 15
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_message_segmentation_vals[] =
|
|
{
|
|
{ 0x00, "Middle segment of the message segment sequence"},
|
|
{ 0x01, "Last segment of the message segment sequence"},
|
|
{ 0x02, "First segment of the message segment sequence"},
|
|
{ 0x03, "The entire message is contained in this segment"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_message_type_vals[] =
|
|
{
|
|
{ 0, "Reserved"},
|
|
{ 1, "PHY_TXSTART.request"},
|
|
{ 2, "PHY_TXSTART.confirmation"},
|
|
{ 3, "PHY_TXSTART.indication"},
|
|
{ 4, "PHY_TXSDU.request"},
|
|
{ 5, "PHY_TXSDU.confirmation"},
|
|
{ 6, "PHY_TXEND.indication"},
|
|
{ 7, "PHY_RXSTART.request"},
|
|
{ 8, "PHY_RXSTART.confirmation"},
|
|
{ 9, "PHY_RXSTART.indication"},
|
|
{ 10, "PHY_RXSDU.indication"},
|
|
{ 11, "PHY_RXEND.indication"},
|
|
{ 12, "Reserved (OFDM)"},
|
|
{ 13, "Reserved (OFDM)"},
|
|
{ 14, "Reserved (OFDM)"},
|
|
{ 15, "PHY_RXCDMA.indication"},
|
|
{ 16, "Reserved (OFDMA SS)"},
|
|
{ 17, "Reserved (OFDMA SS)"},
|
|
{ 0, NULL}
|
|
};
|
|
#if 0 /* XXX: 'tshark -G values' gives warning on Windows' */
|
|
static value_string_ext wimaxmacphy_message_type_vals_ext = VALUE_STRING_EXT_INIT(wimaxmacphy_message_type_vals);
|
|
#endif
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
/* error code field coding, for all but TXSTART.indication
|
|
*/
|
|
static const value_string wimaxmacphy_prim_status_vals[]=
|
|
{
|
|
{ 0, "Success"},
|
|
{ 1, "Primitive is not supported"},
|
|
{ 2, "FEC code type is not supported"},
|
|
{ 3, "Overrun"},
|
|
{ 4, "Underrun"},
|
|
{ 5, "Transport Media Error"},
|
|
{ 6, "TX data size do not match TXVECTOR"},
|
|
{ 7, "Invalid RX/TX VECTOR format"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ---------------------------------------------------------------------------
|
|
* error code field coding, TXSTART.indication specific, delta is description
|
|
* for value 1
|
|
*/
|
|
|
|
static const value_string wimaxmacphy_prim_txstart_indication_status_vals[]=
|
|
{
|
|
{ 0, "Success"},
|
|
{ 1, "Restart flag"},
|
|
{ 2, "FEC code type is not supported"},
|
|
{ 3, "Overrun"},
|
|
{ 4, "Underrun"},
|
|
{ 5, "Transport Media Error"},
|
|
{ 6, "TX data size do not match TXVECTOR"},
|
|
{ 7, "Invalid RX/TX VECTOR format"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
#if 0
|
|
static const value_string wimaxmacphy_prim_sub_burst_burst_split_point_vals[]=
|
|
{
|
|
{ 0x00, "all 10 bits for burst number"},
|
|
{ 0x01, "1 bit sub-burst and 9 bits burst number"},
|
|
{ 0x02, "2 bit sub-burst and 8 bits burst number"},
|
|
{ 0x03, "3 bit sub-burst and 7 bits burst number"},
|
|
{ 0x04, "4 bit sub-burst and 6 bits burst number"},
|
|
{ 0x05, "5 bit sub-burst and 5 bits burst number"},
|
|
{ 0x06, "6 bit sub-burst and 4 bits burst number"},
|
|
{ 0x07, "7 bit sub-burst and 3 bits burst number"},
|
|
{ 0, NULL}
|
|
};
|
|
#endif
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
#if 0
|
|
static const value_string wimaxmacphy_prim_phy_request_vals[]=
|
|
{
|
|
{ 0x0, "LW 1 not present"},
|
|
{ 0x1, "AAS calibration request present in LW 1"},
|
|
{ 0, NULL}
|
|
};
|
|
#endif
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_prim_integrity_vals[]=
|
|
{
|
|
{ 0, "valid data"},
|
|
{ 1, "invalid data"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_prim_indication_type_vals[]=
|
|
{
|
|
{ 0, "Data burst"},
|
|
{ 1, "HARQ ACK channel"},
|
|
{ 2, "Fast Feedback Channel"},
|
|
{ 3, "HARQ data burst"},
|
|
{ 4, "MIMO data burst"},
|
|
{ 5, "MIMO HARQ data burst"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_prim_zone_permutation_type_vals[]=
|
|
{
|
|
{ 0x0, "PUSC"},
|
|
{ 0x1, "Optional PUSC"},
|
|
{ 0x2, "AMC - 1 x 6"},
|
|
{ 0x3, "AMC - 2 x 3"},
|
|
{ 0x4, "AMC - 3 x 2"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_prim_phy_aas_report_present_vals[]=
|
|
{
|
|
{ 0x0, " not present (only LW 0 is significant)"},
|
|
{ 0x1, "AAS info aged out report present"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_prim_harq_ack_ack_valid_vals[]=
|
|
{
|
|
{ 0, "valid data"},
|
|
{ 1, "invalid data"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
static const true_false_string set_notset = {
|
|
"Set",
|
|
"Not set"
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_prim_harq_ack_unnamed_vals[]=
|
|
{
|
|
{ 0, "ACK"},
|
|
{ 1, "NAK"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_prim_fast_feedback_valid_vals[]=
|
|
{
|
|
{ 0, "valid data"},
|
|
{ 1, "invalid data"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static
|
|
const value_string wimaxmacphy_prim_fast_feedback_sub_type_vals[]=
|
|
{
|
|
{ 0, "CQI (CINR) measurement"},
|
|
{ 1, "Control feedback"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_subframe_type_vals[]=
|
|
{
|
|
{ 1, "Downlink Subframe"},
|
|
{ 2, "Uplink Subframe"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_dl_zone_type_vals[]=
|
|
{
|
|
{ 0x20, "Normal Zone Parameters"},
|
|
{ 0x21, "STC Zone Parameters"},
|
|
{ 0x22, "AAS Zone Parameters"},
|
|
{ 0x23, "Common Sync Symbol Parameters"},
|
|
{ 0x24, "AAS Calibration Zone"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_ul_zone_type_vals[]=
|
|
{
|
|
{ 0x20, "Normal Zone Parameters"},
|
|
{ 0x21, "Reserved"},
|
|
{ 0x22, "AAS Zone Parameters"},
|
|
{ 0x23, "Reserved"},
|
|
{ 0x24, "Reserved"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_dl_zone_permutation_type_vals[]=
|
|
{
|
|
{ 0x00, "PUSC"},
|
|
{ 0x01, "FUSC"},
|
|
{ 0x02, "Optional FUSC"},
|
|
{ 0x03, "AMC - 1 x 6"},
|
|
{ 0x04, "AMC - 2 x 3"},
|
|
{ 0x05, "AMC - 3 x 2"},
|
|
{ 0x06, "TUSC1"},
|
|
{ 0x07, "TUSC2"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_ul_zone_permutation_type_vals[]=
|
|
{
|
|
{ 0x00, "PUSC"},
|
|
{ 0x01, "FUSC"},
|
|
{ 0x02, "Optional FUSC"},
|
|
{ 0x03, "AMC - 1 x 6"},
|
|
{ 0x04, "AMC - 2 x 3"},
|
|
{ 0x05, "AMC - 3 x 2"},
|
|
{ 0x06, "Reserved"},
|
|
{ 0x07, "Reserved"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static
|
|
const value_string wimaxmacphy_zone_use_all_subchannels_indicator_vals[]=
|
|
{
|
|
{ 0, "use only subchannels specified in PHY configuration register"},
|
|
{ 1, "use all subchannels"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static
|
|
const value_string wimaxmacphy_ul_zone_disable_pusc_subchannel_rotation_vals[]=
|
|
{
|
|
{ 0, "rotation enabled"},
|
|
{ 1, "rotation disabled"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_zone_dedicated_pilots_vals[]=
|
|
{
|
|
{ 0, "pilots are broadcast"},
|
|
{ 1, "pilots are dedicated"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_zone_agc_range_extension_vals[]=
|
|
{
|
|
{ 0, "default range"},
|
|
{ 1, "range to cover SS very close to BS"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_zone_stc_type_vals[]=
|
|
{
|
|
{ 0x00, "STC using 2 antennas"},
|
|
{ 0x01, "STC using 3 antennas"},
|
|
{ 0x02, "STC using 4 antennas"},
|
|
{ 0x03, "FHDC using 2 antennas"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_matrix_indicator_vals[]=
|
|
{
|
|
{ 0x00, "Matrix A"},
|
|
{ 0x01, "Matrix B"},
|
|
{ 0x02, "Matrix C"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_zone_midamble_presence_vals[]=
|
|
{
|
|
{ 0, "not present"},
|
|
{ 1, "present"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_zone_midamble_boosting_vals[]=
|
|
{
|
|
{ 0, "no boosting"},
|
|
{ 1, "boosting"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_zone_preamble_configuration_vals[]=
|
|
{
|
|
{ 0x00, "0 symbols (preambles not supported)"},
|
|
{ 0x01, "1 symbol"},
|
|
{ 0x02, "2 symbols"},
|
|
{ 0x03, "3 symbols"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_zone_sdma_supported_indication_vals[]=
|
|
{
|
|
{ 0, "SDMA not supported"},
|
|
{ 1, "SDMA supported"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_zone_preamble_type_vals[]=
|
|
{
|
|
{ 0, "frequency shifted preamble"},
|
|
{ 1, "time shifted preamble"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_dl_burst_type_vals[]=
|
|
{
|
|
{ 0x40, "Map Data Burst"},
|
|
{ 0x41, "Normal Data Burst"},
|
|
{ 0x42, "Control Command"},
|
|
{ 0x43, "PAPR Allocation"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_ul_burst_type_vals[]=
|
|
{
|
|
{ 0x40, "HARQ ACK Channel allocation"},
|
|
{ 0x41, "Fast Feedback Channel allocation"},
|
|
{ 0x42, "Initial Ranging/Handover Ranging region"},
|
|
{ 0x43, "Periodic Ranging/Bandwidth Request region"},
|
|
{ 0x44, "PAPR/Safety Zone allocation"},
|
|
{ 0x45, "Sounding Zone allocation"},
|
|
{ 0x46, "Noise Floor Calculation allocation"},
|
|
{ 0x47, "Normal Data burst"},
|
|
{ 0x48, "Control Command"},
|
|
{ 0x49, "Reserved"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_burst_type_extension_vals[]=
|
|
{
|
|
{ 0x00, "no extended data:"},
|
|
{ 0x01, "AAS v1"},
|
|
{ 0x02, "MIMO v1"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_modulation_fec_code_type_vals[]=
|
|
{
|
|
{ 0, "QPSK (CC) 1/2"},
|
|
{ 1, "QPSK (CC) 3/4"},
|
|
{ 2, "16-QAM (CC) 1/2"},
|
|
{ 3, "16-QAM (CC) 3/4"},
|
|
{ 4, "64-QAM (CC) 1/2"},
|
|
{ 5, "64-QAM (CC) 2/3"},
|
|
{ 6, "64-QAM (CC) 3/4"},
|
|
{ 7, "QPSK (BTC) 1/2"},
|
|
{ 8, "QPSK (BTC) 3/4"},
|
|
{ 9, "16-QAM (BTC) 3/5"},
|
|
{ 10, "16-QAM (BTC) 4/5"},
|
|
{ 11, "64-QAM (BTC) 5/8"},
|
|
{ 12, "64-QAM (BTC) 4/5"},
|
|
{ 13, "QPSK (CTC) 1/2"},
|
|
{ 14, "Reserved"},
|
|
{ 15, "QPSK (CTC) 3/4"},
|
|
{ 16, "16-QAM (CTC) 1/2"},
|
|
{ 17, "16-QAM (CTC) 3/4"},
|
|
{ 18, "64-QAM (CTC) 1/2"},
|
|
{ 19, "64-QAM (CTC) 2/3"},
|
|
{ 20, "64-QAM (CTC) 3/4"},
|
|
{ 21, "64-QAM (CTC) 5/6"},
|
|
{ 22, "QPSK (ZT CC) 1/2"},
|
|
{ 23, "QPSK (ZT CC) 3/4"},
|
|
{ 24, "16-QAM (ZT CC) 1/2"},
|
|
{ 25, "16-QAM (ZT CC) 3/4"},
|
|
{ 26, "64-QAM (ZT CC) 1/2"},
|
|
{ 27, "64-QAM (ZT CC) 2/3"},
|
|
{ 28, "64-QAM (ZT CC) 3/4"},
|
|
{ 29, "QPSK (LDPC) 1/2"},
|
|
{ 30, "QPSK (LDPC) 2/3 A code"},
|
|
{ 31, "QPSK (LDPC) 3/4 A code"},
|
|
{ 32, "16-QAM (LDPC) 1/2"},
|
|
{ 33, "16-QAM (LDPC) 2/3 A code"},
|
|
{ 34, "16-QAM (LDPC) 3/4 A code"},
|
|
{ 35, "64-QAM (LDPC) 1/2"},
|
|
{ 36, "64-QAM (LDPC) 2/3 A code"},
|
|
{ 37, "64-QAM (LDPC) 3/4 A code"},
|
|
{ 38, "QPSK (LDPC) 2/3 B code"},
|
|
{ 39, "QPSK (LDPC) 3/4 B code"},
|
|
{ 40, "16-QAM (LDPC) 2/3 B code"},
|
|
{ 41, "16-QAM (LDPC) 3/4 B code"},
|
|
{ 42, "64-QAM (LDPC) 2/3 B code"},
|
|
{ 43, "64-QAM (LDPC) 3/4 B code"},
|
|
{ 44, "QPSK (CC with optional interleaver) 1/2"},
|
|
{ 45, "QPSK (CC with optional interleaver) 3/4"},
|
|
{ 46, "16-QAM (CC with optional interleaver) 1/2"},
|
|
{ 47, "16-QAM (CC with optional interleaver) 3/4"},
|
|
{ 48, "64-QAM (CC with optional interleaver) 2/3"},
|
|
{ 49, "64-QAM (CC with optional interleaver) 3/4"},
|
|
{ 50, "QPSK (LDPC) 5/6"},
|
|
{ 51, "16-QAM(LDPC) 5/6"},
|
|
{ 52, "64-QAM(LDPC) 5/6"},
|
|
{ 0, NULL}
|
|
};
|
|
#if 0 /* XXX: 'tshark -G values' gives warning on Windows' */
|
|
static value_string_ext wimaxmacphy_modulation_fec_code_type_vals_ext =
|
|
VALUE_STRING_EXT_INIT(wimaxmacphy_modulation_fec_code_type_vals);
|
|
#endif
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_burst_boosting_vals[]=
|
|
{
|
|
{ 0x00, "normal"},
|
|
{ 0x01, "+6dB"},
|
|
{ 0x02, "-6dB"},
|
|
{ 0x03, "+9dB"},
|
|
{ 0x04, "+3dB"},
|
|
{ 0x05, "-3dB"},
|
|
{ 0x06, "-9 dB"},
|
|
{ 0x07, "-12 dB"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static
|
|
const value_string wimaxmacphy_burst_repetition_coding_indication_vals[]=
|
|
{
|
|
{ 0x00, "No repetition coding"},
|
|
{ 0x01, "Repetition coding of 2"},
|
|
{ 0x02, "Repetition coding of 4"},
|
|
{ 0x03, "Repetition coding of 6"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_dl_sub_burst_type_vals[]=
|
|
{
|
|
{ 0x60, "No HARQ"},
|
|
{ 0x61, "HARQ Chase Combining"},
|
|
{ 0x62, "HARQ IR-CTC"},
|
|
{ 0x63, "HARQ IR-CC"},
|
|
{ 0x64, "MIMO Chase Combining"},
|
|
{ 0x65, "MIMO IR-CTC"},
|
|
{ 0x66, "MIMO IR-CC"},
|
|
{ 0x67, "MIMO-STC"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_ul_sub_burst_type_vals[]=
|
|
{
|
|
{ 0x60, "No HARQ"},
|
|
{ 0x61, "HARQ Chase Combining"},
|
|
{ 0x62, "HARQ IR-CTC"},
|
|
{ 0x63, "HARQ IR-CC"},
|
|
{ 0x64, "MIMO Chase Combining"},
|
|
{ 0x65, "MIMO IR-CTC"},
|
|
{ 0x66, "MIMO IR-CC"},
|
|
{ 0x67, "MIMO-STC"},
|
|
{ 0x68, "Mini-subchannel"},
|
|
{ 0x69, "Fast Feedback channel"},
|
|
{ 0x6A, "HARQ ACK subchannel"},
|
|
{ 0x6B, "Sounding signal"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_sub_burst_flush_unnamed_vals[]=
|
|
{
|
|
{ 0x00, "no flush action"},
|
|
{ 0x02, "flush request to PHY for the ISSID/ACID"},
|
|
{ 0x03, "flush request to PHY for the given ISSID"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_ul_burst_papr_unnamed_vals[]=
|
|
{
|
|
{ 0, "UL PAPR reduction"},
|
|
{ 1, "UL Safety zone"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_ul_burst_ranging_method_vals[]=
|
|
{
|
|
{ 0, "ranging over 2 symbols"},
|
|
{ 1, "ranging over 4 symbols"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_ul_burst_sounding_type_vals[]=
|
|
{
|
|
{ 0, "Type A"},
|
|
{ 1, "Type B"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static
|
|
const value_string wimaxmacphy_ul_burst_sounding_separability_type_vals[]=
|
|
{
|
|
{ 0, "all subcarriers"},
|
|
{ 1, "decimated subcarriers in a band"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static
|
|
const value_string wimaxmacphy_ul_burst_sounding_max_cyclic_shift_indx_vals[]=
|
|
{
|
|
{ 0x00, "P=4"},
|
|
{ 0x01, "P=8;"},
|
|
{ 0x02, "P=16"},
|
|
{ 0x03, "P=32"},
|
|
{ 0x04, "P=9"},
|
|
{ 0x05, "P=18"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static
|
|
const value_string wimaxmacphy_ul_burst_sounding_decimation_offset_rand_vals[]=
|
|
{
|
|
{ 0, "no randomization"},
|
|
{ 1, "randomization"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static
|
|
const value_string wimaxmacphy_ul_burst_opt_mimo_matrix_indicator_vals[]=
|
|
{
|
|
{ 0x00, "Matrix A (STTD)"},
|
|
{ 0x01, "Matrix B (SM)"},
|
|
{ 0x02, "Reserved"},
|
|
{ 0x03, "Reserved"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_ul_burst_opt_mimo_collaborative_vals[]=
|
|
{
|
|
{ 0, "non-collaborative"},
|
|
{ 1, "collaborative"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_ul_burst_opt_mimo_antenna_unnamed_vals[]=
|
|
{
|
|
{ 0, "Single TX antenna SS"},
|
|
{ 1, "Dual TX antenna SS"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_ul_sub_burst_ctype_vals[]=
|
|
{
|
|
{ 0x00, "2 mini-subchannels adjacent tiles"},
|
|
{ 0x01, "2 mini subchannels interleaved tiles"},
|
|
{ 0x02, "3 mini subchannels"},
|
|
{ 0x03, "6 mini subchannels"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
#if 0
|
|
static const value_string wimaxmacphy_ul_sub_burst_feedback_sub_type_vals[]=
|
|
{
|
|
{ 0, "CQI (CINR) measurement"},
|
|
{ 1, "Control feedback"},
|
|
{ 0, NULL}
|
|
};
|
|
#endif
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static
|
|
const value_string wimaxmacphy_ul_sub_burst_sounding_power_assignment_vals[]=
|
|
{
|
|
{ 0x00, "Equal power"},
|
|
{ 0x01, "Reserved"},
|
|
{ 0x02, "Interference dependent. Per subcarrier power limit."},
|
|
{ 0x03, "Interference dependent. Total power limit."},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_ul_sub_burst_sounding_power_boost_vals[]=
|
|
{
|
|
{ 0, "no boost"},
|
|
{ 1, "boost"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static
|
|
const value_string wimaxmacphy_ul_sub_burst_sounding_allocation_mode_vals[]=
|
|
{
|
|
{ 0, "Normal"},
|
|
{ 1, "Band AMC"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
static const value_string wimaxmacphy_ul_sub_burst_mimo_chase_matrix_vals[]=
|
|
{
|
|
{ 0, "Matrix A"},
|
|
{ 1, "Matrix B"},
|
|
{ 0, NULL}
|
|
};
|
|
|
|
static gint dissect_wimaxmacphy_dl_sub_burst_descriptor(tvbuff_t *tvb, guint offset, packet_info *pinfo _U_, proto_tree *tree)
|
|
{
|
|
guint start_offset = offset;
|
|
guint8 sub_burst_type;
|
|
proto_tree *subtree;
|
|
|
|
sub_burst_type = tvb_get_guint8(tvb, offset);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_dl_sub_burst_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_number, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_symbol_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_subchannel_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_number_of_slots, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_reserved1, tvb, offset, 2, ENC_NA);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_reserved2, tvb, offset, 1, ENC_NA);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_modulation_fec_code_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_issid, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_aas_handle, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_boosting, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_repetition_coding_indication, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_data_length, tvb, offset, 4, ENC_BIG_ENDIAN);
|
|
offset += 4;
|
|
|
|
/* sub-burst-specific parts */
|
|
switch (sub_burst_type)
|
|
{
|
|
case 0x61: /* HARQ chase combining */
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_dl_sub_burst_harq_chase, NULL, "HARQ Chase Specific");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_harq_chase_harq_channel_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_harq_chase_harq_sequence_number, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_harq_chase_flush_unnamed, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_harq_chase_reserved, tvb, offset, 1, ENC_NA);
|
|
offset += 1;
|
|
break;
|
|
|
|
case 0x64: /* MIMO chase combining */
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_dl_sub_burst_mimo_chase, NULL, "MIMO Chase Specific");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_mimo_chase_harq_channel_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_mimo_chase_harq_sequence_number, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_mimo_chase_flush_unnamed, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_mimo_chase_layer_index, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
break;
|
|
|
|
default:
|
|
/* do nothing */
|
|
break;
|
|
}
|
|
|
|
return offset - start_offset;
|
|
}
|
|
|
|
static guint dissect_wimaxmacphy_dl_burst_descriptor(tvbuff_t *tvb, guint offset, packet_info *pinfo, proto_tree *tree)
|
|
{
|
|
guint start_offset = offset;
|
|
guint8 burst_type, burst_type_extension, sub_burst_descriptor_count, sub_burst;
|
|
proto_item *item;
|
|
proto_tree *subtree, *opt_tree;
|
|
|
|
burst_type = tvb_get_guint8(tvb, offset);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_dl_burst_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
burst_type_extension = tvb_get_guint8(tvb, offset);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_burst_type_extension, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_burst_number, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_burst_modulation_fec_code_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_burst_data_length, tvb, offset, 4, ENC_BIG_ENDIAN);
|
|
offset += 4;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_burst_ofdma_symbol_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_burst_subchannel_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_burst_boosting, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_burst_repetition_coding_indication, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
/* burst-specific parts */
|
|
switch (burst_type)
|
|
{
|
|
case 0x40: /* map */
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_dl_burst_map, NULL, "MAP Data Burst Specific");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_dl_burst_map_number_of_slots, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_dl_burst_map_reserved, tvb, offset, 2, ENC_NA);
|
|
offset += 2;
|
|
break;
|
|
|
|
case 0x41: /* normal */
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_dl_burst_normal, NULL, "Normal Data Burst Specific");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_dl_burst_normal_number_of_symbols, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_dl_burst_normal_number_of_subchannels, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_dl_burst_normal_aas_handle, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
/* extensions */
|
|
switch (burst_type_extension)
|
|
{
|
|
case 0x01: /* AAS v1 */
|
|
|
|
opt_tree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_dl_burst_opt_aas, NULL, "Optional AAS Specific");
|
|
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_burst_opt_aas_preamble_modifier_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_burst_opt_aas_preamble_shift_index, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_burst_opt_aas_reserved, tvb, offset, 2, ENC_NA);
|
|
offset += 2;
|
|
|
|
/* ??? Algorithm specific Information (per Burst Type extension) */
|
|
break;
|
|
|
|
case 0x02: /* MIMO v1 */
|
|
|
|
opt_tree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_dl_burst_opt_mimo, NULL, "Optional MIMO Specific");
|
|
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_burst_opt_mimo_matrix_indicator, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_burst_opt_mimo_layer_index, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_dl_burst_opt_mimo_reserved, tvb, offset, 2, ENC_NA);
|
|
offset += 2;
|
|
|
|
|
|
/* ??? Algorithm specific Information (per Burst Type extension) */
|
|
break;
|
|
|
|
default:
|
|
/* do nothing */
|
|
break;
|
|
}
|
|
|
|
break;
|
|
|
|
case 0x43: /* PAPR */
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_dl_burst_papr, NULL, "PAPR Allocation Specific");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_burst_papr_number_of_symbols, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_burst_papr_number_of_subchannels, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_burst_papr_reserved, tvb, offset, 2, ENC_NA);
|
|
offset += 2;
|
|
break;
|
|
|
|
default:
|
|
/* do nothing */
|
|
break;
|
|
}
|
|
|
|
/* sub-burst portion */
|
|
sub_burst_descriptor_count = tvb_get_guint8(tvb, offset);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_number_of_sub_burst_descriptors, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_padding, tvb, offset, 3, ENC_NA);
|
|
offset += 3;
|
|
|
|
/* sub-burst descriptors */
|
|
for (sub_burst = 0; sub_burst < sub_burst_descriptor_count; ++sub_burst)
|
|
{
|
|
proto_tree *sub_burst_descriptor_tree;
|
|
guint sub_burst_descriptor_length;
|
|
|
|
sub_burst_descriptor_tree = proto_tree_add_subtree_format(tree, tvb, offset, 1,
|
|
ett_wimaxmacphy_dl_sub_burst_descriptor, &item, "Sub-Burst Descriptor %u", sub_burst);
|
|
|
|
sub_burst_descriptor_length = dissect_wimaxmacphy_dl_sub_burst_descriptor(tvb, offset,
|
|
pinfo, sub_burst_descriptor_tree);
|
|
|
|
proto_item_set_len(item, sub_burst_descriptor_length);
|
|
offset += sub_burst_descriptor_length;
|
|
}
|
|
|
|
return offset - start_offset;
|
|
}
|
|
|
|
static guint dissect_wimaxmacphy_dl_zone_descriptor(tvbuff_t *tvb, guint offset, packet_info *pinfo, proto_tree *tree)
|
|
{
|
|
guint start_offset = offset;
|
|
guint8 zone_type, burst_descriptor_count, burst;
|
|
proto_item *item;
|
|
proto_tree *subtree;
|
|
|
|
zone_type = tvb_get_guint8(tvb, offset);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_dl_zone_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_zone_number, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_zone_start_symbol_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_zone_end_symbol_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_dl_zone_permutation_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_dl_zone_use_all_subchannels_indicator, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_zone_dl_perm_base, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_zone_prbs_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_zone_dedicated_pilots, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_zone_reserved, tvb, offset, 3, ENC_NA);
|
|
offset += 3;
|
|
|
|
/* zone-specific parts */
|
|
switch (zone_type)
|
|
{
|
|
case 0x21: /* STC */
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_dl_zone_stc, NULL, "STC Zone Specific");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_zone_stc_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_zone_matrix_indicator, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_zone_midamble_presence, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_zone_midamble_boosting, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
break;
|
|
|
|
case 0x22: /* AAS */
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_dl_zone_aas, NULL, "AAS Zone Specific");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_zone_preamble_configuration, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_zone_sdma_supported_indication, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_dl_zone_aas_reserved, tvb, offset, 2, ENC_NA);
|
|
offset += 2;
|
|
|
|
/* ??? Algorithm Specific Information (per Zone Type) */
|
|
break;
|
|
|
|
default:
|
|
/* do nothing */
|
|
break;
|
|
}
|
|
|
|
/* burst portion */
|
|
burst_descriptor_count = tvb_get_guint8(tvb, offset);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_number_of_burst_descriptors, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_burst_padding, tvb, offset, 3, ENC_NA);
|
|
offset += 3;
|
|
|
|
/* burst descriptors */
|
|
for (burst = 0; burst < burst_descriptor_count; ++burst)
|
|
{
|
|
proto_tree *burst_descriptor_tree;
|
|
guint burst_descriptor_length;
|
|
|
|
/* note: we'll adjust the length later */
|
|
burst_descriptor_tree = proto_tree_add_subtree_format(tree, tvb, offset, 1,
|
|
ett_wimaxmacphy_dl_burst_descriptor, &item, "Burst Descriptor %u", burst);
|
|
|
|
burst_descriptor_length = dissect_wimaxmacphy_dl_burst_descriptor(
|
|
tvb, offset, pinfo, burst_descriptor_tree);
|
|
|
|
proto_item_set_len(item, burst_descriptor_length);
|
|
|
|
offset += burst_descriptor_length;
|
|
}
|
|
|
|
return offset - start_offset;
|
|
}
|
|
|
|
static guint dissect_wimaxmacphy_dl_subframe_descriptor(tvbuff_t *tvb, guint offset, packet_info *pinfo, proto_tree *tree)
|
|
{
|
|
guint start_offset = offset;
|
|
guint8 zone_descriptor_count;
|
|
guint8 zone;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_subframe_subframe_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_subframe_frame_number, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_subframe_downlink_reserved1, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_subframe_phy_sap_version_number, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_subframe_downlink_reserved2, tvb, offset, 4, ENC_BIG_ENDIAN);
|
|
offset += 4;
|
|
|
|
/* zone portion */
|
|
zone_descriptor_count = tvb_get_guint8(tvb, offset);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_number_of_zone_descriptors, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_number_of_zone_descriptors, tvb, offset, 3, ENC_BIG_ENDIAN);
|
|
offset += 3;
|
|
|
|
/* zone descriptors */
|
|
for (zone = 0; zone < zone_descriptor_count; ++zone)
|
|
{
|
|
proto_item *item;
|
|
proto_tree *zone_descriptor_tree;
|
|
guint zone_descriptor_length;
|
|
|
|
zone_descriptor_tree = proto_tree_add_subtree_format(tree, tvb, offset, 1, ett_wimaxmacphy_dl_zone_descriptor, &item, "Zone Descriptor %u", zone);
|
|
|
|
zone_descriptor_length = dissect_wimaxmacphy_dl_zone_descriptor(
|
|
tvb, offset, pinfo, zone_descriptor_tree);
|
|
|
|
proto_item_set_len(item, zone_descriptor_length);
|
|
|
|
offset += zone_descriptor_length;
|
|
}
|
|
|
|
return offset - start_offset;
|
|
}
|
|
|
|
static gint dissect_wimaxmacphy_ul_sub_burst_sub_allocation_specific_part(tvbuff_t *tvb, guint offset,
|
|
packet_info *pinfo _U_, proto_tree *tree, guint8 sub_burst_type)
|
|
{
|
|
guint start_offset = offset;
|
|
proto_item *item, *opt_item;
|
|
proto_tree *subtree, *opt_tree;
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 1, ett_wimaxmacphy_ul_sub_burst_sub_allocation_specific, &item, "Sub-Allocation Specific");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_symbol_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_subchannel_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_number_of_slots, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_data_length, tvb, offset, 4, ENC_BIG_ENDIAN);
|
|
offset += 4;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_repetition_coding_indication, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_modulation_fec_code_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_reserved1, tvb, offset, 2, ENC_NA);
|
|
offset += 2;
|
|
|
|
/* HARQ chase and MIMO chase specific parts */
|
|
switch (sub_burst_type)
|
|
{
|
|
case 0x61: /* HARQ chase combining */
|
|
|
|
opt_tree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_ul_sub_burst_harq_chase, &opt_item, "HARQ Chase Specific");
|
|
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_sub_burst_harq_chase_harq_channel_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_sub_burst_harq_chase_harq_sequence_number, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_sub_burst_harq_chase_flush_unnamed, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_sub_burst_harq_chase_reserved, tvb, offset, 1, ENC_NA);
|
|
offset += 1;
|
|
break;
|
|
|
|
case 0x64: /* MIMO chase combining */
|
|
|
|
opt_tree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_ul_sub_burst_mimo_chase, NULL, "MIMO Chase Specific");
|
|
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_sub_burst_mimo_chase_harq_channel_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_sub_burst_mimo_chase_harq_sequence_number, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_sub_burst_mimo_chase_flush_unnamed, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_ul_sub_burst_mimo_chase_matrix, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
break;
|
|
|
|
default:
|
|
/* do nothing */
|
|
break;
|
|
}
|
|
|
|
proto_item_set_len(item, offset - start_offset);
|
|
|
|
return offset - start_offset;
|
|
}
|
|
|
|
static gint dissect_wimaxmacphy_ul_sub_burst_descriptor(tvbuff_t *tvb, guint offset, packet_info *pinfo _U_, proto_tree *tree)
|
|
{
|
|
guint8 sub_burst_type;
|
|
proto_item *feedback_item;
|
|
proto_tree *subtree, *feedback_tree;
|
|
guint start_offset = offset;
|
|
|
|
sub_burst_type = tvb_get_guint8(tvb, offset);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_ul_sub_burst_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_number, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_issid, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_aas_handle, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_reserved1, tvb, offset, 2, ENC_NA);
|
|
offset += 2;
|
|
|
|
/* sub-burst-specific parts */
|
|
switch (sub_burst_type)
|
|
{
|
|
case 0x68: /* mini-subchannel */
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_ul_sub_burst_mini_subchannel, NULL, "Mini-Subchannel Allocation Specific");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_ctype, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_mini_subchannel_index, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_mini_reserved, tvb, offset, 2, ENC_NA);
|
|
offset += 2;
|
|
break;
|
|
|
|
case 0x69: /* fast feedback */
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_ul_sub_burst_fast_feedback, NULL, "Fast Feedback Allocation Specific");
|
|
|
|
feedback_item = proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_feedback_type_coding, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
feedback_tree = proto_item_add_subtree(feedback_item, ett_wimaxmacphy_ul_feedback_type_coding);
|
|
proto_tree_add_item(feedback_tree, hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit0, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(feedback_tree, hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit1, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(feedback_tree, hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit2, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(feedback_tree, hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit3, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(feedback_tree, hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit4, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(feedback_tree, hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit5, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(feedback_tree, hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit6, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(feedback_tree, hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit7, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_feedback_reserved1, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_feedback_sub_type, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_feedback_cqich_id, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_feedback_reserved2, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_feedback_slot_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
break;
|
|
|
|
case 0x6a: /* HARQ ACK */
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_ul_sub_burst_harq_ack, NULL, "HARQ ACK Subchannel Allocation Specific");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_harq_ack_acid, tvb, offset, 4, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_harq_ack_reserved, tvb, offset, 4, ENC_BIG_ENDIAN);
|
|
offset += 4;
|
|
break;
|
|
|
|
case 0x6b: /* sounding signal */
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 11, ett_wimaxmacphy_ul_sub_burst_sounding_signal, NULL, "Sounding Signal Specific");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_sounding_symbol_index, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_sounding_power_assignment, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_sounding_power_boost, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_sounding_allocation_mode, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_sounding_start_freq_band, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_sounding_num_freq_bands, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_sounding_band_bit_map, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_sounding_cyclic_time_shift, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_sounding_decimation_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_sounding_reserved, tvb, offset, 1, ENC_NA);
|
|
offset += 1;
|
|
break;
|
|
|
|
default:
|
|
offset += dissect_wimaxmacphy_ul_sub_burst_sub_allocation_specific_part(
|
|
tvb, offset, pinfo, tree, sub_burst_type);
|
|
break;
|
|
}
|
|
|
|
return offset - start_offset;
|
|
}
|
|
|
|
static guint dissect_wimaxmacphy_ul_burst_descriptor(tvbuff_t *tvb, guint offset, packet_info *pinfo, proto_tree *tree)
|
|
{
|
|
guint8 burst_type, burst_type_extension;
|
|
guint8 sub_burst_descriptor_count, sub_burst;
|
|
proto_item *item, *pilot_patterns_item;
|
|
proto_tree *subtree, *opt_tree, *pilot_patterns_tree;
|
|
guint start_offset = offset;
|
|
|
|
burst_type = tvb_get_guint8(tvb, offset);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_ul_burst_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
burst_type_extension = tvb_get_guint8(tvb, offset);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_burst_type_extension, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_burst_number, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_burst_modulation_fec_code_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_burst_data_length, tvb, offset, 4, ENC_BIG_ENDIAN);
|
|
offset += 4;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_burst_ofdma_symbol_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_burst_subchannel_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_burst_reserved, tvb, offset, 1, ENC_NA);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_burst_repetition_coding_indication, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_burst_issid, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_burst_aas_handle, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
/* burst-specific parts */
|
|
switch (burst_type)
|
|
{
|
|
case 0x40: /* HARQ ACK channel */
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_ul_burst_harq_ack, NULL, "HARQ ACK Channel Specific");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_harq_ack_number_of_symbols, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_harq_ack_number_of_subchannels, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_harq_ack_reserved, tvb, offset, 2, ENC_NA);
|
|
offset += 2;
|
|
break;
|
|
|
|
case 0x41: /* fast feedback channel */
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_ul_burst_fast_feedback, NULL, "Fast Feedback Channel Specific");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_fast_number_of_symbols, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_fast_number_of_subchannels, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_fast_reserved, tvb, offset, 2, ENC_NA);
|
|
offset += 2;
|
|
break;
|
|
|
|
case 0x42: /* initial ranging/handover ranging */
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 8, ett_wimaxmacphy_ul_burst_initial_ranging, NULL, "Initial Ranging/Handover Ranging Allocation Specific");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_initial_number_of_symbols, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_initial_number_of_subchannels, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_initial_ranging_method, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_initial_reserved1, tvb, offset, 1, ENC_NA);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_initial_zone_xid, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_initial_reserved2, tvb, offset, 2, ENC_NA);
|
|
offset += 2;
|
|
break;
|
|
|
|
case 0x43: /* periodic ranging/bandwidth request */
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 8, ett_wimaxmacphy_ul_burst_periodic_ranging, NULL, "Periodic Ranging/Bandwidth Request Allocation Specific");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_periodic_number_of_symbols, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_periodic_number_of_subchannels, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_periodic_ranging_method, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_periodic_reserved1, tvb, offset, 1, ENC_NA);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_periodic_zone_xid, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_periodic_reserved2, tvb, offset, 2, ENC_NA);
|
|
offset += 2;
|
|
break;
|
|
|
|
case 0x44: /* PAPR/safety zone */
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_ul_burst_papr_safety_zone, NULL, "PAPR/Safety Zone Channel Specific");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_burst_papr_number_of_symbols, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_burst_papr_number_of_subchannels, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_papr_unnamed, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_burst_papr_reserved, tvb, offset, 1, ENC_NA);
|
|
offset += 1;
|
|
break;
|
|
|
|
case 0x45: /* sounding zone */
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 8, ett_wimaxmacphy_ul_burst_sounding_zone, NULL, "Sounding Zone Allocation Specific");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_sounding_number_of_symbols, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_sounding_number_of_subchannels, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_sounding_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_sounding_separability_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_sounding_max_cyclic_shift_indx, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_sounding_decimation_value, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_sounding_decimation_offset_rand, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_sounding_reserved, tvb, offset, 1, ENC_NA);
|
|
offset += 1;
|
|
break;
|
|
|
|
case 0x46: /* noise floor calculation */
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_ul_burst_noise_floor, NULL, "Noise Floor Calculation Allocation Specific");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_noise_number_of_symbols, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_noise_number_of_subchannels, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_noise_reserved, tvb, offset, 2, ENC_NA);
|
|
offset += 2;
|
|
break;
|
|
|
|
case 0x47: /* normal data */
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_ul_burst_normal_data, NULL, "Normal Data Burst Specific");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_normal_number_of_slots, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_normal_reserved, tvb, offset, 2, ENC_NA);
|
|
offset += 2;
|
|
|
|
/* extensions */
|
|
switch (burst_type_extension)
|
|
{
|
|
case 0x01: /* AAS v1 */
|
|
|
|
opt_tree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_ul_burst_opt_aas, NULL, "Optional AAS Specific");
|
|
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_burst_opt_aas_preamble_modifier_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_burst_opt_aas_reserved, tvb, offset, 2, ENC_NA);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_burst_opt_aas_preamble_shift_index, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
/* ??? Algorithm specific Information (per Burst Type extension) */
|
|
break;
|
|
|
|
case 0x02: /* MIMO v1 */
|
|
|
|
opt_tree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_ul_burst_opt_mimo, NULL, "Optional MIMO Specific");
|
|
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_ul_burst_opt_mimo_matrix_indicator, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
/* optional MIMO-specific - pilot patterns */
|
|
pilot_patterns_item = proto_tree_add_item(opt_tree, hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
pilot_patterns_tree = proto_item_add_subtree(pilot_patterns_item, ett_wimaxmacphy_ul_pilot_patterns);
|
|
proto_tree_add_item(pilot_patterns_tree, hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit0, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(pilot_patterns_tree, hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit1, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(pilot_patterns_tree, hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit2, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(pilot_patterns_tree, hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit3, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_ul_burst_opt_mimo_collaborative, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_ul_burst_opt_mimo_antenna_unnamed, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(opt_tree, hf_wimaxmacphy_burst_opt_mimo_layer_index, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
/* ??? Algorithm specific Information (per Burst Type extension) */
|
|
break;
|
|
|
|
default:
|
|
/* do nothing */
|
|
break;
|
|
}
|
|
|
|
break;
|
|
|
|
default:
|
|
/* do nothing */
|
|
break;
|
|
}
|
|
|
|
/* sub-burst portion */
|
|
sub_burst_descriptor_count = tvb_get_guint8(tvb, offset);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_number_of_sub_burst_descriptors, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_padding, tvb, offset, 3, ENC_NA);
|
|
offset += 3;
|
|
|
|
/* sub-burst descriptors */
|
|
for (sub_burst = 0; sub_burst < sub_burst_descriptor_count; ++sub_burst)
|
|
{
|
|
proto_tree *sub_burst_descriptor_tree;
|
|
guint sub_burst_descriptor_length;
|
|
|
|
sub_burst_descriptor_tree = proto_tree_add_subtree_format(tree, tvb, offset, 1, ett_wimaxmacphy_ul_sub_burst_descriptor, &item, "Sub-Burst Descriptor %u", sub_burst);
|
|
|
|
sub_burst_descriptor_length = dissect_wimaxmacphy_ul_sub_burst_descriptor(tvb, offset,
|
|
pinfo, sub_burst_descriptor_tree);
|
|
|
|
proto_item_set_len(item, sub_burst_descriptor_length);
|
|
|
|
offset += sub_burst_descriptor_length;
|
|
}
|
|
|
|
return offset - start_offset;
|
|
}
|
|
|
|
static guint dissect_wimaxmacphy_ul_zone_descriptor(tvbuff_t *tvb, guint offset, packet_info *pinfo, proto_tree *tree)
|
|
{
|
|
guint start_offset = offset;
|
|
guint8 zone_type, burst_descriptor_count, burst;
|
|
proto_item *item;
|
|
|
|
zone_type = tvb_get_guint8(tvb, offset);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_ul_zone_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_zone_number, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_zone_start_symbol_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_zone_end_symbol_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_ul_zone_permutation_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_ul_zone_use_all_subchannels_indicator, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_ul_zone_disable_pusc_subchannel_rotation, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_zone_ul_perm_base, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_zone_agc_range_extension, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
/* zone-specific parts */
|
|
switch (zone_type)
|
|
{
|
|
case 0x22: /* AAS */
|
|
{
|
|
proto_tree *subtree;
|
|
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_ul_zone_aas, NULL, "AAS Zone Specific");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_zone_preamble_configuration, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_zone_preamble_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_zone_sdma_supported_indication, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_ul_zone_aas_reserved, tvb, offset, 1, ENC_NA);
|
|
offset += 1;
|
|
|
|
/* ??? Algorithm Specific Information (per Zone Type) */
|
|
break;
|
|
}
|
|
default:
|
|
/* do nothing */
|
|
break;
|
|
}
|
|
|
|
/* burst portion */
|
|
burst_descriptor_count = tvb_get_guint8(tvb, offset);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_number_of_burst_descriptors, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_burst_padding, tvb, offset, 3, ENC_NA);
|
|
offset += 3;
|
|
|
|
/* burst descriptors */
|
|
for (burst = 0; burst < burst_descriptor_count; ++burst)
|
|
{
|
|
proto_tree *burst_descriptor_tree;
|
|
guint burst_descriptor_length;
|
|
|
|
burst_descriptor_tree = proto_tree_add_subtree_format(tree, tvb, offset, 1, ett_wimaxmacphy_ul_burst_descriptor, &item, "Burst Descriptor %u", burst);
|
|
|
|
burst_descriptor_length = dissect_wimaxmacphy_ul_burst_descriptor(
|
|
tvb, offset, pinfo, burst_descriptor_tree);
|
|
proto_item_set_len(item, burst_descriptor_length);
|
|
|
|
offset += burst_descriptor_length;
|
|
}
|
|
|
|
return offset - start_offset;
|
|
}
|
|
|
|
static guint dissect_wimaxmacphy_ul_subframe_descriptor(tvbuff_t *tvb, guint offset, packet_info *pinfo, proto_tree *tree)
|
|
{
|
|
guint start_offset = offset;
|
|
guint8 zone_descriptor_count;
|
|
guint8 zone;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_subframe_subframe_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_subframe_frame_number, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_subframe_downlink_reserved1, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_subframe_phy_sap_version_number, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_subframe_allocation_start_time, tvb, offset, 4, ENC_BIG_ENDIAN);
|
|
offset += 4;
|
|
|
|
zone_descriptor_count = tvb_get_guint8(tvb, offset);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_number_of_zone_descriptors, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_zone_padding, tvb, offset, 3, ENC_NA);
|
|
offset += 3;
|
|
|
|
/* -----------------------------------------------------------------------
|
|
* zone descriptors
|
|
* -----------------------------------------------------------------------
|
|
*/
|
|
|
|
for (zone = 0; zone < zone_descriptor_count; ++zone)
|
|
{
|
|
proto_item *item;
|
|
proto_tree *zone_descriptor_tree;
|
|
guint zone_descriptor_length;
|
|
|
|
zone_descriptor_tree = proto_tree_add_subtree_format(tree, tvb, offset, 1, ett_wimaxmacphy_ul_zone_descriptor, &item, "Zone Descriptor %u", zone);
|
|
|
|
zone_descriptor_length = dissect_wimaxmacphy_ul_zone_descriptor(
|
|
tvb, offset, pinfo, zone_descriptor_tree);
|
|
|
|
proto_item_set_len(item, zone_descriptor_length);
|
|
offset += zone_descriptor_length;
|
|
}
|
|
|
|
return offset - start_offset;
|
|
}
|
|
|
|
static guint dissect_wimaxmacphy_phy_txstart_request(tvbuff_t *tvb, guint offset, packet_info *pinfo, proto_tree *tree)
|
|
{
|
|
guint16 txvector_length;
|
|
guint subframe_descriptor_length;
|
|
|
|
txvector_length = tvb_get_ntohs(tvb, offset);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_length_of_txvector, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
subframe_descriptor_length = dissect_wimaxmacphy_dl_subframe_descriptor(
|
|
tvb, offset, pinfo, tree);
|
|
|
|
offset += subframe_descriptor_length;
|
|
|
|
if (subframe_descriptor_length < txvector_length)
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_unknown, tvb, offset, txvector_length - subframe_descriptor_length, ENC_NA);
|
|
|
|
return txvector_length + 2;
|
|
}
|
|
|
|
static guint dissect_wimaxmacphy_phy_txstart_confirmation(tvbuff_t *tvb, guint offset, packet_info *pinfo _U_, proto_tree *tree)
|
|
{
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_status, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_reserved2, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_next_frame_number, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
/* offset += 1; */
|
|
|
|
return 2;
|
|
}
|
|
|
|
static guint dissect_wimaxmacphy_phy_txstart_indication(tvbuff_t *tvb, guint offset, packet_info *pinfo _U_, proto_tree *tree)
|
|
{
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_txstart_indication_status, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_extended_frame_number, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_current_frame_number_lsn, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_reserved1, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_initial_frame_number, tvb, offset, 3, ENC_BIG_ENDIAN);
|
|
/* offset += 3; */
|
|
|
|
return 6;
|
|
}
|
|
|
|
static guint dissect_wimaxmacphy_phy_txsdu_request(tvbuff_t *tvb, guint offset, packet_info *pinfo _U_, proto_tree *tree)
|
|
{
|
|
guint length;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_dl_zone_number, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_sub_burst_burst_split_point, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_dl_sub_burst_burst_number, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
length = tvb_reported_length_remaining(tvb, offset);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_phy_sdu, tvb, offset, length, ENC_NA);
|
|
|
|
return length + 2;
|
|
}
|
|
|
|
static guint dissect_wimaxmacphy_phy_txsdu_confirmation(tvbuff_t *tvb, guint offset, packet_info *pinfo _U_, proto_tree *tree)
|
|
{
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_dl_zone_number, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_sub_burst_burst_split_point, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_dl_sub_burst_burst_number, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_reserved5, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_status, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_reserved2, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_next_frame_number, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
/* offset += 1; */
|
|
|
|
return 6;
|
|
}
|
|
|
|
static guint dissect_wimaxmacphy_phy_txend_indication(tvbuff_t *tvb, guint offset, packet_info *pinfo _U_, proto_tree *tree)
|
|
{
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_status, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_phy_request, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_current_frame_number_lsn, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_requested_aas_calibration_zone_size, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_requested_aas_calibration_zone_alloc, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_number_of_consecutive_frames_with_aas, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_reserved5, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
/* offset += 2; */
|
|
|
|
return 6;
|
|
}
|
|
|
|
static guint dissect_wimaxmacphy_phy_rxstart_request(tvbuff_t *tvb, guint offset, packet_info *pinfo, proto_tree *tree)
|
|
{
|
|
guint16 rxvector_length;
|
|
guint subframe_descriptor_length;
|
|
|
|
rxvector_length = tvb_get_ntohs(tvb, offset);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_length_of_rxvector, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
subframe_descriptor_length = dissect_wimaxmacphy_ul_subframe_descriptor(
|
|
tvb, offset, pinfo, tree);
|
|
|
|
offset += subframe_descriptor_length;
|
|
|
|
/* check for unprocessed bytes */
|
|
if (subframe_descriptor_length < rxvector_length)
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_unknown, tvb, offset, rxvector_length - subframe_descriptor_length, ENC_NA);
|
|
|
|
return rxvector_length + 2;
|
|
}
|
|
|
|
static guint dissect_wimaxmacphy_phy_rxstart_confirmation(tvbuff_t *tvb, guint offset, packet_info *pinfo _U_, proto_tree *tree)
|
|
{
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_status, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_reserved2, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_frame_number, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
/* offset += 1; */
|
|
|
|
return 2;
|
|
}
|
|
|
|
static guint dissect_wimaxmacphy_phy_rxstart_indication(tvbuff_t *tvb, guint offset, packet_info *pinfo _U_, proto_tree *tree)
|
|
{
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_status, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_reserved2, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_current_frame_number_lsn, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
/* offset += 1; */
|
|
|
|
return 2;
|
|
}
|
|
|
|
static guint dissect_wimaxmacphy_phy_rxsdu_indication(tvbuff_t *tvb, guint offset, packet_info *pinfo _U_, proto_tree *tree)
|
|
{
|
|
guint8 indication_type;
|
|
proto_item *feedback_item;
|
|
proto_tree *subtree, *feedback_tree;
|
|
guint length, start_offset = offset;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_issid, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_integrity, tvb, offset, 4, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_number_of_bytes_received, tvb, offset, 4, ENC_BIG_ENDIAN);
|
|
offset += 4;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_rssi_per_subcarrier_level, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_cinr, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_reserved1, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_power_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_current_frame_number_msn, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_acid_for_harq_data_bursts, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
indication_type = (tvb_get_guint8(tvb, offset) >> 4) & 0x0F;
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_indication_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_zone_permutation_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_update_aas_handle_in_mac, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_aas_handle, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_time_deviation, tvb, offset, 4, ENC_BIG_ENDIAN);
|
|
offset += 4;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_frequency_deviation, tvb, offset, 4, ENC_BIG_ENDIAN);
|
|
offset += 4;
|
|
|
|
switch (indication_type)
|
|
{
|
|
case 0: /* data burst */
|
|
{
|
|
length = tvb_reported_length_remaining(tvb, offset);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_phy_sdu, tvb, offset, length, ENC_NA);
|
|
offset += length;
|
|
break;
|
|
}
|
|
case 1: /* HARQ ACK */
|
|
{
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_wimaxmacphy_prim_harq_ack, NULL, "HARQ ACK channel data format");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_prim_harq_ack_issid, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_prim_harq_ack_acid, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_prim_harq_ack_reserved1, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_prim_harq_ack_ack_valid, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_prim_harq_ack_unnamed, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_prim_harq_ack_reserved2, tvb, offset, 1, ENC_NA);
|
|
offset += 1;
|
|
break;
|
|
}
|
|
case 2: /* fast feedback */
|
|
{
|
|
subtree = proto_tree_add_subtree(tree, tvb, offset, 8, ett_wimaxmacphy_prim_harq_ack, NULL, "Fast Feedback channel data format");
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_prim_fast_issid, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_prim_fast_cqich_id, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
feedback_item = proto_tree_add_item(subtree, hf_wimaxmacphy_prim_fast_feedback_type_coding, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
feedback_tree = proto_item_add_subtree(feedback_item, ett_wimaxmacphy_prim_fast_feedback_type_coding);
|
|
proto_tree_add_item(feedback_tree, hf_wimaxmacphy_prim_fast_feedback_type_coding_bit0, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(feedback_tree, hf_wimaxmacphy_prim_fast_feedback_type_coding_bit1, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(feedback_tree, hf_wimaxmacphy_prim_fast_feedback_type_coding_bit2, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(feedback_tree, hf_wimaxmacphy_prim_fast_feedback_type_coding_bit3, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(feedback_tree, hf_wimaxmacphy_prim_fast_feedback_type_coding_bit4, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(feedback_tree, hf_wimaxmacphy_prim_fast_feedback_type_coding_bit5, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(feedback_tree, hf_wimaxmacphy_prim_fast_feedback_type_coding_bit6, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(feedback_tree, hf_wimaxmacphy_prim_fast_feedback_type_coding_bit7, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_prim_fast_feedback_valid, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_prim_fast_feedback_sub_type, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_prim_fast_reserved, tvb, offset, 2, ENC_NA);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(subtree, hf_wimaxmacphy_prim_fast_feedback_value, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
break;
|
|
}
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return offset - start_offset;
|
|
}
|
|
|
|
static guint dissect_wimaxmacphy_phy_rxend_indication(tvbuff_t *tvb, guint offset, packet_info *pinfo _U_, proto_tree *tree)
|
|
{
|
|
guint start_offset = offset;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_status, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_phy_aas_report_present, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_current_frame_number_lsn, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_number_of_affected_ss, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_reserved1, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
do
|
|
{
|
|
/* list of ISSIDs (at least one required) */
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_issid, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
}
|
|
while (tvb_reported_length_remaining(tvb, offset));
|
|
|
|
return offset - start_offset;
|
|
}
|
|
|
|
static guint dissect_wimaxmacphy_phy_rxcdma_indication(tvbuff_t *tvb, guint offset, packet_info *pinfo _U_, proto_tree *tree)
|
|
{
|
|
guint start_offset = offset;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_zonexid, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_cdma_code, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_cdma_symbol, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_reserved1, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_cdma_subchannel, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_rssi_per_subcarrier_level, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_cinr, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_reserved3, tvb, offset, 1, ENC_NA);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_power_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_current_frame_number_msn, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_reserved4, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_aas_handle, tvb, offset, 2, ENC_BIG_ENDIAN);
|
|
offset += 2;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_time_deviation, tvb, offset, 4, ENC_BIG_ENDIAN);
|
|
offset += 4;
|
|
|
|
proto_tree_add_item(tree, hf_wimaxmacphy_prim_frequency_deviation, tvb, offset, 4, ENC_BIG_ENDIAN);
|
|
offset += 4;
|
|
|
|
return offset - start_offset;
|
|
}
|
|
|
|
static int
|
|
dissect_wimaxmacphy(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
|
{
|
|
/* Set up structures needed to add the protocol subtree and manage it */
|
|
proto_tree *wimaxmacphy_tree, *primitive_tree;
|
|
proto_item *item;
|
|
|
|
guint offset = 0;
|
|
guint8 message_type;
|
|
|
|
/* Ensure minimum size */
|
|
if (tvb_reported_length(tvb) < WIMAXMACPHY_HEADER_SIZE)
|
|
return 0;
|
|
|
|
col_set_str(pinfo->cinfo, COL_PROTOCOL, "wimaxmacphy");
|
|
col_clear(pinfo->cinfo, COL_INFO);
|
|
|
|
item = proto_tree_add_item(tree, proto_wimaxmacphy, tvb, 0, -1, ENC_NA);
|
|
wimaxmacphy_tree = proto_item_add_subtree(item, ett_wimaxmacphy);
|
|
|
|
proto_tree_add_item(wimaxmacphy_tree, hf_wimaxmacphy_hdr_phy_entity_id,
|
|
tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(wimaxmacphy_tree, hf_wimaxmacphy_hdr_message_segmentation,
|
|
tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
offset += 1;
|
|
|
|
message_type = tvb_get_guint8(tvb, offset);
|
|
item = proto_tree_add_item(wimaxmacphy_tree, hf_wimaxmacphy_hdr_message_type,
|
|
tvb, offset, 1, ENC_BIG_ENDIAN);
|
|
|
|
primitive_tree = proto_item_add_subtree(item, ett_wimaxmacphy_primitive);
|
|
#if 0
|
|
col_add_str(pinfo->cinfo, COL_INFO, val_to_str_ext_const(message_type, &wimaxmacphy_message_type_vals_ext, "Unknown"));
|
|
#endif
|
|
col_set_str(pinfo->cinfo, COL_INFO, val_to_str_const(message_type, wimaxmacphy_message_type_vals, "Unknown"));
|
|
offset += 1;
|
|
|
|
switch(message_type)
|
|
{
|
|
case WIMAXMACPHY_PHY_TXSTART_REQUEST:
|
|
offset += dissect_wimaxmacphy_phy_txstart_request(
|
|
tvb, offset, pinfo, primitive_tree);
|
|
break;
|
|
case WIMAXMACPHY_PHY_TXSTART_CONFIRMATION:
|
|
offset += dissect_wimaxmacphy_phy_txstart_confirmation(
|
|
tvb, offset, pinfo, primitive_tree);
|
|
break;
|
|
case WIMAXMACPHY_PHY_TXSTART_INDICATION:
|
|
offset += dissect_wimaxmacphy_phy_txstart_indication(
|
|
tvb, offset, pinfo, primitive_tree);
|
|
break;
|
|
case WIMAXMACPHY_PHY_TXSDU_REQUEST:
|
|
offset += dissect_wimaxmacphy_phy_txsdu_request(
|
|
tvb, offset, pinfo, primitive_tree);
|
|
break;
|
|
case WIMAXMACPHY_PHY_TXSDU_CONFIRMATION:
|
|
offset += dissect_wimaxmacphy_phy_txsdu_confirmation(
|
|
tvb, offset, pinfo, primitive_tree);
|
|
break;
|
|
case WIMAXMACPHY_PHY_TXEND_INDICATION:
|
|
offset += dissect_wimaxmacphy_phy_txend_indication(
|
|
tvb, offset, pinfo, primitive_tree);
|
|
break;
|
|
case WIMAXMACPHY_PHY_RXSTART_REQUEST:
|
|
offset += dissect_wimaxmacphy_phy_rxstart_request(
|
|
tvb, offset, pinfo, primitive_tree);
|
|
break;
|
|
case WIMAXMACPHY_PHY_RXSTART_CONFIRMATION:
|
|
offset += dissect_wimaxmacphy_phy_rxstart_confirmation(
|
|
tvb, offset, pinfo, primitive_tree);
|
|
break;
|
|
case WIMAXMACPHY_PHY_RXSTART_INDICATION:
|
|
offset += dissect_wimaxmacphy_phy_rxstart_indication(
|
|
tvb, offset, pinfo, primitive_tree);
|
|
break;
|
|
case WIMAXMACPHY_PHY_RXSDU_INDICATION:
|
|
offset += dissect_wimaxmacphy_phy_rxsdu_indication(
|
|
tvb, offset, pinfo, primitive_tree);
|
|
break;
|
|
case WIMAXMACPHY_PHY_RXEND_INDICATION:
|
|
offset += dissect_wimaxmacphy_phy_rxend_indication(
|
|
tvb, offset, pinfo, primitive_tree);
|
|
break;
|
|
case WIMAXMACPHY_PHY_RXCDMA_INDICATION:
|
|
offset += dissect_wimaxmacphy_phy_rxcdma_indication(
|
|
tvb, offset, pinfo, primitive_tree);
|
|
break;
|
|
default:
|
|
proto_tree_add_item(primitive_tree, hf_wimaxmacphy_unknown,
|
|
tvb, offset, tvb_reported_length_remaining(tvb, offset), ENC_NA);
|
|
offset += tvb_reported_length_remaining(tvb, offset);
|
|
break;
|
|
}
|
|
|
|
if (tvb_reported_length_remaining(tvb, offset) > 0)
|
|
{
|
|
/* Incorporate any "extra" bytes */
|
|
item = proto_tree_add_item(wimaxmacphy_tree, hf_wimaxmacphy_unknown,
|
|
tvb, offset, tvb_reported_length_remaining(tvb, offset), ENC_NA);
|
|
|
|
expert_add_info(pinfo, item, &ei_wimaxmacphy_unknown);
|
|
}
|
|
|
|
return tvb_captured_length(tvb);
|
|
}
|
|
|
|
void
|
|
proto_register_wimaxmacphy(void)
|
|
{
|
|
module_t *wimaxmacphy_module;
|
|
|
|
static hf_register_info hf[] = {
|
|
{
|
|
&hf_wimaxmacphy_hdr_phy_entity_id,
|
|
{
|
|
"PHY entity ID",
|
|
"wimaxmacphy.hdr_phy_entity_id",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0xfc,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_hdr_message_segmentation,
|
|
{
|
|
"Message Segmentation",
|
|
"wimaxmacphy.hdr_message_segmentation",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_message_segmentation_vals),
|
|
0x03,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_hdr_message_type,
|
|
{
|
|
"Message Type",
|
|
"wimaxmacphy.hdr_message_type",
|
|
FT_UINT8,
|
|
#if 0
|
|
BASE_HEX | BASE_EXT_STRING,
|
|
&wimaxmacphy_message_type_vals_ext,
|
|
#endif
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_message_type_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_unknown,
|
|
{
|
|
"Unknown(!)",
|
|
"wimaxmacphy.unknown_primitive",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_length_of_txvector,
|
|
{
|
|
"Length of TXVECTOR",
|
|
"wimaxmacphy.prim_length_of_txvector",
|
|
FT_UINT16,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_length_of_rxvector,
|
|
{
|
|
"Length of RXVECTOR",
|
|
"wimaxmacphy.prim_length_of_rxvector",
|
|
FT_UINT16,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_status,
|
|
{
|
|
"Status",
|
|
"wimaxmacphy.prim_status",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_prim_status_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_txstart_indication_status,
|
|
{
|
|
"Status",
|
|
"wimaxmacphy.prim_status",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_prim_txstart_indication_status_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_reserved1,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.prim_reserved1",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_reserved2,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.prim_reserved2",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
NULL,
|
|
0xF0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_reserved3,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.prim_reserved3",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_reserved4,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.prim_reserved4",
|
|
FT_UINT16,
|
|
BASE_HEX,
|
|
NULL,
|
|
0x0FFF,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_reserved5,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.prim_reserved5",
|
|
FT_UINT16,
|
|
BASE_HEX,
|
|
NULL,
|
|
0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_next_frame_number,
|
|
{
|
|
"Next Frame Number (lsb)",
|
|
"wimaxmacphy.prim_next_frame_number",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_extended_frame_number,
|
|
{
|
|
"Extended frame number",
|
|
"wimaxmacphy.prim_extended_frame_number",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0xf0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_current_frame_number_lsn,
|
|
{
|
|
"Current Frame Number (lsb)",
|
|
"wimaxmacphy.prim_current_frame_number",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0f,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_initial_frame_number,
|
|
{
|
|
"Initial Frame Number (from PHY)",
|
|
"wimaxmacphy.prim_initial_frame_number",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_dl_zone_number,
|
|
{
|
|
"DL zone number",
|
|
"wimaxmacphy.prim_dl_zone_number",
|
|
FT_UINT16,
|
|
BASE_DEC,
|
|
NULL,
|
|
0xe000,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_sub_burst_burst_split_point,
|
|
{
|
|
"Sub-burst/burst split point",
|
|
"wimaxmacphy.prim_sub_burst_burst_split_point",
|
|
FT_UINT16,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x1c00,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_dl_sub_burst_burst_number,
|
|
{
|
|
"DL sub-burst/burst number in this zone",
|
|
"wimaxmacphy.prim_dl_sub_burst_burst_number",
|
|
FT_UINT16,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x03ff,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_phy_sdu,
|
|
{
|
|
"PHY SDU",
|
|
"wimaxmacphy.prim_phy_sdu",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_phy_request,
|
|
{
|
|
"PHY request (LW 1)",
|
|
"wimaxmacphy.prim_phy_request",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
NULL,
|
|
0xf0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_requested_aas_calibration_zone_size,
|
|
{
|
|
"Requested AAS Calibration Zone size",
|
|
"wimaxmacphy.prim_requested_aas_calibration_zone_size",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_requested_aas_calibration_zone_alloc,
|
|
{
|
|
"Requested AAS Calibration Zone allocation deadline",
|
|
"wimaxmacphy.prim_requested_aas_calibration_zone_alloc",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0xf0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_number_of_consecutive_frames_with_aas,
|
|
{
|
|
"Number of consecutive frames with AAS Calibration Zone"
|
|
" allocation",
|
|
"wimaxmacphy.prim_number_of_consecutive_frames_with_aas",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0f,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_frame_number,
|
|
{
|
|
"Frame Number (lsb)",
|
|
"wimaxmacphy.prim_frame_number",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0f,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_issid,
|
|
{
|
|
"ISSID",
|
|
"wimaxmacphy.prim_issid",
|
|
FT_INT16,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_integrity,
|
|
{
|
|
"Integrity",
|
|
"wimaxmacphy.prim_integrity",
|
|
FT_UINT32,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_prim_integrity_vals),
|
|
0x80000000,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_number_of_bytes_received,
|
|
{
|
|
"Number of bytes received",
|
|
"wimaxmacphy.prim_number_of_bytes_received",
|
|
FT_UINT32,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x7fffffff,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_rssi_per_subcarrier_level,
|
|
{
|
|
"RSSI per subcarrier level",
|
|
"wimaxmacphy.prim_rssi_per_subcarrier_level",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_cinr,
|
|
{
|
|
"CINR",
|
|
"wimaxmacphy.prim_cinr",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_power_offset,
|
|
{
|
|
"Power Offset",
|
|
"wimaxmacphy.prim_power_offset",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_current_frame_number_msn,
|
|
{
|
|
"Current Frame Number (lsb)",
|
|
"wimaxmacphy.prim_current_frame_number",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0xf0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_acid_for_harq_data_bursts,
|
|
{
|
|
"ACID for HARQ data bursts",
|
|
"wimaxmacphy.prim_acid_for_harq_data_bursts",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0f,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_indication_type,
|
|
{
|
|
"Indication Type",
|
|
"wimaxmacphy.prim_indication_type",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_prim_indication_type_vals),
|
|
0xf0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_zone_permutation_type,
|
|
{
|
|
"Zone Permutation Type",
|
|
"wimaxmacphy.prim_zone_permutation_type",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_prim_zone_permutation_type_vals),
|
|
0x0e,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_update_aas_handle_in_mac,
|
|
{
|
|
"Update AAS handle in MAC",
|
|
"wimaxmacphy.prim_update_aas_handle_in_mac",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
NULL,
|
|
0x1,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_aas_handle,
|
|
{
|
|
"AAS Handle",
|
|
"wimaxmacphy.prim_aas_handle",
|
|
FT_UINT16,
|
|
BASE_HEX,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_time_deviation,
|
|
{
|
|
"Time deviation in units of 1/Fs",
|
|
"wimaxmacphy.prim_time_deviation",
|
|
FT_INT32,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_frequency_deviation,
|
|
{
|
|
"Frequency deviation in Hz",
|
|
"wimaxmacphy.prim_frequency_deviation",
|
|
FT_INT32,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_harq_ack_issid,
|
|
{
|
|
"ISSID",
|
|
"wimaxmacphy.prim_harq_ack_issid",
|
|
FT_INT16,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_harq_ack_acid,
|
|
{
|
|
"ACID",
|
|
"wimaxmacphy.prim_harq_ack_acid",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0xf0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_harq_ack_reserved1,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.prim_harq_ack_reserved1",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
NULL,
|
|
0x0c,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_harq_ack_ack_valid,
|
|
{
|
|
"ACK Valid",
|
|
"wimaxmacphy.prim_harq_ack_ack_valid",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_prim_harq_ack_ack_valid_vals),
|
|
0x2,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_harq_ack_unnamed,
|
|
{
|
|
"Unnamed",
|
|
"wimaxmacphy.prim_harq_ack_unnamed",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_prim_harq_ack_unnamed_vals),
|
|
0x1,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_harq_ack_reserved2,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.prim_harq_ack_reserved2",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_fast_issid,
|
|
{
|
|
"ISSID",
|
|
"wimaxmacphy.prim_fast_issid",
|
|
FT_INT16,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_fast_cqich_id,
|
|
{
|
|
"CQICH_ID",
|
|
"wimaxmacphy.prim_fast_cqich_id",
|
|
FT_UINT16,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_fast_feedback_type_coding,
|
|
{
|
|
"Feedback type coding",
|
|
"wimaxmacphy.prim_fast_type_coding",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_fast_feedback_type_coding_bit0,
|
|
{
|
|
"3 bit-MIMO Fast-feedback",
|
|
"wimaxmacphy.prim_fast_type_coding.bit0",
|
|
FT_BOOLEAN,
|
|
8,
|
|
TFS(&set_notset),
|
|
0x01,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_fast_feedback_type_coding_bit1,
|
|
{
|
|
"Enhanced FAST_FEEDBACK",
|
|
"wimaxmacphy.prim_fast_type_coding.bit1",
|
|
FT_BOOLEAN,
|
|
8,
|
|
TFS(&set_notset),
|
|
0x02,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_fast_feedback_type_coding_bit2,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.prim_fast_type_coding.bit2",
|
|
FT_BOOLEAN,
|
|
8,
|
|
TFS(&set_notset),
|
|
0x04,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_fast_feedback_type_coding_bit3,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.prim_fast_type_coding.bit3",
|
|
FT_BOOLEAN,
|
|
8,
|
|
TFS(&set_notset),
|
|
0x08,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_fast_feedback_type_coding_bit4,
|
|
{
|
|
"UEP fast-feedback",
|
|
"wimaxmacphy.prim_fast_type_coding.bit4",
|
|
FT_BOOLEAN,
|
|
8,
|
|
TFS(&set_notset),
|
|
0x10,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_fast_feedback_type_coding_bit5,
|
|
{
|
|
"A measurement report performed on the last DL burst",
|
|
"wimaxmacphy.prim_fast_type_coding.bit5",
|
|
FT_BOOLEAN,
|
|
8,
|
|
TFS(&set_notset),
|
|
0x20,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_fast_feedback_type_coding_bit6,
|
|
{
|
|
"Primary/Secondary FAST_FEEDBACK",
|
|
"wimaxmacphy.prim_fast_type_coding.bit6",
|
|
FT_BOOLEAN,
|
|
8,
|
|
TFS(&set_notset),
|
|
0x40,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_fast_feedback_type_coding_bit7,
|
|
{
|
|
"DIUC-CQI Fast-feedback",
|
|
"wimaxmacphy.prim_fast_type_coding.bit7",
|
|
FT_BOOLEAN,
|
|
8,
|
|
TFS(&set_notset),
|
|
0x80,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_fast_feedback_valid,
|
|
{
|
|
"Feedback Valid",
|
|
"wimaxmacphy.prim_fast_feedback_valid",
|
|
FT_UINT16,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_prim_fast_feedback_valid_vals),
|
|
0x8000,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_fast_feedback_sub_type,
|
|
{
|
|
"Feedback sub-type",
|
|
"wimaxmacphy.prim_fast_feedback_sub_type",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(
|
|
wimaxmacphy_prim_fast_feedback_sub_type_vals),
|
|
0x7000,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_fast_reserved,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.prim_fast_reserved",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_fast_feedback_value,
|
|
{
|
|
"Feedback value",
|
|
"wimaxmacphy.prim_fast_feedback_value",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_phy_aas_report_present,
|
|
{
|
|
"PHY AAS report present",
|
|
"wimaxmacphy.prim_phy_aas_report_present",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_prim_phy_aas_report_present_vals),
|
|
0xf0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_number_of_affected_ss,
|
|
{
|
|
"Number of affected SS",
|
|
"wimaxmacphy.prim_number_of_affected_ss",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_zonexid,
|
|
{
|
|
"ZoneXID",
|
|
"wimaxmacphy.prim_zonexid",
|
|
FT_UINT16,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_cdma_code,
|
|
{
|
|
"CDMA code",
|
|
"wimaxmacphy.prim_cdma_code",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_cdma_symbol,
|
|
{
|
|
"CDMA symbol",
|
|
"wimaxmacphy.prim_cdma_symbol",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_prim_cdma_subchannel,
|
|
{
|
|
"CDMA subchannel",
|
|
"wimaxmacphy.prim_cdma_subchannel",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_subframe_subframe_type,
|
|
{
|
|
"Subframe Type",
|
|
"wimaxmacphy.subframe_subframe_type",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_subframe_type_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_subframe_frame_number,
|
|
{
|
|
"Frame Number",
|
|
"wimaxmacphy.subframe_frame_number",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_subframe_downlink_reserved1,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.subframe_downlink_reserved1",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_subframe_phy_sap_version_number,
|
|
{
|
|
"PHY SAP version number",
|
|
"wimaxmacphy.subframe_phy_sap_version_number",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_subframe_downlink_reserved2,
|
|
{
|
|
"Downlink reserved",
|
|
"wimaxmacphy.subframe_downlink_reserved2",
|
|
FT_UINT32,
|
|
BASE_HEX,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_subframe_allocation_start_time,
|
|
{
|
|
"Allocation start time",
|
|
"wimaxmacphy.subframe_allocation_start_time",
|
|
FT_UINT32,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_number_of_zone_descriptors,
|
|
{
|
|
"Number of Zone Descriptors",
|
|
"wimaxmacphy.number_of_zone_descriptors",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_zone_padding,
|
|
{
|
|
"Padding",
|
|
"wimaxmacphy.zone_padding",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_dl_zone_type,
|
|
{
|
|
"Zone Type",
|
|
"wimaxmacphy.zone_type",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_dl_zone_type_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_zone_type,
|
|
{
|
|
"Zone Type",
|
|
"wimaxmacphy.zone_type",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_ul_zone_type_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_zone_number,
|
|
{
|
|
"Zone Number",
|
|
"wimaxmacphy.zone_number",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_zone_start_symbol_offset,
|
|
{
|
|
"Start Symbol Offset",
|
|
"wimaxmacphy.zone_start_symbol_offset",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_zone_end_symbol_offset,
|
|
{
|
|
"End Symbol Offset",
|
|
"wimaxmacphy.zone_end_symbol_offset",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_dl_zone_permutation_type,
|
|
{
|
|
"Permutation Type",
|
|
"wimaxmacphy.zone_permutation_type",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_dl_zone_permutation_type_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_zone_permutation_type,
|
|
{
|
|
"Permutation Type",
|
|
"wimaxmacphy.zone_permutation_type",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_ul_zone_permutation_type_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_dl_zone_use_all_subchannels_indicator,
|
|
{
|
|
"Use all subchannels indicator",
|
|
"wimaxmacphy.zone_use_all_subchannels_indicator",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_zone_use_all_subchannels_indicator_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_zone_use_all_subchannels_indicator,
|
|
{
|
|
"Use all subchannels indicator",
|
|
"wimaxmacphy.zone_use_all_subchannels_indicator",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_zone_use_all_subchannels_indicator_vals),
|
|
0xf0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_zone_disable_pusc_subchannel_rotation,
|
|
{
|
|
"Disable PUSC subchannel rotation",
|
|
"wimaxmacphy.zone_disable_pusc_subchannel_rotation",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(
|
|
wimaxmacphy_ul_zone_disable_pusc_subchannel_rotation_vals),
|
|
0x0f,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_zone_dl_perm_base,
|
|
{
|
|
"DL_PermBase",
|
|
"wimaxmacphy.zone_dl_perm_base",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_zone_ul_perm_base,
|
|
{
|
|
"UL_PermBase",
|
|
"wimaxmacphy.zone_ul_perm_base",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_zone_prbs_id,
|
|
{
|
|
"PRBS_ID",
|
|
"wimaxmacphy.zone_prbs_id",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_zone_dedicated_pilots,
|
|
{
|
|
"Dedicated pilots",
|
|
"wimaxmacphy.zone_dedicated_pilots",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_zone_dedicated_pilots_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_zone_agc_range_extension,
|
|
{
|
|
"Rx AGC range extension",
|
|
"wimaxmacphy.zone_agc_range_extension",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_zone_agc_range_extension_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_zone_reserved,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.zone_reserved",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_zone_stc_type,
|
|
{
|
|
"STC type",
|
|
"wimaxmacphy.zone_stc_type",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_zone_stc_type_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_zone_matrix_indicator,
|
|
{
|
|
"Matrix Indicator",
|
|
"wimaxmacphy.zone_matrix_indicator",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_matrix_indicator_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_zone_midamble_presence,
|
|
{
|
|
"Midamble presence",
|
|
"wimaxmacphy.zone_midamble_presence",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_zone_midamble_presence_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_zone_midamble_boosting,
|
|
{
|
|
"Midamble boosting",
|
|
"wimaxmacphy.zone_midamble_boosting",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_zone_midamble_boosting_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_zone_preamble_configuration,
|
|
{
|
|
"Preamble configuration",
|
|
"wimaxmacphy.zone_preamble_configuration",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_zone_preamble_configuration_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_zone_sdma_supported_indication,
|
|
{
|
|
"SDMA supported indication",
|
|
"wimaxmacphy.zone_sdma_supported_indication",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_zone_sdma_supported_indication_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_zone_preamble_type,
|
|
{
|
|
"Preamble type",
|
|
"wimaxmacphy.zone_preamble_type",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_zone_preamble_type_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_dl_zone_aas_reserved,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.zone_aas_reserved",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_zone_aas_reserved,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.zone_aas_reserved",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_number_of_burst_descriptors,
|
|
{
|
|
"Number of Burst Descriptors",
|
|
"wimaxmacphy.number_of_burst_descriptors",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_burst_padding,
|
|
{
|
|
"Padding",
|
|
"wimaxmacphy.burst_padding",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_dl_burst_type,
|
|
{
|
|
"Burst Type",
|
|
"wimaxmacphy.burst_type",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_dl_burst_type_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_type,
|
|
{
|
|
"Burst Type",
|
|
"wimaxmacphy.dl_burst_type",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_ul_burst_type_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_burst_type_extension,
|
|
{
|
|
"Burst Type extension",
|
|
"wimaxmacphy.burst_type_extension",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_burst_type_extension_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_burst_number,
|
|
{
|
|
"Burst Number",
|
|
"wimaxmacphy.burst_number",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_burst_modulation_fec_code_type,
|
|
{
|
|
"Modulation/FEC Code Type",
|
|
"wimaxmacphy.burst_modulation_fec_code_type",
|
|
FT_UINT8,
|
|
#if 0
|
|
BASE_DEC | BASE_EXT_STRING,
|
|
&wimaxmacphy_modulation_fec_code_type_vals_ext,
|
|
#endif
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_modulation_fec_code_type_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_burst_data_length,
|
|
{
|
|
"Burst Data Length",
|
|
"wimaxmacphy.burst_data_length",
|
|
FT_UINT32,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_burst_ofdma_symbol_offset,
|
|
{
|
|
"OFDMA Symbol offset",
|
|
"wimaxmacphy.burst_ofdma_symbol_offset",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_burst_subchannel_offset,
|
|
{
|
|
"Subchannel offset",
|
|
"wimaxmacphy.burst_subchannel_offset",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_burst_boosting,
|
|
{
|
|
"Boosting",
|
|
"wimaxmacphy.burst_boosting",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_burst_boosting_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_burst_reserved,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.burst_reserved",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_burst_repetition_coding_indication,
|
|
{
|
|
"Repetition coding indication",
|
|
"wimaxmacphy.burst_repetition_coding_indication",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_burst_repetition_coding_indication_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_burst_issid,
|
|
{
|
|
"ISSID",
|
|
"wimaxmacphy.burst_issid",
|
|
FT_INT16,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_burst_aas_handle,
|
|
{
|
|
"AAS Handle",
|
|
"wimaxmacphy.burst_aas_handle",
|
|
FT_UINT16,
|
|
BASE_HEX,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_dl_burst_map_number_of_slots,
|
|
{
|
|
"Number of slots (duration) after repetition code is"
|
|
" applied",
|
|
"wimaxmacphy.burst_map_number_of_slots",
|
|
FT_UINT16,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_dl_burst_map_reserved,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.burst_map_reserved",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_dl_burst_normal_number_of_symbols,
|
|
{
|
|
"Number of Symbols",
|
|
"wimaxmacphy.burst_normal_number_of_symbols",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_dl_burst_normal_number_of_subchannels,
|
|
{
|
|
"Number of Subchannels",
|
|
"wimaxmacphy.burst_normal_number_of_subchannels",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_dl_burst_normal_aas_handle,
|
|
{
|
|
"AAS Handle",
|
|
"wimaxmacphy.burst_normal_aas_handle",
|
|
FT_UINT16,
|
|
BASE_HEX,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_normal_number_of_slots,
|
|
{
|
|
"Number of slots",
|
|
"wimaxmacphy.burst_normal_number_of_slots",
|
|
FT_UINT16,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_normal_reserved,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.burst_normal_reserved",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_burst_papr_number_of_symbols,
|
|
{
|
|
"Number of Symbols",
|
|
"wimaxmacphy.burst_papr_number_of_symbols",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_burst_papr_number_of_subchannels,
|
|
{
|
|
"Number of Subchannels",
|
|
"wimaxmacphy.burst_papr_number_of_subchannels",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_burst_papr_reserved,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.burst_papr_reserved",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_papr_unnamed,
|
|
{
|
|
"Unnamed",
|
|
"wimaxmacphy.burst_papr_unnamed",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_ul_burst_papr_unnamed_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_harq_ack_number_of_symbols,
|
|
{
|
|
"Number of Symbols",
|
|
"wimaxmacphy.burst_harq_ack_number_of_symbols",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_harq_ack_number_of_subchannels,
|
|
{
|
|
"Number of Subchannels",
|
|
"wimaxmacphy.burst_harq_ack_number_of_subchannels",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_harq_ack_reserved,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.burst_harq_ack_reserved",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_fast_number_of_symbols,
|
|
{
|
|
"Number of Symbols",
|
|
"wimaxmacphy.burst_fast_number_of_symbols",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_fast_number_of_subchannels,
|
|
{
|
|
"Number of Subchannels",
|
|
"wimaxmacphy.burst_fast_number_of_subchannels",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_fast_reserved,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.burst_fast_reserved",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_initial_number_of_symbols,
|
|
{
|
|
"Number of Symbols",
|
|
"wimaxmacphy.burst_initial_number_of_symbols",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_initial_number_of_subchannels,
|
|
{
|
|
"Number of Subchannels",
|
|
"wimaxmacphy.burst_initial_number_of_subchannels",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_initial_ranging_method,
|
|
{
|
|
"Ranging method",
|
|
"wimaxmacphy.burst_initial_ranging_method",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_ul_burst_ranging_method_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_initial_reserved1,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.burst_initial_reserved1",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_initial_zone_xid,
|
|
{
|
|
"Zone XID",
|
|
"wimaxmacphy.burst_initial_zone_xid",
|
|
FT_UINT16,
|
|
BASE_HEX,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_initial_reserved2,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.burst_initial_reserved2",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_periodic_number_of_symbols,
|
|
{
|
|
"Number of Symbols",
|
|
"wimaxmacphy.burst_periodic_number_of_symbols",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_periodic_number_of_subchannels,
|
|
{
|
|
"Number of Subchannels",
|
|
"wimaxmacphy.burst_periodic_number_of_subchannels",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_periodic_ranging_method,
|
|
{
|
|
"Ranging method",
|
|
"wimaxmacphy.burst_periodic_ranging_method",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_ul_burst_ranging_method_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_periodic_reserved1,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.burst_periodic_reserved1",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_periodic_zone_xid,
|
|
{
|
|
"Zone XID",
|
|
"wimaxmacphy.burst_periodic_zone_xid",
|
|
FT_UINT16,
|
|
BASE_HEX,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_periodic_reserved2,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.burst_periodic_reserved2",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_noise_number_of_symbols,
|
|
{
|
|
"Number of Symbols",
|
|
"wimaxmacphy.burst_noise_number_of_symbols",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_noise_number_of_subchannels,
|
|
{
|
|
"Number of Subchannels",
|
|
"wimaxmacphy.burst_noise_number_of_subchannels",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_noise_reserved,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.burst_noise_reserved",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_sounding_number_of_symbols,
|
|
{
|
|
"Number of Symbols",
|
|
"wimaxmacphy.burst_sounding_number_of_symbols",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_sounding_number_of_subchannels,
|
|
{
|
|
"Number of Subchannels",
|
|
"wimaxmacphy.burst_sounding_number_of_subchannels",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_sounding_type,
|
|
{
|
|
"Sounding type",
|
|
"wimaxmacphy.burst_sounding_type",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_ul_burst_sounding_type_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_sounding_separability_type,
|
|
{
|
|
"Separability type",
|
|
"wimaxmacphy.burst_sounding_separability_type",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_ul_burst_sounding_separability_type_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_sounding_max_cyclic_shift_indx,
|
|
{
|
|
"Max Cyclic Shift Indx",
|
|
"wimaxmacphy.burst_sounding_max_cyclic_shift_indx",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(
|
|
wimaxmacphy_ul_burst_sounding_max_cyclic_shift_indx_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_sounding_decimation_value,
|
|
{
|
|
"Decimation value",
|
|
"wimaxmacphy.burst_sounding_decimation_value",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_sounding_decimation_offset_rand,
|
|
{
|
|
"Decimation offset randomization",
|
|
"wimaxmacphy.burst_sounding_decimation_offset_rand",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(
|
|
wimaxmacphy_ul_burst_sounding_decimation_offset_rand_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_sounding_reserved,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.burst_sounding_reserved",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_burst_opt_aas_preamble_modifier_type,
|
|
{
|
|
"Preamble Modifier Type",
|
|
"wimaxmacphy.burst_opt_aas_preamble_modifier_type",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_burst_opt_aas_preamble_shift_index,
|
|
{
|
|
"Preamble Shift index",
|
|
"wimaxmacphy.burst_opt_aas_preamble_shift_index",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_burst_opt_aas_reserved,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.burst_opt_aas_reserved",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_burst_opt_mimo_matrix_indicator,
|
|
{
|
|
"Matrix indicator",
|
|
"wimaxmacphy.burst_opt_mimo_matrix_indicator",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_matrix_indicator_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_burst_opt_mimo_layer_index,
|
|
{
|
|
"Layer index",
|
|
"wimaxmacphy.burst_opt_mimo_layer_index",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_dl_burst_opt_mimo_reserved,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.burst_opt_mimo_reserved",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_opt_mimo_matrix_indicator,
|
|
{
|
|
"Matrix indicator (dual antenna SS)",
|
|
"wimaxmacphy.burst_opt_mimo_matrix_indicator",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_ul_burst_opt_mimo_matrix_indicator_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns,
|
|
{
|
|
"Pilot patterns",
|
|
"wimaxmacphy.burst_opt_mimo_pilot_patterns",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit0,
|
|
{
|
|
"Pattern A",
|
|
"wimaxmacphy.burst_opt_mimo_pilot_patterns.A",
|
|
FT_BOOLEAN,
|
|
8,
|
|
TFS(&set_notset),
|
|
0x01,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit1,
|
|
{
|
|
"Pattern B",
|
|
"wimaxmacphy.burst_opt_mimo_pilot_patterns.B",
|
|
FT_BOOLEAN,
|
|
8,
|
|
TFS(&set_notset),
|
|
0x02,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit2,
|
|
{
|
|
"Pattern C",
|
|
"wimaxmacphy.burst_opt_mimo_pilot_patterns.C",
|
|
FT_BOOLEAN,
|
|
8,
|
|
TFS(&set_notset),
|
|
0x04,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit3,
|
|
{
|
|
"Pattern D",
|
|
"wimaxmacphy.burst_opt_mimo_pilot_patterns.D",
|
|
FT_BOOLEAN,
|
|
8,
|
|
TFS(&set_notset),
|
|
0x08,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_opt_mimo_collaborative,
|
|
{
|
|
"Collaborative MIMO control",
|
|
"wimaxmacphy.burst_opt_mimo_collaborative",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_ul_burst_opt_mimo_collaborative_vals),
|
|
0xf0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_burst_opt_mimo_antenna_unnamed,
|
|
{
|
|
"Antenna(?)",
|
|
"wimaxmacphy.burst_opt_mimo_antenna_unnamed",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_ul_burst_opt_mimo_antenna_unnamed_vals),
|
|
0x0f,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_number_of_sub_burst_descriptors,
|
|
{
|
|
"Number of Sub-Burst Descriptors",
|
|
"wimaxmacphy.number_of_sub_burst_descriptors",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_padding,
|
|
{
|
|
"Padding",
|
|
"wimaxmacphy.sub_burst_padding",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_dl_sub_burst_type,
|
|
{
|
|
"Sub-Burst Type",
|
|
"wimaxmacphy.sub_burst_type",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_dl_sub_burst_type_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_type,
|
|
{
|
|
"Sub-Burst Type",
|
|
"wimaxmacphy.sub_burst_type",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_ul_sub_burst_type_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_number,
|
|
{
|
|
"Sub-Burst number",
|
|
"wimaxmacphy.sub_burst_number",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_symbol_offset,
|
|
{
|
|
"Symbol Offset",
|
|
"wimaxmacphy.sub_burst_symbol_offset",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_subchannel_offset,
|
|
{
|
|
"Subchannel Offset",
|
|
"wimaxmacphy.sub_burst_subchannel_offset",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_number_of_slots,
|
|
{
|
|
"Number of slots in this sub-burst",
|
|
"wimaxmacphy.sub_burst_number_of_slots",
|
|
FT_UINT16,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_reserved1,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.sub_burst_reserved1",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_reserved2,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.sub_burst_reserved2",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_modulation_fec_code_type,
|
|
{
|
|
"Modulation/FEC Code Type",
|
|
"wimaxmacphy.sub_burst_modulation_fec_code_type",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_modulation_fec_code_type_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_issid,
|
|
{
|
|
"ISSID",
|
|
"wimaxmacphy.sub_burst_issid",
|
|
FT_INT16,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_aas_handle,
|
|
{
|
|
"AAS Handle",
|
|
"wimaxmacphy.sub_burst_aas_handle",
|
|
FT_UINT16,
|
|
BASE_HEX,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_boosting,
|
|
{
|
|
"Boosting",
|
|
"wimaxmacphy.sub_burst_boosting",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_burst_boosting_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_repetition_coding_indication,
|
|
{
|
|
"Repetition coding indication",
|
|
"wimaxmacphy.sub_burst_repetition_coding_indication",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_burst_repetition_coding_indication_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_data_length,
|
|
{
|
|
"Sub-Burst Data Length",
|
|
"wimaxmacphy.sub_burst_data_length",
|
|
FT_UINT32,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_harq_chase_harq_channel_id,
|
|
{
|
|
"HARQ channeld id (ACID)",
|
|
"wimaxmacphy.sub_burst_harq_chase_harq_channel_id",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_harq_chase_harq_sequence_number,
|
|
{
|
|
"HARQ sequence number (AI_SN)",
|
|
"wimaxmacphy.sub_burst_harq_chase_harq_sequence_number",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_harq_chase_flush_unnamed,
|
|
{
|
|
"Flush(?)",
|
|
"wimaxmacphy.sub_burst_harq_chase_flush_unnamed",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_sub_burst_flush_unnamed_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_harq_chase_reserved,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.sub_burst_harq_chase_reserved",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_mimo_chase_harq_channel_id,
|
|
{
|
|
"HARQ channel id (ACID)",
|
|
"wimaxmacphy.sub_burst_mimo_chase_harq_channel_id",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_mimo_chase_harq_sequence_number,
|
|
{
|
|
"HARQ sequence number (AI_SN)",
|
|
"wimaxmacphy.sub_burst_mimo_chase_harq_sequence_number",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_mimo_chase_flush_unnamed,
|
|
{
|
|
"Flush(?)",
|
|
"wimaxmacphy.sub_burst_mimo_chase_flush_unnamed",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_sub_burst_flush_unnamed_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_sub_burst_mimo_chase_layer_index,
|
|
{
|
|
"Layer index",
|
|
"wimaxmacphy.sub_burst_mimo_chase_layer_index",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_ctype,
|
|
{
|
|
"CType",
|
|
"wimaxmacphy.sub_burst_ctype",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(wimaxmacphy_ul_sub_burst_ctype_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_mini_subchannel_index,
|
|
{
|
|
"Mini-subchannel Index",
|
|
"wimaxmacphy.sub_burst_mini_subchannel_index",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_mini_reserved,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.sub_burst_mini_reserved",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_feedback_type_coding,
|
|
{
|
|
"Feedback type coding",
|
|
"wimaxmacphy.sub_burst_feedback_type_coding",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit0,
|
|
{
|
|
"3 bit-MIMO Fast-feedback",
|
|
"wimaxmacphy.sub_burst_feedback_type_coding.bit0",
|
|
FT_BOOLEAN,
|
|
8,
|
|
TFS(&set_notset),
|
|
0x01,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit1,
|
|
{
|
|
"Enhanced FAST_FEEDBACK",
|
|
"wimaxmacphy.sub_burst_feedback_type_coding.bit1",
|
|
FT_BOOLEAN,
|
|
8,
|
|
TFS(&set_notset),
|
|
0x02,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit2,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.sub_burst_feedback_type_coding.bit2",
|
|
FT_BOOLEAN,
|
|
8,
|
|
TFS(&set_notset),
|
|
0x04,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit3,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.sub_burst_feedback_type_coding.bit3",
|
|
FT_BOOLEAN,
|
|
8,
|
|
TFS(&set_notset),
|
|
0x08,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit4,
|
|
{
|
|
"UEP fast-feedback",
|
|
"wimaxmacphy.sub_burst_feedback_type_coding.bit4",
|
|
FT_BOOLEAN,
|
|
8,
|
|
TFS(&set_notset),
|
|
0x10,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit5,
|
|
{
|
|
"A measurement report performed on the last DL burst",
|
|
"wimaxmacphy.sub_burst_feedback_type_coding.bit5",
|
|
FT_BOOLEAN,
|
|
8,
|
|
TFS(&set_notset),
|
|
0x20,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit6,
|
|
{
|
|
"Primary/Secondary FAST_FEEDBACK",
|
|
"wimaxmacphy.sub_burst_feedback_type_coding.bit6",
|
|
FT_BOOLEAN,
|
|
8,
|
|
TFS(&set_notset),
|
|
0x40,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit7,
|
|
{
|
|
"DIUC-CQI Fast-feedback",
|
|
"wimaxmacphy.sub_burst_feedback_type_coding.bit7",
|
|
FT_BOOLEAN,
|
|
8,
|
|
TFS(&set_notset),
|
|
0x80,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_feedback_reserved1,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.sub_burst_feedback_reserved1",
|
|
FT_UINT16,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x8000,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_feedback_sub_type,
|
|
{
|
|
"Feedback sub-type",
|
|
"wimaxmacphy.sub_burst_feedback_sub_type",
|
|
FT_UINT16,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x7000,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_feedback_cqich_id,
|
|
{
|
|
"CQICH_ID",
|
|
"wimaxmacphy.sub_burst_feedback_cqich_id",
|
|
FT_UINT16,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0fff,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_feedback_reserved2,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.sub_burst_feedback_reserved2",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0xc0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_feedback_slot_offset,
|
|
{
|
|
"Slot offset",
|
|
"wimaxmacphy.sub_burst_feedback_slot_offset",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x3f,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_harq_ack_acid,
|
|
{
|
|
"ACID",
|
|
"wimaxmacphy.sub_burst_harq_ack_acid",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0xf0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_harq_ack_reserved,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.sub_burst_harq_ack_reserved",
|
|
FT_UINT32,
|
|
BASE_HEX,
|
|
NULL,
|
|
0x0fff,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_sounding_symbol_index,
|
|
{
|
|
"Sounding symbol index within Sounding zone",
|
|
"wimaxmacphy.sub_burst_sounding_symbol_index",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_sounding_power_assignment,
|
|
{
|
|
"Power assignment method",
|
|
"wimaxmacphy.sub_burst_sounding_power_assignment_method",
|
|
FT_UINT8,
|
|
BASE_HEX,
|
|
VALS(
|
|
wimaxmacphy_ul_sub_burst_sounding_power_assignment_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_sounding_power_boost,
|
|
{
|
|
"Power boost",
|
|
"wimaxmacphy.",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_ul_sub_burst_sounding_power_boost_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_sounding_allocation_mode,
|
|
{
|
|
"Allocation mode",
|
|
"wimaxmacphy.sub_burst_sounding_allocation_mode",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(
|
|
wimaxmacphy_ul_sub_burst_sounding_allocation_mode_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_sounding_start_freq_band,
|
|
{
|
|
"Start frequency band",
|
|
"wimaxmacphy.sub_burst_sounding_start_freq_band",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_sounding_num_freq_bands,
|
|
{
|
|
"Number of frequency bands",
|
|
"wimaxmacphy.ub_burst_sounding_num_freq_bands",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_sounding_band_bit_map,
|
|
{
|
|
"Band bit map",
|
|
"wimaxmacphy.sub_burst_sounding_band_bit_map",
|
|
FT_UINT16,
|
|
BASE_HEX,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_sounding_cyclic_time_shift,
|
|
{
|
|
"Cyclic time shift index",
|
|
"wimaxmacphy.sub_burst_sounding_cyclic_time_shift_index",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_sounding_decimation_offset,
|
|
{
|
|
"Decimation offset",
|
|
"wimaxmacphy.sub_burst_sounding_decimation_offset",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_sounding_reserved,
|
|
{
|
|
"Reserved",
|
|
"wimaxmacphy.sub_burst_sounding_reserved",
|
|
FT_BYTES,
|
|
BASE_NONE,
|
|
NULL,
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
},
|
|
{
|
|
&hf_wimaxmacphy_ul_sub_burst_mimo_chase_matrix,
|
|
{
|
|
"Matrix (dual antenna SS)",
|
|
"wimaxmacphy.sub_burst_mimo_chase_matrix",
|
|
FT_UINT8,
|
|
BASE_DEC,
|
|
VALS(wimaxmacphy_ul_sub_burst_mimo_chase_matrix_vals),
|
|
0x0,
|
|
NULL,
|
|
HFILL
|
|
}
|
|
}
|
|
};
|
|
|
|
/* Protocol subtree array */
|
|
static gint *ett[] = {
|
|
&ett_wimaxmacphy,
|
|
&ett_wimaxmacphy_primitive,
|
|
&ett_wimaxmacphy_prim_harq_ack,
|
|
&ett_wimaxmacphy_prim_fast_feedback,
|
|
&ett_wimaxmacphy_prim_fast_feedback_type_coding,
|
|
&ett_wimaxmacphy_dl_zone_descriptor,
|
|
&ett_wimaxmacphy_dl_zone_stc,
|
|
&ett_wimaxmacphy_dl_zone_aas,
|
|
&ett_wimaxmacphy_dl_burst_descriptor,
|
|
&ett_wimaxmacphy_dl_burst_map,
|
|
&ett_wimaxmacphy_dl_burst_normal,
|
|
&ett_wimaxmacphy_dl_burst_papr,
|
|
&ett_wimaxmacphy_dl_burst_opt_aas,
|
|
&ett_wimaxmacphy_dl_burst_opt_mimo,
|
|
&ett_wimaxmacphy_dl_sub_burst_descriptor,
|
|
&ett_wimaxmacphy_dl_sub_burst_harq_chase,
|
|
&ett_wimaxmacphy_dl_sub_burst_mimo_chase,
|
|
&ett_wimaxmacphy_ul_zone_descriptor,
|
|
&ett_wimaxmacphy_ul_zone_aas,
|
|
&ett_wimaxmacphy_ul_burst_descriptor,
|
|
&ett_wimaxmacphy_ul_burst_harq_ack,
|
|
&ett_wimaxmacphy_ul_burst_fast_feedback,
|
|
&ett_wimaxmacphy_ul_burst_initial_ranging,
|
|
&ett_wimaxmacphy_ul_burst_periodic_ranging,
|
|
&ett_wimaxmacphy_ul_burst_papr_safety_zone,
|
|
&ett_wimaxmacphy_ul_burst_sounding_zone,
|
|
&ett_wimaxmacphy_ul_burst_noise_floor,
|
|
&ett_wimaxmacphy_ul_burst_normal_data,
|
|
&ett_wimaxmacphy_ul_burst_opt_aas,
|
|
&ett_wimaxmacphy_ul_burst_opt_mimo,
|
|
&ett_wimaxmacphy_ul_sub_burst_descriptor,
|
|
&ett_wimaxmacphy_ul_sub_burst_mini_subchannel,
|
|
&ett_wimaxmacphy_ul_sub_burst_fast_feedback,
|
|
&ett_wimaxmacphy_ul_sub_burst_harq_ack,
|
|
&ett_wimaxmacphy_ul_sub_burst_sounding_signal,
|
|
&ett_wimaxmacphy_ul_sub_burst_harq_chase,
|
|
&ett_wimaxmacphy_ul_sub_burst_mimo_chase,
|
|
&ett_wimaxmacphy_ul_pilot_patterns,
|
|
&ett_wimaxmacphy_ul_feedback_type_coding,
|
|
&ett_wimaxmacphy_ul_sub_burst_sub_allocation_specific
|
|
};
|
|
|
|
static ei_register_info ei[] = {
|
|
{ &ei_wimaxmacphy_unknown, { "wimaxmacphy.unexpected_bytes", PI_MALFORMED, PI_ERROR, "Unexpected bytes", EXPFILL }},
|
|
};
|
|
|
|
expert_module_t* expert_wimaxmacphy;
|
|
|
|
/* Register the protocol name and description */
|
|
proto_wimaxmacphy = proto_register_protocol(
|
|
"WiMAX MAC-PHY over Ethernet",
|
|
"WiMAX MAC-PHY",
|
|
"wimaxmacphy");
|
|
|
|
/* Required function calls to register the header fields and subtrees
|
|
* used */
|
|
proto_register_field_array(proto_wimaxmacphy, hf, array_length(hf));
|
|
proto_register_subtree_array(ett, array_length(ett));
|
|
expert_wimaxmacphy = expert_register_protocol(proto_wimaxmacphy);
|
|
expert_register_field_array(expert_wimaxmacphy, ei, array_length(ei));
|
|
|
|
/* Register preferences module (See Section 2.6 for more on
|
|
* preferences) */
|
|
wimaxmacphy_module = prefs_register_protocol(
|
|
proto_wimaxmacphy,
|
|
proto_reg_handoff_wimaxmacphy);
|
|
|
|
prefs_register_uint_preference(
|
|
wimaxmacphy_module, "udp.port",
|
|
"WiMAX MAX PHY UDP Port",
|
|
"WiMAX MAX PHY UDP port",
|
|
10,
|
|
&wimaxmacphy_udp_port);
|
|
|
|
}
|
|
|
|
void
|
|
proto_reg_handoff_wimaxmacphy(void)
|
|
{
|
|
static guint old_wimaxmacphy_udp_port = 0;
|
|
static gboolean inited = FALSE;
|
|
static dissector_handle_t wimaxmacphy_handle;
|
|
|
|
if (!inited) {
|
|
wimaxmacphy_handle = create_dissector_handle(dissect_wimaxmacphy, proto_wimaxmacphy);
|
|
dissector_add_for_decode_as("udp.port", wimaxmacphy_handle);
|
|
inited = TRUE;
|
|
}
|
|
|
|
/* Register UDP port for dissection */
|
|
if (old_wimaxmacphy_udp_port != 0 && old_wimaxmacphy_udp_port != wimaxmacphy_udp_port) {
|
|
dissector_delete_uint("udp.port", old_wimaxmacphy_udp_port, wimaxmacphy_handle);
|
|
}
|
|
|
|
if (wimaxmacphy_udp_port != 0 && old_wimaxmacphy_udp_port != wimaxmacphy_udp_port) {
|
|
dissector_add_uint("udp.port", wimaxmacphy_udp_port, wimaxmacphy_handle);
|
|
}
|
|
}
|
|
|
|
/*
|
|
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
|
*
|
|
* Local variables:
|
|
* c-basic-offset: 4
|
|
* tab-width: 8
|
|
* indent-tabs-mode: nil
|
|
* End:
|
|
*
|
|
* vi: set shiftwidth=4 tabstop=8 expandtab:
|
|
* :indentSize=4:tabSize=8:noTabs=true:
|
|
*/
|