aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/wimax/mac_hd_type2_decoder.c
diff options
context:
space:
mode:
authorJoão Valverde <joao.valverde@tecnico.ulisboa.pt>2018-01-15 12:40:55 +0000
committerJoão Valverde <j@v6e.pt>2018-01-16 08:51:37 +0000
commit5352ef42f94b5c14a24eb2e5559440c71fdcae8f (patch)
tree22901b1d228d76360b22af10021564bcee36390e /plugins/wimax/mac_hd_type2_decoder.c
parenta069a4f856c29b25bae05f2a91d7b2b71e1905f3 (diff)
plugins: Add source tree subfolder for plugin library
This allows some simplification and makes things more consistent, particularly for loading plugins from the build dir. Also fixes the issue reported here: https://www.wireshark.org/lists/wireshark-dev/201801/msg00061.html Change-Id: I0d8a000ee679172bccad546a3b0c47a79486f44d Reviewed-on: https://code.wireshark.org/review/25329 Petri-Dish: João Valverde <j@v6e.pt> Reviewed-by: João Valverde <j@v6e.pt>
Diffstat (limited to 'plugins/wimax/mac_hd_type2_decoder.c')
-rw-r--r--plugins/wimax/mac_hd_type2_decoder.c1382
1 files changed, 0 insertions, 1382 deletions
diff --git a/plugins/wimax/mac_hd_type2_decoder.c b/plugins/wimax/mac_hd_type2_decoder.c
deleted file mode 100644
index 4cb74c96b6..0000000000
--- a/plugins/wimax/mac_hd_type2_decoder.c
+++ /dev/null
@@ -1,1382 +0,0 @@
-/* mac_hd_type2_decoder.c
- * WiMax MAC Type II Signaling Header decoder
- *
- * Copyright (c) 2007 by Intel Corporation.
- *
- * Author: Lu Pan <lu.pan@intel.com>
- *
- * Wireshark - Network traffic analyzer
- * By Gerald Combs <gerald@wireshark.org>
- * Copyright 1999 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.
- */
-
-/* TODO: Add FT_UINT24 and FT_INT24 cases to gtk_widget_get_toplevel()
- * to prevent having to make all the changes from BASE_DEC to BASE_HEX
- * made to this file today: 10/20/06.
- */
-
-/*
-#define DEBUG
-*/
-
-/* Include files */
-
-#include "config.h"
-
-#include <epan/packet.h>
-#include "wimax-int.h"
-
-extern gint proto_mac_header_generic_decoder;
-
-static gint proto_mac_header_type_2_decoder = -1;
-static gint ett_mac_header_type_2_decoder = -1;
-static gint hf_mac_header_type_2_value_bytes = -1;
-
-#define WIMAX_MAC_HEADER_SIZE 6
-
-/* WiMax MAC Header Type II Feedback Types */
-typedef enum
-{
- CQI_MIMO_FB, /* 0 */
- DL_AVG_CINR, /* 1 */
- MIMO_COEF_FB, /* 2 */
- PREF_DL_CHAN_DIUC_FB,/* 3 */
- UL_TX_PWR, /* 4 */
- PHY_CHAN_FB, /* 5 */
- AMC_BAND_BITMAP, /* 6 */
- SHORT_PRECODE_FB, /* 7 */
- MULTI_TYPES_FB, /* 8 */
- LONG_PRECODE_FB, /* 9 */
- COMB_DL_AVG_CINR, /* 10 */
- MIMO_CHAN_FB, /* 11 */
- CINR_FB, /* 12 */
- CL_MIMO_FB, /* 13 */
- TYPE_II_FB_TYPE_MAX
-} TYPE_II_FB_TYPE_e;
-
-static const char *type2_fb_type_abbrv[TYPE_II_FB_TYPE_MAX] =
-{
- "CQI and MIMO Feedback",
- "DL average CINR",
- "MIMO Coefficients Feedback",
- "Preferred DL Channel DIUC Feedback",
- "UL Transmission Power",
- "PHY Channel Feedback",
- "AMC Band Indication Bitmap",
- "Life Span of Short-term Precoding Feedback",
- "Multiple Types of Feedback",
- "Long-term Precoding Feedback",
- "Combined DL Average CINR of Active BSs",
- "MIMO Channel Feedback",
- "CINR Feedback",
- "Close-loop MIMO Feedback"
-};
-
-/* WIMAX MAC HEADER TYPE II FILEDS */
-/* first byte */
-#define WIMAX_MAC_HEADER_TYPE_2_HT 0x80
-#define WIMAX_MAC_HEADER_TYPE_2_EC 0x40
-#define WIMAX_MAC_HEADER_TYPE_2_TYPE 0x20
-#define WIMAX_MAC_HEADER_TYPE_2_CII 0x10
-#define WIMAX_MAC_HEADER_TYPE_2_FB_TYPE 0x0F
-static int hf_mac_header_type_2_ht = -1;
-static int hf_mac_header_type_2_ec = -1;
-static int hf_mac_header_type_2_type = -1;
-static int hf_mac_header_type_2_cii = -1;
-static int hf_mac_header_type_2_fb_type = -1;
-
-/* 2nd to 5th bytes (varies by different fb types) */
-static int hf_mac_header_type_2_cid = -1;
-static int hf_mac_header_type_2_no_cid = -1;
-/* CQI and MIMO Feedback */
-/* 2nd & 3rd bytes */
-#define WIMAX_MAC_HEADER_TYPE_2_CQI_FB_TYPE 0xE000
-#define WIMAX_MAC_HEADER_TYPE_2_CQI_PAYLOAD 0x1F80
-#define WIMAX_MAC_HEADER_TYPE_2_CQI_RSV 0x007F
-static int hf_mac_header_type_2_cqi_fb_type = -1;
-static int hf_mac_header_type_2_cqi_payload = -1;
-static int hf_mac_header_type_2_cqi_rsv = -1;
-/* 4th & 5th without CID */
-/*#define WIMAX_MAC_HEADER_TYPE_2_NO_CID 0xFFFF*/
-
-/* DL average CINR */
-/* 2nd byte */
-#define WIMAX_MAC_HEADER_TYPE_2_DL_AVE_CINR 0xF800
-#define WIMAX_MAC_HEADER_TYPE_2_DL_AVE_RSV 0x07FF
-static int hf_mac_header_type_2_dl_ave_cinr = -1;
-static int hf_mac_header_type_2_dl_ave_rsv = -1;
-
-/* MIMO Coefficients Feedback */
-/* 2nd & 3rd bytes */
-#define WIMAX_MAC_HEADER_TYPE_2_MIMO_COEF_NI 0xC000
-#define WIMAX_MAC_HEADER_TYPE_2_MIMO_COEF_AI 0x3000
-#define WIMAX_MAC_HEADER_TYPE_2_MIMO_COEF 0x0F80
-#define WIMAX_MAC_HEADER_TYPE_2_MIMO_COEF_RSV 0x007F
-static int hf_mac_header_type_2_mimo_coef_ni = -1;
-static int hf_mac_header_type_2_mimo_coef_ai = -1;
-static int hf_mac_header_type_2_mimo_coef = -1;
-static int hf_mac_header_type_2_mimo_coef_rsv = -1;
-
-/* Preferred DL Channel DIUC Feedback */
-/* 2nd byte */
-#define WIMAX_MAC_HEADER_TYPE_2_DL_CHAN_DIUC 0xF000
-#define WIMAX_MAC_HEADER_TYPE_2_DL_CHAN_DCD 0x0F00
-#define WIMAX_MAC_HEADER_TYPE_2_DL_CHAN_RSV 0x00FF
-static int hf_mac_header_type_2_dl_chan_diuc = -1;
-static int hf_mac_header_type_2_dl_chan_dcd = -1;
-static int hf_mac_header_type_2_dl_chan_rsv = -1;
-
-/* UL Transmission Power */
-/* 2nd byte */
-#define WIMAX_MAC_HEADER_TYPE_2_UL_TX_PWR 0xFF00
-#define WIMAX_MAC_HEADER_TYPE_2_UL_TX_PWR_RSV 0x00FF
-static int hf_mac_header_type_2_ul_tx_pwr = -1;
-static int hf_mac_header_type_2_ul_tx_pwr_rsv = -1;
-
-/* PHY Channel Feedback */
-/* 2nd to 4th bytes */
-#define WIMAX_MAC_HEADER_TYPE_2_PHY_DIUC 0xF00000
-#define WIMAX_MAC_HEADER_TYPE_2_PHY_UL_TX_PWR 0x0FF000
-#define WIMAX_MAC_HEADER_TYPE_2_PHY_UL_HDRM 0x000FC0
-#define WIMAX_MAC_HEADER_TYPE_2_PHY_RSV 0x00003F
-static int hf_mac_header_type_2_phy_diuc = -1;
-static int hf_mac_header_type_2_phy_ul_tx_pwr = -1;
-static int hf_mac_header_type_2_phy_ul_hdrm = -1;
-static int hf_mac_header_type_2_phy_rsv = -1;
-
-/* AMC Band Indication Bitmap */
-/* 2nd to 5th bytes */
-#define WIMAX_MAC_HEADER_TYPE_2_AMC_BITMAP 0xFFF00000
-#define WIMAX_MAC_HEADER_TYPE_2_AMC_CQI_1 0x000F8000
-#define WIMAX_MAC_HEADER_TYPE_2_AMC_CQI_2 0x00007C00
-#define WIMAX_MAC_HEADER_TYPE_2_AMC_CQI_3 0x000003E0
-#define WIMAX_MAC_HEADER_TYPE_2_AMC_CQI_4 0x0000001F
-static int hf_mac_header_type_2_amc_bitmap = -1;
-static int hf_mac_header_type_2_amc_cqi_1 = -1;
-static int hf_mac_header_type_2_amc_cqi_2 = -1;
-static int hf_mac_header_type_2_amc_cqi_3 = -1;
-static int hf_mac_header_type_2_amc_cqi_4 = -1;
-
-/* Life Span of Short-term Precoding Feedback */
-/* 2nd byte */
-#define WIMAX_MAC_HEADER_TYPE_2_LIFE_SPAN 0xF000
-#define WIMAX_MAC_HEADER_TYPE_2_LIFE_SPAN_RSV 0x0FFF
-static int hf_mac_header_type_2_life_span = -1;
-static int hf_mac_header_type_2_life_span_rsv = -1;
-
-/* Multiple Types of Feedback */
-/* 2nd to 5th bytes ??? */
-#define WIMAX_MAC_HEADER_TYPE_2_MT_NUM_FB_TYPES 0xC0000000
-#define WIMAX_MAC_HEADER_TYPE_2_MT_OCCU_FB_TYPE 0x3C000000
-#define WIMAX_MAC_HEADER_TYPE_2_MT_FB_CONTENTS 0x03FFFFFF
-static int hf_mac_header_type_2_mt_num_fb_types = -1;
-static int hf_mac_header_type_2_mt_occu_fb_type = -1;
-static int hf_mac_header_type_2_mt_fb_contents = -1;
-
-/* Long-term Precoding Feedback */
-/* 2nd & 3rd bytes */
-#define WIMAX_MAC_HEADER_TYPE_2_LT_ID_FB 0xFC00
-#define WIMAX_MAC_HEADER_TYPE_2_LT_RANK 0x0300
-#define WIMAX_MAC_HEADER_TYPE_2_LT_FEC_QAM 0x00FC
-#define WIMAX_MAC_HEADER_TYPE_2_LT_RSV 0x0003
-static int hf_mac_header_type_2_lt_id_fb = -1;
-static int hf_mac_header_type_2_lt_rank = -1;
-static int hf_mac_header_type_2_lt_fec_qam = -1;
-static int hf_mac_header_type_2_lt_rsv = -1;
-
-/* Combined DL Average CINR of Active BSs */
-/* 2nd & 3rd bytes */
-#define WIMAX_MAC_HEADER_TYPE_2_COMB_DL_AVE 0xF800
-#define WIMAX_MAC_HEADER_TYPE_2_COMB_DL_RSV 0x0EFF
-static int hf_mac_header_type_2_comb_dl_ave = -1;
-static int hf_mac_header_type_2_comb_dl_rsv = -1;
-
-/* MIMO Channel Feedback */
-/* 2nd byte */
-#define WIMAX_MAC_HEADER_TYPE_2_DIUC 0xF0
-#define WIMAX_MAC_HEADER_TYPE_2_PBWI 0x0F
-/* 3rd to 5th bytes with CID */
-#define WIMAX_MAC_HEADER_TYPE_2_SLPB 0xFE0000
-#define WIMAX_MAC_HEADER_TYPE_2_PBRI_CID 0x010000
-#define WIMAX_MAC_HEADER_TYPE_2_CID 0x00FFFF
-/* 3rd to 5th bytes without CID */
-#define WIMAX_MAC_HEADER_TYPE_2_PBRI 0x018000
-#define WIMAX_MAC_HEADER_TYPE_2_CTI 0x007000
-#define WIMAX_MAC_HEADER_TYPE_2_AI_0 0x000800
-#define WIMAX_MAC_HEADER_TYPE_2_AI_1 0x000400
-#define WIMAX_MAC_HEADER_TYPE_2_AI_2 0x000200
-#define WIMAX_MAC_HEADER_TYPE_2_AI_3 0x000100
-#define WIMAX_MAC_HEADER_TYPE_2_MI 0x0000C0
-#define WIMAX_MAC_HEADER_TYPE_2_CT 0x000020
-#define WIMAX_MAC_HEADER_TYPE_2_CQI 0x00001F
-static int hf_mac_header_type_2_mimo_diuc = -1;
-static int hf_mac_header_type_2_mimo_pbwi = -1;
-static int hf_mac_header_type_2_mimo_slpb = -1;
-static int hf_mac_header_type_2_mimo_bpri = -1;
-static int hf_mac_header_type_2_mimo_bpri_cid = -1;
-static int hf_mac_header_type_2_mimo_cid = -1;
-static int hf_mac_header_type_2_mimo_cti = -1;
-static int hf_mac_header_type_2_mimo_ai_0 = -1;
-static int hf_mac_header_type_2_mimo_ai_1 = -1;
-static int hf_mac_header_type_2_mimo_ai_2 = -1;
-static int hf_mac_header_type_2_mimo_ai_3 = -1;
-static int hf_mac_header_type_2_mimo_mi = -1;
-static int hf_mac_header_type_2_mimo_ct = -1;
-static int hf_mac_header_type_2_mimo_cqi = -1;
-
-/* CINR Feedback */
-/* 2nd byte */
-/*#define WIMAX_MAC_HEADER_TYPE_2_CINR_MEAN 0xFF*/
-/* 3rd byte */
-/*#define WIMAX_MAC_HEADER_TYPE_2_CINR_DEVI 0xFF*/
-static int hf_mac_header_type_2_cinr_mean = -1;
-static int hf_mac_header_type_2_cinr_devi = -1;
-
-/* Close-loop MIMO Feedback */
-/* 2nd & 3rd bytes */
-#define WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_TYPE 0xC000
-#define WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_ANT_ID 0x3C00
-#define WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_CQI 0x03E0
-#define WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_RSV 0x008F
-#define WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_STREAMS 0x3000
-#define WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_ANT_SEL 0x0E00
-#define WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_CQI_1 0x01F0
-#define WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_RSV_1 0x000F
-#define WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_CODEBOOK_ID 0x3F00
-#define WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_CQI_2 0x00F8
-#define WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_RSV_2 0x000E
-static int hf_mac_header_type_2_cl_mimo_type = -1;
-static int hf_mac_header_type_2_cl_mimo_ant_id = -1;
-static int hf_mac_header_type_2_cl_mimo_cqi = -1;
-static int hf_mac_header_type_2_cl_mimo_cqi_1 = -1;
-static int hf_mac_header_type_2_cl_mimo_cqi_2 = -1;
-static int hf_mac_header_type_2_cl_mimo_rsv = -1;
-static int hf_mac_header_type_2_cl_mimo_rsv_1 = -1;
-static int hf_mac_header_type_2_cl_mimo_rsv_2 = -1;
-static int hf_mac_header_type_2_cl_mimo_streams = -1;
-static int hf_mac_header_type_2_cl_mimo_ant_sel = -1;
-static int hf_mac_header_type_2_cl_mimo_codebook_id = -1;
-
-/* last byte */
-/*#define WIMAX_MAC_HEADER_TYPE_2_HCS 0xFF*/
-static int hf_mac_header_type_2_hcs = -1;
-
-/* CID Inclusion Indication messages */
-static const value_string cii_msgs[] =
-{
- { 0, "without CID" },
- { 1, "with CID" },
- { 0, NULL}
-};
-
-/* Feedback Types */
-static const value_string fb_types[] =
-{
- { 0, "CQI and MIMO Feedback" },
- { 1, "DL average CINR" },
- { 2, "MIMO Coefficients Feedback" },
- { 3, "Preferred DL Channel DIUC Feedback" },
- { 4, "UL Transmission Power" },
- { 5, "PHY Channel Feedback" },
- { 6, "AMC Band Indication Bitmap" },
- { 7, "Life Span of Short-term Precoding Feedback" },
- { 8, "Multiple Types of Feedback" },
- { 9, "Long-term Precoding Feedback" },
- { 10, "Combined DL Average CINR of Active BSs" },
- { 11, "MIMO Channel Feedback" },
- { 12, "CINR Feedback" },
- { 13, "Close-loop MIMO Feedback" },
- { 14, "Reserved" },
- { 15, "Reserved" },
- { 0, NULL}
-};
-
-/* Table of the Preferred Bandwidth Ratio of bandwidth over used channel bandwidth */
-static const value_string pbwi_table[] =
-{
- { 0, "1" },
- { 1, "3/4" },
- { 2, "2/3" },
- { 3, "1/2" },
- { 4, "1/3" },
- { 5, "1/4" },
- { 6, "1/5" },
- { 7, "1/6" },
- { 8, "1/8" },
- { 9, "1/10" },
- { 10, "1/12" },
- { 11, "1/16" },
- { 12, "1/24" },
- { 13, "1/32" },
- { 14, "1/48" },
- { 15, "1/64" },
- { 0, NULL}
-};
-
-/* Burst Profile Ranking Indicator table */
-static const value_string bpri_table[] =
-{
- { 0, "1st preferred burst profile" },
- { 1, "2nd preferred burst profile" },
- { 2, "3rd preferred burst profile" },
- { 3, "4th preferred burst profile" },
- { 0, NULL}
-};
-
-/* Coherent Time Index Table */
-static const value_string cti_table[] =
-{
- { 0, "Infinite" },
- { 1, "1 frame" },
- { 2, "2 frames" },
- { 3, "3 frames" },
- { 4, "4 frames" },
- { 5, "8 frames" },
- { 6, "14 frames" },
- { 7, "24 frames" },
- { 0, NULL}
-};
-
-/* The MS Matrix Index Table */
-static const value_string mi_table[] =
-{
- { 0, "No STC" },
- { 1, "Matrix A" },
- { 2, "Matrix B" },
- { 3, "Matrix C" },
- { 0, NULL}
-};
-
-/* CQI Feedback Types */
-static const value_string ct_msgs[] =
-{
- { 0, "DL average feedback" },
- { 1, "CQI feedback" },
- { 0, NULL}
-};
-
-/* Antenna Indication messages */
-static const value_string ai_msgs[] =
-{
- { 0, "Not applicable" },
- { 1, "Applicable" },
- { 0, NULL}
-};
-
-
-static int dissect_mac_header_type_2_decoder(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
-{
- gint tvb_len, offset = 0;
- guint cii_bit, first_byte, fb_type, mimo_type;
- proto_item *parent_item = NULL;
- proto_item *ti = NULL;
- proto_tree *ti_tree = NULL;
-
- { /* we are being asked for details */
- /* Get the tvb reported length */
- tvb_len = tvb_reported_length(tvb);
- /* display the MAC Type II Header message */
- ti = proto_tree_add_protocol_format(tree, proto_mac_header_type_2_decoder, tvb, offset, tvb_len, "Mac Type II Header (6 bytes)");
- /* add subtree */
- ti_tree = proto_item_add_subtree(ti, ett_mac_header_type_2_decoder);
- if(tvb_len < WIMAX_MAC_HEADER_SIZE)
- {
- /* display the error message */
- proto_tree_add_protocol_format(ti_tree, proto_mac_header_type_2_decoder, tvb, offset, tvb_len, "Error: the size of Mac Header Type II tvb is too small! (%u bytes)", tvb_len);
- /* display the MAC Type II Header in Hex */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_value_bytes, tvb, offset, tvb_len, ENC_NA);
- return tvb_captured_length(tvb);
- }
-#ifdef DEBUG
- /* update the info column */
- col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "MAC Signaling Header Type II");
-#endif
- /* get the parent */
- parent_item = proto_tree_get_parent(tree);
- /* Decode and display the first byte of the header */
- /* header type */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_ht, tvb, offset, 1, ENC_BIG_ENDIAN);
- /* encryption control */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_ec, tvb, offset, 1, ENC_BIG_ENDIAN);
- /* sub-type */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_type, tvb, offset, 1, ENC_BIG_ENDIAN);
- /* CID inclusion indication */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cii, tvb, offset, 1, ENC_BIG_ENDIAN);
- /* feedback type */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_fb_type, tvb, offset, 1, ENC_BIG_ENDIAN);
- /* Get the first byte */
- first_byte = tvb_get_guint8(tvb, offset);
- /* get the CII field */
- cii_bit = ((first_byte & WIMAX_MAC_HEADER_TYPE_2_CII)?1:0);
- /* check the Type field */
- if(!(first_byte & WIMAX_MAC_HEADER_TYPE_2_TYPE))
- {
- /* Get the feedback type */
- fb_type = (first_byte & WIMAX_MAC_HEADER_TYPE_2_FB_TYPE);
- if(fb_type < TYPE_II_FB_TYPE_MAX)
- {
- /* update the info column */
- col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, type2_fb_type_abbrv[fb_type]);
- }
- else
- {
- /* update the info column */
- col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "Unknown type 2 fb type");
- /* display the MAC Type I Header in Hex */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_value_bytes, tvb, offset, tvb_len, ENC_NA);
- return tvb_captured_length(tvb);
- }
- /* move to the second byte */
- offset++;
- /* add the MAC header info */
- proto_item_append_text(parent_item, "%s", type2_fb_type_abbrv[fb_type]);
- /* process the feedback header based on the fb type */
- switch (fb_type)
- {
- case CQI_MIMO_FB:
- /* Decode and display the CQI and MIMO feedback */
- /* CQI feedback type */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cqi_fb_type, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* CQI payload */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cqi_payload, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cqi_rsv, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* check the CII field */
- if(cii_bit)
- { /* with CID */
- /* CID */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- else
- { /* without CID */
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_no_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- break;
- case DL_AVG_CINR:
- /* Decode and display the DL average CINR feedback */
- /* DL average CINR payload */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_dl_ave_cinr, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_dl_ave_rsv, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* check the CII field */
- if(cii_bit)
- { /* with CID */
- /* CID */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- else
- { /* without CID */
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_no_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- break;
- case MIMO_COEF_FB:
- /* Decode and display the MIMO coefficients feedback */
- /* number of index */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mimo_coef_ni, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* occurrences of antenna index */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mimo_coef_ai, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* MIMO coefficients */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mimo_coef, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mimo_coef_rsv, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* check the CII field */
- if(cii_bit)
- { /* with CID */
- /* Decode and display the CID */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- else
- { /* without CID */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_no_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- break;
- case PREF_DL_CHAN_DIUC_FB:
- /* Decode and display the Preffed DL Channel DIUC feedback */
- /* Preferred DIUC */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_dl_chan_diuc, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* DCD Change Count */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_dl_chan_dcd, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_dl_chan_rsv, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* check the CII field */
- if(cii_bit)
- { /* with CID */
- /* CID */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- else
- { /* without CID */
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_no_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- break;
- case UL_TX_PWR:
- /* Decode and display the UL TX Power feedback */
- /* UL TX Power */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_ul_tx_pwr, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_ul_tx_pwr_rsv, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* check the CII field */
- if(cii_bit)
- { /* with CID */
- /* CID */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- else
- { /* without CID */
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_no_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- break;
- case PHY_CHAN_FB:
- /* Decode and display the PHY Channel feedback */
- /* Preffed DIUC */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_phy_diuc, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* UL TX Power */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_phy_ul_tx_pwr, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* UL Headroom */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_phy_ul_hdrm, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_phy_rsv, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* check the CII field */
- if(cii_bit)
- { /* with CID */
- /* CID */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- else
- { /* without CID */
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_no_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- break;
- case AMC_BAND_BITMAP:
- /* Decode and display the AMC Band CQIs feedback */
- /* AMC Band Indication Bitmap */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_amc_bitmap, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* AMC CQI 1 */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_amc_cqi_1, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* AMC CQI 2 */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_amc_cqi_2, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* AMC CQI 3 */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_amc_cqi_3, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* AMC CQI 4 */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_amc_cqi_4, tvb, offset, 2, ENC_BIG_ENDIAN);
-#if 0
- /* check the CII field */
- if(cii_bit)
- { /* with CID */
- /* CID */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- else
- { /* without CID */
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_no_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
-#endif
- break;
- case SHORT_PRECODE_FB:
- /* Decode and display the Life Span of Short-term precoding feedback */
- /* Life Span */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_life_span, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_life_span_rsv, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* check the CII field */
- if(cii_bit)
- { /* with CID */
- /* CID */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- else
- { /* without CID */
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_no_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- break;
- case MULTI_TYPES_FB:
- /* Decode and display the Multi types of feedback */
- /* Number of feedback types */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mt_num_fb_types, tvb, offset, 4, ENC_BIG_ENDIAN);
- /* Occurrences of feedback type */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mt_occu_fb_type, tvb, offset, 4, ENC_BIG_ENDIAN);
- /* feedback contents */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mt_fb_contents, tvb, offset, 4, ENC_BIG_ENDIAN);
-#if 0
- /* check the CII field */
- if(cii_bit)
- { /* with CID */
- /* CID */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- else
- { /* without CID */
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_no_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
-#endif
- break;
- case LONG_PRECODE_FB:
- /* Decode and display the Long-term precoding feedback */
- /* Feedback of index */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_lt_id_fb, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* rank of prrecoding codebook */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_lt_rank, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* EFC and QAM feedback */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_lt_fec_qam, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_lt_rsv, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* check the CII field */
- if(cii_bit)
- { /* with CID */
- /* CID */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- else
- { /* without CID */
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_no_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- break;
- case COMB_DL_AVG_CINR:
- /* Decode and display the Combined DL Average CINR feedback */
- /* Combined DL average CINR of Active BSs */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_comb_dl_ave, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_comb_dl_rsv, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* check the CII field */
- if(cii_bit)
- { /* with CID */
- /* CID */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- else
- { /* without CID */
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_no_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- break;
- case MIMO_CHAN_FB:
- /* Decode and display the second byte of the header */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mimo_diuc, tvb, (offset+1), 1, ENC_BIG_ENDIAN);
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mimo_pbwi, tvb, (offset+1), 1, ENC_BIG_ENDIAN);
- /* Decode and display the 3rd to 5th bytes of the header */
- /* Decode and display the SLPB */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mimo_slpb, tvb, offset, 3, ENC_BIG_ENDIAN);
- /* check the CII field */
- if(cii_bit)
- { /* with CID */
- /* Decode and display the BPRI */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mimo_bpri_cid, tvb, offset, 3, ENC_BIG_ENDIAN);
- /* Decode and display the CID */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mimo_cid, tvb, offset, 3, ENC_BIG_ENDIAN);
- }
- else
- { /* without CID */
- /* Decode and display the BPRI */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mimo_bpri, tvb, offset, 3, ENC_BIG_ENDIAN);
- /* Decode and display the CTI */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mimo_cti, tvb, offset, 3, ENC_BIG_ENDIAN);
- /* Decode and display the AI */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mimo_ai_0, tvb, offset, 3, ENC_BIG_ENDIAN);
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mimo_ai_1, tvb, offset, 3, ENC_BIG_ENDIAN);
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mimo_ai_2, tvb, offset, 3, ENC_BIG_ENDIAN);
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mimo_ai_3, tvb, offset, 3, ENC_BIG_ENDIAN);
- /* Decode and display the MI */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mimo_mi, tvb, offset, 3, ENC_BIG_ENDIAN);
- /* Decode and display the CT */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mimo_ct, tvb, offset, 3, ENC_BIG_ENDIAN);
- /* Decode and display the CQI */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_mimo_cqi, tvb, offset, 3, ENC_BIG_ENDIAN);
- }
- break;
- case CINR_FB:
- /* Decode and display the CINRC feedback */
- /* CINR Mean */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cinr_mean, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* CINR Standard Deviation */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cinr_devi, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* check the CII field */
- if(cii_bit)
- { /* with CID */
- /* Decode and display the CID */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- else
- { /* without CID */
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_no_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- break;
- case CL_MIMO_FB:
- /* Get the MIMO type */
- mimo_type = ((tvb_get_guint8(tvb, offset) & 0xC0) >> 6);
- /* Decode and display the MIMO type */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cl_mimo_type, tvb, offset, 2, ENC_BIG_ENDIAN);
- if(mimo_type == 1)
- {
- /* Decode and display the umber of streams */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cl_mimo_streams, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* Decode and display the antenna selection option index */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cl_mimo_ant_sel, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* Decode and display the average CQI */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cl_mimo_cqi_1, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cl_mimo_rsv_1, tvb, offset, 2, ENC_BIG_ENDIAN);
- }
- else if(mimo_type == 2)
- {
- /* Decode and display the umber of streams */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cl_mimo_streams, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* Decode and display the antenna selection option index */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cl_mimo_codebook_id, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* Decode and display the average CQI */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cl_mimo_cqi_2, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cl_mimo_rsv_2, tvb, offset, 2, ENC_BIG_ENDIAN);
- }
- else
- {
- /* Decode and display the antenna grouping index */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cl_mimo_ant_id, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* Decode and display the average CQI */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cl_mimo_cqi, tvb, offset, 2, ENC_BIG_ENDIAN);
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cl_mimo_rsv, tvb, offset, 2, ENC_BIG_ENDIAN);
- }
- /* check the CII field */
- if(cii_bit)
- { /* with CID */
- /* Decode and display the CID */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- else
- { /* without CID */
- /* reserved */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_no_cid, tvb, (offset+2), 2, ENC_BIG_ENDIAN);
- }
- break;
- default:
- break;
- }
- /* Decode and display the HCS */
- proto_tree_add_item(ti_tree, hf_mac_header_type_2_hcs, tvb, (offset+4), 1, ENC_BIG_ENDIAN);
- }
- else
- {
- /* update the info column */
- col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "Error - Undefined Type");
- }
- }
- return tvb_captured_length(tvb);
-}
-
-/* Register Wimax Mac Header Type II Protocol and Dissector */
-void wimax_proto_register_mac_header_type_2(void)
-{
- /* MAC HEADER TYPE II display */
- static hf_register_info hf[] =
- {
- {
- &hf_mac_header_type_2_value_bytes,
- {
- "Values", "wmx.type2ValueBytes",
- FT_BYTES, BASE_NONE, NULL, 0x0,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_ht,
- {
- "MAC Header Type", "wmx.type2Ht",
- FT_UINT8, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_HT,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_ec,
- {
- "MAC Encryption Control", "wmx.type2Ec",
- FT_UINT8, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_EC,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_type,
- {
- "MAC Sub-Type", "wmx.type2Type",
- FT_UINT8, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_TYPE,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_cii,
- {
- "CID Inclusion Indication", "wmx.type2Cii",
- FT_UINT8, BASE_DEC, VALS(cii_msgs), WIMAX_MAC_HEADER_TYPE_2_CII,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_fb_type,
- {
- "Feedback Type", "wmx.type2FbType",
- FT_UINT8, BASE_DEC, VALS(fb_types), WIMAX_MAC_HEADER_TYPE_2_FB_TYPE,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_cqi_fb_type,
- {
- "Mimo Feedback Type", "wmx.type2MimoFbType",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_CQI_FB_TYPE,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_cqi_payload,
- {
- "CQI and Mimo Feedback Payload", "wmx.type2MimoFbPayload",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_CQI_PAYLOAD,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_cqi_rsv,
- {
- "Reserved", "wmx.type2MimoFbRsv",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_CQI_RSV,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_dl_ave_cinr,
- {
- "DL Average CINR", "wmx.type2DlAveCinr",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_DL_AVE_CINR,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_dl_ave_rsv,
- {
- "Reserved", "wmx.type2DlAveRsv",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_DL_AVE_RSV,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mimo_coef_ni,
- {
- "Number of Index", "wmx.type2MimoCoefNi",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_MIMO_COEF_NI,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mimo_coef_ai,
- {
- "Occurrences of Antenna Index", "wmx.type2MimoCoefAi",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_MIMO_COEF_AI,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mimo_coef,
- {
- "MIMO Coefficients", "wmx.type2MimoCoef",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_MIMO_COEF,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mimo_coef_rsv,
- {
- "Reserved", "wmx.type2MimoCoefRsv",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_MIMO_COEF_RSV,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_dl_chan_diuc,
- {
- "Preferred DIUC", "wmx.type2DlChanDiuc",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_DL_CHAN_DIUC,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_dl_chan_dcd,
- {
- "DCD Change Count", "wmx.type2DlChanDcd",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_DL_CHAN_DCD,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_dl_chan_rsv,
- {
- "Reserved", "wmx.type2DlChanRsv",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_DL_CHAN_RSV,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_ul_tx_pwr,
- {
- "UL TX Power", "wmx.type2UlTxPwr",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_UL_TX_PWR,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_ul_tx_pwr_rsv,
- {
- "Reserved", "wmx.type2UlTxPwrRsv",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_UL_TX_PWR_RSV,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_phy_diuc,
- {
- "Preferred DIUC Index", "wmx.type2PhyDiuc",
- FT_UINT24, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_PHY_DIUC,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_phy_ul_tx_pwr,
- {
- "UL TX Power", "wmx.type2PhyUlTxPwr",
- FT_UINT24, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_PHY_UL_TX_PWR,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_phy_ul_hdrm,
- {
- "UL Headroom", "wmx.type2PhyHdRm",
- FT_UINT24, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_PHY_UL_HDRM,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_phy_rsv,
- {
- "Reserved", "wmx.type2PhyRsv",
- FT_UINT24, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_PHY_RSV,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_amc_bitmap,
- {
- "AMC Band Indication Bitmap", "wmx.type2AmcBitmap",
- FT_UINT32, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_AMC_BITMAP,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_amc_cqi_1,
- {
- "CQI 1", "wmx.type2AmcCqi1",
- FT_UINT32, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_AMC_CQI_1,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_amc_cqi_2,
- {
- "CQI 2", "wmx.type2AmcCqi2",
- FT_UINT32, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_AMC_CQI_2,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_amc_cqi_3,
- {
- "CQI 3", "wmx.type2AmcCqi3",
- FT_UINT32, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_AMC_CQI_3,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_amc_cqi_4,
- {
- "CQI 4", "wmx.type2AmcCqi4",
- FT_UINT32, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_AMC_CQI_4,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_life_span,
- {
- "Life Span of Short-term", "wmx.type2LifeSpan",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_LIFE_SPAN,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_life_span_rsv,
- {
- "Reserved", "wmx.type2LifeSpanRsv",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_LIFE_SPAN_RSV,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mt_num_fb_types,
- {
- "Number of Feedback Types", "wmx.type2MtNumFbTypes",
- FT_UINT32, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_MT_NUM_FB_TYPES,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mt_occu_fb_type,
- {
- "Occurrences of Feedback Type", "wmx.type2MtOccuFbType",
- FT_UINT32, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_MT_OCCU_FB_TYPE,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mt_fb_contents,
- {
- "Number of Feedback Types", "wmx.type2MtNumFbTypes",
- FT_UINT32, BASE_HEX, NULL, WIMAX_MAC_HEADER_TYPE_2_MT_FB_CONTENTS,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_lt_id_fb,
- {
- "Long-term Feedback Index", "wmx.type2LtFbId",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_LT_ID_FB,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_lt_rank,
- {
- "Rank of Precoding Codebook", "wmx.type2LtRank",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_LT_RANK,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_lt_fec_qam,
- {
- "FEC and QAM", "wmx.type2LtFecQam",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_LT_FEC_QAM,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_lt_rsv,
- {
- "Reserved", "wmx.type2LtFbId",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_LT_RSV,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_comb_dl_ave,
- {
- "Combined DL Average CINR of Active BSs", "wmx.type2CombDlAve",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_COMB_DL_AVE,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_comb_dl_rsv,
- {
- "Reserved", "wmx.type2CombDlRsv",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_COMB_DL_RSV,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mimo_diuc,
- {
- "Preferred DIUC Index", "wmx.type2MimoDiuc",
- FT_UINT8, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_DIUC,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mimo_pbwi,
- {
- "Preferred Bandwidth Index", "wmx.type2MimoPbwi",
- FT_UINT8, BASE_DEC, VALS(pbwi_table), WIMAX_MAC_HEADER_TYPE_2_PBWI,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mimo_slpb,
- {
- "Starting Location of Preferred Bandwidth", "wmx.type2MimoSlpb",
- FT_UINT24, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_SLPB,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mimo_bpri_cid,
- {
- "Burst Profile Ranking Indicator with CID", "wmx.type2MimoBpriCid",
- FT_UINT24, BASE_HEX, VALS(bpri_table), WIMAX_MAC_HEADER_TYPE_2_PBRI_CID,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mimo_cid,
- {
- "Connection ID", "wmx.type2MimoCid",
- FT_UINT24, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_CID,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mimo_bpri,
- {
- "Burst Profile Ranking Indicator without CID", "wmx.type2MimoBpri",
- FT_UINT24, BASE_HEX, VALS(bpri_table), WIMAX_MAC_HEADER_TYPE_2_PBRI,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mimo_cti,
- {
- "Coherent Time Index", "wmx.type2MimoCti",
- FT_UINT24, BASE_HEX, VALS(cti_table), WIMAX_MAC_HEADER_TYPE_2_CTI,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mimo_ai_0,
- {
- "Antenna 0 Indication", "wmx.type2MimoAi",
- FT_UINT24, BASE_HEX, VALS(ai_msgs), WIMAX_MAC_HEADER_TYPE_2_AI_0,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mimo_ai_1,
- {
- "Antenna 1 Indication", "wmx.type2MimoAi",
- FT_UINT24, BASE_HEX, VALS(ai_msgs), WIMAX_MAC_HEADER_TYPE_2_AI_1,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mimo_ai_2,
- {
- "Antenna 2 Indication", "wmx.type2MimoAi",
- FT_UINT24, BASE_HEX, VALS(ai_msgs), WIMAX_MAC_HEADER_TYPE_2_AI_2,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mimo_ai_3,
- {
- "Antenna 3 Indication", "wmx.type2MimoAi",
- FT_UINT24, BASE_HEX, VALS(ai_msgs), WIMAX_MAC_HEADER_TYPE_2_AI_3,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mimo_mi,
- {
- "MS Matrix Indicator", "wmx.type2MimoMi",
- FT_UINT24, BASE_HEX, VALS(mi_table), WIMAX_MAC_HEADER_TYPE_2_MI,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mimo_ct,
- {
- "CQI Type", "wmx.type2MimoCt",
- FT_UINT24, BASE_HEX, VALS(ct_msgs), WIMAX_MAC_HEADER_TYPE_2_CT,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_mimo_cqi,
- {
- "CQI Feedback", "wmx.type2MimoCqi",
- FT_UINT24, BASE_HEX, NULL, WIMAX_MAC_HEADER_TYPE_2_CQI,
- NULL, HFILL
- }
- },
- { &hf_mac_header_type_2_cinr_mean,
- {
- "CINR Mean", "wmx.type2CinrMean",
- FT_UINT8, BASE_HEX, NULL, 0x0,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_cinr_devi,
- {
- "CINR Standard Deviation", "wmx.type2CinrDevi",
- FT_UINT8, BASE_HEX, NULL, 0x0,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_cl_mimo_type,
- {
- "Closed-Loop MIMO Type", "wmx.type2ClMimoType",
- FT_UINT16, BASE_HEX, NULL, WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_TYPE,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_cl_mimo_ant_id,
- {
- "Antenna Grouping Index", "wmx.type2ClMimoAntId",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_ANT_ID,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_cl_mimo_cqi,
- {
- "Average CQI", "wmx.type2ClMimoCqi",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_CQI,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_cl_mimo_cqi_1,
- {
- "Average CQI", "wmx.type2ClMimoCqi",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_CQI_1,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_cl_mimo_cqi_2,
- {
- "Average CQI", "wmx.type2ClMimoCqi",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_CQI_2,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_cl_mimo_rsv,
- {
- "Reserved", "wmx.type2ClMimoRsv",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_RSV,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_cl_mimo_rsv_1,
- {
- "Reserved", "wmx.type2ClMimoRsv",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_RSV_1,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_cl_mimo_rsv_2,
- {
- "Reserved", "wmx.type2ClMimoRsv",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_RSV_2,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_cl_mimo_streams,
- {
- "Number of Streams", "wmx.type2ClMimoStreams",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_STREAMS,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_cl_mimo_ant_sel,
- {
- "Antenna Selection Option Index", "wmx.type2ClMimoAntSel",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_ANT_SEL,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_cl_mimo_codebook_id,
- {
- "Codebook Index", "wmx.type2ClMimoCodeBkId",
- FT_UINT16, BASE_DEC, NULL, WIMAX_MAC_HEADER_TYPE_2_CL_MIMO_CODEBOOK_ID,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_cid,
- {
- "Connection ID", "wmx.type2Cid",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_no_cid,
- {
- "Reserved", "wmx.type2NoCid",
- FT_UINT16, BASE_HEX, NULL, 0x0,
- NULL, HFILL
- }
- },
- {
- &hf_mac_header_type_2_hcs,
- {
- "Header Check Sequence", "wmx.type2Hcs",
- FT_UINT8, BASE_HEX, NULL, 0x0,
- NULL, HFILL
- }
- }
- };
-
- /* Setup protocol subtree array */
- static gint *ett[] =
- {
- &ett_mac_header_type_2_decoder,
- };
-
- proto_mac_header_type_2_decoder = proto_mac_header_generic_decoder;
-
- proto_register_field_array(proto_mac_header_type_2_decoder, hf, array_length(hf));
- proto_register_subtree_array(ett, array_length(ett));
-
- register_dissector("mac_header_type_2_handler", dissect_mac_header_type_2_decoder, proto_mac_header_type_2_decoder);
-}
-
-/*
- * Editor modelines - http://www.wireshark.org/tools/modelines.html
- *
- * Local variables:
- * c-basic-offset: 8
- * tab-width: 8
- * indent-tabs-mode: t
- * End:
- *
- * vi: set shiftwidth=8 tabstop=8 noexpandtab:
- * :indentSize=8:tabSize=8:noTabs=false:
- */