aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-ixveriwave.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2017-05-07 12:51:37 -0700
committerGuy Harris <guy@alum.mit.edu>2017-05-07 19:53:17 +0000
commitc1b7aa4d95cc4d22521294dcdc7636d0fc37c126 (patch)
treeb3cd82294dbd102f7d191be8ded91dae7be53697 /epan/dissectors/packet-ixveriwave.c
parentd0e317d69e07412a330d1d67038ac4194caf55eb (diff)
Clean up various things.
Sort the hf_ definitions, and the entries for them, as much as possible by the order in which they're put into the protocol tree. Indicate which if statement branches are for pre-OCTO hardware and which are for OCTO hardware. Pre-HT PHYs don't have an MCS index; the "MCS index" is, rather, an index into a table of bit rates, so call it a "rate index". Fill in some more 802.11 radio pseudoheader fields. Use proto_item_append_text to indicate the direction in the entry for the L1 information. Don't show irrelevant fields, such as the preamble length for HT and VHT. Change-Id: Ibd2baff09fd4ec6e4a84dc0ae2e4615631a2d15e Reviewed-on: https://code.wireshark.org/review/21550 Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'epan/dissectors/packet-ixveriwave.c')
-rw-r--r--epan/dissectors/packet-ixveriwave.c2308
1 files changed, 1158 insertions, 1150 deletions
diff --git a/epan/dissectors/packet-ixveriwave.c b/epan/dissectors/packet-ixveriwave.c
index 60245dbf8a..88d8bcfcb8 100644
--- a/epan/dissectors/packet-ixveriwave.c
+++ b/epan/dissectors/packet-ixveriwave.c
@@ -126,54 +126,151 @@ static int hf_ixveriwave_frame_length = -1;
/* static int hf_ixveriwave_fcs = -1; */
-static int hf_ixveriwave_vw_vcid = -1;
static int hf_ixveriwave_vw_msdu_length = -1;
-static int hf_ixveriwave_vw_seqnum = -1;
static int hf_ixveriwave_vw_flowid = -1;
+static int hf_ixveriwave_vw_vcid = -1;
+static int hf_ixveriwave_vw_seqnum = -1;
static int hf_ixveriwave_vw_mslatency = -1;
static int hf_ixveriwave_vw_latency = -1;
-static int hf_ixveriwave_vw_pktdur = -1;
-static int hf_ixveriwave_vw_ifg = -1;
-static int hf_ixveriwave_vw_ifg_neg = -1;
static int hf_ixveriwave_vw_sig_ts = -1;
+static int hf_ixveriwave_vw_delay = -1;
static int hf_ixveriwave_vw_startt = -1;
static int hf_ixveriwave_vw_endt = -1;
-static int hf_ixveriwave_vw_delay = -1;
+static int hf_ixveriwave_vw_pktdur = -1;
+static int hf_ixveriwave_vw_ifg = -1;
+static int hf_ixveriwave_vw_ifg_neg = -1;
-static gint ett_commontap = -1;
-static gint ett_commontap_times = -1;
-static gint ett_ethernettap_info = -1;
-static gint ett_ethernettap_error = -1;
-static gint ett_ethernettap_flags = -1;
+// RF LOGGING
+static int hf_radiotap_rf_info = -1;
+static int hf_radiotap_rfinfo_rfid = -1;
-static gint ett_radiotap_flags = -1;
+/*
+static int hf_radiotap_rfinfo_noise = -1;
+static int hf_radiotap_rfinfo_noise_anta = -1;
+static int hf_radiotap_rfinfo_noise_antb = -1;
+static int hf_radiotap_rfinfo_noise_antc = -1;
+static int hf_radiotap_rfinfo_noise_antd = -1;
+*/
-static dissector_handle_t ieee80211_radio_handle;
+static int hf_radiotap_rfinfo_snr = -1;
+static int hf_radiotap_rfinfo_snr_anta = -1;
+static int hf_radiotap_rfinfo_snr_antb = -1;
+static int hf_radiotap_rfinfo_snr_antc = -1;
+static int hf_radiotap_rfinfo_snr_antd = -1;
-/* Ethernet fields */
-static int hf_ixveriwave_vw_info = -1;
-static int hf_ixveriwave_vw_error = -1;
+static int hf_radiotap_rfinfo_pfe = -1;
+static int hf_radiotap_rfinfo_pfe_anta = -1;
+static int hf_radiotap_rfinfo_pfe_antb = -1;
+static int hf_radiotap_rfinfo_pfe_antc = -1;
+static int hf_radiotap_rfinfo_pfe_antd = -1;
+static int hf_radiotap_rfinfo_sigdata = -1;
+static int hf_radiotap_rfinfo_avg_evm_sd_siga = -1;
+static int hf_radiotap_rfinfo_avg_evm_sd_sigb = -1;
+static int hf_radiotap_rfinfo_avg_evm_sd_sigc = -1;
+static int hf_radiotap_rfinfo_avg_evm_sd_sigd = -1;
+
+static int hf_radiotap_rfinfo_sigpilot = -1;
+static int hf_radiotap_rfinfo_avg_evm_sp_siga = -1;
+static int hf_radiotap_rfinfo_avg_evm_sp_sigb = -1;
+static int hf_radiotap_rfinfo_avg_evm_sp_sigc = -1;
+static int hf_radiotap_rfinfo_avg_evm_sp_sigd = -1;
+
+static int hf_radiotap_rfinfo_datadata = -1;
+static int hf_radiotap_rfinfo_avg_evm_dd_siga = -1;
+static int hf_radiotap_rfinfo_avg_evm_dd_sigb = -1;
+static int hf_radiotap_rfinfo_avg_evm_dd_sigc = -1;
+static int hf_radiotap_rfinfo_avg_evm_dd_sigd = -1;
+
+static int hf_radiotap_rfinfo_datapilot = -1;
+static int hf_radiotap_rfinfo_avg_evm_dp_siga = -1;
+static int hf_radiotap_rfinfo_avg_evm_dp_sigb = -1;
+static int hf_radiotap_rfinfo_avg_evm_dp_sigc = -1;
+static int hf_radiotap_rfinfo_avg_evm_dp_sigd = -1;
+
+static int hf_radiotap_rfinfo_avg_ws_symbol = -1;
+static int hf_radiotap_rfinfo_avg_evm_ws_siga = -1;
+static int hf_radiotap_rfinfo_avg_evm_ws_sigb = -1;
+static int hf_radiotap_rfinfo_avg_evm_ws_sigc = -1;
+static int hf_radiotap_rfinfo_avg_evm_ws_sigd = -1;
+
+static int hf_radiotap_rfinfo_contextpa = -1;
+static int hf_radiotap_rfinfo_contextpA_bit0 = -1;
+static int hf_radiotap_rfinfo_contextpA_bit1 = -1;
+static int hf_radiotap_rfinfo_contextpA_bit2 = -1;
+/* static int hf_radiotap_rfinfo_contextp_bits3 = -1; */
+static int hf_radiotap_rfinfo_contextpA_bit3 = -1;
+static int hf_radiotap_rfinfo_contextpA_bit4 = -1;
+static int hf_radiotap_rfinfo_contextpA_bit5 = -1;
+/* static int hf_radiotap_rfinfo_contextpA_bit8 = -1; */
+/* static int hf_radiotap_rfinfo_contextpA_bit10 = -1; */
+/* static int hf_radiotap_rfinfo_contextpA_bit11 = -1; */
+static int hf_radiotap_rfinfo_contextpA_bit13 = -1;
+
+static int hf_radiotap_rfinfo_frameformatA = -1;
+static int hf_radiotap_rfinfo_sigbwevmA = -1;
+static int hf_radiotap_rfinfo_legacytypeA = -1;
+
+static int hf_radiotap_rfinfo_contextpb = -1;
+static int hf_radiotap_rfinfo_contextpB_bit0 = -1;
+static int hf_radiotap_rfinfo_contextpB_bit1 = -1;
+static int hf_radiotap_rfinfo_contextpB_bit2 = -1;
+static int hf_radiotap_rfinfo_contextpB_bit3 = -1;
+static int hf_radiotap_rfinfo_contextpB_bit4 = -1;
+static int hf_radiotap_rfinfo_contextpB_bit5 = -1;
+static int hf_radiotap_rfinfo_contextpB_bit13 = -1;
+
+static int hf_radiotap_rfinfo_frameformatB = -1;
+static int hf_radiotap_rfinfo_sigbwevmB = -1;
+static int hf_radiotap_rfinfo_legacytypeB = -1;
+
+static int hf_radiotap_rfinfo_contextpc = -1;
+static int hf_radiotap_rfinfo_contextpC_bit0 = -1;
+static int hf_radiotap_rfinfo_contextpC_bit1 = -1;
+static int hf_radiotap_rfinfo_contextpC_bit2 = -1;
+static int hf_radiotap_rfinfo_contextpC_bit3 = -1;
+static int hf_radiotap_rfinfo_contextpC_bit4 = -1;
+static int hf_radiotap_rfinfo_contextpC_bit5 = -1;
+static int hf_radiotap_rfinfo_contextpC_bit13 = -1;
+
+static int hf_radiotap_rfinfo_frameformatC = -1;
+static int hf_radiotap_rfinfo_sigbwevmC = -1;
+static int hf_radiotap_rfinfo_legacytypeC = -1;
+
+static int hf_radiotap_rfinfo_contextpd = -1;
+static int hf_radiotap_rfinfo_contextpD_bit0 = -1;
+static int hf_radiotap_rfinfo_contextpD_bit1 = -1;
+static int hf_radiotap_rfinfo_contextpD_bit2 = -1;
+static int hf_radiotap_rfinfo_contextpD_bit3 = -1;
+static int hf_radiotap_rfinfo_contextpD_bit4 = -1;
+static int hf_radiotap_rfinfo_contextpD_bit5 = -1;
+static int hf_radiotap_rfinfo_contextpD_bit13 = -1;
+
+static int hf_radiotap_rfinfo_frameformatD = -1;
+static int hf_radiotap_rfinfo_sigbwevmD = -1;
+static int hf_radiotap_rfinfo_legacytypeD = -1;
+
+/* static int hf_radiotap_rfinfo_tbd = -1; */
+
+/* Fields for both Ethernet and WLAN */
+static int hf_ixveriwave_vw_l4id = -1;
+
+/* Ethernet fields */
static int hf_ixveriwave_vwf_txf = -1;
static int hf_ixveriwave_vwf_fcserr = -1;
-static int hf_ixveriwave_vw_l4id = -1;
+static int hf_ixveriwave_vw_info = -1;
+static int hf_ixveriwave_vw_info_rx_1_bit8 = -1;
+static int hf_ixveriwave_vw_info_rx_1_bit9 = -1;
/*veriwave note: i know the below method seems clunky, but
they didn't have a item_format at the time to dynamically add the appropriate decode text*/
static int hf_ixveriwave_vw_info_retryCount = -1;
-static int hf_ixveriwave_vw_info_rx_1_bit8 = -1;
-static int hf_ixveriwave_vw_info_rx_1_bit9 = -1;
+static int hf_ixveriwave_vw_error = -1;
/*error flags*/
-static int hf_ixveriwave_vw_error_tx_bit1 = -1;
-static int hf_ixveriwave_vw_error_tx_bit5 = -1;
-static int hf_ixveriwave_vw_error_tx_bit9 = -1;
-static int hf_ixveriwave_vw_error_tx_bit10 = -1;
-static int hf_ixveriwave_vw_error_tx_bit11 = -1;
-
static int hf_ixveriwave_vw_error_rx_1_bit0 = -1;
static int hf_ixveriwave_vw_error_rx_1_bit1 = -1;
static int hf_ixveriwave_vw_error_rx_1_bit2 = -1;
@@ -185,112 +282,42 @@ static int hf_ixveriwave_vw_error_rx_1_bit7 = -1;
static int hf_ixveriwave_vw_error_rx_1_bit8 = -1;
static int hf_ixveriwave_vw_error_rx_1_bit9 = -1;
+static int hf_ixveriwave_vw_error_tx_bit1 = -1;
+static int hf_ixveriwave_vw_error_tx_bit5 = -1;
+static int hf_ixveriwave_vw_error_tx_bit9 = -1;
+static int hf_ixveriwave_vw_error_tx_bit10 = -1;
+static int hf_ixveriwave_vw_error_tx_bit11 = -1;
+
+/* WLAN fields */
static int hf_radiotap_flags = -1;
+static int hf_radiotap_flags_preamble = -1;
+static int hf_radiotap_flags_wep = -1;
+static int hf_radiotap_flags_ht = -1;
+static int hf_radiotap_flags_vht = -1;
+static int hf_radiotap_flags_short_gi = -1;
+static int hf_radiotap_flags_40mhz = -1;
+static int hf_radiotap_flags_80mhz = -1;
+
static int hf_radiotap_datarate = -1;
static int hf_radiotap_mcsindex = -1;
-static int hf_radiotap_plcptype = -1;
static int hf_radiotap_nss = -1;
+
static int hf_radiotap_dbm_anta = -1;
static int hf_radiotap_dbm_antb = -1;
static int hf_radiotap_dbm_antc = -1;
static int hf_radiotap_dbm_antd = -1;
-static int hf_radiotap_dbm_tx_anta = -1;
-static int hf_radiotap_dbm_tx_antb = -1;
-static int hf_radiotap_dbm_tx_antc = -1;
-static int hf_radiotap_dbm_tx_antd = -1;
-static int hf_radiotap_flags_preamble = -1;
-static int hf_radiotap_flags_wep = -1;
-static int hf_radiotap_flags_ht = -1;
-static int hf_radiotap_flags_vht = -1;
-static int hf_radiotap_flags_40mhz = -1;
-static int hf_radiotap_flags_80mhz = -1;
-static int hf_radiotap_flags_short_gi = -1;
+static int hf_radiotap_plcptype = -1;
-/* start VeriWave specific 6-2007*/
-static int hf_radiotap_vw_errors = -1;
-static int hf_radiotap_vw_info = -1;
-static int hf_radiotap_vw_ht_length = -1;
+static int hf_radiotap_vwf_txf = -1;
+static int hf_radiotap_vwf_fcserr = -1;
+static int hf_radiotap_vwf_dcrerr = -1;
+static int hf_radiotap_vwf_retrerr = -1;
+static int hf_radiotap_vwf_enctype = -1;
-static int hf_radiotap_vw_info_tx_bit0 = -1;
-static int hf_radiotap_vw_info_tx_bit1 = -1;
-static int hf_radiotap_vw_info_tx_bit3 = -1;
-static int hf_radiotap_vw_info_tx_bit4 = -1;
-static int hf_radiotap_vw_info_tx_bit5 = -1;
-static int hf_radiotap_vw_info_tx_bit6 = -1;
-static int hf_radiotap_vw_info_tx_bit7 = -1;
-static int hf_radiotap_vw_info_tx_bit8 = -1;
-static int hf_radiotap_vw_info_tx_bit9 = -1;
-static int hf_radiotap_vw_info_tx_bit10 = -1;
-static int hf_radiotap_vw_info_tx_bit11 = -1;
-static int hf_radiotap_vw_info_tx_bit12 = -1;
-static int hf_radiotap_vw_info_tx_bit13 = -1;
-static int hf_radiotap_vw_info_tx_bit14 = -1;
-static int hf_radiotap_vw_info_tx_bit15 = -1;
-static const int *radiotap_info_tx_fields[] = {
- &hf_radiotap_vw_info_tx_bit0,
- &hf_radiotap_vw_info_tx_bit1,
- &hf_radiotap_vw_info_tx_bit3,
- &hf_radiotap_vw_info_tx_bit4,
- &hf_radiotap_vw_info_tx_bit5,
- &hf_radiotap_vw_info_tx_bit6,
- &hf_radiotap_vw_info_tx_bit7,
- &hf_radiotap_vw_info_tx_bit8,
- &hf_radiotap_vw_info_tx_bit9,
- &hf_radiotap_vw_info_tx_bit10,
- &hf_radiotap_vw_info_tx_bit11,
- &hf_radiotap_vw_info_tx_bit12,
- &hf_radiotap_vw_info_tx_bit13,
- &hf_radiotap_vw_info_tx_bit14,
- &hf_radiotap_vw_info_tx_bit15,
- NULL,
-};
+static int hf_radiotap_vw_ht_length = -1;
-static int hf_radiotap_vw_info_tx = -1;
-static int hf_radiotap_vw_info_rx = -1;
-static int hf_radiotap_vw_info_rx_bit0 = -1;
-static int hf_radiotap_vw_info_rx_bit1 = -1;
-static int hf_radiotap_vw_info_rx_bit3 = -1;
-static int hf_radiotap_vw_info_rx_bit4 = -1;
-static int hf_radiotap_vw_info_rx_bit5 = -1;
-static int hf_radiotap_vw_info_rx_bit6 = -1;
-static int hf_radiotap_vw_info_rx_bit7 = -1;
-static int hf_radiotap_vw_info_rx_bit8 = -1;
-static int hf_radiotap_vw_info_rx_bit9 = -1;
-static int hf_radiotap_vw_info_rx_bit10 = -1;
-static int hf_radiotap_vw_info_rx_bit11 = -1;
-static int hf_radiotap_vw_info_rx_bit12 = -1;
-static int hf_radiotap_vw_info_rx_bit13 = -1;
-static int hf_radiotap_vw_info_rx_bit14 = -1;
-static int hf_radiotap_vw_info_rx_bit15 = -1;
-static int hf_radiotap_vw_info_rx_bit16 = -1;
-static int hf_radiotap_vw_info_rx_bit17 = -1;
-static int hf_radiotap_vw_info_rx_bit18 = -1;
-static int hf_radiotap_vw_info_rx_bit19 = -1;
-static int hf_radiotap_vw_info_rx_bit20 = -1;
-static const int *radiotap_info_rx_fields[] = {
- &hf_radiotap_vw_info_rx_bit0,
- &hf_radiotap_vw_info_rx_bit1,
- &hf_radiotap_vw_info_rx_bit3,
- &hf_radiotap_vw_info_rx_bit4,
- &hf_radiotap_vw_info_rx_bit5,
- &hf_radiotap_vw_info_rx_bit6,
- &hf_radiotap_vw_info_rx_bit7,
- &hf_radiotap_vw_info_rx_bit8,
- &hf_radiotap_vw_info_rx_bit9,
- &hf_radiotap_vw_info_rx_bit10,
- &hf_radiotap_vw_info_rx_bit11,
- &hf_radiotap_vw_info_rx_bit12,
- &hf_radiotap_vw_info_rx_bit13,
- &hf_radiotap_vw_info_rx_bit14,
- &hf_radiotap_vw_info_rx_bit15,
- &hf_radiotap_vw_info_rx_bit16,
- &hf_radiotap_vw_info_rx_bit17,
- &hf_radiotap_vw_info_rx_bit18,
- &hf_radiotap_vw_info_rx_bit19,
- &hf_radiotap_vw_info_rx_bit20,
- NULL,
-};
+static int hf_radiotap_vw_info = -1;
static int hf_radiotap_vw_info_tx_2_bit10 = -1;
static int hf_radiotap_vw_info_tx_2_bit11 = -1;
@@ -308,43 +335,7 @@ static int hf_radiotap_vw_info_rx_2_bit13 = -1;
static int hf_radiotap_vw_info_rx_2_bit14 = -1;
static int hf_radiotap_vw_info_rx_2_bit15 = -1;
-static int hf_radiotap_vw_errors_tx_bit01 = -1;
-static int hf_radiotap_vw_errors_tx_bit05 = -1;
-static int hf_radiotap_vw_errors_tx_bit8 = -1;
-static int hf_radiotap_vw_errors_tx_bit9 = -1;
-static int hf_radiotap_vw_errors_tx_bit10 = -1;
-static int hf_radiotap_vw_errors_tx_bit31 = -1;
-static int hf_radiotap_vw_tx_retrycount = -1;
-static int hf_radiotap_vw_tx_factorydebug = -1;
-
-static int hf_radiotap_vw_errors_tx_bit1 = -1;
-static int hf_radiotap_vw_errors_tx_bit5 = -1;
-
-static int hf_radiotap_vw_errors_rx_bit0 = -1;
-static int hf_radiotap_vw_errors_rx_bit1 = -1;
-static int hf_radiotap_vw_errors_rx_bit2 = -1;
-static int hf_radiotap_vw_errors_rx_bit3 = -1;
-static int hf_radiotap_vw_errors_rx_bit4 = -1;
-static int hf_radiotap_vw_errors_rx_bit5 = -1;
-static int hf_radiotap_vw_errors_rx_bit6 = -1;
-static int hf_radiotap_vw_errors_rx_bit7 = -1;
-static int hf_radiotap_vw_errors_rx_bit8 = -1;
-static int hf_radiotap_vw_errors_rx_bit9 = -1;
-static int hf_radiotap_vw_errors_rx_bit10 = -1;
-static int hf_radiotap_vw_errors_rx_bit11 = -1;
-static int hf_radiotap_vw_errors_rx_bit12 = -1;
-static int hf_radiotap_vw_errors_rx_bit14 = -1;
-static int hf_radiotap_vw_errors_rx_bit15 = -1;
-static int hf_radiotap_vw_errors_rx_bit16 = -1;
-static int hf_radiotap_vw_errors_rx_bit17 = -1;
-static int hf_radiotap_vw_errors_rx_bit18 = -1;
-static int hf_radiotap_vw_errors_rx_bit19 = -1;
-static int hf_radiotap_vw_errors_rx_bit20 = -1;
-static int hf_radiotap_vw_errors_rx_bit21 = -1;
-static int hf_radiotap_vw_errors_rx_bit22 = -1;
-static int hf_radiotap_vw_errors_rx_bit23 = -1;
-static int hf_radiotap_vw_errors_rx_bit24 = -1;
-static int hf_radiotap_vw_errors_rx_bit31 = -1;
+static int hf_radiotap_vw_errors = -1;
static int hf_radiotap_vw_errors_rx_2_bit0 = -1;
static int hf_radiotap_vw_errors_rx_2_bit1 = -1;
@@ -357,49 +348,46 @@ static int hf_radiotap_vw_errors_rx_2_bit8 = -1;
static int hf_radiotap_vw_errors_rx_2_bit10 = -1;
static int hf_radiotap_vw_errors_rx_2_bit11 = -1;
-static int hf_radiotap_vwf_txf = -1;
-static int hf_radiotap_vwf_fcserr = -1;
-static int hf_radiotap_vwf_dcrerr = -1;
-static int hf_radiotap_vwf_retrerr = -1;
-static int hf_radiotap_vwf_enctype = -1;
+static int hf_radiotap_vw_errors_tx_bit01 = -1;
+static int hf_radiotap_vw_errors_tx_bit05 = -1;
+static int hf_radiotap_vw_errors_tx_bit8 = -1;
+static int hf_radiotap_vw_errors_tx_bit9 = -1;
+static int hf_radiotap_vw_errors_tx_bit10 = -1;
+static int hf_radiotap_vw_errors_tx_bit31 = -1;
-static gint ett_radiotap_info = -1;
-static gint ett_radiotap_errors = -1;
-static gint ett_radiotap_times = -1;
-static gint ett_radiotap_layer1 = -1;
-static gint ett_radiotap_layer2to4 = -1;
-static gint ett_radiotap_rf = -1;
-static gint ett_radiotap_plcp = -1;
-static gint ett_radiotap_infoc = -1;
-static gint ett_radiotap_contextp = -1;
-static gint ett_rf_info = -1;
+static int hf_radiotap_vht_mu_mimo_flg = -1;
+static int hf_radiotap_vht_user_pos = -1;
+static int hf_radiotap_vht_su_mimo_flg = -1;
+
+static int hf_radiotap_l1info = -1;
+static int hf_radiotap_l1info_preamble = -1;
+static int hf_radiotap_l1info_rateindex = -1;
+static int hf_radiotap_l1info_ht_mcsindex = -1;
+static int hf_radiotap_l1info_vht_mcsindex = -1;
+static int hf_radiotap_l1info_nss = -1;
+static int hf_radiotap_l1info_transmitted = -1;
-static int hf_radiotap_rf_info = -1;
-static int hf_radiotap_rx = -1;
-static int hf_radiotap_tx = -1;
-static int hf_radiotap_modulation = -1;
-static int hf_radiotap_preamble = -1;
static int hf_radiotap_sigbandwidth = -1;
/* static int hf_radiotap_rssi = -1; */
-static int hf_radiotap_l1infoc = -1;
+static int hf_radiotap_modulation = -1;
+
+static int hf_radiotap_dbm_tx_anta = -1;
+static int hf_radiotap_dbm_tx_antb = -1;
+static int hf_radiotap_dbm_tx_antc = -1;
+static int hf_radiotap_dbm_tx_antd = -1;
+
static int hf_radiotap_sigbandwidthmask = -1;
static int hf_radiotap_antennaportenergydetect = -1;
+static int hf_radiotap_tx_antennaselect = -1;
+static int hf_radiotap_tx_stbcselect = -1;
static int hf_radiotap_mumask = -1;
+
+static int hf_radiotap_l1infoc = -1;
+static int hf_radiotap_vht_ndp_flg = -1;
+
static int hf_radiotap_plcp_info = -1;
-static int hf_radiotap_l2_l4_info = -1;
-/* static int hf_radiotap_rfinfo_tbd = -1; */
-static int hf_radiotap_rfinfo_rfid = -1;
-static int hf_radiotap_bssid = -1;
-static int hf_radiotap_unicastormulticast = -1;
-static int hf_radiotap_clientidvalid = -1;
-static int hf_radiotap_bssidvalid = -1;
-static int hf_radiotap_flowvalid = -1;
-static int hf_radiotap_l4idvalid = -1;
-static int hf_radiotap_istypeqos = -1;
-static int hf_radiotap_containshtfield = -1;
-static int hf_radiotap_tid = -1;
-/*static int hf_radiotap_wlantype = -1; */
-static int hf_radiotap_payloaddecode = -1;
+static int hf_radiotap_plcp_type = -1;
+static int hf_radiotap_plcp_default = -1;
static int hf_radiotap_plcp_signal = -1;
static int hf_radiotap_plcp_locked_clocks = -1;
@@ -408,15 +396,19 @@ static int hf_radiotap_plcp_length_extension = -1;
static int hf_radiotap_plcp_length = -1;
static int hf_radiotap_plcp_crc16 = -1;
+static int hf_radiotap_ofdm_service = -1;
+
static int hf_radiotap_ofdm_rate = -1;
static int hf_radiotap_ofdm_length = -1;
static int hf_radiotap_ofdm_parity = -1;
static int hf_radiotap_ofdm_tail = -1;
-static int hf_radiotap_ofdm_service = -1;
+/* HT-SIG1 */
static int hf_radiotap_ht_mcsindex = -1;
static int hf_radiotap_ht_bw = -1;
static int hf_radiotap_ht_length = -1;
+
+/* HT-SIG2 */
static int hf_radiotap_ht_smoothing = -1;
static int hf_radiotap_ht_notsounding = -1;
static int hf_radiotap_ht_aggregation = -1;
@@ -427,6 +419,7 @@ static int hf_radiotap_ht_ness = -1;
static int hf_radiotap_ht_crc = -1;
static int hf_radiotap_ht_tail = -1;
+/* VHT-SIG-A1 */
static int hf_radiotap_vht_bw = -1;
static int hf_radiotap_vht_stbc = -1;
static int hf_radiotap_vht_group_id = -1;
@@ -437,6 +430,8 @@ static int hf_radiotap_vht_u1_nsts = -1;
static int hf_radiotap_vht_u2_nsts = -1;
static int hf_radiotap_vht_u3_nsts = -1;
static int hf_radiotap_vht_txop_ps_not_allowed = -1;
+
+/* VHT-SIG-A2 */
static int hf_radiotap_vht_short_gi = -1;
static int hf_radiotap_vht_short_gi_nsym_disambig = -1;
static int hf_radiotap_vht_su_coding_type = -1;
@@ -449,6 +444,8 @@ static int hf_radiotap_vht_u2_coding_type = -1;
static int hf_radiotap_vht_u3_coding_type = -1;
static int hf_radiotap_vht_crc = -1;
static int hf_radiotap_vht_tail = -1;
+
+/* VHT-SIG-B */
static int hf_radiotap_vht_su_sig_b_length_20_mhz = -1;
static int hf_radiotap_vht_su_sig_b_length_40_mhz = -1;
static int hf_radiotap_vht_su_sig_b_length_80_160_mhz = -1;
@@ -459,113 +456,159 @@ static int hf_radiotap_vht_mu_mcs_40_mhz = -1;
static int hf_radiotap_vht_mu_sig_b_length_80_160_mhz = -1;
static int hf_radiotap_vht_mu_mcs_80_160_mhz = -1;
-static int hf_radiotap_vht_user_pos = -1;
-static int hf_radiotap_vht_mu_mimo_flg = -1;
-static int hf_radiotap_vht_su_mimo_flg = -1;
-
static int hf_radiotap_rfid = -1;
-static int hf_radiotap_plcp_default = -1;
-static int hf_radiotap_tx_antennaselect = -1;
-static int hf_radiotap_tx_stbcselect = -1;
+
+static int hf_radiotap_l2_l4_info = -1;
+
+static int hf_radiotap_bssid = -1;
+
+static int hf_radiotap_clientidvalid = -1;
+static int hf_radiotap_bssidvalid = -1;
+static int hf_radiotap_unicastormulticast = -1;
+
+/*static int hf_radiotap_wlantype = -1; */
+
+static int hf_radiotap_tid = -1;
static int hf_radiotap_ac = -1;
-// RF LOGGING
-static int hf_radiotap_rfinfo_pfe = -1;
-/*
-static int hf_radiotap_rfinfo_noise = -1;
-static int hf_radiotap_rfinfo_noise_anta = -1;
-static int hf_radiotap_rfinfo_noise_antb = -1;
-static int hf_radiotap_rfinfo_noise_antc = -1;
-static int hf_radiotap_rfinfo_noise_antd = -1;
-*/
-static int hf_radiotap_rfinfo_snr = -1;
-static int hf_radiotap_rfinfo_snr_anta = -1;
-static int hf_radiotap_rfinfo_snr_antb = -1;
-static int hf_radiotap_rfinfo_snr_antc = -1;
-static int hf_radiotap_rfinfo_snr_antd = -1;
-static int hf_radiotap_rfinfo_pfe_anta = -1;
-static int hf_radiotap_rfinfo_pfe_antb = -1;
-static int hf_radiotap_rfinfo_pfe_antc = -1;
-static int hf_radiotap_rfinfo_pfe_antd = -1;
-static int hf_radiotap_rfinfo_contextpa = -1;
-static int hf_radiotap_rfinfo_contextpb = -1;
-static int hf_radiotap_rfinfo_contextpc = -1;
-static int hf_radiotap_rfinfo_contextpd = -1;
-static int hf_radiotap_rfinfo_contextpA_bit0 = -1;
-static int hf_radiotap_rfinfo_contextpA_bit1 = -1;
-static int hf_radiotap_rfinfo_contextpA_bit2 = -1;
-static int hf_radiotap_rfinfo_contextpA_bit3 = -1;
-static int hf_radiotap_rfinfo_contextpA_bit4 = -1;
-static int hf_radiotap_rfinfo_contextpA_bit5 = -1;
-/* static int hf_radiotap_rfinfo_contextpA_bit8 = -1; */
-/* static int hf_radiotap_rfinfo_contextpA_bit10 = -1; */
-/* static int hf_radiotap_rfinfo_contextpA_bit11 = -1; */
-static int hf_radiotap_rfinfo_contextpA_bit13 = -1;
+static int hf_radiotap_l4idvalid = -1;
+static int hf_radiotap_containshtfield = -1;
+static int hf_radiotap_istypeqos = -1;
+static int hf_radiotap_flowvalid = -1;
-static int hf_radiotap_rfinfo_contextpB_bit0 = -1;
-static int hf_radiotap_rfinfo_contextpB_bit1 = -1;
-static int hf_radiotap_rfinfo_contextpB_bit2 = -1;
-static int hf_radiotap_rfinfo_contextpB_bit3 = -1;
-static int hf_radiotap_rfinfo_contextpB_bit4 = -1;
-static int hf_radiotap_rfinfo_contextpB_bit5 = -1;
-static int hf_radiotap_rfinfo_contextpB_bit13 = -1;
+static int hf_radiotap_payloaddecode = -1;
-static int hf_radiotap_rfinfo_contextpC_bit0 = -1;
-static int hf_radiotap_rfinfo_contextpC_bit1 = -1;
-static int hf_radiotap_rfinfo_contextpC_bit2 = -1;
-static int hf_radiotap_rfinfo_contextpC_bit3 = -1;
-static int hf_radiotap_rfinfo_contextpC_bit4 = -1;
-static int hf_radiotap_rfinfo_contextpC_bit5 = -1;
-static int hf_radiotap_rfinfo_contextpC_bit13 = -1;
+static int hf_radiotap_vw_info_rx = -1;
+static int hf_radiotap_vw_info_rx_bit0 = -1;
+static int hf_radiotap_vw_info_rx_bit1 = -1;
+static int hf_radiotap_vw_info_rx_bit3 = -1;
+static int hf_radiotap_vw_info_rx_bit4 = -1;
+static int hf_radiotap_vw_info_rx_bit5 = -1;
+static int hf_radiotap_vw_info_rx_bit6 = -1;
+static int hf_radiotap_vw_info_rx_bit7 = -1;
+static int hf_radiotap_vw_info_rx_bit8 = -1;
+static int hf_radiotap_vw_info_rx_bit9 = -1;
+static int hf_radiotap_vw_info_rx_bit10 = -1;
+static int hf_radiotap_vw_info_rx_bit11 = -1;
+static int hf_radiotap_vw_info_rx_bit12 = -1;
+static int hf_radiotap_vw_info_rx_bit13 = -1;
+static int hf_radiotap_vw_info_rx_bit14 = -1;
+static int hf_radiotap_vw_info_rx_bit15 = -1;
+static int hf_radiotap_vw_info_rx_bit16 = -1;
+static int hf_radiotap_vw_info_rx_bit17 = -1;
+static int hf_radiotap_vw_info_rx_bit18 = -1;
+static int hf_radiotap_vw_info_rx_bit19 = -1;
+static int hf_radiotap_vw_info_rx_bit20 = -1;
+static const int *radiotap_info_rx_fields[] = {
+ &hf_radiotap_vw_info_rx_bit0,
+ &hf_radiotap_vw_info_rx_bit1,
+ &hf_radiotap_vw_info_rx_bit3,
+ &hf_radiotap_vw_info_rx_bit4,
+ &hf_radiotap_vw_info_rx_bit5,
+ &hf_radiotap_vw_info_rx_bit6,
+ &hf_radiotap_vw_info_rx_bit7,
+ &hf_radiotap_vw_info_rx_bit8,
+ &hf_radiotap_vw_info_rx_bit9,
+ &hf_radiotap_vw_info_rx_bit10,
+ &hf_radiotap_vw_info_rx_bit11,
+ &hf_radiotap_vw_info_rx_bit12,
+ &hf_radiotap_vw_info_rx_bit13,
+ &hf_radiotap_vw_info_rx_bit14,
+ &hf_radiotap_vw_info_rx_bit15,
+ &hf_radiotap_vw_info_rx_bit16,
+ &hf_radiotap_vw_info_rx_bit17,
+ &hf_radiotap_vw_info_rx_bit18,
+ &hf_radiotap_vw_info_rx_bit19,
+ &hf_radiotap_vw_info_rx_bit20,
+ NULL,
+};
-static int hf_radiotap_rfinfo_contextpD_bit0 = -1;
-static int hf_radiotap_rfinfo_contextpD_bit1 = -1;
-static int hf_radiotap_rfinfo_contextpD_bit2 = -1;
-static int hf_radiotap_rfinfo_contextpD_bit3 = -1;
-static int hf_radiotap_rfinfo_contextpD_bit4 = -1;
-static int hf_radiotap_rfinfo_contextpD_bit5 = -1;
-static int hf_radiotap_rfinfo_contextpD_bit13 = -1;
+static int hf_radiotap_vw_info_tx = -1;
+static int hf_radiotap_vw_info_tx_bit0 = -1;
+static int hf_radiotap_vw_info_tx_bit1 = -1;
+static int hf_radiotap_vw_info_tx_bit3 = -1;
+static int hf_radiotap_vw_info_tx_bit4 = -1;
+static int hf_radiotap_vw_info_tx_bit5 = -1;
+static int hf_radiotap_vw_info_tx_bit6 = -1;
+static int hf_radiotap_vw_info_tx_bit7 = -1;
+static int hf_radiotap_vw_info_tx_bit8 = -1;
+static int hf_radiotap_vw_info_tx_bit9 = -1;
+static int hf_radiotap_vw_info_tx_bit10 = -1;
+static int hf_radiotap_vw_info_tx_bit11 = -1;
+static int hf_radiotap_vw_info_tx_bit12 = -1;
+static int hf_radiotap_vw_info_tx_bit13 = -1;
+static int hf_radiotap_vw_info_tx_bit14 = -1;
+static int hf_radiotap_vw_info_tx_bit15 = -1;
+static const int *radiotap_info_tx_fields[] = {
+ &hf_radiotap_vw_info_tx_bit0,
+ &hf_radiotap_vw_info_tx_bit1,
+ &hf_radiotap_vw_info_tx_bit3,
+ &hf_radiotap_vw_info_tx_bit4,
+ &hf_radiotap_vw_info_tx_bit5,
+ &hf_radiotap_vw_info_tx_bit6,
+ &hf_radiotap_vw_info_tx_bit7,
+ &hf_radiotap_vw_info_tx_bit8,
+ &hf_radiotap_vw_info_tx_bit9,
+ &hf_radiotap_vw_info_tx_bit10,
+ &hf_radiotap_vw_info_tx_bit11,
+ &hf_radiotap_vw_info_tx_bit12,
+ &hf_radiotap_vw_info_tx_bit13,
+ &hf_radiotap_vw_info_tx_bit14,
+ &hf_radiotap_vw_info_tx_bit15,
+ NULL,
+};
-static int hf_radiotap_rfinfo_avg_evm_sd_siga = -1;
-static int hf_radiotap_rfinfo_avg_evm_sd_sigb = -1;
-static int hf_radiotap_rfinfo_avg_evm_sd_sigc = -1;
-static int hf_radiotap_rfinfo_avg_evm_sd_sigd = -1;
-static int hf_radiotap_rfinfo_avg_evm_sp_siga = -1;
-static int hf_radiotap_rfinfo_avg_evm_sp_sigb = -1;
-static int hf_radiotap_rfinfo_avg_evm_sp_sigc = -1;
-static int hf_radiotap_rfinfo_avg_evm_sp_sigd = -1;
-static int hf_radiotap_rfinfo_avg_evm_dd_siga = -1;
-static int hf_radiotap_rfinfo_avg_evm_dd_sigb = -1;
-static int hf_radiotap_rfinfo_avg_evm_dd_sigc = -1;
-static int hf_radiotap_rfinfo_avg_evm_dd_sigd = -1;
-static int hf_radiotap_rfinfo_avg_evm_dp_siga = -1;
-static int hf_radiotap_rfinfo_avg_evm_dp_sigb = -1;
-static int hf_radiotap_rfinfo_avg_evm_dp_sigc = -1;
-static int hf_radiotap_rfinfo_avg_evm_dp_sigd = -1;
-static int hf_radiotap_rfinfo_avg_evm_ws_siga = -1;
-static int hf_radiotap_rfinfo_avg_evm_ws_sigb = -1;
-static int hf_radiotap_rfinfo_avg_evm_ws_sigc = -1;
-static int hf_radiotap_rfinfo_avg_evm_ws_sigd = -1;
-/* static int hf_radiotap_rfinfo_contextp_bits3 = -1; */
-static int hf_radiotap_rfinfo_frameformatA = -1;
-static int hf_radiotap_rfinfo_frameformatB = -1;
-static int hf_radiotap_rfinfo_frameformatC = -1;
-static int hf_radiotap_rfinfo_frameformatD = -1;
-static int hf_radiotap_rfinfo_sigbwevmA = -1;
-static int hf_radiotap_rfinfo_sigbwevmB = -1;
-static int hf_radiotap_rfinfo_sigbwevmC = -1;
-static int hf_radiotap_rfinfo_sigbwevmD = -1;
-static int hf_radiotap_rfinfo_legacytypeA = -1;
-static int hf_radiotap_rfinfo_legacytypeB = -1;
-static int hf_radiotap_rfinfo_legacytypeC = -1;
-static int hf_radiotap_rfinfo_legacytypeD = -1;
+static int hf_radiotap_vw_errors_rx_bit0 = -1;
+static int hf_radiotap_vw_errors_rx_bit1 = -1;
+static int hf_radiotap_vw_errors_rx_bit2 = -1;
+static int hf_radiotap_vw_errors_rx_bit3 = -1;
+static int hf_radiotap_vw_errors_rx_bit4 = -1;
+static int hf_radiotap_vw_errors_rx_bit5 = -1;
+static int hf_radiotap_vw_errors_rx_bit6 = -1;
+static int hf_radiotap_vw_errors_rx_bit7 = -1;
+static int hf_radiotap_vw_errors_rx_bit8 = -1;
+static int hf_radiotap_vw_errors_rx_bit9 = -1;
+static int hf_radiotap_vw_errors_rx_bit10 = -1;
+static int hf_radiotap_vw_errors_rx_bit11 = -1;
+static int hf_radiotap_vw_errors_rx_bit12 = -1;
+static int hf_radiotap_vw_errors_rx_bit14 = -1;
+static int hf_radiotap_vw_errors_rx_bit15 = -1;
+static int hf_radiotap_vw_errors_rx_bit16 = -1;
+static int hf_radiotap_vw_errors_rx_bit17 = -1;
+static int hf_radiotap_vw_errors_rx_bit18 = -1;
+static int hf_radiotap_vw_errors_rx_bit19 = -1;
+static int hf_radiotap_vw_errors_rx_bit20 = -1;
+static int hf_radiotap_vw_errors_rx_bit21 = -1;
+static int hf_radiotap_vw_errors_rx_bit22 = -1;
+static int hf_radiotap_vw_errors_rx_bit23 = -1;
+static int hf_radiotap_vw_errors_rx_bit24 = -1;
+static int hf_radiotap_vw_errors_rx_bit31 = -1;
-static int hf_radiotap_rfinfo_avg_ws_symbol = -1;
-static int hf_radiotap_rfinfo_sigdata = -1;
-static int hf_radiotap_rfinfo_sigpilot = -1;
-static int hf_radiotap_rfinfo_datadata = -1;
-static int hf_radiotap_rfinfo_datapilot = -1;
-static int hf_radiotap_plcp_type = -1;
-static int hf_radiotap_vht_ndp_flg = -1;
+static int hf_radiotap_vw_errors_tx_bit1 = -1;
+static int hf_radiotap_vw_errors_tx_bit5 = -1;
+
+static int hf_radiotap_vw_tx_retrycount = -1;
+static int hf_radiotap_vw_tx_factorydebug = -1;
+
+static gint ett_radiotap_info = -1;
+static gint ett_radiotap_errors = -1;
+static gint ett_radiotap_times = -1;
+static gint ett_radiotap_layer1 = -1;
+static gint ett_radiotap_layer2to4 = -1;
+static gint ett_radiotap_rf = -1;
+static gint ett_radiotap_plcp = -1;
+static gint ett_radiotap_infoc = -1;
+static gint ett_radiotap_contextp = -1;
+static gint ett_rf_info = -1;
+
+static gint ett_commontap = -1;
+static gint ett_commontap_times = -1;
+static gint ett_ethernettap_info = -1;
+static gint ett_ethernettap_error = -1;
+static gint ett_ethernettap_flags = -1;
+
+static gint ett_radiotap_flags = -1;
+
+static dissector_handle_t ieee80211_radio_handle;
static dissector_handle_t ixveriwave_handle;
@@ -721,7 +764,7 @@ dissect_ixveriwave(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* da
if (!is_octo)
{
/*
- * Common header.
+ * Pre-OCTO common header.
*/
/* common header length */
proto_tree_add_uint(common_tree, hf_ixveriwave_frame_length,
@@ -851,6 +894,9 @@ dissect_ixveriwave(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* da
}
} else { //Rather then the legacy it takes care to show the Time Header for RadioTapHeader in new format
+ /*
+ * OCTO time header.
+ */
length_remaining = length;
offset +=4;
@@ -1870,11 +1916,10 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
tvbuff_t *next_tvb;
guint length;
gint8 dbm;
- guint8 mcs_index, vw_plcp_info, vw_bssid;
+ guint8 rate_mcs_index, vw_plcp_info, vw_bssid;
guint8 plcp_type;
guint8 vht_ndp_flag, vht_mu_mimo_flg;
float phyRate;
- guint i;
proto_tree *vweft, *vw_errorFlags_tree = NULL, *vwict, *vw_infoC_tree = NULL;
guint16 vw_info, vw_chanflags, vw_flags, vw_ht_length, vw_rflags, vw_vcid, vw_seqnum, mpdu_length;
@@ -1883,9 +1928,10 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
guint8 plcp_default;
ifg_info *p_ifg_info;
- proto_item *ti;
- proto_tree *vwl1t,*vw_l1info_tree = NULL, *vwl2l4t,*vw_l2l4info_tree = NULL, *vwplt,*vw_plcpinfo_tree = NULL;
- guint8 preamble, nss, direction, sigbw, cidv, bssidv, flowv, l4idv;
+ proto_item *vwl1i, *ti;
+ proto_tree *vw_l1info_tree = NULL, *vwl2l4t,*vw_l2l4info_tree = NULL, *vwplt,*vw_plcpinfo_tree = NULL;
+ gboolean direction, short_preamble;
+ guint8 nss, sigbw, cidv, bssidv, flowv, l4idv;
struct ieee_802_11_phdr phdr;
@@ -1923,7 +1969,7 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
ft = proto_tree_add_item(tap_tree, hf_radiotap_flags, tvb, offset, 2, ENC_LITTLE_ENDIAN);
flags_tree = proto_item_add_subtree(ft, ett_radiotap_flags);
- proto_tree_add_item(flags_tree, hf_radiotap_flags_preamble, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item_ret_boolean(flags_tree, hf_radiotap_flags_preamble, tvb, offset, 2, ENC_LITTLE_ENDIAN, &short_preamble);
proto_tree_add_item(flags_tree, hf_radiotap_flags_wep, tvb, offset, 2, ENC_LITTLE_ENDIAN);
if ( vw_rflags & FLAGS_CHAN_HT ) {
proto_tree_add_item(flags_tree, hf_radiotap_flags_ht, tvb, offset, 2, ENC_LITTLE_ENDIAN);
@@ -1951,8 +1997,8 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
vht_ndp_flag = tvb_get_guint8(tvb,offset) & 0x80;
offset++;
- /* MCS index */
- mcs_index = tvb_get_guint8(tvb, offset);
+ /* Rate/MCS index */
+ rate_mcs_index = tvb_get_guint8(tvb, offset);
offset++;
/* number of spatial streams */
@@ -1969,17 +2015,16 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
* and only one NSS.
*/
phdr.phy_info.info_11ac.nss[0] = nss;
- phdr.phy_info.info_11ac.mcs[0] = mcs_index;
- for (i = 1; i < 4; i++)
- phdr.phy_info.info_11ac.nss[i] = 0;
+ phdr.phy_info.info_11ac.mcs[0] = rate_mcs_index;
} else {
/*
* XXX - where's the number of extension spatial streams?
* The code in wiretap/vwr.c doesn't seem to provide it.
+ * It could dig it out of the HT PLCP header in HT-SIG.
*/
phdr.phy = PHDR_802_11_PHY_11N;
phdr.phy_info.info_11n.has_mcs_index = TRUE;
- phdr.phy_info.info_11n.mcs_index = mcs_index;
+ phdr.phy_info.info_11n.mcs_index = rate_mcs_index;
phdr.phy_info.info_11n.has_short_gi = TRUE;
phdr.phy_info.info_11n.short_gi = ((vw_rflags & FLAGS_CHAN_SHORTGI) != 0);
@@ -1996,7 +2041,7 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_uint_format_value(tap_tree, hf_radiotap_datarate,
tvb, offset - 5, 2, tvb_get_letohs(tvb, offset-5),
- "%.1f (MCS %d)", phyRate, mcs_index);
+ "%.1f (MCS %d)", phyRate, rate_mcs_index);
} else {
/*
* XXX - CHAN_OFDM could be 11a or 11g. Unfortunately, we don't
@@ -2005,6 +2050,8 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
*/
if (vw_chanflags & CHAN_CCK) {
phdr.phy = PHDR_802_11_PHY_11B;
+ phdr.phy_info.info_11b.has_short_preamble = TRUE;
+ phdr.phy_info.info_11b.short_preamble = short_preamble;
}
phdr.has_data_rate = TRUE;
phdr.data_rate = tvb_get_letohs(tvb, offset-5) / 5;
@@ -2214,80 +2261,105 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
length = tvb_get_letohs(tvb, offset);
offset += 2;
- if (tvb_get_guint8(tvb, offset+1) & 0x01)
- vwl1t = proto_tree_add_item(tap_tree, hf_radiotap_tx, tvb, offset, 12, ENC_NA);
- else
- vwl1t = proto_tree_add_item(tap_tree, hf_radiotap_rx, tvb, offset, 12, ENC_NA);
- vw_l1info_tree = proto_item_add_subtree(vwl1t, ett_radiotap_layer1);
+ vwl1i = proto_tree_add_item(tap_tree, hf_radiotap_l1info, tvb, offset, 12, ENC_NA);
+ vw_l1info_tree = proto_item_add_subtree(vwl1i, ett_radiotap_layer1);
- preamble = (tvb_get_guint8(tvb, offset) & 0x40) >> 6;
plcp_type = tvb_get_guint8(tvb, offset+4) & 0x0f;
- if (plcp_type == 3)
- mcs_index = tvb_get_guint8(tvb, offset) & 0x0f;
- else
- mcs_index = tvb_get_guint8(tvb, offset) & 0x3f;
/* l1p_1 byte */
- proto_tree_add_uint(vw_l1info_tree, hf_radiotap_preamble,
- tvb, offset, 1, preamble);
- proto_tree_add_uint(vw_l1info_tree, hf_radiotap_mcsindex,
- tvb, offset, 1, mcs_index);
- offset++;
-
- /* NSS and direction octet */
- nss = (tvb_get_guint8(tvb, offset) & 0xf0) >> 4;
- direction = tvb_get_guint8(tvb, offset) & 0x01;
-
- if (plcp_type)
- proto_tree_add_uint(vw_l1info_tree, hf_radiotap_nss, tvb, offset, 1, nss);
-
- proto_tree_add_boolean(vw_l1info_tree, hf_radiotap_vwf_txf, tvb, offset, 1, direction);
- offset++;
-
- /* New pieces of lines for
- * #802.11 radio information#
- * Referred from code changes done for old FPGA version
- * **/
- phdr.fcs_len = (log_mode == 3) ? 0 : 4;
-
- switch (plcp_type) //To check 5 types of PLCP(NULL, CCK, OFDM, HT & VHT)
+ switch (plcp_type)
{
case PLCP_TYPE_LEGACY: /* Legacy (pre-HT - 11b/11a/11g) */
/*
* XXX - CHAN_OFDM could be 11a or 11g. Unfortunately, we don't
* have the frequency, or anything else, to distinguish between
* them.
- *
- * XXX - short/long preamble?
*/
- if (mcs_index < 4)
+ short_preamble = !(tvb_get_guint8(tvb, offset) & 0x40);
+ proto_tree_add_boolean(vw_l1info_tree, hf_radiotap_l1info_preamble,
+ tvb, offset, 1, short_preamble);
+ rate_mcs_index = tvb_get_guint8(tvb, offset) & 0x3f;
+ proto_tree_add_uint(vw_l1info_tree, hf_radiotap_l1info_rateindex,
+ tvb, offset, 1, rate_mcs_index);
+ if (rate_mcs_index < 4)
{
/* CCK */
phdr.phy = PHDR_802_11_PHY_11B;
+ phdr.phy_info.info_11b.has_short_preamble = TRUE;
+ phdr.phy_info.info_11b.short_preamble = short_preamble;
}
- phdr.has_data_rate = TRUE;
- phdr.data_rate = tvb_get_letohs(tvb, offset) / 5;
break;
case PLCP_TYPE_MIXED: /* HT Mixed */
- case PLCP_TYPE_GREENFIELD: /* HT Greenfield (Not supported) */
+ case PLCP_TYPE_GREENFIELD: /* HT Greenfield */
+ rate_mcs_index = tvb_get_guint8(tvb, offset) & 0x3f;
+ proto_tree_add_uint(vw_l1info_tree, hf_radiotap_l1info_ht_mcsindex,
+ tvb, offset, 1, rate_mcs_index);
phdr.phy = PHDR_802_11_PHY_11N;
phdr.phy_info.info_11n.has_mcs_index = TRUE;
- phdr.phy_info.info_11n.mcs_index = mcs_index;
+ phdr.phy_info.info_11n.mcs_index = rate_mcs_index;
phdr.phy_info.info_11n.has_greenfield = TRUE;
phdr.phy_info.info_11n.greenfield = (plcp_type == PLCP_TYPE_GREENFIELD);
break;
case PLCP_TYPE_VHT_MIXED: /* VHT Mixed */
+ rate_mcs_index = tvb_get_guint8(tvb, offset) & 0x0f;
+ proto_tree_add_uint(vw_l1info_tree, hf_radiotap_l1info_vht_mcsindex,
+ tvb, offset, 1, rate_mcs_index);
phdr.phy = PHDR_802_11_PHY_11AC;
/*
- * XXX - this probably has only one user, so only one MCS index
- * and only one NSS.
+ * XXX - this probably has only one user, so only one MCS index.
+ */
+ phdr.phy_info.info_11ac.mcs[0] = rate_mcs_index;
+ }
+ offset++;
+
+ /* NSS and direction octet */
+ switch (plcp_type)
+ {
+ case PLCP_TYPE_LEGACY: /* Legacy (pre-HT - 11b/11a/11g) */
+ break;
+
+ case PLCP_TYPE_MIXED: /* HT Mixed */
+ case PLCP_TYPE_GREENFIELD: /* HT Greenfield (Not supported) */
+ nss = (tvb_get_guint8(tvb, offset) & 0xf0) >> 4;
+ proto_tree_add_uint(vw_l1info_tree, hf_radiotap_l1info_nss,
+ tvb, offset, 1, nss);
+ break;
+
+ case PLCP_TYPE_VHT_MIXED: /* VHT Mixed */
+ nss = (tvb_get_guint8(tvb, offset) & 0xf0) >> 4;
+ proto_tree_add_uint(vw_l1info_tree, hf_radiotap_l1info_nss,
+ tvb, offset, 1, nss);
+ /*
+ * XXX - this probably has only one user, so only one NSS.
*/
phdr.phy_info.info_11ac.nss[0] = nss;
- phdr.phy_info.info_11ac.mcs[0] = mcs_index;
- for (i = 1; i < 4; i++)
- phdr.phy_info.info_11ac.nss[i] = 0;
+ break;
+ }
+ direction = ((tvb_get_guint8(tvb, offset) & 0x01) != 0);
+ proto_tree_add_boolean(vw_l1info_tree, hf_radiotap_l1info_transmitted,
+ tvb, offset, 1, direction);
+ proto_item_append_text(vwl1i, " (Direction=%s)",
+ direction ? "Transmit" : "Receive");
+ offset++;
+
+ /* New pieces of lines for
+ * #802.11 radio information#
+ * Referred from code changes done for old FPGA version
+ * **/
+ phdr.fcs_len = (log_mode == 3) ? 0 : 4;
+
+ switch (plcp_type)
+ {
+ case PLCP_TYPE_LEGACY: /* Legacy (pre-HT - 11b/11a/11g) */
+ phdr.has_data_rate = TRUE;
+ phdr.data_rate = tvb_get_letohs(tvb, offset) / 5;
+ break;
+
+ case PLCP_TYPE_MIXED: /* HT Mixed */
+ case PLCP_TYPE_GREENFIELD: /* HT Greenfield (Not supported) */
+ case PLCP_TYPE_VHT_MIXED: /* VHT Mixed */
break;
}
@@ -2312,7 +2384,7 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
else
{
/* pre-HT */
- if (mcs_index < 4)
+ if (rate_mcs_index < 4)
proto_tree_add_uint_format_value(vw_l1info_tree, hf_radiotap_modulation,
tvb, offset, 1, plcp_type, "CCK (%u)", plcp_type);
else
@@ -2329,20 +2401,20 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
col_add_fstr(pinfo->cinfo, COL_RSSI, "%d dBm", dbm);
if (cmd_type != 1)
- proto_tree_add_item(vwl1t, hf_radiotap_dbm_anta,
+ proto_tree_add_item(vw_l1info_tree, hf_radiotap_dbm_anta,
tvb, offset, 1, ENC_NA);
else
- proto_tree_add_item(vwl1t, hf_radiotap_dbm_tx_anta,
+ proto_tree_add_item(vw_l1info_tree, hf_radiotap_dbm_tx_anta,
tvb, offset, 1, ENC_NA);
offset++;
dbm = (gint8) tvb_get_guint8(tvb, offset);
if (dbm != 100) {
if (cmd_type != 1)
- proto_tree_add_item(vwl1t, hf_radiotap_dbm_antb,
+ proto_tree_add_item(vw_l1info_tree, hf_radiotap_dbm_antb,
tvb, offset, 1, ENC_NA);
else
- proto_tree_add_item(vwl1t,
+ proto_tree_add_item(vw_l1info_tree,
hf_radiotap_dbm_tx_antb,
tvb, offset, 1, ENC_NA);
}
@@ -2351,10 +2423,10 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
dbm = (gint8) tvb_get_guint8(tvb, offset);
if (dbm != 100) {
if (cmd_type != 1)
- proto_tree_add_item(vwl1t, hf_radiotap_dbm_antc,
+ proto_tree_add_item(vw_l1info_tree, hf_radiotap_dbm_antc,
tvb, offset, 1, ENC_NA);
else
- proto_tree_add_item(vwl1t, hf_radiotap_dbm_tx_antc,
+ proto_tree_add_item(vw_l1info_tree, hf_radiotap_dbm_tx_antc,
tvb, offset, 1, ENC_NA);
}
offset++;
@@ -2362,10 +2434,10 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
dbm = (gint8) tvb_get_guint8(tvb, offset);
if (dbm != 100) {
if (cmd_type != 1)
- proto_tree_add_item(vwl1t, hf_radiotap_dbm_antd,
+ proto_tree_add_item(vw_l1info_tree, hf_radiotap_dbm_antd,
tvb, offset, 1, ENC_NA);
else
- proto_tree_add_item(vwl1t,
+ proto_tree_add_item(vw_l1info_tree,
hf_radiotap_dbm_tx_antd,
tvb, offset, 1, ENC_NA);
}
@@ -2430,10 +2502,10 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
vwplt = proto_tree_add_item(tap_tree, hf_radiotap_plcp_info, tvb, offset, 16, vw_plcp_info);
vw_plcpinfo_tree = proto_item_add_subtree(vwplt, ett_radiotap_plcp);
- switch (plcp_type) //To check 5 types of PLCP(NULL, CCK, OFDM, HT & VHT)
+ switch (plcp_type)
{
case PLCP_TYPE_LEGACY:
- if (mcs_index < 4)
+ if (rate_mcs_index < 4)
{
/*
* From IEEE Std 802.11-2012:
@@ -2505,10 +2577,6 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
/* Presumably just padding */
offset += 10;
}
-
- proto_tree_add_item(vw_plcpinfo_tree, hf_radiotap_rfid,
- tvb, offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
break;
case PLCP_TYPE_MIXED:
@@ -2536,10 +2604,6 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
/* Are these 4 bytes significant, or are they just padding? */
offset += 4;
-
- proto_tree_add_item(vw_plcpinfo_tree, hf_radiotap_rfid,
- tvb, offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
break;
case PLCP_TYPE_GREENFIELD:
@@ -2562,16 +2626,9 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += 2;
/*
- * XXX - is the RFID at the end? It does, for other PHYs.
- *
* XXX - if so, is this padding, or significant?
*/
offset += 7;
-
- proto_tree_add_item(vw_plcpinfo_tree, hf_radiotap_rfid,
- tvb, offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
-
break;
case PLCP_TYPE_VHT_MIXED:
@@ -2593,10 +2650,6 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
/* VHT-SIG */
offset = decode_vht_sig(vw_plcpinfo_tree, tvb, offset, &phdr);
-
- proto_tree_add_item(vw_plcpinfo_tree, hf_radiotap_rfid,
- tvb, offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
break;
default:
@@ -2662,11 +2715,12 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_uint_format(vw_plcpinfo_tree, hf_radiotap_plcp_default,
tvb, offset, 1, plcp_default, "PLCP14: %u ", plcp_default);
offset = offset + 1;
- proto_tree_add_item(vw_plcpinfo_tree, hf_radiotap_rfid,
- tvb, offset, 1, ENC_LITTLE_ENDIAN);
- offset = offset + 1;
}
+ proto_tree_add_item(vw_plcpinfo_tree, hf_radiotap_rfid,
+ tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ offset += 1;
+
//RadioTapHeader New format for L2-L4_Info
vwl2l4t = proto_tree_add_item(tap_tree, hf_radiotap_l2_l4_info,
tvb, offset, 23, ENC_NA);
@@ -2773,7 +2827,7 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (cmd_type != 1) { /* then it's an rx case */
/*FPGA_VER_vVW510021 version decodes */
- proto_tree_add_bitmask(vw_l2l4info_tree, tvb, offset, hf_radiotap_vw_info_rx, ett_radiotap_info, radiotap_info_rx_fields, ENC_LITTLE_ENDIAN);
+ proto_tree_add_bitmask(vw_l2l4info_tree, tvb, offset, hf_radiotap_vw_info_rx, ett_radiotap_info, radiotap_info_rx_fields, ENC_LITTLE_ENDIAN);
} else { /* it's a tx case */
/* FPGA_VER_vVW510021 and VW_FPGA_VER_vVW510006 tx info decodes same*/
@@ -2855,7 +2909,7 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
tvb, offset, 2, vw_ht_length, "VHT length: %u (includes the sum of the pieces of the aggregate and their respective Start_Spacing + Delimiter + MPDU + Padding)",
vw_ht_length);
}
- else
+ else
{
proto_tree_add_uint_format(tap_tree, hf_radiotap_vw_ht_length,
tvb, offset, 2, vw_ht_length, "HT length: %u (includes the sum of the pieces of the aggregate and their respective Start_Spacing + Delimiter + MPDU + Padding)",
@@ -2938,11 +2992,6 @@ void proto_register_ixveriwave(void)
{ 1, "LDPC" },
{ 0, NULL },
};
- static const value_string l1_preamble_type[] = {
- { 0, "Short" },
- { 1, "Long" },
- { 0, NULL },
- };
static const value_string modulation_type[] = {
{ 0, "LEGACY" },
{ 1, "HT" },
@@ -3024,14 +3073,14 @@ void proto_register_ixveriwave(void)
{ "MSDU length", "ixveriwave.msdu_length",
FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
- { &hf_ixveriwave_vw_vcid,
- { "Client ID", "ixveriwave.clientid",
- FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
-
{ &hf_ixveriwave_vw_flowid,
{ "Flow ID", "ixveriwave.flowid",
FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
+ { &hf_ixveriwave_vw_vcid,
+ { "Client ID", "ixveriwave.clientid",
+ FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
+
{ &hf_ixveriwave_vw_seqnum,
{ "Sequence number", "ixveriwave.seqnum",
FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
@@ -3072,6 +3121,312 @@ void proto_register_ixveriwave(void)
{ "Inter-frame gap (usecs)", "ixveriwave.ifg",
FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL } },
+ // RF LOGGING
+ { &hf_radiotap_rf_info,
+ { "RF Header", "ixveriwave.RFInfo",
+ FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL } },
+
+ { &hf_radiotap_rfinfo_rfid,
+ { "RF_ID", "ixveriwave.rfinfo.rfid",
+ FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
+
+#if 0
+ { &hf_radiotap_rfinfo_noise,
+ { "Noise", "ixveriwave.rfinfo.noise",
+ FT_FLOAT, 0, NULL, 0x0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_noise_anta,
+ { "Noise Antenna A", "ixveriwave.noise_anta",
+ FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_noise_antb,
+ { "Noise Antenna B", "ixveriwave.noise_antb",
+ FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_noise_antc,
+ { "Noise Antenna C", "ixveriwave.noise_antc",
+ FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_noise_antd,
+ { "Noise Antenna D", "ixveriwave.noise_antd",
+ FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
+#endif
+
+ { &hf_radiotap_rfinfo_snr,
+ { "SNR", "ixveriwave.snr",
+ FT_NONE, BASE_NONE, NULL, 0x0, "Signal-to-noise ratio", HFILL } },
+ { &hf_radiotap_rfinfo_snr_anta,
+ { "SNR Antenna A", "ixveriwave.snr_anta",
+ FT_FLOAT, BASE_NONE|BASE_UNIT_STRING, &units_decibels, 0x0, "Signal-to-noise ratio", HFILL } },
+ { &hf_radiotap_rfinfo_snr_antb,
+ { "SNR Antenna B", "ixveriwave.snr_antb",
+ FT_FLOAT, BASE_NONE|BASE_UNIT_STRING, &units_decibels, 0x0, "Signal-to-noise ratio", HFILL } },
+ { &hf_radiotap_rfinfo_snr_antc,
+ { "SNR Antenna C", "ixveriwave.snr_antc",
+ FT_FLOAT, BASE_NONE|BASE_UNIT_STRING, &units_decibels, 0x0, "Signal-to-noise ratio", HFILL } },
+ { &hf_radiotap_rfinfo_snr_antd,
+ { "SNR Antenna D", "ixveriwave.snr_antd",
+ FT_FLOAT, BASE_NONE|BASE_UNIT_STRING, &units_decibels, 0x0, "Signal-to-noise ratio", HFILL } },
+
+ { &hf_radiotap_rfinfo_pfe,
+ { "PFE", "ixveriwave.rfinfo.pfe",
+ FT_NONE, BASE_NONE, NULL, 0x0, "Preamble Frequency Error metric", HFILL } },
+ { &hf_radiotap_rfinfo_pfe_anta,
+ { "PFE SS#1", "ixveriwave.pfe_anta",
+ FT_FLOAT, BASE_NONE|BASE_UNIT_STRING, &units_hz, 0x0, "Preamble Frequency Error metric", HFILL } },
+ { &hf_radiotap_rfinfo_pfe_antb,
+ { "PFE SS#2", "ixveriwave.pfe_antb",
+ FT_FLOAT, BASE_NONE|BASE_UNIT_STRING, &units_hz, 0x0, "Preamble Frequency Error metric", HFILL } },
+ { &hf_radiotap_rfinfo_pfe_antc,
+ { "PFE SS#3", "ixveriwave.pfe_antc",
+ FT_FLOAT, BASE_NONE|BASE_UNIT_STRING, &units_hz, 0x0, "Preamble Frequency Error metric", HFILL } },
+ { &hf_radiotap_rfinfo_pfe_antd,
+ { "PFE SS#4", "ixveriwave.pfe_antd",
+ FT_FLOAT, BASE_NONE|BASE_UNIT_STRING, &units_hz, 0x0, "Preamble Frequency Error metric", HFILL } },
+
+ { &hf_radiotap_rfinfo_sigdata,
+ { "AVG EVM SIG Data", "ixveriwave.rfinfo.sigdata",
+ FT_NONE, BASE_NONE, NULL, 0x0, "Average EVM for DATA SUBCARRIERS for all SIG symbols of the frame", HFILL } },
+ { &hf_radiotap_rfinfo_avg_evm_sd_siga,
+ { "AVG EVM SIG Data SS#1", "ixveriwave.avg_evm_sda",
+ FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_avg_evm_sd_sigb,
+ { "AVG EVM SIG Data SS#2", "ixveriwave.avg_evm_sdb",
+ FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_avg_evm_sd_sigc,
+ { "AVG EVM SIG Data SS#3", "ixveriwave.avg_evm_sdc",
+ FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_avg_evm_sd_sigd,
+ { "AVG EVM SIG Data SS#4", "ixveriwave.avg_evm_sdd",
+ FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+
+ { &hf_radiotap_rfinfo_sigpilot,
+ { "AVG EVM SIG Pilot", "ixveriwave.rfinfo.sigpilot",
+ FT_NONE, BASE_NONE, NULL, 0x0, "Average EVM for PILOT SUBCARRIERS for all SIG symbols of the frame", HFILL } },
+ { &hf_radiotap_rfinfo_avg_evm_sp_siga,
+ { "AVG EVM SIG Pilot SS#1", "ixveriwave.avg_evm_spa",
+ FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_avg_evm_sp_sigb,
+ { "AVG EVM SIG Pilot SS#2", "ixveriwave.avg_evm_spb",
+ FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_avg_evm_sp_sigc,
+ { "AVG EVM SIG Pilot SS#3", "ixveriwave.avg_evm_spc",
+ FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_avg_evm_sp_sigd,
+ { "AVG EVM SIG Pilot SS#4", "ixveriwave.avg_evm_spd",
+ FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+
+ { &hf_radiotap_rfinfo_datadata,
+ { "AVG EVM DATA Data", "ixveriwave.rfinfo.datadata",
+ FT_NONE, BASE_NONE, NULL, 0x0, "Average EVM for DATA SUBCARRIERS for all DATA symbols of the frame", HFILL } },
+ { &hf_radiotap_rfinfo_avg_evm_dd_siga,
+ { "AVG EVM DATA Data SS#1", "ixveriwave.avg_evm_dda",
+ FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_avg_evm_dd_sigb,
+ { "AVG EVM DATA Data SS#2", "ixveriwave.avg_evm_ddb",
+ FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_avg_evm_dd_sigc,
+ { "AVG EVM DATA Data SS#3", "ixveriwave.avg_evm_ddc",
+ FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_avg_evm_dd_sigd,
+ { "AVG EVM DATA Data SS#4", "ixveriwave.avg_evm_ddd",
+ FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+
+ { &hf_radiotap_rfinfo_datapilot,
+ { "AVG EVM DATA Pilot", "ixveriwave.rfinfo.datapilot",
+ FT_NONE, BASE_NONE, NULL, 0x0, "Average EVM for PILOT SUBCARRIERS for all DATA symbols of the frame", HFILL } },
+ { &hf_radiotap_rfinfo_avg_evm_dp_siga,
+ { "AVG EVM DATA Pilot SSI-1", "ixveriwave.avg_evm_dpa",
+ FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_avg_evm_dp_sigb,
+ { "AVG EVM DATA Pilot SSI-2", "ixveriwave.avg_evm_dpb",
+ FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_avg_evm_dp_sigc,
+ { "AVG EVM DATA Pilot SSI-3", "ixveriwave.avg_evm_dpc",
+ FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_avg_evm_dp_sigd,
+ { "AVG EVM DATA Pilot SSI-4", "ixveriwave.avg_evm_dpd",
+ FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+
+ { &hf_radiotap_rfinfo_avg_ws_symbol,
+ { "EVM Worst Symbol", "ixveriwave.wssymbol",
+ FT_NONE, BASE_NONE, NULL, 0, "WORST-CASE SYMBOL", HFILL } },
+ { &hf_radiotap_rfinfo_avg_evm_ws_siga,
+ { "EVM Worst Symbol SS#1", "ixveriwave.avg_evm_wsa",
+ FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &units_percent, 0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_avg_evm_ws_sigb,
+ { "EVM Worst Symbol SS#2", "ixveriwave.avg_evm_wsb",
+ FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &units_percent, 0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_avg_evm_ws_sigc,
+ { "EVM Worst Symbol SS#3", "ixveriwave.avg_evm_wsc",
+ FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &units_percent, 0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_avg_evm_ws_sigd,
+ { "EVM Worst Symbol SS#4", "ixveriwave.avg_evm_wsd",
+ FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &units_percent, 0, NULL, HFILL } },
+
+ { &hf_radiotap_rfinfo_contextpa,
+ { "CONTEXT_A", "ixveriwave.contextpa",
+ FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_contextpA_bit0,
+ { "SNR_NOISE_valid", "ixveriwave.contextpA.bit0",
+ FT_BOOLEAN, 16, NULL, 0x0001, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_contextpA_bit1,
+ { "PFE_valid", "ixveriwave.contextpA.bit1",
+ FT_BOOLEAN, 16, NULL, 0x0002, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_contextpA_bit2,
+ { "PFE_is_CCK", "ixveriwave.contextpA.bit2",
+ FT_BOOLEAN, 16, NULL, 0x0004, NULL, HFILL } },
+#if 0
+ { &hf_radiotap_rfinfo_contextp_bits3,
+ { "AGC", "ixveriwave.contextp.bits3",
+ FT_BOOLEAN, 16, NULL, 0x0038, "Automatic Gain Control", HFILL } },
+#endif
+ { &hf_radiotap_rfinfo_contextpA_bit3,
+ { "AGC 3", "ixveriwave.contextpA.bit3",
+ FT_BOOLEAN, 16, NULL, 0x0008, "Automatic Gain Control-[3] agc_idle2iqrdy_no_gain_change", HFILL } },
+ { &hf_radiotap_rfinfo_contextpA_bit4,
+ { "AGC 4", "ixveriwave.contextpA.bit4",
+ FT_BOOLEAN, 16, NULL, 0x0010, "Automatic Gain Control-[4] agc_high_pwr_terminated", HFILL } },
+ { &hf_radiotap_rfinfo_contextpA_bit5,
+ { "AGC 5", "ixveriwave.contextpA.bit5",
+ FT_BOOLEAN, 16, NULL, 0x0020, "Automatic Gain Control-[5] agc_high_pwr_terminator", HFILL } },
+#if 0
+ { &hf_radiotap_rfinfo_contextpA_bit8,
+ { "Frame format", "ixveriwave.contextp.bits8",
+ FT_UINT16, BASE_DEC, VALS(frameformat_type), 0x0300, "0: LEGACY. 1:HT. 3:-VHT.", HFILL } },
+ { &hf_radiotap_rfinfo_contextpA_bit10,
+ { "OFDM or CCK", "ixveriwave.contextp.bit10",
+ FT_BOOLEAN, 16, TFS(&tfs_legacy_type), 0x0400, "0: LEGACY OFDM 1: 802.11b LEGACY CCK", HFILL } },
+ { &hf_radiotap_rfinfo_contextpA_bit11,
+ { "SigBandWidth of EVM", "ixveriwave.contextp.bits11",
+ FT_UINT16, BASE_DEC, VALS(sbw_evm), 0x1800, "Signal Bandwidth of EVM measurement", HFILL } },
+#endif
+ { &hf_radiotap_rfinfo_contextpA_bit13,
+ { "QAM modulation", "ixveriwave.contextpA.bits13",
+ FT_BOOLEAN, 16, NULL, 0xe000, NULL, HFILL } },
+
+ { &hf_radiotap_rfinfo_contextpb,
+ { "CONTEXT_B", "ixveriwave.contextpb",
+ FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_contextpc,
+ { "CONTEXT_C", "ixveriwave.contextpc",
+ FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_contextpd,
+ { "CONTEXT_D", "ixveriwave.contextpd",
+ FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL } },
+
+ { &hf_radiotap_rfinfo_contextpB_bit0,
+ { "SNR_NOISE_valid", "ixveriwave.contextpB.bit0",
+ FT_BOOLEAN, 16, NULL, 0x0001, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_contextpB_bit1,
+ { "PFE_valid", "ixveriwave.contextpB.bit1",
+ FT_BOOLEAN, 16, NULL, 0x0002, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_contextpB_bit2,
+ { "PFE_is_CCK", "ixveriwave.contextpB.bit2",
+ FT_BOOLEAN, 16, NULL, 0x0004, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_contextpB_bit3,
+ { "AGC 3", "ixveriwave.contextpB.bit3",
+ FT_BOOLEAN, 16, NULL, 0x0008, "Automatic Gain Control-[3] agc_idle2iqrdy_no_gain_change", HFILL } },
+ { &hf_radiotap_rfinfo_contextpB_bit4,
+ { "AGC 4", "ixveriwave.contextpB.bit4",
+ FT_BOOLEAN, 16, NULL, 0x0010, "Automatic Gain Control-[4] agc_high_pwr_terminated", HFILL } },
+ { &hf_radiotap_rfinfo_contextpB_bit5,
+ { "AGC 5", "ixveriwave.contextpB.bit5",
+ FT_BOOLEAN, 16, NULL, 0x0020, "Automatic Gain Control-[5] agc_high_pwr_terminator", HFILL } },
+ { &hf_radiotap_rfinfo_contextpB_bit13,
+ { "QAM modulation", "ixveriwave.contextpB.bits13",
+ FT_BOOLEAN, 16, NULL, 0xe000, NULL, HFILL } },
+
+ { &hf_radiotap_rfinfo_contextpC_bit0,
+ { "SNR_NOISE_valid", "ixveriwave.contextpC.bit0",
+ FT_BOOLEAN, 16, NULL, 0x0001, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_contextpC_bit1,
+ { "PFE_valid", "ixveriwave.contextpC.bit1",
+ FT_BOOLEAN, 16, NULL, 0x0002, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_contextpC_bit2,
+ { "PFE_is_CCK", "ixveriwave.contextpC.bit2",
+ FT_BOOLEAN, 16, NULL, 0x0004, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_contextpC_bit3,
+ { "AGC 3", "ixveriwave.contextpC.bit3",
+ FT_BOOLEAN, 16, NULL, 0x0008, "Automatic Gain Control-[3] agc_idle2iqrdy_no_gain_change", HFILL } },
+ { &hf_radiotap_rfinfo_contextpC_bit4,
+ { "AGC 4", "ixveriwave.contextpC.bit4",
+ FT_BOOLEAN, 16, NULL, 0x0010, "Automatic Gain Control-[4] agc_high_pwr_terminated", HFILL } },
+ { &hf_radiotap_rfinfo_contextpC_bit5,
+ { "AGC 5", "ixveriwave.contextpC.bit5",
+ FT_BOOLEAN, 16, NULL, 0x0020, "Automatic Gain Control-[5] agc_high_pwr_terminator", HFILL } },
+ { &hf_radiotap_rfinfo_contextpC_bit13,
+ { "QAM modulation", "ixveriwave.contextpC.bits13",
+ FT_BOOLEAN, 16, NULL, 0xe000, NULL, HFILL } },
+
+ { &hf_radiotap_rfinfo_contextpD_bit0,
+ { "SNR_NOISE_valid", "ixveriwave.contextpD.bit0",
+ FT_BOOLEAN, 16, NULL, 0x0001, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_contextpD_bit1,
+ { "PFE_valid", "ixveriwave.contextpD.bit1",
+ FT_BOOLEAN, 16, NULL, 0x0002, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_contextpD_bit2,
+ { "PFE_is_CCK", "ixveriwave.contextpD.bit2",
+ FT_BOOLEAN, 16, NULL, 0x0004, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_contextpD_bit3,
+ { "AGC 3", "ixveriwave.contextpD.bit3",
+ FT_BOOLEAN, 16, NULL, 0x0008, "Automatic Gain Control-[3] agc_idle2iqrdy_no_gain_change", HFILL } },
+ { &hf_radiotap_rfinfo_contextpD_bit4,
+ { "AGC 4", "ixveriwave.contextpD.bit4",
+ FT_BOOLEAN, 16, NULL, 0x0010, "Automatic Gain Control-[4] agc_high_pwr_terminated", HFILL } },
+ { &hf_radiotap_rfinfo_contextpD_bit5,
+ { "AGC 5", "ixveriwave.contextpD.bit5",
+ FT_BOOLEAN, 16, NULL, 0x0020, "Automatic Gain Control-[5] agc_high_pwr_terminator", HFILL } },
+ { &hf_radiotap_rfinfo_contextpD_bit13,
+ { "QAM modulation", "ixveriwave.contextpD.bits13",
+ FT_BOOLEAN, 16, NULL, 0xe000, NULL, HFILL } },
+
+ { &hf_radiotap_rfinfo_frameformatA,
+ { "Frame format", "ixveriwave.rfinfo.frameformatA",
+ FT_UINT8, BASE_DEC, VALS(frameformat_type), 0x03, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_frameformatB,
+ { "Frame format", "ixveriwave.rfinfo.frameformatB",
+ FT_UINT8, BASE_DEC, VALS(frameformat_type), 0x03, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_frameformatC,
+ { "Frame format", "ixveriwave.rfinfo.frameformatC",
+ FT_UINT8, BASE_DEC, VALS(frameformat_type), 0x03, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_frameformatD,
+ { "Frame format", "ixveriwave.rfinfo.frameformatD",
+ FT_UINT8, BASE_DEC, VALS(frameformat_type), 0x03, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_legacytypeA,
+ { "Frame format", "ixveriwave.rfinfo.legacytypeA",
+ FT_BOOLEAN, 8, TFS(&tfs_legacy_type), 0x04, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_legacytypeB,
+ { "Frame format", "ixveriwave.rfinfo.legacytypeB",
+ FT_BOOLEAN, 8, TFS(&tfs_legacy_type), 0x04, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_legacytypeC,
+ { "Frame format", "ixveriwave.rfinfo.legacytypeC",
+ FT_BOOLEAN, 8, TFS(&tfs_legacy_type), 0x04, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_legacytypeD,
+ { "Frame format", "ixveriwave.rfinfo.legacytypeD",
+ FT_BOOLEAN, 8, TFS(&tfs_legacy_type), 0x04, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_sigbwevmA,
+ { "SigBandWidth of EVM", "ixveriwave.rfinfo.sigbwevmA",
+ FT_UINT8, BASE_DEC, VALS(sbw_evm), 0x18, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_sigbwevmB,
+ { "SigBandWidth of EVM", "ixveriwave.rfinfo.sigbwevmB",
+ FT_UINT8, BASE_DEC, VALS(sbw_evm), 0x18, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_sigbwevmC,
+ { "SigBandWidth of EVM", "ixveriwave.rfinfo.sigbwevmC",
+ FT_UINT8, BASE_DEC, VALS(sbw_evm), 0x18, NULL, HFILL } },
+ { &hf_radiotap_rfinfo_sigbwevmD,
+ { "SigBandWidth of EVM", "ixveriwave.rfinfo.sigbwevmD",
+ FT_UINT8, BASE_DEC, VALS(sbw_evm), 0x18, NULL, HFILL } },
+#if 0
+ { &hf_radiotap_rfinfo_tbd,
+ { "RF_TBD", "ixveriwave.rfinfo.tbd",
+ FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
+#endif
+
+ /* Fields for both Ethernet and WLAN */
+
+ { &hf_ixveriwave_vw_l4id,
+ { "Layer 4 ID", "ixveriwave.layer4id",
+ FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
+
+ /* Ethernet fields */
+
{ &hf_ixveriwave_vwf_txf,
{ "Frame direction", "ixveriwave.vwflags.txframe",
FT_BOOLEAN, 8, TFS(&tfs_tx_rx_type), ETHERNETTAP_VWF_TXF, NULL, HFILL } },
@@ -3084,16 +3439,6 @@ void proto_register_ixveriwave(void)
{ "Info field", "ixveriwave.info",
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
- { &hf_ixveriwave_vw_info_retryCount,
- { "Retry count", "ixveriwave.info.retry_count",
- FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
-
-/* tx info decodes for VW510024 and 510012 */
-/* we don't need to enumerate through these, basically for both,
-info is the retry count. for 510024, the 15th bit indicates if
-the frame was impressed on the enet tx media with one or more octets having tx_en
-framing signal deasserted. this is caused by software setting the drain all register bit.
-*/
/* rx info decodes for fpga ver VW510024 */
/*all are reserved*/
@@ -3105,28 +3450,19 @@ framing signal deasserted. this is caused by software setting the drain all reg
{ "Go with flow", "ixveriwave.info.bit9",
FT_BOOLEAN, 16, NULL, 0x0200, NULL, HFILL } },
+/* tx info decodes for VW510024 and 510012 */
+/* we don't need to enumerate through these, basically for both,
+info is the retry count. for 510024, the 15th bit indicates if
+the frame was impressed on the enet tx media with one or more octets having tx_en
+framing signal deasserted. this is caused by software setting the drain all register bit.
+*/
+ { &hf_ixveriwave_vw_info_retryCount,
+ { "Retry count", "ixveriwave.info.retry_count",
+ FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
+
{ &hf_ixveriwave_vw_error,
{ "Errors", "ixveriwave.error",
FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
- /* tx error decodes for VW510024 and previous versions */
-
- { &hf_ixveriwave_vw_error_tx_bit1,
- { "Packet FCS error", "ixveriwave.error.bit1",
- FT_BOOLEAN, 12, NULL, 0x0002, NULL, HFILL } },
- { &hf_ixveriwave_vw_error_tx_bit5,
- { "IP checksum error", "ixveriwave.error.bit5",
- FT_BOOLEAN, 12, NULL, 0x0020, NULL, HFILL } },
- /*bit 6 is actually reserved in 500012, but i thought it would be okay to leave it here*/
- { &hf_ixveriwave_vw_error_tx_bit9,
- { "Underflow error", "ixveriwave.error.bit9",
- FT_BOOLEAN, 12, NULL, 0x0200, NULL, HFILL } },
- { &hf_ixveriwave_vw_error_tx_bit10,
- { "Late collision error", "ixveriwave.error.bit10",
- FT_BOOLEAN, 12, NULL, 0x0400, NULL, HFILL } },
- { &hf_ixveriwave_vw_error_tx_bit11,
- { "Excessive collisions error", "ixveriwave.error.bit11",
- FT_BOOLEAN, 12, NULL, 0x0800, NULL, HFILL } },
- /*all other bits are reserved */
/* rx error decodes for fpga ver VW510012 and VW510024 */
{ &hf_ixveriwave_vw_error_rx_1_bit0,
@@ -3159,172 +3495,254 @@ framing signal deasserted. this is caused by software setting the drain all reg
{ &hf_ixveriwave_vw_error_rx_1_bit9,
{ "Underflow", "ixveriwave.error.bit9",
FT_BOOLEAN, 12, NULL, 0x0200, NULL, HFILL } },
- { &hf_radiotap_vw_errors_tx_bit1,
- { "Packet FCS error", "ixveriwave.errors.bit1",
- FT_BOOLEAN, 16, NULL, 0x0002, NULL, HFILL } },
- { &hf_radiotap_vw_errors_tx_bit5,
- { "IP checksum error", "ixveriwave.errors.bit5",
- FT_BOOLEAN, 16, NULL, 0x0020, NULL, HFILL } },
- /* All other enumerations are reserved.*/
-
- { &hf_ixveriwave_vw_l4id,
- { "Layer 4 ID", "ixveriwave.layer4id",
- FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
-
- { &hf_radiotap_datarate,
- { "Data rate", "ixveriwave.datarate",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Speed this frame was sent/received at", HFILL } },
-
- { &hf_radiotap_plcptype,
- { "VHT_NDP", "ixveriwave.vhtmixedmode",
- FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
-
- { &hf_radiotap_mcsindex,
- { "MCS index", "ixveriwave.mcs",
- FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
-
- { &hf_radiotap_nss,
- { "Number of spatial streams", "ixveriwave.nss",
- FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
+ /* tx error decodes for VW510024 and previous versions */
+ { &hf_ixveriwave_vw_error_tx_bit1,
+ { "Packet FCS error", "ixveriwave.error.bit1",
+ FT_BOOLEAN, 12, NULL, 0x0002, NULL, HFILL } },
+ { &hf_ixveriwave_vw_error_tx_bit5,
+ { "IP checksum error", "ixveriwave.error.bit5",
+ FT_BOOLEAN, 12, NULL, 0x0020, NULL, HFILL } },
+ /*bit 6 is actually reserved in 500012, but i thought it would be okay to leave it here*/
+ { &hf_ixveriwave_vw_error_tx_bit9,
+ { "Underflow error", "ixveriwave.error.bit9",
+ FT_BOOLEAN, 12, NULL, 0x0200, NULL, HFILL } },
+ { &hf_ixveriwave_vw_error_tx_bit10,
+ { "Late collision error", "ixveriwave.error.bit10",
+ FT_BOOLEAN, 12, NULL, 0x0400, NULL, HFILL } },
+ { &hf_ixveriwave_vw_error_tx_bit11,
+ { "Excessive collisions error", "ixveriwave.error.bit11",
+ FT_BOOLEAN, 12, NULL, 0x0800, NULL, HFILL } },
+ /*all other bits are reserved */
- /* Boolean 'present.flags' flags */
+ /* WLAN fields */
{ &hf_radiotap_flags,
{ "Flags", "ixveriwave.flags",
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
{ &hf_radiotap_flags_preamble,
{ "Preamble", "ixveriwave.flags.preamble",
- FT_BOOLEAN, 12, TFS(&tfs_preamble_type), FLAGS_SHORTPRE,
+ FT_BOOLEAN, 12, TFS(&tfs_preamble_type), FLAGS_SHORTPRE,
"Sent/Received with short preamble", HFILL } },
-
{ &hf_radiotap_flags_wep,
{ "WEP", "ixveriwave.flags.wep",
FT_BOOLEAN, 12, NULL, FLAGS_WEP,
"Sent/Received with WEP encryption", HFILL } },
-
{ &hf_radiotap_flags_ht,
{ "HT frame", "ixveriwave.flags.ht",
FT_BOOLEAN, 12, NULL, FLAGS_CHAN_HT, NULL, HFILL } },
-
{ &hf_radiotap_flags_vht,
{ "VHT frame", "ixveriwave.flags.vht",
FT_BOOLEAN, 12, NULL, FLAGS_CHAN_VHT, NULL, HFILL } },
-
+ { &hf_radiotap_flags_short_gi,
+ { "Short guard interval", "ixveriwave.flags.short_gi",
+ FT_BOOLEAN, 12, NULL, FLAGS_CHAN_SHORTGI, NULL, HFILL } },
{ &hf_radiotap_flags_40mhz,
{ "40 MHz channel bandwidth", "ixveriwave.flags.40mhz",
FT_BOOLEAN, 12, NULL, FLAGS_CHAN_40MHZ, NULL, HFILL } },
-
{ &hf_radiotap_flags_80mhz,
{ "80 MHz channel bandwidth", "ixveriwave.flags.80mhz",
FT_BOOLEAN, 12, NULL, FLAGS_CHAN_80MHZ, NULL, HFILL } },
- { &hf_radiotap_flags_short_gi,
- { "Short guard interval", "ixveriwave.flags.short_gi",
- FT_BOOLEAN, 12, NULL, FLAGS_CHAN_SHORTGI, NULL, HFILL } },
+ { &hf_radiotap_datarate,
+ { "Data rate", "ixveriwave.datarate",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Speed this frame was sent/received at", HFILL } },
+
+ { &hf_radiotap_mcsindex,
+ { "MCS index", "ixveriwave.mcs",
+ FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
+
+ { &hf_radiotap_nss,
+ { "Number of spatial streams", "ixveriwave.nss",
+ FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
{ &hf_radiotap_dbm_anta,
{ "SSI Signal for Antenna A", "ixveriwave.dbm_anta",
FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0x0,
"RF signal power at the antenna from a fixed, arbitrary value in decibels from one milliwatt", HFILL } },
-
{ &hf_radiotap_dbm_antb,
{ "SSI Signal for Antenna B", "ixveriwave.dbm_antb",
FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0x0,
"RF signal power at the antenna from a fixed, arbitrary value in decibels from one milliwatt", HFILL } },
-
{ &hf_radiotap_dbm_antc,
{ "SSI Signal for Antenna C", "ixveriwave.dbm_antc",
FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0x0,
"RF signal power at the antenna from a fixed, arbitrary value in decibels from one milliwatt", HFILL } },
-
{ &hf_radiotap_dbm_antd,
{ "SSI Signal for Antenna D", "ixveriwave.dbm_antd",
FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0x0,
"RF signal power at the antenna from a fixed, arbitrary value in decibels from one milliwatt", HFILL } },
- { &hf_radiotap_dbm_tx_anta,
- { "TX Power for Antenna A", "ixveriwave.dbm_anta",
- FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0x0,
- "RF signal power at the antenna from a fixed, arbitrary value in decibels from one milliwatt", HFILL } },
-
- { &hf_radiotap_dbm_tx_antb,
- { "TX Power for Antenna B", "ixveriwave.dbm_antb",
- FT_INT32, BASE_DEC, NULL, 0x0,
- "RF signal power at the antenna from a fixed, arbitrary value in decibels from one milliwatt", HFILL } },
-
- { &hf_radiotap_dbm_tx_antc,
- { "TX Power for Antenna C", "ixveriwave.dbm_antc",
- FT_INT32, BASE_DEC, NULL, 0x0,
- "RF signal power at the antenna from a fixed, arbitrary value in decibels from one milliwatt", HFILL } },
+ /* All other enumerations are reserved.*/
- { &hf_radiotap_dbm_tx_antd,
- { "TX Power for Antenna D", "ixveriwave.dbm_antd",
- FT_INT32, BASE_DEC, NULL, 0x0,
- "RF signal power at the antenna from a fixed, arbitrary value in decibels from one milliwatt", HFILL } },
+ { &hf_radiotap_plcptype,
+ { "VHT_NDP", "ixveriwave.plcptype",
+ FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
- /* Boolean 'present' flags */
/* VeriWave-specific flags */
{ &hf_radiotap_vwf_txf,
{ "Frame direction", "ixveriwave.vwflags.txframe",
FT_BOOLEAN, 16, TFS(&tfs_tx_rx_type), VW_RADIOTAPF_TXF, NULL, HFILL } },
-
{ &hf_radiotap_vwf_fcserr,
{ "MAC FCS check", "ixveriwave.vwflags.fcserr",
FT_BOOLEAN, 16, TFS(&tfs_fcserr_type), VW_RADIOTAPF_FCSERR, NULL, HFILL } },
-
{ &hf_radiotap_vwf_dcrerr,
{ "Decryption error", "ixveriwave.vwflags.decrypterr",
FT_BOOLEAN, 16, TFS(&tfs_decrypterr_type), VW_RADIOTAPF_DCRERR, NULL, HFILL } },
-
{ &hf_radiotap_vwf_retrerr,
{ "TX retry limit", "ixveriwave.vwflags.retryerr",
FT_BOOLEAN, 16, TFS(&tfs_retryerr_type), VW_RADIOTAPF_RETRERR, NULL, HFILL } },
-
{ &hf_radiotap_vwf_enctype,
{ "Encryption type", "ixveriwave.vwflags.encrypt",
FT_UINT16, BASE_DEC, VALS(encrypt_type), VW_RADIOTAPF_ENCMSK, NULL, HFILL } },
- /* start VeriWave-specific radiotap header elements 6-2007 */
{ &hf_radiotap_vw_ht_length,
{ "HT length", "ixveriwave.ht_length",
FT_UINT16, BASE_DEC, NULL, 0x0, "Total IP length (incl all pieces of an aggregate)", HFILL } },
- { &hf_radiotap_vht_user_pos,
- { "VHT User Pos", "ixveriwave.VHT_user_pos",
- FT_UINT8, BASE_DEC, NULL, 0x03, NULL, HFILL } },
+ { &hf_radiotap_vw_info,
+ { "Info field", "ixveriwave.info",
+ FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_vht_ndp_flg,
- { "NDP", "ixveriwave.VHT_ndp_flg",
- FT_UINT8, BASE_HEX, NULL, 0x80, NULL, HFILL } },
+ { &hf_radiotap_vw_info_tx_2_bit10,
+ { "MPDU of A-MPDU", "ixveriwave.info.bit10",
+ FT_BOOLEAN, 16, NULL, INFO_MPDU_OF_A_MPDU, NULL, HFILL } },
+ { &hf_radiotap_vw_info_tx_2_bit11,
+ { "First MPDU of A-MPDU", "ixveriwave.info.bit11",
+ FT_BOOLEAN, 16, NULL, INFO_FIRST_MPDU_OF_A_MPDU, NULL, HFILL } },
+ { &hf_radiotap_vw_info_tx_2_bit12,
+ { "Last MPDU of A-MPDU", "ixveriwave.info.bit12",
+ FT_BOOLEAN, 16, NULL, INFO_LAST_MPDU_OF_A_MPDU, NULL, HFILL } },
+ { &hf_radiotap_vw_info_tx_2_bit13,
+ { "MSDU of A-MSDU", "ixveriwave.info.bit13",
+ FT_BOOLEAN, 16, NULL, INFO_MSDU_OF_A_MSDU, NULL, HFILL } },
+ { &hf_radiotap_vw_info_tx_2_bit14,
+ { "First MSDU of A-MSDU", "ixveriwave.info.bit14",
+ FT_BOOLEAN, 16, NULL, INFO_FIRST_MSDU_OF_A_MSDU, NULL, HFILL } },
+ { &hf_radiotap_vw_info_tx_2_bit15,
+ { "Last MSDU of A-MSDU", "ixveriwave.info.bit15",
+ FT_BOOLEAN, 16, NULL, INFO_LAST_MSDU_OF_A_MSDU, NULL, HFILL } },
+ /*v510006 uses bits */
+
+ { &hf_radiotap_vw_info_rx_2_bit8,
+ { "ACK withheld from frame", "ixveriwave.info.bit8",
+ FT_BOOLEAN, 16, NULL, 0x0100, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_2_bit9,
+ { "Sent CTS to self before data", "ixveriwave.info.bit9",
+ FT_BOOLEAN, 16, NULL, 0x0200, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_2_bit10,
+ { "MPDU of an A-MPDU", "ixveriwave.info.bit10",
+ FT_BOOLEAN, 16, NULL, INFO_MPDU_OF_A_MPDU, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_2_bit11,
+ { "First MPDU of A-MPDU", "ixveriwave.info.bit11",
+ FT_BOOLEAN, 16, NULL, INFO_FIRST_MPDU_OF_A_MPDU, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_2_bit12,
+ { "Last MPDU of A-MPDU", "ixveriwave.info.bit12",
+ FT_BOOLEAN, 16, NULL, INFO_LAST_MPDU_OF_A_MPDU, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_2_bit13,
+ { "MSDU of A-MSDU", "ixveriwave.info.bit13",
+ FT_BOOLEAN, 16, NULL, INFO_MSDU_OF_A_MSDU, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_2_bit14,
+ { "First MSDU of A-MSDU", "ixveriwave.info.bit14",
+ FT_BOOLEAN, 16, NULL, INFO_FIRST_MSDU_OF_A_MSDU, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_2_bit15,
+ { "Last MSDU of A-MSDU", "ixveriwave.info.bit15",
+ FT_BOOLEAN, 16, NULL, INFO_LAST_MSDU_OF_A_MSDU, NULL, HFILL } },
+
+ { &hf_radiotap_vw_errors,
+ { "Errors", "ixveriwave.errors",
+ FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
+
+ /* rx error decodes for fpga ver VW510021 */
+ { &hf_radiotap_vw_errors_rx_2_bit0,
+ { "CRC16 or parity error", "ixveriwave.errors.bit0",
+ FT_BOOLEAN, 16, NULL, 0x0001, "error bit 0", HFILL } },
+ { &hf_radiotap_vw_errors_rx_2_bit1,
+ { "Non-supported rate or service field", "ixveriwave.errors.bit1",
+ FT_BOOLEAN, 16, NULL, 0x0002, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_2_bit2,
+ { "Short frame error. Frame is shorter than length.", "ixveriwave.errors.bit2",
+ FT_BOOLEAN, 16, NULL, 0x0004, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_2_bit4,
+ { "FCS_Error", "ixveriwave.errors.bit4",
+ FT_BOOLEAN, 16, NULL, 0x0010, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_2_bit5,
+ { "L2 de-aggregation error", "ixveriwave.errors.bit5",
+ FT_BOOLEAN, 16, NULL, 0x0020, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_2_bit6,
+ { "Duplicate MPDU", "ixveriwave.errors.bit6",
+ FT_BOOLEAN, 16, NULL, 0x0040, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_2_bit7,
+ { "Bad_Sig: Bad flow magic number (includes bad flow crc16)", "ixveriwave.errors.bit7",
+ FT_BOOLEAN, 16, NULL, 0x0080, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_2_bit8,
+ { "Bad flow payload checksum", "ixveriwave.errors.bit8",
+ FT_BOOLEAN, 16, NULL, 0x0100, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_2_bit10,
+ { "Bad IP checksum error", "ixveriwave.errors.bit10",
+ FT_BOOLEAN, 16, NULL, 0x0400, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_2_bit11,
+ { "L4(TCP/ICMP/IGMP/UDP) checksum error", "ixveriwave.errors.bit11",
+ FT_BOOLEAN, 16, NULL, 0x0800, NULL, HFILL } },
+
+ { &hf_radiotap_vw_errors_tx_bit01,
+ { "CRC32 Error", "ixveriwave.errors.bit1",
+ FT_BOOLEAN, 32, NULL, 0x00000002, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_tx_bit05,
+ { "IP Checksum Error", "ixveriwave.errors.bit5",
+ FT_BOOLEAN, 32, NULL, 0x00000020, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_tx_bit8,
+ { "ACK Timeout", "ixveriwave.errors.bit8",
+ FT_BOOLEAN, 32, NULL, 0x00000100, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_tx_bit9,
+ { "CTS Timeout", "ixveriwave.errors.bit9",
+ FT_BOOLEAN, 32, NULL, 0x00000200, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_tx_bit10,
+ { "Last Retry Attempt for this MPDU", "ixveriwave.errors.bit10",
+ FT_BOOLEAN, 32, NULL, 0x00000400, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_tx_bit31,
+ { "Internal Error", "ixveriwave.errors.bit31",
+ FT_BOOLEAN, 32, NULL, 0x80000000, NULL, HFILL } },
{ &hf_radiotap_vht_mu_mimo_flg,
{ "VHT MU MIMO", "ixveriwave.VHT_mu_mimo_flg",
FT_UINT8, BASE_DEC, NULL, 0x08, NULL, HFILL } },
-
+ { &hf_radiotap_vht_user_pos,
+ { "VHT User Pos", "ixveriwave.VHT_user_pos",
+ FT_UINT8, BASE_DEC, NULL, 0x03, NULL, HFILL } },
{ &hf_radiotap_vht_su_mimo_flg,
{ "VHT SU MIMO", "ixveriwave.VHT_su_mimo_flg",
FT_UINT8, BASE_DEC, NULL, 0x04, NULL, HFILL } },
- { &hf_radiotap_rf_info,
- { "RF Header", "ixveriwave.RFInfo",
+ { &hf_radiotap_l1info,
+ { "Layer 1 Header", "ixveriwave.l1info",
FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL } },
- { &hf_radiotap_tx,
- { "Layer 1 Header (Direction=Transmit)", "ixveriwave.l1info",
- FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL } },
- { &hf_radiotap_rx,
- { "Layer 1 Header (Direction=Receive)", "ixveriwave.l1info",
- FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL } },
+ { &hf_radiotap_l1info_preamble,
+ { "Preamble", "ixveriwave.l1info.preamble",
+ FT_BOOLEAN, 12, TFS(&tfs_preamble_type), 0x0,
+ "Sent/Received with short preamble", HFILL } },
- { &hf_radiotap_modulation,
- { "Modulation", "ixveriwave.Modulation",
- FT_UINT8, BASE_DEC, VALS(modulation_type), 0x0, NULL, HFILL } },
+ { &hf_radiotap_l1info_rateindex,
+ { "Rate index", "ixveriwave.l1info.rate",
+ FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
+
+ { &hf_radiotap_l1info_ht_mcsindex,
+ { "MCS index", "ixveriwave.mcs",
+ FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
+
+ { &hf_radiotap_l1info_vht_mcsindex,
+ { "MCS index", "ixveriwave.mcs",
+ FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
+
+ { &hf_radiotap_l1info_nss,
+ { "Number of spatial streams", "ixveriwave.nss",
+ FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_preamble,
- { "Preamble", "ixveriwave.preamble",
- FT_UINT8, BASE_DEC, VALS(l1_preamble_type), 0x0, NULL, HFILL } },
+ { &hf_radiotap_l1info_transmitted,
+ { "Frame direction", "ixveriwave.txframe",
+ FT_BOOLEAN, 16, TFS(&tfs_tx_rx_type), 0x0, NULL, HFILL } },
{ &hf_radiotap_sigbandwidth,
{ "Signaling Band Width", "ixveriwave.sigbandwidth",
@@ -3334,71 +3752,59 @@ framing signal deasserted. this is caused by software setting the drain all reg
{ "RSSI", "ixveriwave.rssi",
FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
#endif
- {&hf_radiotap_l1infoc,
- {"L1InfoC", "ixveriwave.l1InfoC",
- FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ { &hf_radiotap_modulation,
+ { "Modulation", "ixveriwave.Modulation",
+ FT_UINT8, BASE_DEC, VALS(modulation_type), 0x0, NULL, HFILL } },
+
+ { &hf_radiotap_dbm_tx_anta,
+ { "TX Power for Antenna A", "ixveriwave.dbm_anta",
+ FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0x0,
+ "RF signal power at the antenna from a fixed, arbitrary value in decibels from one milliwatt", HFILL } },
+ { &hf_radiotap_dbm_tx_antb,
+ { "TX Power for Antenna B", "ixveriwave.dbm_antb",
+ FT_INT32, BASE_DEC, NULL, 0x0,
+ "RF signal power at the antenna from a fixed, arbitrary value in decibels from one milliwatt", HFILL } },
+ { &hf_radiotap_dbm_tx_antc,
+ { "TX Power for Antenna C", "ixveriwave.dbm_antc",
+ FT_INT32, BASE_DEC, NULL, 0x0,
+ "RF signal power at the antenna from a fixed, arbitrary value in decibels from one milliwatt", HFILL } },
+ { &hf_radiotap_dbm_tx_antd,
+ { "TX Power for Antenna D", "ixveriwave.dbm_antd",
+ FT_INT32, BASE_DEC, NULL, 0x0,
+ "RF signal power at the antenna from a fixed, arbitrary value in decibels from one milliwatt", HFILL } },
{ &hf_radiotap_sigbandwidthmask,
{ "Signaling Band Width Mask", "ixveriwave.sigbandwidthmask",
FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
-
{ &hf_radiotap_antennaportenergydetect,
{ "Antenna Port Energy Detect", "ixveriwave.antennaportenergydetect",
FT_UINT8, BASE_HEX, NULL, 0x0F, NULL, HFILL } },
-
+ { &hf_radiotap_tx_antennaselect,
+ { "Antenna Select", "ixveriwave.tx.antennaselect",
+ FT_UINT8, BASE_HEX, NULL, 0x07, NULL, HFILL } },
+ { &hf_radiotap_tx_stbcselect,
+ { "STBC Select", "ixveriwave.tx.stbcselect",
+ FT_UINT8, BASE_HEX, NULL, 0x18, NULL, HFILL } },
{ &hf_radiotap_mumask,
{ "MU_MASK", "ixveriwave.mumask",
FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL } },
+ {&hf_radiotap_l1infoc,
+ {"L1InfoC", "ixveriwave.l1InfoC",
+ FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ { &hf_radiotap_vht_ndp_flg,
+ { "NDP", "ixveriwave.VHT_ndp_flg",
+ FT_UINT8, BASE_HEX, NULL, 0x80, NULL, HFILL } },
+
{ &hf_radiotap_plcp_info,
{"PLCP Header", "ixveriwave.plcp_info",
FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL } },
- { &hf_radiotap_l2_l4_info,
- {"Layer 2-4 Header", "ixveriwave.l2_l4info",
- FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL } },
- { &hf_radiotap_bssid,
- {"BSS ID", "ixveriwave.bssid",
- FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
-
- { &hf_radiotap_unicastormulticast,
- { "Unicast/Multicast", "ixveriwave.unicastormulticast",
- FT_UINT8, BASE_DEC, VALS(bmbit), 0x80, NULL, HFILL } },
-
- { &hf_radiotap_clientidvalid,
- { "Client Id Valid", "ixveriwave.clientidvalid",
- FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x20, NULL, HFILL } },
-
- { &hf_radiotap_bssidvalid,
- { "BSS ID Valid", "ixveriwave.bssidvalid",
- FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x40, NULL, HFILL } },
-
- { &hf_radiotap_flowvalid,
- { "Flow Id Valid", "ixveriwave.flowvalid",
- FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x80, NULL, HFILL } },
-
- { &hf_radiotap_l4idvalid,
- { "Layer 4 Id Valid", "ixveriwave.l4idvalid",
- FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x10, NULL, HFILL } },
-
- { &hf_radiotap_istypeqos,
- { "Is Type QOS", "ixveriwave.istypeqos",
- FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x40, NULL, HFILL } },
-
- { &hf_radiotap_containshtfield,
- { "Contains HT Field", "ixveriwave.containshtfield",
- FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x20, NULL, HFILL } },
-
- { &hf_radiotap_tid,
- { "TID", "ixveriwave.tid",
- FT_UINT16, BASE_HEX, NULL, 0x01c0, NULL, HFILL } },
-#if 0
- { &hf_radiotap_wlantype,
- { "WLAN Type", "ixveriwave.wlantype",
+ { &hf_radiotap_plcp_type,
+ { "PLCP_TYPE", "ixveriwave.plcp.type",
FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
-#endif
- { &hf_radiotap_payloaddecode,
- { "Payload Decode", "ixveriwave.payloaddecode",
- FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
+ { &hf_radiotap_plcp_default,
+ { "PLCP", "ixveriwave.plcp",
+ FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
{ &hf_radiotap_plcp_signal,
{ "Signal", "ixveriwave.plcp.signal",
@@ -3412,15 +3818,17 @@ framing signal deasserted. this is caused by software setting the drain all reg
{ &hf_radiotap_plcp_length_extension,
{ "Length extension", "ixveriwave.plcp.length_extension",
FT_UINT8, BASE_DEC, NULL, 0xe0, NULL, HFILL } },
-
{ &hf_radiotap_plcp_length,
{ "PLCP Length", "ixveriwave.plcp.length",
FT_UINT24, BASE_DEC, NULL, 0x0, NULL, HFILL } },
-
{ &hf_radiotap_plcp_crc16,
{ "PLCP CRC-16", "ixveriwave.plcp.crc16",
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
+ { &hf_radiotap_ofdm_service,
+ { "Service", "ixveriwave.ofdm.service",
+ FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
+
/* SIGNAL (11a)/L-SIG (11n, 11ac) */
{ &hf_radiotap_ofdm_rate,
{ "Rate", "ixveriwave.ofdm.rate",
@@ -3434,9 +3842,6 @@ framing signal deasserted. this is caused by software setting the drain all reg
{ &hf_radiotap_ofdm_tail,
{ "Tail", "ixveriwave.ofdm.tail",
FT_UINT24, BASE_HEX, NULL, 0xfc0000, NULL, HFILL } },
- { &hf_radiotap_ofdm_service,
- { "Service", "ixveriwave.ofdm.service",
- FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
/* HT-SIG1 */
{ &hf_radiotap_ht_mcsindex,
@@ -3581,472 +3986,124 @@ framing signal deasserted. this is caused by software setting the drain all reg
{ "RFID", "ixveriwave.rfid",
FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_plcp_default,
- { "PLCP", "ixveriwave.plcp",
- FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_tx_antennaselect,
- { "Antenna Select", "ixveriwave.tx.antennaselect",
- FT_UINT8, BASE_HEX, NULL, 0x07, NULL, HFILL } },
- { &hf_radiotap_tx_stbcselect,
- { "STBC Select", "ixveriwave.tx.stbcselect",
- FT_UINT8, BASE_HEX, NULL, 0x18, NULL, HFILL } },
- { &hf_radiotap_ac,
- { "AC", "ixveriwave.tx.ac",
- FT_UINT8, BASE_HEX, NULL, 0x0e, NULL, HFILL } },
+ { &hf_radiotap_l2_l4_info,
+ {"Layer 2-4 Header", "ixveriwave.l2_l4info",
+ FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL } },
- { &hf_radiotap_plcp_type,
- { "PLCP_TYPE", "ixveriwave.plcp.type",
+ { &hf_radiotap_bssid,
+ {"BSS ID", "ixveriwave.bssid",
FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
- // RF LOGGING
-#if 0
- { &hf_radiotap_rfinfo_noise,
- { "Noise", "ixveriwave.rfinfo.noise",
- FT_FLOAT, 0, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_noise_anta,
- { "Noise Antenna A", "ixveriwave.noise_anta",
- FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_noise_antb,
- { "Noise Antenna B", "ixveriwave.noise_antb",
- FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_noise_antc,
- { "Noise Antenna C", "ixveriwave.noise_antc",
- FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_noise_antd,
- { "Noise Antenna D", "ixveriwave.noise_antd",
- FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
-#endif
- { &hf_radiotap_rfinfo_snr,
- { "SNR", "ixveriwave.snr",
- FT_NONE, BASE_NONE, NULL, 0x0, "Signal-to-noise ratio", HFILL } },
- { &hf_radiotap_rfinfo_snr_anta,
- { "SNR Antenna A", "ixveriwave.snr_anta",
- FT_FLOAT, BASE_NONE|BASE_UNIT_STRING, &units_decibels, 0x0, "Signal-to-noise ratio", HFILL } },
- { &hf_radiotap_rfinfo_snr_antb,
- { "SNR Antenna B", "ixveriwave.snr_antb",
- FT_FLOAT, BASE_NONE|BASE_UNIT_STRING, &units_decibels, 0x0, "Signal-to-noise ratio", HFILL } },
- { &hf_radiotap_rfinfo_snr_antc,
- { "SNR Antenna C", "ixveriwave.snr_antc",
- FT_FLOAT, BASE_NONE|BASE_UNIT_STRING, &units_decibels, 0x0, "Signal-to-noise ratio", HFILL } },
- { &hf_radiotap_rfinfo_snr_antd,
- { "SNR Antenna D", "ixveriwave.snr_antd",
- FT_FLOAT, BASE_NONE|BASE_UNIT_STRING, &units_decibels, 0x0, "Signal-to-noise ratio", HFILL } },
-
- { &hf_radiotap_rfinfo_pfe,
- { "PFE", "ixveriwave.rfinfo.pfe",
- FT_NONE, BASE_NONE, NULL, 0x0, "Preamble Frequency Error metric", HFILL } },
- { &hf_radiotap_rfinfo_pfe_anta,
- { "PFE SS#1", "ixveriwave.pfe_anta",
- FT_FLOAT, BASE_NONE|BASE_UNIT_STRING, &units_hz, 0x0, "Preamble Frequency Error metric", HFILL } },
- { &hf_radiotap_rfinfo_pfe_antb,
- { "PFE SS#2", "ixveriwave.pfe_antb",
- FT_FLOAT, BASE_NONE|BASE_UNIT_STRING, &units_hz, 0x0, "Preamble Frequency Error metric", HFILL } },
- { &hf_radiotap_rfinfo_pfe_antc,
- { "PFE SS#3", "ixveriwave.pfe_antc",
- FT_FLOAT, BASE_NONE|BASE_UNIT_STRING, &units_hz, 0x0, "Preamble Frequency Error metric", HFILL } },
- { &hf_radiotap_rfinfo_pfe_antd,
- { "PFE SS#4", "ixveriwave.pfe_antd",
- FT_FLOAT, BASE_NONE|BASE_UNIT_STRING, &units_hz, 0x0, "Preamble Frequency Error metric", HFILL } },
+ { &hf_radiotap_clientidvalid,
+ { "Client Id Valid", "ixveriwave.clientidvalid",
+ FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x20, NULL, HFILL } },
+ { &hf_radiotap_bssidvalid,
+ { "BSS ID Valid", "ixveriwave.bssidvalid",
+ FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x40, NULL, HFILL } },
+ { &hf_radiotap_unicastormulticast,
+ { "Unicast/Multicast", "ixveriwave.unicastormulticast",
+ FT_UINT8, BASE_DEC, VALS(bmbit), 0x80, NULL, HFILL } },
- { &hf_radiotap_rfinfo_contextpa,
- { "CONTEXT_A", "ixveriwave.contextpa",
- FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_contextpb,
- { "CONTEXT_B", "ixveriwave.contextpb",
- FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_contextpc,
- { "CONTEXT_C", "ixveriwave.contextpc",
- FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_contextpd,
- { "CONTEXT_D", "ixveriwave.contextpd",
- FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_contextpA_bit0,
- { "SNR_NOISE_valid", "ixveriwave.contextpA.bit0",
- FT_BOOLEAN, 16, NULL, 0x0001, NULL, HFILL } },
- { &hf_radiotap_rfinfo_contextpA_bit1,
- { "PFE_valid", "ixveriwave.contextpA.bit1",
- FT_BOOLEAN, 16, NULL, 0x0002, NULL, HFILL } },
- { &hf_radiotap_rfinfo_contextpA_bit2,
- { "PFE_is_CCK", "ixveriwave.contextpA.bit2",
- FT_BOOLEAN, 16, NULL, 0x0004, NULL, HFILL } },
#if 0
- { &hf_radiotap_rfinfo_contextp_bits3,
- { "AGC", "ixveriwave.contextp.bits3",
- FT_BOOLEAN, 16, NULL, 0x0038, "Automatic Gain Control", HFILL } },
-#endif
- { &hf_radiotap_rfinfo_contextpA_bit3,
- { "AGC 3", "ixveriwave.contextpA.bit3",
- FT_BOOLEAN, 16, NULL, 0x0008, "Automatic Gain Control-[3] agc_idle2iqrdy_no_gain_change", HFILL } },
- { &hf_radiotap_rfinfo_contextpA_bit4,
- { "AGC 4", "ixveriwave.contextpA.bit4",
- FT_BOOLEAN, 16, NULL, 0x0010, "Automatic Gain Control-[4] agc_high_pwr_terminated", HFILL } },
- { &hf_radiotap_rfinfo_contextpA_bit5,
- { "AGC 5", "ixveriwave.contextpA.bit5",
- FT_BOOLEAN, 16, NULL, 0x0020, "Automatic Gain Control-[5] agc_high_pwr_terminator", HFILL } },
-#if 0
- { &hf_radiotap_rfinfo_contextpA_bit8,
- { "Frame format", "ixveriwave.contextp.bits8",
- FT_UINT16, BASE_DEC, VALS(frameformat_type), 0x0300, "0: LEGACY. 1:HT. 3:-VHT.", HFILL } },
- { &hf_radiotap_rfinfo_contextpA_bit10,
- { "OFDM or CCK", "ixveriwave.contextp.bit10",
- FT_BOOLEAN, 16, TFS(&tfs_legacy_type), 0x0400, "0: LEGACY OFDM 1: 802.11b LEGACY CCK", HFILL } },
- { &hf_radiotap_rfinfo_contextpA_bit11,
- { "SigBandWidth of EVM", "ixveriwave.contextp.bits11",
- FT_UINT16, BASE_DEC, VALS(sbw_evm), 0x1800, "Signal Bandwidth of EVM measurement", HFILL } },
-#endif
- { &hf_radiotap_rfinfo_contextpA_bit13,
- { "QAM modulation", "ixveriwave.contextpA.bits13",
- FT_BOOLEAN, 16, NULL, 0xe000, NULL, HFILL } },
-
- { &hf_radiotap_rfinfo_contextpB_bit0,
- { "SNR_NOISE_valid", "ixveriwave.contextpB.bit0",
- FT_BOOLEAN, 16, NULL, 0x0001, NULL, HFILL } },
- { &hf_radiotap_rfinfo_contextpB_bit1,
- { "PFE_valid", "ixveriwave.contextpB.bit1",
- FT_BOOLEAN, 16, NULL, 0x0002, NULL, HFILL } },
- { &hf_radiotap_rfinfo_contextpB_bit2,
- { "PFE_is_CCK", "ixveriwave.contextpB.bit2",
- FT_BOOLEAN, 16, NULL, 0x0004, NULL, HFILL } },
- { &hf_radiotap_rfinfo_contextpB_bit3,
- { "AGC 3", "ixveriwave.contextpB.bit3",
- FT_BOOLEAN, 16, NULL, 0x0008, "Automatic Gain Control-[3] agc_idle2iqrdy_no_gain_change", HFILL } },
- { &hf_radiotap_rfinfo_contextpB_bit4,
- { "AGC 4", "ixveriwave.contextpB.bit4",
- FT_BOOLEAN, 16, NULL, 0x0010, "Automatic Gain Control-[4] agc_high_pwr_terminated", HFILL } },
- { &hf_radiotap_rfinfo_contextpB_bit5,
- { "AGC 5", "ixveriwave.contextpB.bit5",
- FT_BOOLEAN, 16, NULL, 0x0020, "Automatic Gain Control-[5] agc_high_pwr_terminator", HFILL } },
- { &hf_radiotap_rfinfo_contextpB_bit13,
- { "QAM modulation", "ixveriwave.contextpB.bits13",
- FT_BOOLEAN, 16, NULL, 0xe000, NULL, HFILL } },
-
- { &hf_radiotap_rfinfo_contextpC_bit0,
- { "SNR_NOISE_valid", "ixveriwave.contextpC.bit0",
- FT_BOOLEAN, 16, NULL, 0x0001, NULL, HFILL } },
- { &hf_radiotap_rfinfo_contextpC_bit1,
- { "PFE_valid", "ixveriwave.contextpC.bit1",
- FT_BOOLEAN, 16, NULL, 0x0002, NULL, HFILL } },
- { &hf_radiotap_rfinfo_contextpC_bit2,
- { "PFE_is_CCK", "ixveriwave.contextpC.bit2",
- FT_BOOLEAN, 16, NULL, 0x0004, NULL, HFILL } },
- { &hf_radiotap_rfinfo_contextpC_bit3,
- { "AGC 3", "ixveriwave.contextpC.bit3",
- FT_BOOLEAN, 16, NULL, 0x0008, "Automatic Gain Control-[3] agc_idle2iqrdy_no_gain_change", HFILL } },
- { &hf_radiotap_rfinfo_contextpC_bit4,
- { "AGC 4", "ixveriwave.contextpC.bit4",
- FT_BOOLEAN, 16, NULL, 0x0010, "Automatic Gain Control-[4] agc_high_pwr_terminated", HFILL } },
- { &hf_radiotap_rfinfo_contextpC_bit5,
- { "AGC 5", "ixveriwave.contextpC.bit5",
- FT_BOOLEAN, 16, NULL, 0x0020, "Automatic Gain Control-[5] agc_high_pwr_terminator", HFILL } },
- { &hf_radiotap_rfinfo_contextpC_bit13,
- { "QAM modulation", "ixveriwave.contextpC.bits13",
- FT_BOOLEAN, 16, NULL, 0xe000, NULL, HFILL } },
-
- { &hf_radiotap_rfinfo_contextpD_bit0,
- { "SNR_NOISE_valid", "ixveriwave.contextpD.bit0",
- FT_BOOLEAN, 16, NULL, 0x0001, NULL, HFILL } },
- { &hf_radiotap_rfinfo_contextpD_bit1,
- { "PFE_valid", "ixveriwave.contextpD.bit1",
- FT_BOOLEAN, 16, NULL, 0x0002, NULL, HFILL } },
- { &hf_radiotap_rfinfo_contextpD_bit2,
- { "PFE_is_CCK", "ixveriwave.contextpD.bit2",
- FT_BOOLEAN, 16, NULL, 0x0004, NULL, HFILL } },
- { &hf_radiotap_rfinfo_contextpD_bit3,
- { "AGC 3", "ixveriwave.contextpD.bit3",
- FT_BOOLEAN, 16, NULL, 0x0008, "Automatic Gain Control-[3] agc_idle2iqrdy_no_gain_change", HFILL } },
- { &hf_radiotap_rfinfo_contextpD_bit4,
- { "AGC 4", "ixveriwave.contextpD.bit4",
- FT_BOOLEAN, 16, NULL, 0x0010, "Automatic Gain Control-[4] agc_high_pwr_terminated", HFILL } },
- { &hf_radiotap_rfinfo_contextpD_bit5,
- { "AGC 5", "ixveriwave.contextpD.bit5",
- FT_BOOLEAN, 16, NULL, 0x0020, "Automatic Gain Control-[5] agc_high_pwr_terminator", HFILL } },
- { &hf_radiotap_rfinfo_contextpD_bit13,
- { "QAM modulation", "ixveriwave.contextpD.bits13",
- FT_BOOLEAN, 16, NULL, 0xe000, NULL, HFILL } },
-
- { &hf_radiotap_rfinfo_frameformatA,
- { "Frame format", "ixveriwave.rfinfo.frameformatA",
- FT_UINT8, BASE_DEC, VALS(frameformat_type), 0x03, NULL, HFILL } },
- { &hf_radiotap_rfinfo_frameformatB,
- { "Frame format", "ixveriwave.rfinfo.frameformatB",
- FT_UINT8, BASE_DEC, VALS(frameformat_type), 0x03, NULL, HFILL } },
- { &hf_radiotap_rfinfo_frameformatC,
- { "Frame format", "ixveriwave.rfinfo.frameformatC",
- FT_UINT8, BASE_DEC, VALS(frameformat_type), 0x03, NULL, HFILL } },
- { &hf_radiotap_rfinfo_frameformatD,
- { "Frame format", "ixveriwave.rfinfo.frameformatD",
- FT_UINT8, BASE_DEC, VALS(frameformat_type), 0x03, NULL, HFILL } },
- { &hf_radiotap_rfinfo_legacytypeA,
- { "Frame format", "ixveriwave.rfinfo.legacytypeA",
- FT_BOOLEAN, 8, TFS(&tfs_legacy_type), 0x04, NULL, HFILL } },
- { &hf_radiotap_rfinfo_legacytypeB,
- { "Frame format", "ixveriwave.rfinfo.legacytypeB",
- FT_BOOLEAN, 8, TFS(&tfs_legacy_type), 0x04, NULL, HFILL } },
- { &hf_radiotap_rfinfo_legacytypeC,
- { "Frame format", "ixveriwave.rfinfo.legacytypeC",
- FT_BOOLEAN, 8, TFS(&tfs_legacy_type), 0x04, NULL, HFILL } },
- { &hf_radiotap_rfinfo_legacytypeD,
- { "Frame format", "ixveriwave.rfinfo.legacytypeD",
- FT_BOOLEAN, 8, TFS(&tfs_legacy_type), 0x04, NULL, HFILL } },
- { &hf_radiotap_rfinfo_sigbwevmA,
- { "SigBandWidth of EVM", "ixveriwave.rfinfo.sigbwevmA",
- FT_UINT8, BASE_DEC, VALS(sbw_evm), 0x18, NULL, HFILL } },
- { &hf_radiotap_rfinfo_sigbwevmB,
- { "SigBandWidth of EVM", "ixveriwave.rfinfo.sigbwevmB",
- FT_UINT8, BASE_DEC, VALS(sbw_evm), 0x18, NULL, HFILL } },
- { &hf_radiotap_rfinfo_sigbwevmC,
- { "SigBandWidth of EVM", "ixveriwave.rfinfo.sigbwevmC",
- FT_UINT8, BASE_DEC, VALS(sbw_evm), 0x18, NULL, HFILL } },
- { &hf_radiotap_rfinfo_sigbwevmD,
- { "SigBandWidth of EVM", "ixveriwave.rfinfo.sigbwevmD",
- FT_UINT8, BASE_DEC, VALS(sbw_evm), 0x18, NULL, HFILL } },
-
- { &hf_radiotap_rfinfo_sigdata,
- { "AVG EVM SIG Data", "ixveriwave.rfinfo.sigdata",
- FT_NONE, BASE_NONE, NULL, 0x0, "Average EVM for DATA SUBCARRIERS for all SIG symbols of the frame", HFILL } },
- { &hf_radiotap_rfinfo_avg_evm_sd_siga,
- { "AVG EVM SIG Data SS#1", "ixveriwave.avg_evm_sda",
- FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_avg_evm_sd_sigb,
- { "AVG EVM SIG Data SS#2", "ixveriwave.avg_evm_sdb",
- FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_avg_evm_sd_sigc,
- { "AVG EVM SIG Data SS#3", "ixveriwave.avg_evm_sdc",
- FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_avg_evm_sd_sigd,
- { "AVG EVM SIG Data SS#4", "ixveriwave.avg_evm_sdd",
- FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
-
- { &hf_radiotap_rfinfo_sigpilot,
- { "AVG EVM SIG Pilot", "ixveriwave.rfinfo.sigpilot",
- FT_NONE, BASE_NONE, NULL, 0x0, "Average EVM for PILOT SUBCARRIERS for all SIG symbols of the frame", HFILL } },
- { &hf_radiotap_rfinfo_avg_evm_sp_siga,
- { "AVG EVM SIG Pilot SS#1", "ixveriwave.avg_evm_spa",
- FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_avg_evm_sp_sigb,
- { "AVG EVM SIG Pilot SS#2", "ixveriwave.avg_evm_spb",
- FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_avg_evm_sp_sigc,
- { "AVG EVM SIG Pilot SS#3", "ixveriwave.avg_evm_spc",
- FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_avg_evm_sp_sigd,
- { "AVG EVM SIG Pilot SS#4", "ixveriwave.avg_evm_spd",
- FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
-
- { &hf_radiotap_rfinfo_datadata,
- { "AVG EVM DATA Data", "ixveriwave.rfinfo.datadata",
- FT_NONE, BASE_NONE, NULL, 0x0, "Average EVM for DATA SUBCARRIERS for all DATA symbols of the frame", HFILL } },
- { &hf_radiotap_rfinfo_avg_evm_dd_siga,
- { "AVG EVM DATA Data SS#1", "ixveriwave.avg_evm_dda",
- FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_avg_evm_dd_sigb,
- { "AVG EVM DATA Data SS#2", "ixveriwave.avg_evm_ddb",
- FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_avg_evm_dd_sigc,
- { "AVG EVM DATA Data SS#3", "ixveriwave.avg_evm_ddc",
- FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_avg_evm_dd_sigd,
- { "AVG EVM DATA Data SS#4", "ixveriwave.avg_evm_ddd",
- FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
-
- { &hf_radiotap_rfinfo_datapilot,
- { "AVG EVM DATA Pilot", "ixveriwave.rfinfo.datapilot",
- FT_NONE, BASE_NONE, NULL, 0x0, "Average EVM for PILOT SUBCARRIERS for all DATA symbols of the frame", HFILL } },
- { &hf_radiotap_rfinfo_avg_evm_dp_siga,
- { "AVG EVM DATA Pilot SSI-1", "ixveriwave.avg_evm_dpa",
- FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_avg_evm_dp_sigb,
- { "AVG EVM DATA Pilot SSI-2", "ixveriwave.avg_evm_dpb",
- FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_avg_evm_dp_sigc,
- { "AVG EVM DATA Pilot SSI-3", "ixveriwave.avg_evm_dpc",
- FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_avg_evm_dp_sigd,
- { "AVG EVM DATA Pilot SSI-4", "ixveriwave.avg_evm_dpd",
- FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
-
- { &hf_radiotap_rfinfo_avg_ws_symbol,
- { "EVM Worst Symbol", "ixveriwave.wssymbol",
- FT_NONE, BASE_NONE, NULL, 0, "WORST-CASE SYMBOL", HFILL } },
- { &hf_radiotap_rfinfo_avg_evm_ws_siga,
- { "EVM Worst Symbol SS#1", "ixveriwave.avg_evm_wsa",
- FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &units_percent, 0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_avg_evm_ws_sigb,
- { "EVM Worst Symbol SS#2", "ixveriwave.avg_evm_wsb",
- FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &units_percent, 0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_avg_evm_ws_sigc,
- { "EVM Worst Symbol SS#3", "ixveriwave.avg_evm_wsc",
- FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &units_percent, 0, NULL, HFILL } },
- { &hf_radiotap_rfinfo_avg_evm_ws_sigd,
- { "EVM Worst Symbol SS#4", "ixveriwave.avg_evm_wsd",
- FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &units_percent, 0, NULL, HFILL } },
-
- { &hf_radiotap_rfinfo_rfid,
- { "RF_ID", "ixveriwave.rfinfo.rfid",
+ { &hf_radiotap_wlantype,
+ { "WLAN Type", "ixveriwave.wlantype",
FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
-#if 0
- { &hf_radiotap_rfinfo_tbd,
- { "RF_TBD", "ixveriwave.rfinfo.tbd",
- FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
#endif
- { &hf_radiotap_vw_errors,
- { "Errors", "ixveriwave.errors",
- FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
-
- /* rx error decodes for fpga ver VW510021 */
- { &hf_radiotap_vw_errors_rx_2_bit0,
- { "CRC16 or parity error", "ixveriwave.errors.bit0",
- FT_BOOLEAN, 16, NULL, 0x0001, "error bit 0", HFILL } },
-
- { &hf_radiotap_vw_errors_rx_2_bit1,
- { "Non-supported rate or service field", "ixveriwave.errors.bit1",
- FT_BOOLEAN, 16, NULL, 0x0002, NULL, HFILL } },
-
- { &hf_radiotap_vw_errors_rx_2_bit2,
- { "Short frame error. Frame is shorter than length.", "ixveriwave.errors.bit2",
- FT_BOOLEAN, 16, NULL, 0x0004, NULL, HFILL } },
-
- { &hf_radiotap_vw_errors_rx_2_bit4,
- { "FCS_Error", "ixveriwave.errors.bit4",
- FT_BOOLEAN, 16, NULL, 0x0010, NULL, HFILL } },
-
- { &hf_radiotap_vw_errors_rx_2_bit5,
- { "L2 de-aggregation error", "ixveriwave.errors.bit5",
- FT_BOOLEAN, 16, NULL, 0x0020, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_2_bit6,
- { "Duplicate MPDU", "ixveriwave.errors.bit6",
- FT_BOOLEAN, 16, NULL, 0x0040, NULL, HFILL } },
-
- { &hf_radiotap_vw_errors_rx_2_bit7,
- { "Bad_Sig: Bad flow magic number (includes bad flow crc16)", "ixveriwave.errors.bit7",
- FT_BOOLEAN, 16, NULL, 0x0080, NULL, HFILL } },
-
- { &hf_radiotap_vw_errors_rx_2_bit8,
- { "Bad flow payload checksum", "ixveriwave.errors.bit8",
- FT_BOOLEAN, 16, NULL, 0x0100, NULL, HFILL } },
-
- { &hf_radiotap_vw_errors_rx_2_bit10,
- { "Bad IP checksum error", "ixveriwave.errors.bit10",
- FT_BOOLEAN, 16, NULL, 0x0400, NULL, HFILL } },
+ { &hf_radiotap_tid,
+ { "TID", "ixveriwave.tid",
+ FT_UINT16, BASE_HEX, NULL, 0x01c0, NULL, HFILL } },
+ { &hf_radiotap_ac,
+ { "AC", "ixveriwave.tx.ac",
+ FT_UINT8, BASE_HEX, NULL, 0x0e, NULL, HFILL } },
+ { &hf_radiotap_l4idvalid,
+ { "Layer 4 Id Valid", "ixveriwave.l4idvalid",
+ FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x10, NULL, HFILL } },
+ { &hf_radiotap_containshtfield,
+ { "Contains HT Field", "ixveriwave.containshtfield",
+ FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x20, NULL, HFILL } },
+ { &hf_radiotap_istypeqos,
+ { "Is Type QOS", "ixveriwave.istypeqos",
+ FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x40, NULL, HFILL } },
+ { &hf_radiotap_flowvalid,
+ { "Flow Id Valid", "ixveriwave.flowvalid",
+ FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x80, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_2_bit11,
- { "L4(TCP/ICMP/IGMP/UDP) checksum error", "ixveriwave.errors.bit11",
- FT_BOOLEAN, 16, NULL, 0x0800, NULL, HFILL } },
+ { &hf_radiotap_payloaddecode,
+ { "Payload Decode", "ixveriwave.payloaddecode",
+ FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_vw_errors_tx_bit01,
- { "CRC32 Error", "ixveriwave.errors.bit1",
- FT_BOOLEAN, 32, NULL, 0x00000002, NULL, HFILL } },
- { &hf_radiotap_vw_errors_tx_bit05,
- { "IP Checksum Error", "ixveriwave.errors.bit5",
- FT_BOOLEAN, 32, NULL, 0x00000020, NULL, HFILL } },
- { &hf_radiotap_vw_errors_tx_bit8,
- { "ACK Timeout", "ixveriwave.errors.bit8",
- FT_BOOLEAN, 32, NULL, 0x00000100, NULL, HFILL } },
- { &hf_radiotap_vw_errors_tx_bit9,
- { "CTS Timeout", "ixveriwave.errors.bit9",
- FT_BOOLEAN, 32, NULL, 0x00000200, NULL, HFILL } },
- { &hf_radiotap_vw_errors_tx_bit10,
- { "Last Retry Attempt for this MPDU", "ixveriwave.errors.bit10",
- FT_BOOLEAN, 32, NULL, 0x00000400, NULL, HFILL } },
- { &hf_radiotap_vw_errors_tx_bit31,
- { "Internal Error", "ixveriwave.errors.bit31",
- FT_BOOLEAN, 32, NULL, 0x80000000, NULL, HFILL } },
- { &hf_radiotap_vw_tx_retrycount,
- { "Retry Count", "ixveriwave.tx.retrycount",
- FT_UINT8, BASE_DEC, NULL, 0x1f, NULL, HFILL } },
- { &hf_radiotap_vw_tx_factorydebug,
- { "Factory Debug", "ixveriwave.tx.factorydebug",
- FT_UINT8, BASE_HEX, NULL, 0x7f80, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx,
+ { "Info field", "ixveriwave.info",
+ FT_UINT24, BASE_HEX, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit0,
- { "SIG Field CRC/Parity Error", "ixveriwave.errors.bit0",
- FT_BOOLEAN, 32, NULL, 0x00000001, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit1,
- { "Non-supported service field", "ixveriwave.errors.bit1",
- FT_BOOLEAN, 32, NULL, 0x00000002, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit2,
- { "Frame Length Error", "ixveriwave.errors.bit2",
- FT_BOOLEAN, 32, NULL, 0x00000004, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit3,
- { "VHT_SIG_A/B CRC Error", "ixveriwave.errors.bit3",
- FT_BOOLEAN, 32, NULL, 0x00000008, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit4,
- { "CRC32 Error", "ixveriwave.errors.bit4",
- FT_BOOLEAN, 32, NULL, 0x00000010, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit5,
- { "L2 de-aggregation error", "ixveriwave.errors.bit5",
- FT_BOOLEAN, 32, NULL, 0x00000020, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit6,
- { "Duplicate MPDU", "ixveriwave.errors.bit6",
- FT_BOOLEAN, 32, NULL, 0x00000040, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit7,
- { "Bad Flow Magic Number", "ixveriwave.errors.bit7",
- FT_BOOLEAN, 32, NULL, 0x00000080, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit8,
- { "Bad flow payload checksum", "ixveriwave.errors.bit8",
- FT_BOOLEAN, 32, NULL, 0x00000100, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit9,
- { "Illegal VHT_SIG Value", "ixveriwave.errors.bit9",
- FT_BOOLEAN, 32, NULL, 0x00000200, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit10,
- { "Bad IP checksum error", "ixveriwave.errors.bit10",
- FT_BOOLEAN, 32, NULL, 0x00000400, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit11,
- { "TCP/ICMP/IGMP/UDP Checksum Error", "ixveriwave.errors.bit11",
- FT_BOOLEAN, 32, NULL, 0x00000800, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit12,
- { "Layer 1 Unsupported Feature", "ixveriwave.errors.bit12",
- FT_BOOLEAN, 32, NULL, 0x00001000, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit14,
- { "Layer 1 Packet Termination", "ixveriwave.errors.bit14",
- FT_BOOLEAN, 32, NULL, 0x00004000, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit15,
- { "Internal Error", "ixveriwave.errors.bit15",
- FT_BOOLEAN, 32, NULL, 0x00008000, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit16,
- { "WEP IVC/TKIP/CCMP/BIP MIC Miscompare", "ixveriwave.errors.bit16",
- FT_BOOLEAN, 32, NULL, 0x00010000, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit17,
- { "WEP/TKIP Rate Exceeded", "ixveriwave.errors.bit17",
- FT_BOOLEAN, 32, NULL, 0x00020000, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit18,
- { "Crypto Short Error", "ixveriwave.errors.bit18",
- FT_BOOLEAN, 32, NULL, 0x00040000, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit19,
- { "EXTIV Fault A", "ixveriwave.errors.bit19",
- FT_BOOLEAN, 32, NULL, 0x00080000, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit20,
- { "EXTIV Fault B", "ixveriwave.errors.bit20",
- FT_BOOLEAN, 32, NULL, 0x00100000, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit21,
- { "Internal Error", "ixveriwave.errors.bit21",
- FT_BOOLEAN, 32, NULL, 0x00200000, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit22,
- { "Protected Fault A", "ixveriwave.errors.bit22",
- FT_BOOLEAN, 32, NULL, 0x00400000, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit23,
- { "RX MAC Crypto Incompatibility", "ixveriwave.errors.bit23",
- FT_BOOLEAN, 32, NULL, 0x00800000, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit24,
- { "Factory Debug", "ixveriwave.errors.bit24",
- FT_BOOLEAN, 32, NULL, 0x7F000000, NULL, HFILL } },
- { &hf_radiotap_vw_errors_rx_bit31,
- { "Internal Error", "ixveriwave.errors.bit31",
- FT_BOOLEAN, 32, NULL, 0x80000000, NULL, HFILL } },
+ /* rx info decodes for fpga ver VW510021 */
+ { &hf_radiotap_vw_info_rx_bit0,
+ { "Crypto WEP Encoded", "ixveriwave.info.bit0",
+ FT_UINT24, BASE_DEC, NULL, 0x000001, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_bit1,
+ { "Crypto TKIP Encoded", "ixveriwave.info.bit1",
+ FT_UINT24, BASE_DEC, VALS(crypto_TKIP_type), 0x000006, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_bit3,
+ { "Crypto RX TKIP TSC SEQSKIP", "ixveriwave.info.bit3",
+ FT_UINT24, BASE_DEC, NULL, 0x000008, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_bit4,
+ { "Crypto RX CCMP PN SEQSKIP", "ixveriwave.info.bit4",
+ FT_UINT24, BASE_DEC, NULL, 0x000010, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_bit5,
+ { "TKIP not full MSDU", "ixveriwave.info.bit5",
+ FT_UINT24, BASE_DEC, NULL, 0x000020, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_bit6,
+ { "MPDU Length field is greater than MPDU octets", "ixveriwave.info.bit6",
+ FT_UINT24, BASE_DEC, NULL, 0x000040, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_bit7,
+ { "RX TKIP / CCMP TSC SEQERR", "ixveriwave.info.bit7",
+ FT_UINT24, BASE_DEC, NULL, 0x000080, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_bit8,
+ { "ACK withheld from frame", "ixveriwave.info.bit8",
+ FT_UINT24, BASE_DEC, NULL, 0x000100, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_bit9,
+ { "Client BSSID matched", "ixveriwave.info.bit9",
+ FT_UINT24, BASE_DEC, NULL, 0x000200, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_bit10,
+ { "MPDU of an A-MPDU", "ixveriwave.info.bit10",
+ FT_UINT24, BASE_DEC, NULL, 0x000400, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_bit11,
+ { "First MPDU of A-MPDU", "ixveriwave.info.bit11",
+ FT_UINT24, BASE_DEC, NULL, 0x000800, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_bit12,
+ { "Last MPDU of A-MPDU", "ixveriwave.info.bit12",
+ FT_UINT24, BASE_DEC, NULL, 0x001000, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_bit13,
+ { "MSDU of A-MSDU", "ixveriwave.info.bit13",
+ FT_UINT24, BASE_DEC, NULL, 0x002000, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_bit14,
+ { "First MSDU of A-MSDU", "ixveriwave.info.bit14",
+ FT_UINT24, BASE_DEC, NULL, 0x004000, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_bit15,
+ { "Last MSDU of A-MSDU", "ixveriwave.info.bit15",
+ FT_UINT24, BASE_DEC, NULL, 0x008000, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_bit16,
+ { "Layer 1 Info[0]", "ixveriwave.info.bit16",
+ FT_UINT24, BASE_DEC, NULL, 0x010000, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_bit17,
+ { "Layer 1 Info[1]", "ixveriwave.info.bit17",
+ FT_UINT24, BASE_DEC, NULL, 0x020000, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_bit18,
+ { "VHT frame received with the use of the VHT_SIG_B.LENGTH", "ixveriwave.info.bit18",
+ FT_UINT24, BASE_DEC, NULL, 0x040000, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_bit19,
+ { "VHT frame received without the use of VHT_SIG_B.LENGTH", "ixveriwave.info.bit19",
+ FT_UINT24, BASE_DEC, NULL, 0x080000, NULL, HFILL } },
+ { &hf_radiotap_vw_info_rx_bit20,
+ { "Factory Internal", "ixveriwave.info.bit20",
+ FT_UINT24, BASE_DEC, NULL, 0xf00000, NULL, HFILL } },
- { &hf_radiotap_vw_info,
- { "Info field", "ixveriwave.info",
- FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
{ &hf_radiotap_vw_info_tx,
{ "Info field", "ixveriwave.info",
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
- { &hf_radiotap_vw_info_rx,
- { "Info field", "ixveriwave.info",
- FT_UINT24, BASE_HEX, NULL, 0x0, NULL, HFILL } },
/* tx info decodes for VW510021 and previous versions */
-
/*
{ &hf_radiotap_vw_info_tx_bit0,
{ "Crypto WEP Encoded", "ixveriwave.info.bit0",
@@ -4075,27 +4132,21 @@ framing signal deasserted. this is caused by software setting the drain all reg
{ &hf_radiotap_vw_info_tx_bit9,
{ "Sent CTS to Self before Data", "ixveriwave.info.bit9",
FT_BOOLEAN, 16, NULL, 0x0200, NULL, HFILL } },
-
{ &hf_radiotap_vw_info_tx_bit10,
{ "MPDU of A-MPDU", "ixveriwave.info.bit10",
FT_BOOLEAN, 16, NULL, INFO_MPDU_OF_A_MPDU, NULL, HFILL } },
-
{ &hf_radiotap_vw_info_tx_bit11,
{ "First MPDU of A-MPDU", "ixveriwave.info.bit11",
FT_BOOLEAN, 16, NULL, INFO_FIRST_MPDU_OF_A_MPDU, NULL, HFILL } },
-
{ &hf_radiotap_vw_info_tx_bit12,
{ "Last MPDU of A-MPDU", "ixveriwave.info.bit12",
FT_BOOLEAN, 16, NULL, INFO_LAST_MPDU_OF_A_MPDU, NULL, HFILL } },
-
{ &hf_radiotap_vw_info_tx_bit13,
{ "MSDU of A-MSDU", "ixveriwave.info.bit13",
FT_BOOLEAN, 16, NULL, INFO_MSDU_OF_A_MSDU, NULL, HFILL } },
-
{ &hf_radiotap_vw_info_tx_bit14,
{ "First MSDU of A-MSDU", "ixveriwave.info.bit14",
FT_BOOLEAN, 16, NULL, INFO_FIRST_MSDU_OF_A_MSDU, NULL, HFILL } },
-
{ &hf_radiotap_vw_info_tx_bit15,
{ "Last MSDU of A-MSDU", "ixveriwave.info.bit15",
FT_BOOLEAN, 16, NULL, INFO_LAST_MSDU_OF_A_MSDU, NULL, HFILL } },
@@ -4128,157 +4179,114 @@ framing signal deasserted. this is caused by software setting the drain all reg
{ &hf_radiotap_vw_info_tx_bit9,
{ "Sent CTS to Self before Data", "ixveriwave.info.bit9",
FT_UINT16, BASE_DEC, NULL, 0x0200, NULL, HFILL } },
-
{ &hf_radiotap_vw_info_tx_bit10,
{ "MPDU of A-MPDU", "ixveriwave.info.bit10",
FT_UINT16, BASE_DEC, NULL, INFO_MPDU_OF_A_MPDU, NULL, HFILL } },
-
{ &hf_radiotap_vw_info_tx_bit11,
{ "First MPDU of A-MPDU", "ixveriwave.info.bit11",
FT_UINT16, BASE_DEC, NULL, INFO_FIRST_MPDU_OF_A_MPDU, NULL, HFILL } },
-
{ &hf_radiotap_vw_info_tx_bit12,
{ "Last MPDU of A-MPDU", "ixveriwave.info.bit12",
FT_UINT16, BASE_DEC, NULL, INFO_LAST_MPDU_OF_A_MPDU, NULL, HFILL } },
-
{ &hf_radiotap_vw_info_tx_bit13,
{ "MSDU of A-MSDU", "ixveriwave.info.bit13",
FT_UINT16, BASE_DEC, NULL, INFO_MSDU_OF_A_MSDU, NULL, HFILL } },
-
{ &hf_radiotap_vw_info_tx_bit14,
{ "First MSDU of A-MSDU", "ixveriwave.info.bit14",
FT_UINT16, BASE_DEC, NULL, INFO_FIRST_MSDU_OF_A_MSDU, NULL, HFILL } },
-
{ &hf_radiotap_vw_info_tx_bit15,
{ "Last MSDU of A-MSDU", "ixveriwave.info.bit15",
FT_UINT16, BASE_DEC, NULL, INFO_LAST_MSDU_OF_A_MSDU, NULL, HFILL } },
- { &hf_radiotap_vw_info_tx_2_bit10,
- { "MPDU of A-MPDU", "ixveriwave.info.bit10",
- FT_BOOLEAN, 16, NULL, INFO_MPDU_OF_A_MPDU, NULL, HFILL } },
-
- { &hf_radiotap_vw_info_tx_2_bit11,
- { "First MPDU of A-MPDU", "ixveriwave.info.bit11",
- FT_BOOLEAN, 16, NULL, INFO_FIRST_MPDU_OF_A_MPDU, NULL, HFILL } },
-
- { &hf_radiotap_vw_info_tx_2_bit12,
- { "Last MPDU of A-MPDU", "ixveriwave.info.bit12",
- FT_BOOLEAN, 16, NULL, INFO_LAST_MPDU_OF_A_MPDU, NULL, HFILL } },
-
- { &hf_radiotap_vw_info_tx_2_bit13,
- { "MSDU of A-MSDU", "ixveriwave.info.bit13",
- FT_BOOLEAN, 16, NULL, INFO_MSDU_OF_A_MSDU, NULL, HFILL } },
-
- { &hf_radiotap_vw_info_tx_2_bit14,
- { "First MSDU of A-MSDU", "ixveriwave.info.bit14",
- FT_BOOLEAN, 16, NULL, INFO_FIRST_MSDU_OF_A_MSDU, NULL, HFILL } },
-
- { &hf_radiotap_vw_info_tx_2_bit15,
- { "Last MSDU of A-MSDU", "ixveriwave.info.bit15",
- FT_BOOLEAN, 16, NULL, INFO_LAST_MSDU_OF_A_MSDU, NULL, HFILL } },
- /*v510006 uses bits */
-
- /* rx info decodes for fpga ver VW510021 */
- { &hf_radiotap_vw_info_rx_bit0,
- { "Crypto WEP Encoded", "ixveriwave.info.bit0",
- FT_UINT24, BASE_DEC, NULL, 0x000001, NULL, HFILL } },
- { &hf_radiotap_vw_info_rx_bit1,
- { "Crypto TKIP Encoded", "ixveriwave.info.bit1",
- FT_UINT24, BASE_DEC, VALS(crypto_TKIP_type), 0x000006, NULL, HFILL } },
- { &hf_radiotap_vw_info_rx_bit3,
- { "Crypto RX TKIP TSC SEQSKIP", "ixveriwave.info.bit3",
- FT_UINT24, BASE_DEC, NULL, 0x000008, NULL, HFILL } },
- { &hf_radiotap_vw_info_rx_bit4,
- { "Crypto RX CCMP PN SEQSKIP", "ixveriwave.info.bit4",
- FT_UINT24, BASE_DEC, NULL, 0x000010, NULL, HFILL } },
- { &hf_radiotap_vw_info_rx_bit5,
- { "TKIP not full MSDU", "ixveriwave.info.bit5",
- FT_UINT24, BASE_DEC, NULL, 0x000020, NULL, HFILL } },
- { &hf_radiotap_vw_info_rx_bit6,
- { "MPDU Length field is greater than MPDU octets", "ixveriwave.info.bit6",
- FT_UINT24, BASE_DEC, NULL, 0x000040, NULL, HFILL } },
- { &hf_radiotap_vw_info_rx_bit7,
- { "RX TKIP / CCMP TSC SEQERR", "ixveriwave.info.bit7",
- FT_UINT24, BASE_DEC, NULL, 0x000080, NULL, HFILL } },
- { &hf_radiotap_vw_info_rx_bit8,
- { "ACK withheld from frame", "ixveriwave.info.bit8",
- FT_UINT24, BASE_DEC, NULL, 0x000100, NULL, HFILL } },
- { &hf_radiotap_vw_info_rx_bit9,
- { "Client BSSID matched", "ixveriwave.info.bit9",
- FT_UINT24, BASE_DEC, NULL, 0x000200, NULL, HFILL } },
- { &hf_radiotap_vw_info_rx_bit10,
- { "MPDU of an A-MPDU", "ixveriwave.info.bit10",
- FT_UINT24, BASE_DEC, NULL, 0x000400, NULL, HFILL } },
-
- { &hf_radiotap_vw_info_rx_bit11,
- { "First MPDU of A-MPDU", "ixveriwave.info.bit11",
- FT_UINT24, BASE_DEC, NULL, 0x000800, NULL, HFILL } },
-
- { &hf_radiotap_vw_info_rx_bit12,
- { "Last MPDU of A-MPDU", "ixveriwave.info.bit12",
- FT_UINT24, BASE_DEC, NULL, 0x001000, NULL, HFILL } },
-
- { &hf_radiotap_vw_info_rx_bit13,
- { "MSDU of A-MSDU", "ixveriwave.info.bit13",
- FT_UINT24, BASE_DEC, NULL, 0x002000, NULL, HFILL } },
-
- { &hf_radiotap_vw_info_rx_bit14,
- { "First MSDU of A-MSDU", "ixveriwave.info.bit14",
- FT_UINT24, BASE_DEC, NULL, 0x004000, NULL, HFILL } },
-
- { &hf_radiotap_vw_info_rx_bit15,
- { "Last MSDU of A-MSDU", "ixveriwave.info.bit15",
- FT_UINT24, BASE_DEC, NULL, 0x008000, NULL, HFILL } },
- { &hf_radiotap_vw_info_rx_bit16,
- { "Layer 1 Info[0]", "ixveriwave.info.bit16",
- FT_UINT24, BASE_DEC, NULL, 0x010000, NULL, HFILL } },
-
- { &hf_radiotap_vw_info_rx_bit17,
- { "Layer 1 Info[1]", "ixveriwave.info.bit17",
- FT_UINT24, BASE_DEC, NULL, 0x020000, NULL, HFILL } },
-
- { &hf_radiotap_vw_info_rx_bit18,
- { "VHT frame received with the use of the VHT_SIG_B.LENGTH", "ixveriwave.info.bit18",
- FT_UINT24, BASE_DEC, NULL, 0x040000, NULL, HFILL } },
-
- { &hf_radiotap_vw_info_rx_bit19,
- { "VHT frame received without the use of VHT_SIG_B.LENGTH", "ixveriwave.info.bit19",
- FT_UINT24, BASE_DEC, NULL, 0x080000, NULL, HFILL } },
- { &hf_radiotap_vw_info_rx_bit20,
- { "Factory Internal", "ixveriwave.info.bit20",
- FT_UINT24, BASE_DEC, NULL, 0xf00000, NULL, HFILL } },
-
- { &hf_radiotap_vw_info_rx_2_bit8,
- { "ACK withheld from frame", "ixveriwave.info.bit8",
- FT_BOOLEAN, 16, NULL, 0x0100, NULL, HFILL } },
-
- { &hf_radiotap_vw_info_rx_2_bit9,
- { "Sent CTS to self before data", "ixveriwave.info.bit9",
- FT_BOOLEAN, 16, NULL, 0x0200, NULL, HFILL } },
-
- { &hf_radiotap_vw_info_rx_2_bit10,
- { "MPDU of an A-MPDU", "ixveriwave.info.bit10",
- FT_BOOLEAN, 16, NULL, INFO_MPDU_OF_A_MPDU, NULL, HFILL } },
-
- { &hf_radiotap_vw_info_rx_2_bit11,
- { "First MPDU of A-MPDU", "ixveriwave.info.bit11",
- FT_BOOLEAN, 16, NULL, INFO_FIRST_MPDU_OF_A_MPDU, NULL, HFILL } },
-
- { &hf_radiotap_vw_info_rx_2_bit12,
- { "Last MPDU of A-MPDU", "ixveriwave.info.bit12",
- FT_BOOLEAN, 16, NULL, INFO_LAST_MPDU_OF_A_MPDU, NULL, HFILL } },
-
- { &hf_radiotap_vw_info_rx_2_bit13,
- { "MSDU of A-MSDU", "ixveriwave.info.bit13",
- FT_BOOLEAN, 16, NULL, INFO_MSDU_OF_A_MSDU, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit0,
+ { "SIG Field CRC/Parity Error", "ixveriwave.errors.bit0",
+ FT_BOOLEAN, 32, NULL, 0x00000001, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit1,
+ { "Non-supported service field", "ixveriwave.errors.bit1",
+ FT_BOOLEAN, 32, NULL, 0x00000002, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit2,
+ { "Frame Length Error", "ixveriwave.errors.bit2",
+ FT_BOOLEAN, 32, NULL, 0x00000004, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit3,
+ { "VHT_SIG_A/B CRC Error", "ixveriwave.errors.bit3",
+ FT_BOOLEAN, 32, NULL, 0x00000008, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit4,
+ { "CRC32 Error", "ixveriwave.errors.bit4",
+ FT_BOOLEAN, 32, NULL, 0x00000010, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit5,
+ { "L2 de-aggregation error", "ixveriwave.errors.bit5",
+ FT_BOOLEAN, 32, NULL, 0x00000020, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit6,
+ { "Duplicate MPDU", "ixveriwave.errors.bit6",
+ FT_BOOLEAN, 32, NULL, 0x00000040, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit7,
+ { "Bad Flow Magic Number", "ixveriwave.errors.bit7",
+ FT_BOOLEAN, 32, NULL, 0x00000080, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit8,
+ { "Bad flow payload checksum", "ixveriwave.errors.bit8",
+ FT_BOOLEAN, 32, NULL, 0x00000100, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit9,
+ { "Illegal VHT_SIG Value", "ixveriwave.errors.bit9",
+ FT_BOOLEAN, 32, NULL, 0x00000200, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit10,
+ { "Bad IP checksum error", "ixveriwave.errors.bit10",
+ FT_BOOLEAN, 32, NULL, 0x00000400, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit11,
+ { "TCP/ICMP/IGMP/UDP Checksum Error", "ixveriwave.errors.bit11",
+ FT_BOOLEAN, 32, NULL, 0x00000800, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit12,
+ { "Layer 1 Unsupported Feature", "ixveriwave.errors.bit12",
+ FT_BOOLEAN, 32, NULL, 0x00001000, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit14,
+ { "Layer 1 Packet Termination", "ixveriwave.errors.bit14",
+ FT_BOOLEAN, 32, NULL, 0x00004000, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit15,
+ { "Internal Error", "ixveriwave.errors.bit15",
+ FT_BOOLEAN, 32, NULL, 0x00008000, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit16,
+ { "WEP IVC/TKIP/CCMP/BIP MIC Miscompare", "ixveriwave.errors.bit16",
+ FT_BOOLEAN, 32, NULL, 0x00010000, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit17,
+ { "WEP/TKIP Rate Exceeded", "ixveriwave.errors.bit17",
+ FT_BOOLEAN, 32, NULL, 0x00020000, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit18,
+ { "Crypto Short Error", "ixveriwave.errors.bit18",
+ FT_BOOLEAN, 32, NULL, 0x00040000, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit19,
+ { "EXTIV Fault A", "ixveriwave.errors.bit19",
+ FT_BOOLEAN, 32, NULL, 0x00080000, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit20,
+ { "EXTIV Fault B", "ixveriwave.errors.bit20",
+ FT_BOOLEAN, 32, NULL, 0x00100000, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit21,
+ { "Internal Error", "ixveriwave.errors.bit21",
+ FT_BOOLEAN, 32, NULL, 0x00200000, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit22,
+ { "Protected Fault A", "ixveriwave.errors.bit22",
+ FT_BOOLEAN, 32, NULL, 0x00400000, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit23,
+ { "RX MAC Crypto Incompatibility", "ixveriwave.errors.bit23",
+ FT_BOOLEAN, 32, NULL, 0x00800000, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit24,
+ { "Factory Debug", "ixveriwave.errors.bit24",
+ FT_BOOLEAN, 32, NULL, 0x7F000000, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_rx_bit31,
+ { "Internal Error", "ixveriwave.errors.bit31",
+ FT_BOOLEAN, 32, NULL, 0x80000000, NULL, HFILL } },
- { &hf_radiotap_vw_info_rx_2_bit14,
- { "First MSDU of A-MSDU", "ixveriwave.info.bit14",
- FT_BOOLEAN, 16, NULL, INFO_FIRST_MSDU_OF_A_MSDU, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_tx_bit1,
+ { "Packet FCS error", "ixveriwave.errors.bit1",
+ FT_BOOLEAN, 16, NULL, 0x0002, NULL, HFILL } },
+ { &hf_radiotap_vw_errors_tx_bit5,
+ { "IP checksum error", "ixveriwave.errors.bit5",
+ FT_BOOLEAN, 16, NULL, 0x0020, NULL, HFILL } },
- { &hf_radiotap_vw_info_rx_2_bit15,
- { "Last MSDU of A-MSDU", "ixveriwave.info.bit15",
- FT_BOOLEAN, 16, NULL, INFO_LAST_MSDU_OF_A_MSDU, NULL, HFILL } },
+ { &hf_radiotap_vw_tx_retrycount,
+ { "Retry Count", "ixveriwave.tx.retrycount",
+ FT_UINT8, BASE_DEC, NULL, 0x1f, NULL, HFILL } },
+ { &hf_radiotap_vw_tx_factorydebug,
+ { "Factory Debug", "ixveriwave.tx.factorydebug",
+ FT_UINT8, BASE_HEX, NULL, 0x7f80, NULL, HFILL } },
};
static gint *ett[] = {