1 /* packet-homeplug-av.c
2 * Routines for HomePlug AV dissection
4 * Copyright 2011, Florian Fainelli <florian[AT]openwrt.org>
8 * Wireshark - Network traffic analyzer
9 * By Gerald Combs <gerald[AT]wireshark.org>
10 * Copyright 1998 Gerald Combs
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
22 * You should have received a copy of the GNU General Public License
23 * along with this program; if not, write to the Free Software
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
29 #include <epan/packet.h>
30 #include <epan/etypes.h>
31 #include <epan/ptvcursor.h>
33 static int proto_homeplug_av
= -1;
35 static int hf_homeplug_av_mmhdr
= -1;
36 static int hf_homeplug_av_mmhdr_mmver
= -1;
37 static int hf_homeplug_av_mmhdr_mmtype
= -1;
38 static int hf_homeplug_av_mmhdr_mmtype_lsb
= -1;
39 static int hf_homeplug_av_mmhdr_mmtype_msb
= -1;
40 static int hf_homeplug_av_mmhdr_fmi
= -1;
41 static int hf_homeplug_av_vendor
= -1;
42 static int hf_homeplug_av_vendor_oui
= -1;
43 static int hf_homeplug_av_reserved
= -1;
46 static int hf_homeplug_av_bcn
= -1;
47 static int hf_homeplug_av_bcn_bts
= -1;
48 static int hf_homeplug_av_bcn_bto_0
= -1;
49 static int hf_homeplug_av_bcn_bto_1
= -1;
50 static int hf_homeplug_av_bcn_bto_2
= -1;
51 static int hf_homeplug_av_bcn_bto_3
= -1;
54 static int hf_homeplug_av_fc
= -1;
55 static int hf_homeplug_av_fc_stei
= -1;
56 static int hf_homeplug_av_fc_dtei
= -1;
57 static int hf_homeplug_av_fc_lid
= -1;
58 static int hf_homeplug_av_fc_cfs
= -1;
59 static int hf_homeplug_av_fc_bdf
= -1;
60 static int hf_homeplug_av_fc_hp10df
= -1;
61 static int hf_homeplug_av_fc_hp11df
= -1;
62 static int hf_homeplug_av_fc_ppb
= -1;
63 static int hf_homeplug_av_fc_ble
= -1;
64 static int hf_homeplug_av_fc_pbsz
= -1;
65 static int hf_homeplug_av_fc_num_sym
= -1;
66 static int hf_homeplug_av_fc_tmi_av
= -1;
67 static int hf_homeplug_av_fc_fl_av
= -1;
68 static int hf_homeplug_av_fc_mpdu_cnt
= -1;
69 static int hf_homeplug_av_fc_burst_cnt
= -1;
70 static int hf_homeplug_av_fc_clst
= -1;
71 static int hf_homeplug_av_fc_rg_len
= -1;
72 static int hf_homeplug_av_fc_mfs_cmd_mgmt
= -1;
73 static int hf_homeplug_av_fc_mfs_cmd_data
= -1;
74 static int hf_homeplug_av_fc_rsr
= -1;
75 static int hf_homeplug_av_fc_mcf
= -1;
76 static int hf_homeplug_av_fc_dccpcf
= -1;
77 static int hf_homeplug_av_fc_mnbf
= -1;
81 static int hf_homeplug_av_public
= -1;
82 static int hf_homeplug_av_public_frag_count
= -1;
83 static int hf_homeplug_av_public_frag_index
= -1;
84 static int hf_homeplug_av_public_frag_seqnum
= -1;
86 static int hf_homeplug_av_cc_disc_list_cnf
= -1;
88 static int hf_homeplug_av_cc_disc_list_sta_cnt
= -1;
89 static int hf_homeplug_av_cc_sta_info
= -1;
90 static int hf_homeplug_av_cc_sta_info_mac
= -1;
91 static int hf_homeplug_av_cc_sta_info_tei
= -1;
92 static int hf_homeplug_av_cc_sta_info_same_net
= -1;
93 static int hf_homeplug_av_cc_sta_info_sig_level
= -1;
94 static int hf_homeplug_av_cc_sta_info_avg_ble
= -1;
96 static int hf_homeplug_av_cc_disc_list_net_cnt
= -1;
97 static int hf_homeplug_av_cc_net_info
= -1;
98 static int hf_homeplug_av_cc_net_info_hyb_mode
= -1;
99 static int hf_homeplug_av_cc_net_info_bcn_slots
= -1;
100 static int hf_homeplug_av_cc_net_info_cco_sts
= -1;
101 static int hf_homeplug_av_cc_net_info_bcn_ofs
= -1;
103 static int hf_homeplug_av_brg_infos_cnf
= -1;
104 static int hf_homeplug_av_brg_infos_cnf_brd
= -1;
105 static int hf_homeplug_av_brg_infos_cnf_btei
= -1;
106 static int hf_homeplug_av_brg_infos_cnf_num_stas
= -1;
107 static int hf_homeplug_av_brg_infos_cnf_mac
= -1;
109 static int hf_homeplug_av_cm_nw_infos_cnf
= -1;
111 static int hf_homeplug_av_nw_stats_cnf
= -1;
113 /* Shared network informations fields */
114 static int hf_homeplug_av_nw_info_del_type
= -1;
115 static int hf_homeplug_av_nw_info_fccs_av
= -1;
116 static int hf_homeplug_av_nw_info_peks
= -1;
117 static int hf_homeplug_av_nw_info_pid
= -1;
118 static int hf_homeplug_av_nw_info_prn
= -1;
119 static int hf_homeplug_av_nw_info_pmn
= -1;
120 static int hf_homeplug_av_nw_info_my_nonce
= -1;
121 static int hf_homeplug_av_nw_info_your_nonce
= -1;
122 static int hf_homeplug_av_nw_info_key_type
= -1;
123 static int hf_homeplug_av_nw_info_cco_cap
= -1;
124 static int hf_homeplug_av_nw_info_num_avlns
= -1;
125 static int hf_homeplug_av_nw_info_nid
= -1;
126 static int hf_homeplug_av_nw_info_snid
= -1;
127 static int hf_homeplug_av_nw_info_tei
= -1;
128 static int hf_homeplug_av_nw_info_sta_role
= -1;
129 static int hf_homeplug_av_nw_info_cco_mac
= -1;
130 static int hf_homeplug_av_nw_info_cco_tei
= -1;
131 static int hf_homeplug_av_nw_info_num_stas
= -1;
132 static int hf_homeplug_av_nw_info_access
= -1;
133 static int hf_homeplug_av_nw_info_num_coord
= -1;
136 static int hf_homeplug_av_cm_enc_pld_ind
= -1;
137 static int hf_homeplug_av_cm_enc_pld_ind_avlns
= -1;
138 static int hf_homeplug_av_cm_enc_pld_ind_iv
= -1;
139 static int hf_homeplug_av_cm_enc_pld_ind_uuid
= -1;
140 static int hf_homeplug_av_cm_enc_pld_ind_len
= -1;
141 static int hf_homeplug_av_cm_enc_pld_ind_pld
= -1;
143 static int hf_homeplug_av_cm_enc_pld_rsp
= -1;
144 static int hf_homeplug_av_cm_enc_pld_rsp_result
= -1;
146 static int hf_homeplug_av_cm_set_key_req
= -1;
147 static int hf_homeplug_av_cm_set_key_req_nw_key
= -1;
149 static int hf_homeplug_av_cm_set_key_cnf
= -1;
150 static int hf_homeplug_av_cm_set_key_cnf_result
= -1;
152 static int hf_homeplug_av_cm_get_key_req
= -1;
153 static int hf_homeplug_av_cm_get_key_req_type
= -1;
154 static int hf_homeplug_av_cm_get_key_req_has_key
= -1;
156 static int hf_homeplug_av_cm_get_key_cnf
= -1;
157 static int hf_homeplug_av_cm_get_key_cnf_result
= -1;
158 static int hf_homeplug_av_cm_get_key_cnf_rtype
= -1;
159 static int hf_homeplug_av_cm_get_key_cnf_key
= -1;
162 /* Intellon specific vendor MMEs */
163 static int hf_homeplug_av_get_sw_cnf
= -1;
164 static int hf_homeplug_av_get_sw_cnf_status
= -1;
165 static int hf_homeplug_av_get_sw_cnf_dev_id
= -1;
166 static int hf_homeplug_av_get_sw_cnf_ver_len
= -1;
167 static int hf_homeplug_av_get_sw_cnf_ver_str
= -1;
168 static int hf_homeplug_av_get_sw_cnf_upg
= -1;
170 /* Shared memory related fields */
171 static int hf_homeplug_av_mem_len_16bits
= -1;
172 static int hf_homeplug_av_mem_len_32bits
= -1;
173 static int hf_homeplug_av_mem_offset
= -1;
174 static int hf_homeplug_av_mem_checksum
= -1;
175 static int hf_homeplug_av_mem_data
= -1;
176 static int hf_homeplug_av_mem_addr
= -1;
177 static int hf_homeplug_av_mem_status
= -1;
179 static int hf_homeplug_av_wr_mem_req
= -1;
180 static int hf_homeplug_av_wr_mem_cnf
= -1;
182 static int hf_homeplug_av_rd_mem_req
= -1;
183 static int hf_homeplug_av_rd_mem_cnf
= -1;
185 static int hf_homeplug_av_mac_module_id
= -1;
187 static int hf_homeplug_av_st_mac_req
= -1;
188 static int hf_homeplug_av_st_mac_req_img_load
= -1;
189 static int hf_homeplug_av_st_mac_req_img_len
= -1;
190 static int hf_homeplug_av_st_mac_req_img_chksum
= -1;
191 static int hf_homeplug_av_st_mac_req_img_start
= -1;
193 static int hf_homeplug_av_st_mac_cnf
= -1;
194 static int hf_homeplug_av_st_mac_cnf_status
= -1;
196 static int hf_homeplug_av_get_nvm_cnf
= -1;
197 static int hf_homeplug_av_get_nvm_cnf_status
= -1;
198 static int hf_homeplug_av_get_nvm_cnf_nvm_type
= -1;
199 static int hf_homeplug_av_get_nvm_cnf_nvm_page
= -1;
200 static int hf_homeplug_av_get_nvm_cnf_nvm_block
= -1;
201 static int hf_homeplug_av_get_nvm_cnf_nvm_size
= -1;
203 static int hf_homeplug_av_rs_dev_cnf
= -1;
204 static int hf_homeplug_av_rs_dev_cnf_status
= -1;
206 static int hf_homeplug_av_wr_mod_req
= -1;
208 static int hf_homeplug_av_wr_mod_cnf
= -1;
209 static int hf_homeplug_av_wr_mod_cnf_status
= -1;
211 static int hf_homeplug_av_wr_mod_ind
= -1;
212 static int hf_homeplug_av_wr_mod_ind_status
= -1;
214 static int hf_homeplug_av_rd_mod_req
= -1;
216 static int hf_homeplug_av_rd_mod_cnf
= -1;
217 static int hf_homeplug_av_rd_mod_cnf_status
= -1;
219 static int hf_homeplug_av_mod_nvm_req
= -1;
221 static int hf_homeplug_av_mod_nvm_cnf
= -1;
222 static int hf_homeplug_av_mod_nvm_cnf_status
= -1;
224 static int hf_homeplug_av_wd_rpt_req
= -1;
225 static int hf_homeplug_av_wd_rpt_req_session_id
= -1;
226 static int hf_homeplug_av_wd_rpt_req_clr
= -1;
228 static int hf_homeplug_av_wd_rpt_ind
= -1;
229 static int hf_homeplug_av_wd_rpt_ind_status
= -1;
230 static int hf_homeplug_av_wd_rpt_ind_session_id
= -1;
231 static int hf_homeplug_av_wd_rpt_ind_num_parts
= -1;
232 static int hf_homeplug_av_wd_rpt_ind_curr_part
= -1;
233 static int hf_homeplug_av_wd_rpt_ind_rdata_len
= -1;
234 static int hf_homeplug_av_wd_rpt_ind_rdata_ofs
= -1;
235 static int hf_homeplug_av_wd_rpt_ind_rdata
= -1;
237 static int hf_homeplug_av_lnk_stats_req
= -1;
238 static int hf_homeplug_av_lnk_stats_req_mcontrol
= -1;
239 static int hf_homeplug_av_lnk_stats_req_dir
= -1;
240 static int hf_homeplug_av_lnk_stats_req_lid
= -1;
241 static int hf_homeplug_av_lnk_stats_req_macaddr
= -1;
243 static int hf_homeplug_av_lnk_stats_cnf
= -1;
244 static int hf_homeplug_av_lnk_stats_cnf_status
= -1;
245 static int hf_homeplug_av_lnk_stats_cnf_dir
= -1;
246 static int hf_homeplug_av_lnk_stats_cnf_lid
= -1;
247 static int hf_homeplug_av_lnk_stats_cnf_tei
= -1;
248 static int hf_homeplug_av_lnk_stats_cnf_lstats
= -1;
250 static int hf_homeplug_av_lnk_stats_tx
= -1;
251 static int hf_homeplug_av_lnk_stats_tx_mpdu_ack
= -1;
252 static int hf_homeplug_av_lnk_stats_tx_mpdu_col
= -1;
253 static int hf_homeplug_av_lnk_stats_tx_mpdu_fai
= -1;
254 static int hf_homeplug_av_lnk_stats_tx_pbs_pass
= -1;
255 static int hf_homeplug_av_lnk_stats_tx_pbs_fail
= -1;
257 static int hf_homeplug_av_lnk_stats_rx
= -1;
258 static int hf_homeplug_av_lnk_stats_rx_mpdu_ack
= -1;
259 static int hf_homeplug_av_lnk_stats_rx_mpdu_fai
= -1;
260 static int hf_homeplug_av_lnk_stats_rx_pbs_pass
= -1;
261 static int hf_homeplug_av_lnk_stats_rx_pbs_fail
= -1;
262 static int hf_homeplug_av_lnk_stats_rx_tb_pass
= -1;
263 static int hf_homeplug_av_lnk_stats_rx_tb_fail
= -1;
264 static int hf_homeplug_av_lnk_stats_rx_num_int
= -1;
266 static int hf_homeplug_av_rx_inv_stats
= -1;
267 static int hf_homeplug_av_rx_inv_phy_rate
= -1;
268 static int hf_homeplug_av_rx_inv_pbs_pass
= -1;
269 static int hf_homeplug_av_rx_inv_pbs_fail
= -1;
270 static int hf_homeplug_av_rx_inv_tb_pass
= -1;
271 static int hf_homeplug_av_rx_inv_tb_fail
= -1;
273 static int hf_homeplug_av_sniffer_req
= -1;
274 static int hf_homeplug_av_sniffer_req_ctrl
= -1;
276 static int hf_homeplug_av_sniffer_cnf
= -1;
277 static int hf_homeplug_av_sniffer_cnf_status
= -1;
278 static int hf_homeplug_av_sniffer_cnf_state
= -1;
279 static int hf_homeplug_av_sniffer_cnf_da
= -1;
281 static int hf_homeplug_av_sniffer_ind
= -1;
282 static int hf_homeplug_av_sniffer_ind_type
= -1;
283 static int hf_homeplug_av_sniffer_ind_data
= -1;
284 static int hf_homeplug_av_sniffer_data_dir
= -1;
285 static int hf_homeplug_av_sniffer_data_systime
= -1;
286 static int hf_homeplug_av_sniffer_data_bc_time
= -1;
288 static int hf_homeplug_av_nw_info_cnf
= -1;
290 static int hf_homeplug_av_nw_info_sta_info
= -1;
291 static int hf_homeplug_av_nw_info_net_info
= -1;
293 static int hf_homeplug_av_nw_info_sta_da
= -1;
294 static int hf_homeplug_av_nw_info_sta_tei
= -1;
295 static int hf_homeplug_av_nw_info_sta_bda
= -1;
296 static int hf_homeplug_av10_nw_info_sta_phy_dr_tx
= -1;
297 static int hf_homeplug_av10_nw_info_sta_phy_dr_rx
= -1;
298 static int hf_homeplug_av11_nw_info_sta_phy_dr_tx
= -1;
299 static int hf_homeplug_av11_nw_info_sta_cpling_tx
= -1;
300 static int hf_homeplug_av11_nw_info_sta_phy_dr_rx
= -1;
301 static int hf_homeplug_av11_nw_info_sta_cpling_rx
= -1;
303 static int hf_homeplug_av_cp_rpt_req
= -1;
304 static int hf_homeplug_av_cp_rpt_req_session_id
= -1;
305 static int hf_homeplug_av_cp_rpt_req_clr
= -1;
307 static int hf_homeplug_av_cp_rpt_ind
= -1;
308 static int hf_homeplug_av_cp_rpt_ind_status
= -1;
309 static int hf_homeplug_av_cp_rpt_ind_major_ver
= -1;
310 static int hf_homeplug_av_cp_rpt_ind_minor_ver
= -1;
311 static int hf_homeplug_av_cp_rpt_ind_session_id
= -1;
312 static int hf_homeplug_av_cp_rpt_ind_total_size
= -1;
313 static int hf_homeplug_av_cp_rpt_ind_blk_offset
= -1;
314 static int hf_homeplug_av_cp_rpt_ind_byte_index
= -1;
315 static int hf_homeplug_av_cp_rpt_ind_num_parts
= -1;
316 static int hf_homeplug_av_cp_rpt_ind_curr_part
= -1;
317 static int hf_homeplug_av_cp_rpt_ind_data_len
= -1;
318 static int hf_homeplug_av_cp_rpt_ind_data_ofs
= -1;
319 static int hf_homeplug_av_cp_rpt_ind_data
= -1;
321 static int hf_homeplug_av_fr_lbk_duration
= -1;
322 static int hf_homeplug_av_fr_lbk_len
= -1;
324 static int hf_homeplug_av_fr_lbk_req
= -1;
325 static int hf_homeplug_av_fr_lbk_req_data
= -1;
327 static int hf_homeplug_av_fr_lbk_cnf
= -1;
328 static int hf_homeplug_av_fr_lbk_cnf_status
= -1;
330 static int hf_homeplug_av_lbk_stat_cnf
= -1;
331 static int hf_homeplug_av_lbk_stat_cnf_status
= -1;
332 static int hf_homeplug_av_lbk_stat_cnf_lbk_stat
= -1;
334 static int hf_homeplug_av_set_key_req
= -1;
335 static int hf_homeplug_av_set_key_req_eks
= -1;
336 static int hf_homeplug_av_set_key_req_nmk
= -1;
337 static int hf_homeplug_av_set_key_req_rda
= -1;
338 static int hf_homeplug_av_set_key_req_dak
= -1;
340 static int hf_homeplug_av_set_key_cnf
= -1;
341 static int hf_homeplug_av_set_key_cnf_status
= -1;
343 static int hf_homeplug_av_mfg_string_cnf
= -1;
344 static int hf_homeplug_av_mfg_string_cnf_status
= -1;
345 static int hf_homeplug_av_mfg_string_cnf_len
= -1;
346 static int hf_homeplug_av_mfg_string_cnf_string
= -1;
348 static int hf_homeplug_av_rd_cblock_cnf
= -1;
349 static int hf_homeplug_av_rd_cblock_cnf_status
= -1;
350 static int hf_homeplug_av_rd_cblock_cnf_len
= -1;
352 static int hf_homeplug_av_cblock_hdr
= -1;
353 static int hf_homeplug_av_cblock_hdr_ver
= -1;
354 static int hf_homeplug_av_cblock_img_rom_addr
= -1;
355 static int hf_homeplug_av_cblock_img_addr
= -1;
356 static int hf_homeplug_av_cblock_img_len
= -1;
357 static int hf_homeplug_av_cblock_img_chksum
= -1;
358 static int hf_homeplug_av_cblock_entry_point
= -1;
359 static int hf_homeplug_av_cblock_hdr_minor
= -1;
360 static int hf_homeplug_av_cblock_hdr_img_type
= -1;
361 static int hf_homeplug_av_cblock_hdr_ignore_mask
= -1;
362 static int hf_homeplug_av_cblock_hdr_module_id
= -1;
363 static int hf_homeplug_av_cblock_hdr_module_subid
= -1;
364 static int hf_homeplug_av_cblock_next_hdr
= -1;
365 static int hf_homeplug_av_cblock_hdr_chksum
= -1;
367 static int hf_homeplug_av_cblock
= -1;
368 static int hf_homeplug_av_cblock_sdram_size
= -1;
369 static int hf_homeplug_av_cblock_sdram_conf
= -1;
370 static int hf_homeplug_av_cblock_sdram_tim0
= -1;
371 static int hf_homeplug_av_cblock_sdram_tim1
= -1;
372 static int hf_homeplug_av_cblock_sdram_cntrl
= -1;
373 static int hf_homeplug_av_cblock_sdram_refresh
= -1;
374 static int hf_homeplug_av_cblock_mac_clock
= -1;
376 static int hf_homeplug_av_set_sdram_req
= -1;
377 static int hf_homeplug_av_set_sdram_req_chksum
= -1;
379 static int hf_homeplug_av_set_sdram_cnf
= -1;
380 static int hf_homeplug_av_set_sdram_cnf_status
= -1;
382 static int hf_homeplug_av_host_action_ind
= -1;
383 static int hf_homeplug_av_host_action_ind_act
= -1;
385 static int hf_homeplug_av_host_action_rsp
= -1;
386 static int hf_homeplug_av_host_action_rsp_sts
= -1;
388 static int hf_homeplug_av_op_attr_cookie
= -1;
389 static int hf_homeplug_av_op_attr_rep_type
= -1;
391 static int hf_homeplug_av_op_attr_req
= -1;
393 static int hf_homeplug_av_op_attr_cnf
= -1;
394 static int hf_homeplug_av_op_attr_cnf_status
= -1;
395 static int hf_homeplug_av_op_attr_cnf_size
= -1;
396 static int hf_homeplug_av_op_attr_cnf_data
= -1;
398 static int hf_homeplug_av_op_attr_data_hw
= -1;
399 static int hf_homeplug_av_op_attr_data_sw
= -1;
400 static int hf_homeplug_av_op_attr_data_sw_major
= -1;
401 static int hf_homeplug_av_op_attr_data_sw_minor
= -1;
402 static int hf_homeplug_av_op_attr_data_sw_sub
= -1;
403 static int hf_homeplug_av_op_attr_data_sw_num
= -1;
404 static int hf_homeplug_av_op_attr_data_sw_date
= -1;
405 static int hf_homeplug_av_op_attr_data_sw_rel
= -1;
406 static int hf_homeplug_av_op_attr_data_sw_sdram_type
= -1;
407 static int hf_homeplug_av_op_attr_data_sw_linefreq
= -1;
408 static int hf_homeplug_av_op_attr_data_sw_zerocross
= -1;
409 static int hf_homeplug_av_op_attr_data_sw_sdram_size
= -1;
410 static int hf_homeplug_av_op_attr_data_sw_auth_mode
= -1;
412 static int hf_homeplug_av_enet_phy_req
= -1;
413 static int hf_homeplug_av_enet_phy_req_mcontrol
= -1;
414 static int hf_homeplug_av_enet_phy_req_addcaps
= -1;
416 static int hf_homeplug_av_enet_phy_cnf
= -1;
417 static int hf_homeplug_av_enet_phy_cnf_status
= -1;
418 static int hf_homeplug_av_enet_phy_cnf_speed
= -1;
419 static int hf_homeplug_av_enet_phy_cnf_duplex
= -1;
421 static int hf_homeplug_av_tone_map_tx_req
= -1;
422 static int hf_homeplug_av_tone_map_tx_req_mac
= -1;
423 static int hf_homeplug_av_tone_map_tx_req_slot
= -1;
424 static int hf_homeplug_av_tone_map_tx_req_coupling
= -1;
426 static int hf_homeplug_av_tone_map_rx_req
= -1;
427 static int hf_homeplug_av_tone_map_rx_req_mac
= -1;
428 static int hf_homeplug_av_tone_map_rx_req_slot
= -1;
429 static int hf_homeplug_av_tone_map_rx_req_coupling
= -1;
431 static int hf_homeplug_av_tone_map_tx_cnf
= -1;
432 static int hf_homeplug_av_tone_map_tx_cnf_status
= -1;
433 static int hf_homeplug_av_tone_map_tx_cnf_len
= -1;
434 static int hf_homeplug_av_tone_map_tx_cnf_mac
= -1;
435 static int hf_homeplug_av_tone_map_tx_cnf_slot
= -1;
436 static int hf_homeplug_av_tone_map_tx_cnf_num_tms
= -1;
437 static int hf_homeplug_av_tone_map_tx_cnf_num_act
= -1;
439 static int hf_homeplug_av_tone_map_rx_cnf
= -1;
440 static int hf_homeplug_av_tone_map_rx_cnf_status
= -1;
441 static int hf_homeplug_av_tone_map_rx_cnf_len
= -1;
442 static int hf_homeplug_av_tone_map_rx_cnf_subver
= -1;
443 static int hf_homeplug_av_tone_map_rx_cnf_coupling
= -1;
444 static int hf_homeplug_av_tone_map_rx_cnf_mac
= -1;
445 static int hf_homeplug_av_tone_map_rx_cnf_slot
= -1;
446 static int hf_homeplug_av_tone_map_rx_cnf_num_tms
= -1;
447 static int hf_homeplug_av_tone_map_rx_cnf_num_act
= -1;
448 static int hf_homeplug_av_tone_map_rx_cnf_agc
= -1;
449 static int hf_homeplug_av_tone_map_rx_cnf_gil
= -1;
451 static int hf_homeplug_av_tone_map_carriers
= -1;
452 static int hf_homeplug_av_tone_map_carrier
= -1;
453 static int hf_homeplug_av_tone_map_carrier_lo
= -1;
454 static int hf_homeplug_av_tone_map_carrier_hi
= -1;
456 static gint ett_homeplug_av
= -1;
457 static gint ett_homeplug_av_mmhdr
= -1;
458 static gint ett_homeplug_av_mmtype
= -1;
459 static gint ett_homeplug_av_fmi
= -1;
460 static gint ett_homeplug_av_vendor
= -1;
461 static gint ett_homeplug_av_public
= -1;
463 static gint ett_homeplug_av_fc
= -1;
464 static gint ett_homeplug_av_bcn
= -1;
465 static gint ett_homeplug_av_cc_disc_list_cnf
= -1;
466 static gint ett_homeplug_av_cc_sta_info
= -1;
467 static gint ett_homeplug_av_cc_net_info
= -1;
468 static gint ett_homeplug_av_cm_enc_pld_ind
= -1;
469 static gint ett_homeplug_av_cm_enc_pld_rsp
= -1;
470 static gint ett_homeplug_av_cm_set_key_req
= -1;
471 static gint ett_homeplug_av_cm_set_key_cnf
= -1;
472 static gint ett_homeplug_av_cm_get_key_req
= -1;
473 static gint ett_homeplug_av_cm_get_key_cnf
= -1;
474 static gint ett_homeplug_av_brg_infos_cnf
= -1;
475 static gint ett_homeplug_av_cm_nw_infos_cnf
= -1;
476 static gint ett_homeplug_av_nw_stats_cnf
= -1;
478 static gint ett_homeplug_av_get_sw_cnf
= -1;
479 static gint ett_homeplug_av_wr_mem_req
= -1;
480 static gint ett_homeplug_av_wr_mem_cnf
= -1;
481 static gint ett_homeplug_av_rd_mem_req
= -1;
482 static gint ett_homeplug_av_st_mac_req
= -1;
483 static gint ett_homeplug_av_st_mac_cnf
= -1;
484 static gint ett_homeplug_av_rd_mem_cnf
= -1;
485 static gint ett_homeplug_av_get_nvm_cnf
= -1;
486 static gint ett_homeplug_av_rs_dev_cnf
= -1;
487 static gint ett_homeplug_av_wr_mod_req
= -1;
488 static gint ett_homeplug_av_wr_mod_cnf
= -1;
489 static gint ett_homeplug_av_wr_mod_ind
= -1;
490 static gint ett_homeplug_av_rd_mod_req
= -1;
491 static gint ett_homeplug_av_rd_mod_cnf
= -1;
492 static gint ett_homeplug_av_mod_nvm_req
= -1;
493 static gint ett_homeplug_av_mod_nvm_cnf
= -1;
494 static gint ett_homeplug_av_wd_rpt_req
= -1;
495 static gint ett_homeplug_av_wd_rpt_ind
= -1;
496 static gint ett_homeplug_av_lnk_stats_req
= -1;
497 static gint ett_homeplug_av_lnk_stats_cnf
= -1;
498 static gint ett_homeplug_av_lnk_stats_tx
= -1;
499 static gint ett_homeplug_av_lnk_stats_rx
= -1;
500 static gint ett_homeplug_av_lnk_stats_rx_inv
= -1;
501 static gint ett_homeplug_av_sniffer_req
= -1;
502 static gint ett_homeplug_av_sniffer_cnf
= -1;
503 static gint ett_homeplug_av_sniffer_ind
= -1;
504 static gint ett_homeplug_av_sniffer_ind_data
= -1;
505 static gint ett_homeplug_av_nw_info_cnf
= -1;
506 static gint ett_homeplug_av_nw_info_sta_info
= -1;
507 static gint ett_homeplug_av_nw_info_net_info
= -1;
508 static gint ett_homeplug_av_cp_rpt_req
= -1;
509 static gint ett_homeplug_av_cp_rpt_ind
= -1;
510 static gint ett_homeplug_av_fr_lbk_req
= -1;
511 static gint ett_homeplug_av_fr_lbk_cnf
= -1;
512 static gint ett_homeplug_av_lbk_stat_cnf
= -1;
513 static gint ett_homeplug_av_set_key_req
= -1;
514 static gint ett_homeplug_av_set_key_cnf
= -1;
515 static gint ett_homeplug_av_mfg_string_cnf
= -1;
516 static gint ett_homeplug_av_rd_cblock_cnf
= -1;
517 static gint ett_homeplug_av_cblock_hdr
= -1;
518 static gint ett_homeplug_av_cblock
= -1;
519 static gint ett_homeplug_av_set_sdram_req
= -1;
520 static gint ett_homeplug_av_set_sdram_cnf
= -1;
521 static gint ett_homeplug_av_host_action_ind
= -1;
522 static gint ett_homeplug_av_host_action_rsp
= -1;
523 static gint ett_homeplug_av_op_attr_req
= -1;
524 static gint ett_homeplug_av_op_attr_cnf
= -1;
525 static gint ett_homeplug_av_op_attr_data
= -1;
526 static gint ett_homeplug_av_enet_phy_req
= -1;
527 static gint ett_homeplug_av_enet_phy_cnf
= -1;
528 static gint ett_homeplug_av_tone_map_tx_req
= -1;
529 static gint ett_homeplug_av_tone_map_rx_req
= -1;
530 static gint ett_homeplug_av_tone_map_tx_cnf
= -1;
531 static gint ett_homeplug_av_tone_map_rx_cnf
= -1;
532 static gint ett_homeplug_av_tone_map_carriers
= -1;
533 static gint ett_homeplug_av_tone_map_carrier
= -1;
535 #define HOMEPLUG_AV_MMHDR_LEN 3 /* MM version (1) + MM type (2) */
537 #define HOMEPLUG_AV_PUBLIC_FRAG_COUNT_MASK 0x0F
538 #define HOMEPLUG_AV_PUBLIC_FRAG_INDEX_MASK 0xF0
540 #define HOMEPLUG_AV_MMTYPE_CC_DISC_LIST_REQ 0x0014
541 #define HOMEPLUG_AV_MMTYPE_CC_DISC_LIST_CNF 0x0015
542 #define HOMEPLUG_AV_MMTYPE_CM_ENC_PLD_IND 0x6004
543 #define HOMEPLUG_AV_MMTYPE_CM_ENC_PLD_RSP 0x6005
544 #define HOMEPLUG_AV_MMTYPE_CM_SET_KEY_REQ 0x6008
545 #define HOMEPLUG_AV_MMTYPE_CM_SET_KEY_CNF 0x6009
546 #define HOMEPLUG_AV_MMTYPE_CM_GET_KEY_REQ 0x600C
547 #define HOMEPLUG_AV_MMTYPE_CM_GET_KEY_CNF 0x600D
548 #define HOMEPLUG_AV_MMTYPE_CM_BRG_INFO_REQ 0x6020
549 #define HOMEPLUG_AV_MMTYPE_CM_BRG_INFO_CNF 0x6021
550 #define HOMEPLUG_AV_MMTYPE_CM_NW_INFO_REQ 0x6038
551 #define HOMEPLUG_AV_MMTYPE_CM_NW_INFO_CNF 0x6039
552 #define HOMEPLUG_AV_MMTYPE_CM_NW_STATS_REQ 0x6048
553 #define HOMEPLUG_AV_MMTYPE_CM_NW_STATS_CNF 0x6049
554 #define HOMEPLUG_AV_MMTYPE_GET_SW_REQ 0xA000
555 #define HOMEPLUG_AV_MMTYPE_GET_SW_CNF 0xA001
556 #define HOMEPLUG_AV_MMTYPE_WR_MEM_REQ 0xA004
557 #define HOMEPLUG_AV_MMTYPE_WR_MEM_CNF 0xA005
558 #define HOMEPLUG_AV_MMTYPE_RD_MEM_REQ 0xA008
559 #define HOMEPLUG_AV_MMTYPE_RD_MEM_CNF 0xA009
560 #define HOMEPLUG_AV_MMTYPE_ST_MAC_REQ 0xA00C
561 #define HOMEPLUG_AV_MMTYPE_ST_MAC_CNF 0xA00D
562 #define HOMEPLUG_AV_MMTYPE_GET_NVM_REQ 0xA010
563 #define HOMEPLUG_AV_MMTYPE_GET_NVM_CNF 0xA011
564 #define HOMEPLUG_AV_MMTYPE_RS_DEV_REQ 0xA01C
565 #define HOMEPLUG_AV_MMTYPE_RS_DEV_CNF 0xA01D
566 #define HOMEPLUG_AV_MMTYPE_WR_MOD_REQ 0xA020
567 #define HOMEPLUG_AV_MMTYPE_WR_MOD_CNF 0xA021
568 #define HOMEPLUG_AV_MMTYPE_WR_MOD_IND 0xA022
569 #define HOMEPLUG_AV_MMTYPE_RD_MOD_REQ 0xA024
570 #define HOMEPLUG_AV_MMTYPE_RD_MOD_CNF 0xA025
571 #define HOMEPLUG_AV_MMTYPE_NVM_MOD_REQ 0xA028
572 #define HOMEPLUG_AV_MMTYPE_NVM_MOD_CNF 0xA029
573 #define HOMEPLUG_AV_MMTYPE_WD_RPT_REQ 0xA02C
574 #define HOMEPLUG_AV_MMTYPE_WD_RPT_IND 0xA02E
575 #define HOMEPLUG_AV_MMTYPE_LNK_STATS_REQ 0xA030
576 #define HOMEPLUG_AV_MMTYPE_LNK_STATS_CNF 0xA031
577 #define HOMEPLUG_AV_MMTYPE_SNIFFER_REQ 0xA034
578 #define HOMEPLUG_AV_MMTYPE_SNIFFER_CNF 0xA035
579 #define HOMEPLUG_AV_MMTYPE_SNIFFER_IND 0xA036
580 #define HOMEPLUG_AV_MMTYPE_NW_INFO_REQ 0xA038
581 #define HOMEPLUG_AV_MMTYPE_NW_INFO_CNF 0xA039
582 #define HOMEPLUG_AV_MMTYPE_CP_RPT_REQ 0xA040
583 #define HOMEPLUG_AV_MMTYPE_CP_RPT_IND 0xA042
584 #define HOMEPLUG_AV_MMTYPE_FR_LBK_REQ 0xA048
585 #define HOMEPLUG_AV_MMTYPE_FR_LBK_CNF 0xA049
586 #define HOMEPLUG_AV_MMTYPE_LBK_STAT_REQ 0xA04C
587 #define HOMEPLUG_AV_MMTYPE_LBK_STAT_CNF 0xA04D
588 #define HOMEPLUG_AV_MMTYPE_SET_KEY_REQ 0xA050
589 #define HOMEPLUG_AV_MMTYPE_SET_KEY_CNF 0xA051
590 #define HOMEPLUG_AV_MMTYPE_MFG_STRING_REQ 0xA054
591 #define HOMEPLUG_AV_MMTYPE_MFG_STRING_CNF 0xA055
592 #define HOMEPLUG_AV_MMTYPE_RD_CBLOCK_REQ 0xA058
593 #define HOMEPLUG_AV_MMTYPE_RD_CBLOCK_CNF 0xA059
594 #define HOMEPLUG_AV_MMTYPE_SET_SDRAM_REQ 0xA05C
595 #define HOMEPLUG_AV_MMTYPE_SET_SDRAM_CNF 0xA05D
596 #define HOMEPLUG_AV_MMTYPE_HOST_ACTION_IND 0xA062
597 #define HOMEPLUG_AV_MMTYPE_HOST_ACTION_RSP 0xA063
598 #define HOMEPLUG_AV_MMTYPE_OP_ATTR_REQ 0xA068
599 #define HOMEPLUG_AV_MMTYPE_OP_ATTR_CNF 0xA069
600 #define HOMEPLUG_AV_MMTYPE_GET_ENET_PHY_REQ 0xA06C
601 #define HOMEPLUG_AV_MMTYPE_GET_ENET_PHY_CNF 0xA06D
602 #define HOMEPLUG_AV_MMTYPE_TONE_MAP_TX_REQ 0xA070
603 #define HOMEPLUG_AV_MMTYPE_TONE_MAP_TX_CNF 0xA071
604 #define HOMEPLUG_AV_MMTYPE_TONE_MAP_RX_REQ 0xA090
605 #define HOMEPLUG_AV_MMTYPE_TONE_MAP_RX_CNF 0xA091
607 static const value_string homeplug_av_mmtype_vals
[] = {
609 { HOMEPLUG_AV_MMTYPE_CC_DISC_LIST_REQ
, "Central Coordination Discovery List Request" },
610 { HOMEPLUG_AV_MMTYPE_CC_DISC_LIST_CNF
, "Central Coordination Discovery List Confirmation" },
611 { HOMEPLUG_AV_MMTYPE_CM_ENC_PLD_IND
, "Encrypted Payload Indicate" },
612 { HOMEPLUG_AV_MMTYPE_CM_ENC_PLD_RSP
, "Encrypted Payload Respons" },
613 { HOMEPLUG_AV_MMTYPE_CM_SET_KEY_REQ
, "Set Key Request" },
614 { HOMEPLUG_AV_MMTYPE_CM_SET_KEY_CNF
, "Set Key Confirmation" },
615 { HOMEPLUG_AV_MMTYPE_CM_GET_KEY_REQ
, "Get Key Request" },
616 { HOMEPLUG_AV_MMTYPE_CM_GET_KEY_CNF
, "Get Key Confirmation" },
617 { HOMEPLUG_AV_MMTYPE_CM_BRG_INFO_REQ
, "Get Bridge Informations Request" },
618 { HOMEPLUG_AV_MMTYPE_CM_BRG_INFO_CNF
, "Get Bridge Informations Confirmation" },
619 { HOMEPLUG_AV_MMTYPE_CM_NW_INFO_REQ
, "Get Network Informations Request" },
620 { HOMEPLUG_AV_MMTYPE_CM_NW_INFO_CNF
, "Get Network Informations Confirmation" },
621 { HOMEPLUG_AV_MMTYPE_CM_NW_STATS_REQ
, "Get Network Statistics Request" },
622 { HOMEPLUG_AV_MMTYPE_CM_NW_STATS_CNF
, "Get Network Statistics Confirmation" },
624 /* Intellon vendor-specific MMEs */
625 { HOMEPLUG_AV_MMTYPE_GET_SW_REQ
, "Get Device/SW Version Request" },
626 { HOMEPLUG_AV_MMTYPE_GET_SW_CNF
, "Get Device/SW Version Confirmation" },
627 { HOMEPLUG_AV_MMTYPE_WR_MEM_REQ
, "Write MAC Memory Request" },
628 { HOMEPLUG_AV_MMTYPE_WR_MEM_CNF
, "Write MAC Memory Confirmation" },
629 { HOMEPLUG_AV_MMTYPE_RD_MEM_REQ
, "Read MAC Memory Request" },
630 { HOMEPLUG_AV_MMTYPE_RD_MEM_CNF
, "Read MAC Memory Confirmation" },
631 { HOMEPLUG_AV_MMTYPE_ST_MAC_REQ
, "Start MAC Request" },
632 { HOMEPLUG_AV_MMTYPE_ST_MAC_CNF
, "Start MAC Confirmation" },
633 { HOMEPLUG_AV_MMTYPE_GET_NVM_REQ
, "Get NVM Parameters Request" },
634 { HOMEPLUG_AV_MMTYPE_GET_NVM_CNF
, "Get NVM Parameters Confirmation" },
635 { HOMEPLUG_AV_MMTYPE_RS_DEV_REQ
, "Reset Device Request" },
636 { HOMEPLUG_AV_MMTYPE_RS_DEV_CNF
, "Reset Device Confirmation" },
637 { HOMEPLUG_AV_MMTYPE_WR_MOD_REQ
, "Write Module Data Request" },
638 { HOMEPLUG_AV_MMTYPE_WR_MOD_CNF
, "Write Module Data Confirmation" },
639 { HOMEPLUG_AV_MMTYPE_WR_MOD_IND
, "Write Module Data Indicate" },
640 { HOMEPLUG_AV_MMTYPE_RD_MOD_REQ
, "Read Module Data Request" },
641 { HOMEPLUG_AV_MMTYPE_RD_MOD_CNF
, "Read Module Data Confirmation" },
642 { HOMEPLUG_AV_MMTYPE_NVM_MOD_REQ
, "Write Module Data to NVM Request" },
643 { HOMEPLUG_AV_MMTYPE_NVM_MOD_CNF
, "Write Module Data to NVM Confirmation" },
644 { HOMEPLUG_AV_MMTYPE_WD_RPT_REQ
, "Get Watchdog Report Request" },
645 { HOMEPLUG_AV_MMTYPE_WD_RPT_IND
, "Get Watchdog Report Indicate" },
646 { HOMEPLUG_AV_MMTYPE_LNK_STATS_REQ
, "Link Statistics Request" },
647 { HOMEPLUG_AV_MMTYPE_LNK_STATS_CNF
, "Link Statistics Confirmation" },
648 { HOMEPLUG_AV_MMTYPE_SNIFFER_REQ
, "Sniffer Request" },
649 { HOMEPLUG_AV_MMTYPE_SNIFFER_CNF
, "Sniffer Confirmation" },
650 { HOMEPLUG_AV_MMTYPE_SNIFFER_IND
, "Sniffer Indicate" },
651 { HOMEPLUG_AV_MMTYPE_NW_INFO_REQ
, "Network Info Request" },
652 { HOMEPLUG_AV_MMTYPE_NW_INFO_CNF
, "Network Info Confirmation" },
653 { HOMEPLUG_AV_MMTYPE_CP_RPT_REQ
, "Check Points Request" },
654 { HOMEPLUG_AV_MMTYPE_CP_RPT_IND
, "Check Points Indicate" },
655 { HOMEPLUG_AV_MMTYPE_FR_LBK_REQ
, "Loopback Request" },
656 { HOMEPLUG_AV_MMTYPE_FR_LBK_CNF
, "Loopback Confirmation" },
657 { HOMEPLUG_AV_MMTYPE_LBK_STAT_REQ
, "Loopback Status Request" },
658 { HOMEPLUG_AV_MMTYPE_LBK_STAT_CNF
, "Loopback Status Confirmation" },
659 { HOMEPLUG_AV_MMTYPE_SET_KEY_REQ
, "Set Encryption Key Request" },
660 { HOMEPLUG_AV_MMTYPE_SET_KEY_CNF
, "Set Encryption Key Confirmation" },
661 { HOMEPLUG_AV_MMTYPE_MFG_STRING_REQ
, "Get Manufacturer String Request" },
662 { HOMEPLUG_AV_MMTYPE_MFG_STRING_CNF
, "Get Manufacturer String Confirmation" },
663 { HOMEPLUG_AV_MMTYPE_RD_CBLOCK_REQ
, "Read Configuration Block Request" },
664 { HOMEPLUG_AV_MMTYPE_RD_CBLOCK_CNF
, "Read Configuration Block Confirmation" },
665 { HOMEPLUG_AV_MMTYPE_SET_SDRAM_REQ
, "Set SDRAM Configuration Request" },
666 { HOMEPLUG_AV_MMTYPE_SET_SDRAM_CNF
, "Set SDRAM Configuration Confirmation" },
667 { HOMEPLUG_AV_MMTYPE_HOST_ACTION_IND
, "Embedded Host Action Required Indication" },
668 { HOMEPLUG_AV_MMTYPE_HOST_ACTION_RSP
, "Embedded Host Action Required Respons" },
669 { HOMEPLUG_AV_MMTYPE_OP_ATTR_REQ
, "Get Device Attributes Request" },
670 { HOMEPLUG_AV_MMTYPE_OP_ATTR_CNF
, "Get Device Attributes Confirmation" },
671 { HOMEPLUG_AV_MMTYPE_GET_ENET_PHY_REQ
, "Get Ethernet PHY Settings Request" },
672 { HOMEPLUG_AV_MMTYPE_GET_ENET_PHY_CNF
, "Get Ethernet PHY Settings Confirmation" },
673 { HOMEPLUG_AV_MMTYPE_TONE_MAP_TX_REQ
, "Tone Map Tx Characteristics Request" },
674 { HOMEPLUG_AV_MMTYPE_TONE_MAP_TX_CNF
, "Tone Map Tx Characteristics Confirmation" },
675 { HOMEPLUG_AV_MMTYPE_TONE_MAP_RX_REQ
, "Tone Map Rx Characteristics Request" },
676 { HOMEPLUG_AV_MMTYPE_TONE_MAP_RX_CNF
, "Tone Map Rx Characteristics Confirmation" },
679 static value_string_ext homeplug_av_mmtype_vals_ext
= VALUE_STRING_EXT_INIT(homeplug_av_mmtype_vals
);
682 #define HOMEPLUG_AV_MMVER_MASK 0x01
683 #define HOMEPLUG_AV_MMVER_1_0 0x00
684 #define HOMEPLUG_AV_MMVER_1_1 0x01
686 static const value_string homeplug_av_mmver_vals
[] = {
687 { HOMEPLUG_AV_MMVER_1_0
, "1.0" },
688 { HOMEPLUG_AV_MMVER_1_1
, "1.1" },
692 /* MMTYPE LSB Values */
693 #define HOMEPLUG_AV_MMTYPE_LSB_MASK 0x03
695 static const value_string homeplug_av_mmtype_lsb_vals
[] = {
698 { 0x02, "Indication" },
699 { 0x03, "Response" },
703 /* MMTYPE MSB Values */
704 #define HOMEPLUG_AV_MMTYPE_MSB_STA_CCO 0x00
705 #define HOMEPLUG_AV_MMTYPE_MSB_PROXY 0x01
706 #define HOMEPLUG_AV_MMTYPE_MSB_CCO_CCO 0x02
707 #define HOMEPLUG_AV_MMTYPE_MSB_STA_STA 0x03
708 #define HOMEPLUG_AV_MMTYPE_MSB_MANUF 0x04
709 #define HOMEPLUG_AV_MMTYPE_MSB_VENDOR 0x05
710 #define HOMEPLUG_AV_MMTYPE_MSB_RSV 0x06
711 #define HOMEPLUG_AV_MMTYPE_MSB_MASK 0x06
712 #define HOMEPLUG_AV_MMTYPE_MSB_SHIFT (5)
714 static const value_string homeplug_av_mmtype_msb_vals
[] = {
715 { HOMEPLUG_AV_MMTYPE_MSB_STA_CCO
, "STA - Central Coordinator" },
716 { HOMEPLUG_AV_MMTYPE_MSB_PROXY
, "Proxy Coordinator" },
717 { HOMEPLUG_AV_MMTYPE_MSB_CCO_CCO
, "Central Coordinator - Central Coordinator" },
718 { HOMEPLUG_AV_MMTYPE_MSB_STA_STA
, "STA - STA" },
719 { HOMEPLUG_AV_MMTYPE_MSB_MANUF
, "Manufacturer Specific" },
720 { HOMEPLUG_AV_MMTYPE_MSB_VENDOR
, "Vendor Specific" },
724 #define HOMEPLUG_AV_CC_STA_NET_MASK 0x01
726 static const value_string homeplug_av_cc_sta_net_type_vals
[] = {
727 { 0x00, "Different network" },
728 { 0x01, "Same network" },
732 static const value_string homeplug_av_sig_level_vals
[] = {
734 { 0x01, "> - 10 dB, but <= 0 dB" },
735 { 0x02, "> - 15 dB, but <= -10 dB" },
736 { 0x03, "> - 20 dB, but <= -15 dB" },
737 { 0x04, "> - 25 dB, but <= -20 dB" },
738 { 0x05, "> - 30 dB, but <= -25 dB" },
739 { 0x06, "> - 35 dB, but <= -30 dB" },
740 { 0x07, "> - 40 dB, but <= -35 dB" },
741 { 0x08, "> - 45 dB, but <= -40 dB" },
742 { 0x09, "> - 50 dB, but <= -45 dB" },
743 { 0x0A, "> - 55 dB, but <= -50 dB" },
744 { 0x0B, "> - 60 dB, but <= -55 dB" },
745 { 0x0C, "> - 65 dB, but <= -60 dB" },
746 { 0x0D, "> - 70 dB, but <= -65 dB" },
747 { 0x0E, "> - 75 dB, but <= -70 dB" },
748 { 0x0F, "<= -75 dB" },
751 static value_string_ext homeplug_av_sig_level_vals_ext
= VALUE_STRING_EXT_INIT(homeplug_av_sig_level_vals
);
753 #define HOMEPLUG_AV_CCO_STATUS_MASK 0x07
755 static const value_string homeplug_av_cco_status_vals
[] = {
757 { 0x01, "Non-coordinating Network" },
758 { 0x02, "Coordinating, group status unknown" },
759 { 0x03, "Coordinating network in the same group" },
760 { 0x04, "Coordinating network not in the same group" },
764 #define HOMEPLUG_AV_NW_INFO_ROLE_MASK 0x03
766 static const value_string homeplug_av_nw_info_role_vals
[] = {
768 { 0x01, "Proxy coordinator" },
769 { 0x02, "Central coordinator" },
773 #define HOMEPLUG_AV_NW_INFO_NID_MASK 0x01
775 static const value_string homeplug_nw_info_access_vals
[] = {
781 #define HOMEPLUG_AV_PEKS_MASK 0x0F
783 static const value_string homeplug_av_peks_vals
[] = {
784 { 0x00, "Destination STA's DAK" },
785 { 0x01, "NMK known to STA" },
786 { 0x02, "TEK Index 0" },
787 { 0x03, "TEK Index 1" },
788 { 0x04, "TEK Index 2" },
789 { 0x05, "TEK Index 3" },
790 { 0x06, "TEK Index 4" },
791 { 0x07, "TEK Index 5" },
792 { 0x08, "TEK Index 6" },
793 { 0x09, "TEK Index 7" },
794 { 0x0A, "TEK Index 8" },
795 { 0x0B, "TEK Index 9" },
796 { 0x0C, "TEK Index 10" },
797 { 0x0D, "TEK Index 11" },
798 { 0x0E, "TEK Index 12" },
802 static value_string_ext homeplug_av_peks_vals_ext
= VALUE_STRING_EXT_INIT(homeplug_av_peks_vals
);
804 #define HOMEPLUG_AV_AVLN_STATUS_MASK 0x0F
806 static const value_string homeplug_av_avln_status_vals
[] = {
807 { 0x00, "Unassociated and Level-0 CCo capable" },
808 { 0x01, "Unassociated and Level-1 CCo capable" },
809 { 0x02, "Unassociated and Level-2 CCo capable" },
810 { 0x03, "Unassociated and Level-3 CCo capable" },
811 { 0x04, "Associated but not PCo capable" },
812 { 0x05, "Associated but and PCo capable" },
813 { 0x06, "Reserved" },
814 { 0x07, "Reserved" },
815 { 0x08, "CCo of an AV Logical Network" },
819 #define HOMEPLUG_AV_PID_AUTH_STA 0x00
820 #define HOMEPLUG_AV_PID_PROV_AUTH_NEK 0x01
821 #define HOMEPLUG_AV_PID_PROV_AUTH_DAK 0x02
822 #define HOMEPLUG_AV_PID_PROV_AUTH_UKE 0x03
823 #define HOMEPLUG_AV_PID_HLE 0x04
824 #define HOMEPLUG_AV_PID_MASK 0x07
826 static const value_string homeplug_av_pid_vals
[] = {
827 { HOMEPLUG_AV_PID_AUTH_STA
, "Authentication request by new STA" },
828 { HOMEPLUG_AV_PID_PROV_AUTH_NEK
, "Provision authenticated STA with new NEK by CCo" },
829 { HOMEPLUG_AV_PID_PROV_AUTH_DAK
, "Provision STA with NMK using DAK" },
830 { HOMEPLUG_AV_PID_PROV_AUTH_UKE
, "Provision STA with NMK using UKE" },
831 { HOMEPLUG_AV_PID_HLE
, "HLE" },
835 #define HOMEPLUG_AV_KEY_TYPE_DAK 0x00
836 #define HOMEPLUG_AV_KEY_TYPE_NMK 0x01
837 #define HOMEPLUG_AV_KEY_TYPE_NEK 0x02
838 #define HOMEPLUG_AV_KEY_TYPE_TEK 0x03
839 #define HOMEPLUG_AV_KEY_TYPE_HASH 0x04
840 #define HOMEPLUG_AV_KEY_TYPE_NONE 0x05
841 #define HOMEPLUG_AV_KEY_TYPE_MASK 0x07
843 static const value_string homeplug_av_key_type_vals
[] = {
844 { HOMEPLUG_AV_KEY_TYPE_DAK
, "DAK" },
845 { HOMEPLUG_AV_KEY_TYPE_NMK
, "NMK" },
846 { HOMEPLUG_AV_KEY_TYPE_NEK
, "NEK" },
847 { HOMEPLUG_AV_KEY_TYPE_TEK
, "TEK" },
848 { HOMEPLUG_AV_KEY_TYPE_HASH
, "Hash Key" },
849 { HOMEPLUG_AV_KEY_TYPE_NONE
, "Nonce only (no key)" },
853 #define HOMEPLUG_AV_DEV_ID_MASK 0xff
855 static const value_string homeplug_av_dev_id_vals
[] = {
862 { 0x20, "QCA7450/QCA7420" },
863 { 0x21, "QCA6410/QCA6411" },
868 #define HOMEPLUG_AV_REQ_TYPE_MASK 0x01
870 static const value_string homeplug_av_req_type_vals
[] = {
876 #define HOMEPLUG_AV_KEY_RESULT_MASK 0x03
878 static const value_string homeplug_av_key_result_vals
[] = {
879 { 0x00, "Key granted" },
880 { 0x01, "Request refused" },
881 { 0x02, "Unsupported method/key type" },
885 #define HOMEPLUG_AV_LINEFREQ_MASK 0x03
887 static const value_string homeplug_av_linefreq_vals
[] = {
888 { 0x00, "Unknown frequency" },
894 #define HOMEPLUG_AV_ZEROCROSS_MASK 0x03
896 static const value_string homeplug_av_zerocrossing_vals
[] = {
897 { 0x00, "Not yet detected" },
898 { 0x01, "Detected" },
903 #define HOMEPLUG_AV_ENET_PHY_SPEED_MASK 0x03
905 static const value_string homeplug_av_enet_phy_speed_vals
[] = {
906 { 0x00, "10 Mbits/sec" },
907 { 0x01, "100 Mbits/sec" },
908 { 0x02, "1 Gbits/sec" },
912 #define HOMEPLUG_AV_ENET_PHY_DUPLEX_MASK 0x01
914 static const value_string homeplug_av_enet_phy_duplex_vals
[] = {
920 #define HOMEPLUG_AV_ENET_PHY_MCONTROL_MASK 0x01
922 static const value_string homeplug_av_enet_phy_mcontrol_vals
[] = {
928 static const value_string homeplug_av_wr_rd_mem_status_vals
[] = {
930 { 0x10, "Invalid Address" },
931 { 0x14, "Invalid Length" },
935 static const value_string homeplug_av_mac_module_id_vals
[] = {
936 { 0x00, "MAC Soft-Loader Image" },
937 { 0x01, "MAC Software Image" },
939 { 0x10, "Write Alternate Flash Location" },
943 static const value_string homeplug_av_st_mac_status_vals
[] = {
945 { 0x10, "Invalid Module ID" },
946 { 0x14, "Invalid Command" },
950 static const value_string homeplug_av_get_nvm_status_vals
[] = {
952 { 0x10, "NVM Not Present" },
956 static const value_string homeplug_av_rs_dev_status_vals
[] = {
958 { 0x01, "NVM Not Present" },
962 static const value_string homeplug_av_wr_rd_mod_cnf_status_vals
[] = {
964 { 0x10, "Invalid Module ID" },
965 { 0x12, "Invalid Length" },
966 { 0x14, "Invalid Checksum" },
967 { 0x18, "Bad Header Checksum" },
968 { 0x1C, "Invalid Length" },
969 { 0x20, "Unexpected Offset" },
973 static const value_string homeplug_av_wr_mod_ind_status_vals
[] = {
974 { 0x00, "Successful module update" },
975 { 0x10, "Update occurred but not successful" },
979 static const value_string homeplug_av_mod_nvm_status_vals
[] = {
981 { 0x10, "Invalid Module ID" },
982 { 0x14, "NVM Module Not Present" },
983 { 0x18, "NVM Too Small" },
984 { 0x1C, "Invalid Header Checksum" },
985 { 0x20, "Invalid Section Mismatch" },
989 #define HOMEPLUG_AV_RPT_CLR_MASK 0x01
991 static const value_string homeplug_av_rpt_clr_vals
[] = {
992 { 0x00, "Get Report" },
993 { 0x01, "Get Report and Clear" },
997 #define HOMEPLUG_AV_GEN_STATUS_MASK 0x03
999 static const value_string homeplug_av_generic_status_vals
[] = {
1000 { 0x00, "Success" },
1001 { 0x01, "Failure" },
1002 { 0x02, "Not supported" },
1006 #define HOMEPLUG_AV_LNK_STATS_MCTL_MASK 0x01
1008 static const value_string homeplug_av_lnk_stats_mctrl_vals
[] = {
1014 #define HOMEPLUG_AV_LNK_STATS_DIR_TX 0x00
1015 #define HOMEPLUG_AV_LNK_STATS_DIR_RX 0x01
1016 #define HOMEPLUG_AV_LNK_STATS_DIR_TX_RX 0x02
1017 #define HOMEPLUG_AV_LNK_STATS_DIR_MASK 0x03
1019 static const value_string homeplug_av_lnk_stats_dir_vals
[] = {
1020 { HOMEPLUG_AV_LNK_STATS_DIR_TX
, "Tx" },
1021 { HOMEPLUG_AV_LNK_STATS_DIR_RX
, "Rx" },
1022 { HOMEPLUG_AV_LNK_STATS_DIR_TX_RX
, "Tx/Rx" },
1026 static const value_string homeplug_av_lnk_stats_lid_vals
[] = {
1027 { 0x00, "CSMA Channel Access Priority 0" },
1028 { 0x01, "CSMA Channel Access Priority 1" },
1029 { 0x02, "CSMA Channel Access Priority 2" },
1030 { 0x03, "CSMA Channel Access Priority 3" },
1031 { 0xF8, "Sum of all CSMA stats for Peer Node" },
1032 { 0xFB, "Reserved" },
1033 { 0xFC, "Sum of all CSMA stats" },
1037 #define HOMEPLUG_AV_LNK_STATS_STATUS_SUCCESS 0x00
1038 #define HOMEPLUG_AV_LNK_STATS_STATUS_INV_CTRL 0x01
1039 #define HOMEPLUG_AV_LNK_STATS_STATUS_INV_DIR 0x02
1040 #define HOMEPLUG_AV_LNK_STATS_STATUS_INV_LID 0x10
1041 #define HOMEPLUG_AV_LNK_STATS_STATUS_INV_MAC 0x20
1043 static const value_string homeplug_av_lnk_status_vals
[] = {
1044 { HOMEPLUG_AV_LNK_STATS_STATUS_SUCCESS
, "Success" },
1045 { HOMEPLUG_AV_LNK_STATS_STATUS_INV_CTRL
, "Invalid Control" },
1046 { HOMEPLUG_AV_LNK_STATS_STATUS_INV_DIR
, "Invalid Direction" },
1047 { HOMEPLUG_AV_LNK_STATS_STATUS_INV_LID
, "Invalid Link ID" },
1048 { HOMEPLUG_AV_LNK_STATS_STATUS_INV_MAC
, "Invalid MAC Address" },
1052 #define HOMEPLUG_AV_SNIFFER_CTRL_MASK 0x03
1054 static const value_string homeplug_av_sniffer_ctrl_vals
[] = {
1055 { 0x00, "Disable" },
1057 { 0x02, "No change" },
1061 static const value_string homeplug_av_sniffer_status_vals
[] = {
1062 { 0x00, "Success" },
1063 { 0x10, "Invalid Control" },
1067 static const value_string homeplug_av_sniffer_type_vals
[] = {
1068 { 0x00, "Regular" },
1072 #define HOMEPLUG_AV_LBK_STATUS_MASK 0x01
1074 static const value_string homeplug_av_lbk_status_vals
[] = {
1076 { 0x01, "Looping frame" },
1080 static const value_string homeplug_av_set_key_peks_vals
[] = {
1086 static const value_string homeplug_av_set_key_status_vals
[] = {
1087 { 0x00, "Success" },
1088 { 0x10, "Invalid EKS" },
1089 { 0x11, "Invalid PKS" },
1093 static const value_string homeplug_av_cblock_status_vals
[] = {
1094 { 0x00, "Success" },
1095 { 0x01, "Failure" },
1096 { 0x10, "No Flash" },
1097 { 0x30, "Invalid Checksum" },
1098 { 0x34, "BIST Failed" },
1102 #define HOMEPLUG_AV_NVM_IMG_TYPE_MASK 0x1F
1104 static const value_string homeplug_av_nvm_img_type_vals
[] = {
1105 { 0x00, "Generic Image" },
1106 { 0x01, "Synopsis configuration" },
1107 { 0x02, "Denali configuration" },
1108 { 0x03, "Denali applet" },
1109 { 0x04, "Runtime firmware" },
1110 { 0x05, "OAS client" },
1111 { 0x06, "Custom image" },
1112 { 0x07, "Memory control applet" },
1113 { 0x08, "Power management applet" },
1114 { 0x09, "OAS client IP stack" },
1115 { 0x0A, "OAS client TR069" },
1116 { 0x0B, "SoftLoader" },
1117 { 0x0C, "Flash layout" },
1118 { 0x0D, "Unknown" },
1119 { 0x0E, "Chain manifest" },
1120 { 0x0F, "Runtime parameters" },
1121 { 0x10, "Custom module in scratch" },
1122 { 0x11, "Custom module update applet" },
1126 #define HOMEPLUG_AV_NVM_IGNORE_MASK_MASK 0x1FF
1128 static const value_string homeplug_av_nvm_ignore_mask_vals
[] = {
1129 { 0x00, "INT6000" },
1130 { 0x01, "INT6300" },
1131 { 0x04, "INT6400" },
1133 { 0x100, "AR7420" },
1137 #define HOMEPLUG_AV_HOST_ACTION_SOFT_LDR 0x00
1138 #define HOMEPLUG_AV_HOST_ACTION_FW_UPG_RDY 0x01
1139 #define HOMEPLUG_AV_HOST_ACTION_PIB_UP_RDY 0x02
1140 #define HOMEPLUG_AV_HOST_ACTION_FW_PIB_UP_RDY 0x03
1141 #define HOMEPLUG_AV_HOST_ACTION_BOOT_LDR 0x04
1143 static const value_string homeplug_av_host_action_vals
[] = {
1144 { HOMEPLUG_AV_HOST_ACTION_SOFT_LDR
, "Loader (Soft/Bootloader)" },
1145 { HOMEPLUG_AV_HOST_ACTION_FW_UPG_RDY
, "Firmware Upgrade Ready" },
1146 { HOMEPLUG_AV_HOST_ACTION_PIB_UP_RDY
, "PIB Update Ready" },
1147 { HOMEPLUG_AV_HOST_ACTION_FW_PIB_UP_RDY
, "Firmware Upgrade and PIB Update Ready" },
1148 { HOMEPLUG_AV_HOST_ACTION_BOOT_LDR
, "Loader (Bootloader)" },
1152 static const value_string homeplug_av_op_attr_report_vals
[] = {
1158 #define HOMEPLUG_AV_TONE_MAP_MAX_NUM_CARRIERS_A 1155
1159 #define HOMEPLUG_AV_TONE_MAP_MAX_NUM_CARRIERS_B 2880
1161 #define HOMEPLUG_AV_TONE_MAP_MASK 0x0f
1163 static const value_string homeplug_av_tone_map_vals
[] = {
1164 { 0x00, "No modulation" },
1170 { 0x06, "256-QAM" },
1171 { 0x07, "1024-QAM" },
1172 { 0x08, "4096-QAM" },
1176 static const value_string homeplug_av_tone_map_status_vals
[] = {
1177 { 0x00, "Success" },
1178 { 0x01, "Unknown MAC address" },
1179 { 0x02, "Unknown Tone Map slot" },
1183 #define HOMEPLUG_AV_COUPLING_MASK 0x0F
1185 static const value_string homeplug_av_coupling_vals
[] = {
1186 { 0x00, "Primary" },
1187 { 0x01, "Alternate" },
1191 #define TVB_LEN_GREATEST 1
1192 #define TVB_LEN_UNDEF 0
1193 #define TVB_LEN_SHORTEST -1
1194 static int check_tvb_length(ptvcursor_t
*cursor
, const gint length
)
1197 return TVB_LEN_UNDEF
;
1199 if (tvb_reported_length_remaining(ptvcursor_tvbuff(cursor
),
1200 ptvcursor_current_offset(cursor
)) < length
)
1201 return TVB_LEN_SHORTEST
;
1203 return TVB_LEN_GREATEST
;
1206 static inline unsigned int homeplug_av_mmtype_msb_is_vendor(guint8 msb
)
1208 return ((msb
& (HOMEPLUG_AV_MMTYPE_MSB_VENDOR
<< HOMEPLUG_AV_MMTYPE_MSB_SHIFT
)) ==
1209 (HOMEPLUG_AV_MMTYPE_MSB_VENDOR
<< HOMEPLUG_AV_MMTYPE_MSB_SHIFT
));
1212 /* Dissection of MMHDR */
1214 dissect_homeplug_av_mmhdr(ptvcursor_t
*cursor
, guint8
*homeplug_av_mmver
, guint16
*homeplug_av_mmtype
)
1217 proto_tree
*ti_mmtype
;
1218 proto_tree
*ti_vendor
;
1219 proto_tree
*ti_public
;
1220 guint8 lsb
, msb
, mmv
;
1222 mmv
= tvb_get_guint8(ptvcursor_tvbuff(cursor
),
1223 ptvcursor_current_offset(cursor
));
1224 lsb
= tvb_get_guint8(ptvcursor_tvbuff(cursor
),
1225 ptvcursor_current_offset(cursor
) + 1);
1226 msb
= tvb_get_guint8(ptvcursor_tvbuff(cursor
),
1227 ptvcursor_current_offset(cursor
) + 2);
1229 *homeplug_av_mmver
= mmv
;
1230 *homeplug_av_mmtype
= (msb
<< 8) | lsb
;
1232 /* Header in HomePlug AV 1.1 is 2 bytes larger (Fragmentation information) */
1235 ti
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mmhdr
, 5, ENC_NA
);
1239 ti
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mmhdr
, 3, ENC_NA
);
1242 if (!ptvcursor_tree(cursor
))
1245 ptvcursor_push_subtree(cursor
, ti
, ett_homeplug_av_mmhdr
);
1247 ptvcursor_add(cursor
, hf_homeplug_av_mmhdr_mmver
, 1, ENC_BIG_ENDIAN
);
1248 ti_mmtype
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mmhdr_mmtype
, 2, ENC_LITTLE_ENDIAN
);
1250 ptvcursor_push_subtree(cursor
, ti_mmtype
, ett_homeplug_av_mmtype
);
1252 ptvcursor_add(cursor
, hf_homeplug_av_mmhdr_mmtype_lsb
, 1, ENC_BIG_ENDIAN
);
1253 ptvcursor_add(cursor
, hf_homeplug_av_mmhdr_mmtype_msb
, 1, ENC_BIG_ENDIAN
);
1255 ptvcursor_pop_subtree(cursor
);
1257 /* Fragmentation information is part of the header in HomePlug AV 1.1 */
1260 ti_public
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mmhdr_fmi
, 2, ENC_LITTLE_ENDIAN
);
1262 ptvcursor_push_subtree(cursor
, ti_public
, ett_homeplug_av_fmi
);
1264 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_public_frag_count
, 1, ENC_BIG_ENDIAN
);
1265 ptvcursor_add(cursor
, hf_homeplug_av_public_frag_index
, 1, ENC_BIG_ENDIAN
);
1266 ptvcursor_add(cursor
, hf_homeplug_av_public_frag_seqnum
, 1, ENC_BIG_ENDIAN
);
1268 ptvcursor_pop_subtree(cursor
);
1271 ptvcursor_pop_subtree(cursor
);
1273 /* Vendor management frame */
1274 if (homeplug_av_mmtype_msb_is_vendor(msb
))
1276 ti_vendor
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_vendor
, -1, ENC_NA
);
1278 ptvcursor_push_subtree(cursor
, ti_vendor
, ett_homeplug_av_vendor
);
1280 ptvcursor_add(cursor
, hf_homeplug_av_vendor_oui
, 3, ENC_NA
);
1282 ptvcursor_pop_subtree(cursor
);
1284 /* Public management frame in HomePlug AV 1.0 */
1287 ti_public
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_public
, -1, ENC_NA
);
1289 ptvcursor_push_subtree(cursor
, ti_public
, ett_homeplug_av_public
);
1291 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_public_frag_count
, 1, ENC_BIG_ENDIAN
);
1292 ptvcursor_add(cursor
, hf_homeplug_av_public_frag_index
, 1, ENC_BIG_ENDIAN
);
1293 ptvcursor_add(cursor
, hf_homeplug_av_public_frag_seqnum
, 1, ENC_BIG_ENDIAN
);
1295 ptvcursor_pop_subtree(cursor
);
1301 dissect_homeplug_av_beacon(ptvcursor_t
*cursor
)
1305 if (!ptvcursor_tree(cursor
))
1308 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_bcn
, -1, ENC_NA
);
1310 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_bcn
);
1312 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_nw_info_del_type
, 1, ENC_BIG_ENDIAN
);
1313 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_nw_info_access
, 1, ENC_BIG_ENDIAN
);
1314 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_snid
, 1, ENC_BIG_ENDIAN
);
1315 ptvcursor_add(cursor
, hf_homeplug_av_bcn_bts
, 4, ENC_LITTLE_ENDIAN
);
1316 ptvcursor_add(cursor
, hf_homeplug_av_bcn_bto_0
, 2, ENC_LITTLE_ENDIAN
);
1317 ptvcursor_add(cursor
, hf_homeplug_av_bcn_bto_1
, 2, ENC_LITTLE_ENDIAN
);
1318 ptvcursor_add(cursor
, hf_homeplug_av_bcn_bto_2
, 2, ENC_LITTLE_ENDIAN
);
1319 ptvcursor_add(cursor
, hf_homeplug_av_bcn_bto_3
, 2, ENC_LITTLE_ENDIAN
);
1320 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_fccs_av
, 3, ENC_NA
);
1322 ptvcursor_pop_subtree(cursor
);
1327 dissect_homeplug_av_frame_control(ptvcursor_t
*cursor
)
1331 if (!ptvcursor_tree(cursor
))
1334 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fc
, -1, ENC_NA
);
1336 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_fc
);
1338 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_nw_info_del_type
, 1, ENC_BIG_ENDIAN
);
1339 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_nw_info_access
, 1, ENC_BIG_ENDIAN
);
1340 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_snid
, 1, ENC_BIG_ENDIAN
);
1341 ptvcursor_add(cursor
, hf_homeplug_av_fc_stei
, 1, ENC_BIG_ENDIAN
);
1342 ptvcursor_add(cursor
, hf_homeplug_av_fc_dtei
, 1, ENC_BIG_ENDIAN
);
1343 ptvcursor_add(cursor
, hf_homeplug_av_fc_lid
, 1, ENC_BIG_ENDIAN
);
1344 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fc_cfs
, 1, ENC_BIG_ENDIAN
);
1345 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fc_bdf
, 1, ENC_BIG_ENDIAN
);
1346 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fc_hp10df
, 1, ENC_BIG_ENDIAN
);
1347 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fc_hp11df
, 1, ENC_BIG_ENDIAN
);
1348 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_peks
, 1, ENC_BIG_ENDIAN
);
1349 ptvcursor_add(cursor
, hf_homeplug_av_fc_ppb
, 1, ENC_BIG_ENDIAN
);
1350 ptvcursor_add(cursor
, hf_homeplug_av_fc_ble
, 1, ENC_BIG_ENDIAN
);
1351 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fc_pbsz
, 1, ENC_BIG_ENDIAN
);
1352 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fc_num_sym
, 1, ENC_BIG_ENDIAN
);
1353 ptvcursor_add(cursor
, hf_homeplug_av_fc_tmi_av
, 1, ENC_BIG_ENDIAN
);
1354 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fc_mpdu_cnt
, 2, ENC_BIG_ENDIAN
);
1355 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fc_burst_cnt
, 2, ENC_BIG_ENDIAN
);
1356 ptvcursor_add(cursor
, hf_homeplug_av_fc_fl_av
, 2, ENC_LITTLE_ENDIAN
);
1357 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fc_clst
, 1, ENC_BIG_ENDIAN
);
1358 ptvcursor_add(cursor
, hf_homeplug_av_fc_rg_len
, 1, ENC_BIG_ENDIAN
);
1359 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fc_mfs_cmd_mgmt
, 1, ENC_BIG_ENDIAN
);
1360 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fc_mfs_cmd_data
, 1, ENC_BIG_ENDIAN
);
1361 ptvcursor_add(cursor
, hf_homeplug_av_fc_rsr
, 1, ENC_BIG_ENDIAN
);
1362 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fc_mcf
, 1, ENC_BIG_ENDIAN
);
1363 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fc_dccpcf
, 1, ENC_BIG_ENDIAN
);
1364 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fc_mnbf
, 1, ENC_BIG_ENDIAN
);
1365 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
1366 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_fccs_av
, 3, ENC_NA
);
1368 ptvcursor_pop_subtree(cursor
);
1372 dissect_homeplug_av_nw_info_sta(ptvcursor_t
*cursor
, gboolean vendor
, guint homeplug_av_mmver
)
1376 if (!ptvcursor_tree(cursor
))
1379 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_nw_info_sta_info
, -1, ENC_NA
);
1381 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_nw_info_sta_info
);
1383 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_sta_da
, 6, ENC_NA
);
1385 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_sta_tei
, 1, ENC_BIG_ENDIAN
);
1387 if (homeplug_av_mmver
== 1)
1388 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 3, ENC_NA
);
1390 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_sta_bda
, 6, ENC_NA
);
1392 if (!homeplug_av_mmver
)
1394 ptvcursor_add(cursor
, hf_homeplug_av10_nw_info_sta_phy_dr_tx
, 1, ENC_BIG_ENDIAN
);
1395 ptvcursor_add(cursor
, hf_homeplug_av10_nw_info_sta_phy_dr_rx
, 1, ENC_BIG_ENDIAN
);
1397 else if (homeplug_av_mmver
== 1)
1399 ptvcursor_add(cursor
, hf_homeplug_av11_nw_info_sta_phy_dr_tx
, 2, ENC_LITTLE_ENDIAN
);
1400 ptvcursor_add_no_advance(cursor
, hf_homeplug_av11_nw_info_sta_cpling_tx
, 1, ENC_BIG_ENDIAN
);
1401 ptvcursor_add(cursor
, hf_homeplug_av11_nw_info_sta_cpling_rx
, 1, ENC_BIG_ENDIAN
);
1402 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
1403 ptvcursor_add(cursor
, hf_homeplug_av11_nw_info_sta_phy_dr_rx
, 2, ENC_LITTLE_ENDIAN
);
1404 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
1407 ptvcursor_pop_subtree(cursor
);
1411 dissect_homeplug_av_nw_info_net(ptvcursor_t
*cursor
, gboolean vendor
, guint8 homeplug_av_mmver
)
1415 if (!ptvcursor_tree(cursor
))
1418 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_nw_info_net_info
, -1, ENC_NA
);
1420 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_nw_info_net_info
);
1422 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_nid
, 7, ENC_NA
);
1424 if (homeplug_av_mmver
== 1)
1425 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 2, ENC_NA
);
1427 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_snid
, 1, ENC_BIG_ENDIAN
);
1428 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_tei
, 1, ENC_BIG_ENDIAN
);
1430 if (homeplug_av_mmver
== 1)
1431 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 4, ENC_NA
);
1433 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_sta_role
, 1, ENC_BIG_ENDIAN
);
1434 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_cco_mac
, 6, ENC_NA
);
1436 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_cco_tei
, 1, ENC_BIG_ENDIAN
);
1438 if (homeplug_av_mmver
== 1)
1439 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 3, ENC_NA
);
1443 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_access
, 1, ENC_BIG_ENDIAN
);
1444 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_num_coord
, 1, ENC_BIG_ENDIAN
);
1447 ptvcursor_pop_subtree(cursor
);
1452 dissect_homeplug_av_cc_sta_info(ptvcursor_t
*cursor
)
1456 if (!ptvcursor_tree(cursor
))
1459 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cc_sta_info
, -1, ENC_NA
);
1461 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cc_sta_info
);
1463 ptvcursor_add(cursor
, hf_homeplug_av_cc_sta_info_mac
, 6, ENC_NA
);
1464 ptvcursor_add(cursor
, hf_homeplug_av_cc_sta_info_tei
, 1, ENC_BIG_ENDIAN
);
1465 ptvcursor_add(cursor
, hf_homeplug_av_cc_sta_info_same_net
, 1, ENC_BIG_ENDIAN
);
1466 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_snid
, 1, ENC_BIG_ENDIAN
);
1467 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_cco_cap
, 1, ENC_BIG_ENDIAN
);
1468 ptvcursor_add(cursor
, hf_homeplug_av_cc_sta_info_sig_level
, 1, ENC_BIG_ENDIAN
);
1469 ptvcursor_add(cursor
, hf_homeplug_av_cc_sta_info_avg_ble
, 1, ENC_BIG_ENDIAN
);
1471 ptvcursor_pop_subtree(cursor
);
1475 dissect_homeplug_av_cc_net_info(ptvcursor_t
*cursor
)
1479 if (!ptvcursor_tree(cursor
))
1482 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cc_net_info
, -1, ENC_NA
);
1484 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cc_net_info
);
1486 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_nid
, 7, ENC_NA
);
1487 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_snid
, 1, ENC_BIG_ENDIAN
);
1488 ptvcursor_add(cursor
, hf_homeplug_av_cc_net_info_hyb_mode
, 1, ENC_BIG_ENDIAN
);
1489 ptvcursor_add(cursor
, hf_homeplug_av_cc_net_info_bcn_slots
, 1, ENC_BIG_ENDIAN
);
1490 ptvcursor_add(cursor
, hf_homeplug_av_cc_net_info_cco_sts
, 1, ENC_BIG_ENDIAN
);
1491 ptvcursor_add(cursor
, hf_homeplug_av_cc_net_info_bcn_ofs
, 2, ENC_BIG_ENDIAN
);
1493 ptvcursor_pop_subtree(cursor
);
1497 dissect_homeplug_av_cc_disc_list_cnf(ptvcursor_t
*cursor
)
1505 if (!ptvcursor_tree(cursor
))
1508 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cc_disc_list_cnf
, -1, ENC_NA
);
1510 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cc_disc_list_cnf
);
1512 num_stas
= tvb_get_guint8(ptvcursor_tvbuff(cursor
),
1513 ptvcursor_current_offset(cursor
));
1514 ptvcursor_add(cursor
, hf_homeplug_av_cc_disc_list_sta_cnt
, 1, ENC_BIG_ENDIAN
);
1516 for (sta
= 0; sta
< num_stas
; sta
++) {
1517 dissect_homeplug_av_cc_sta_info(cursor
);
1520 num_nets
= tvb_get_guint8(ptvcursor_tvbuff(cursor
),
1521 ptvcursor_current_offset(cursor
));
1522 ptvcursor_add(cursor
, hf_homeplug_av_cc_disc_list_net_cnt
, 1, ENC_BIG_ENDIAN
);
1524 for (net
= 0; net
< num_nets
; net
++) {
1525 dissect_homeplug_av_cc_net_info(cursor
);
1528 ptvcursor_pop_subtree(cursor
);
1532 dissect_homeplug_av_cm_enc_pld_ind(ptvcursor_t
*cursor
)
1537 if (!ptvcursor_tree(cursor
))
1540 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cm_enc_pld_ind
, -1, ENC_NA
);
1542 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cm_enc_pld_ind
);
1544 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_peks
, 1, ENC_BIG_ENDIAN
);
1545 ptvcursor_add(cursor
, hf_homeplug_av_cm_enc_pld_ind_avlns
, 1, ENC_BIG_ENDIAN
);
1546 pid
= tvb_get_guint8(ptvcursor_tvbuff(cursor
),
1547 ptvcursor_current_offset(cursor
));
1548 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pid
, 1, ENC_BIG_ENDIAN
);
1549 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_prn
, 2, ENC_LITTLE_ENDIAN
);
1550 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pmn
, 1, ENC_BIG_ENDIAN
);
1551 if (pid
== HOMEPLUG_AV_PID_HLE
) {
1552 ptvcursor_add(cursor
, hf_homeplug_av_cm_enc_pld_ind_iv
, 16, ENC_NA
);
1554 ptvcursor_add(cursor
, hf_homeplug_av_cm_enc_pld_ind_uuid
, 16, ENC_LITTLE_ENDIAN
);
1556 ptvcursor_add(cursor
, hf_homeplug_av_cm_enc_pld_ind_len
, 2, ENC_LITTLE_ENDIAN
);
1558 /* Encrypted payload follows */
1559 if (pid
!= HOMEPLUG_AV_PID_HLE
) {
1560 ptvcursor_add(cursor
, hf_homeplug_av_cm_enc_pld_ind_pld
, -1, ENC_NA
);
1563 ptvcursor_pop_subtree(cursor
);
1567 dissect_homeplug_av_cm_enc_pld_rsp(ptvcursor_t
*cursor
)
1571 if (!ptvcursor_tree(cursor
))
1574 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cm_enc_pld_rsp
, -1, ENC_NA
);
1576 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cm_enc_pld_rsp
);
1578 ptvcursor_add(cursor
, hf_homeplug_av_cm_enc_pld_rsp_result
, 1, ENC_BIG_ENDIAN
);
1579 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pid
, 1, ENC_BIG_ENDIAN
);
1580 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_prn
, 2, ENC_LITTLE_ENDIAN
);
1582 ptvcursor_pop_subtree(cursor
);
1586 dissect_homeplug_av_cm_set_key_req(ptvcursor_t
*cursor
)
1590 if (!ptvcursor_tree(cursor
))
1593 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cm_set_key_req
, -1, ENC_NA
);
1595 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cm_set_key_req
);
1597 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_key_type
, 1, ENC_BIG_ENDIAN
);
1598 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_my_nonce
, 4, ENC_LITTLE_ENDIAN
);
1599 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_your_nonce
, 4, ENC_LITTLE_ENDIAN
);
1600 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pid
, 1, ENC_BIG_ENDIAN
);
1601 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_prn
, 2, ENC_LITTLE_ENDIAN
);
1602 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pmn
, 1, ENC_BIG_ENDIAN
);
1603 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_cco_cap
, 1, ENC_BIG_ENDIAN
);
1604 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_nid
, 7, ENC_NA
);
1605 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_peks
, 1, ENC_BIG_ENDIAN
);
1606 ptvcursor_add(cursor
, hf_homeplug_av_cm_set_key_req_nw_key
, -1, ENC_NA
);
1608 ptvcursor_pop_subtree(cursor
);
1612 dissect_homeplug_av_cm_set_key_cnf(ptvcursor_t
*cursor
)
1616 if (!ptvcursor_tree(cursor
))
1619 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cm_set_key_cnf
, -1, ENC_NA
);
1621 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cm_set_key_cnf
);
1623 ptvcursor_add(cursor
, hf_homeplug_av_cm_set_key_cnf_result
, 1, ENC_BIG_ENDIAN
);
1624 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_my_nonce
, 4, ENC_LITTLE_ENDIAN
);
1625 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_your_nonce
, 4, ENC_LITTLE_ENDIAN
);
1626 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pid
, 1, ENC_BIG_ENDIAN
);
1627 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_prn
, 2, ENC_LITTLE_ENDIAN
);
1628 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pmn
, 1, ENC_BIG_ENDIAN
);
1629 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_cco_cap
, 1, ENC_BIG_ENDIAN
);
1631 ptvcursor_pop_subtree(cursor
);
1635 dissect_homeplug_av_cm_get_key_req(ptvcursor_t
*cursor
)
1640 if (!ptvcursor_tree(cursor
))
1643 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cm_get_key_req
, -1, ENC_NA
);
1645 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cm_get_key_req
);
1648 ptvcursor_add(cursor
, hf_homeplug_av_cm_get_key_req_type
, 1, ENC_BIG_ENDIAN
);
1649 key_type
= tvb_get_guint8(ptvcursor_tvbuff(cursor
),
1650 ptvcursor_current_offset(cursor
));
1651 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_key_type
, 1, ENC_BIG_ENDIAN
);
1652 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_nid
, 7, ENC_NA
);
1653 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_my_nonce
, 4, ENC_LITTLE_ENDIAN
);
1654 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pid
, 1, ENC_BIG_ENDIAN
);
1655 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_prn
, 2, ENC_LITTLE_ENDIAN
);
1656 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pmn
, 1, ENC_BIG_ENDIAN
);
1657 if (key_type
== HOMEPLUG_AV_KEY_TYPE_HASH
) {
1658 ptvcursor_add(cursor
, hf_homeplug_av_cm_get_key_req_has_key
, -1, ENC_NA
);
1661 ptvcursor_pop_subtree(cursor
);
1665 dissect_homeplug_av_cm_get_key_cnf(ptvcursor_t
*cursor
)
1669 if (!ptvcursor_tree(cursor
))
1672 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cm_get_key_cnf
, -1, ENC_NA
);
1674 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cm_get_key_cnf
);
1676 ptvcursor_add(cursor
, hf_homeplug_av_cm_get_key_cnf_result
, 1, ENC_BIG_ENDIAN
);
1677 ptvcursor_add(cursor
, hf_homeplug_av_cm_get_key_cnf_rtype
, 1, ENC_BIG_ENDIAN
);
1678 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_my_nonce
, 4, ENC_LITTLE_ENDIAN
);
1679 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_your_nonce
, 4, ENC_LITTLE_ENDIAN
);
1680 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_nid
, 7, ENC_NA
);
1681 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_peks
, 1, ENC_BIG_ENDIAN
);
1682 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pid
, 1, ENC_BIG_ENDIAN
);
1683 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_prn
, 2, ENC_LITTLE_ENDIAN
);
1684 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pmn
, 1, ENC_BIG_ENDIAN
);
1685 ptvcursor_add(cursor
, hf_homeplug_av_cm_get_key_cnf_key
, -1, ENC_NA
);
1687 ptvcursor_pop_subtree(cursor
);
1691 dissect_homeplug_av_get_brg_infos_cnf(ptvcursor_t
*cursor
)
1698 if (!ptvcursor_tree(cursor
))
1701 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_brg_infos_cnf
, -1, ENC_NA
);
1703 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_brg_infos_cnf
);
1705 bridging
= tvb_get_guint8(ptvcursor_tvbuff(cursor
),
1706 ptvcursor_current_offset(cursor
));
1707 ptvcursor_add(cursor
, hf_homeplug_av_brg_infos_cnf_brd
, 1, ENC_BIG_ENDIAN
);
1710 ptvcursor_add(cursor
, hf_homeplug_av_brg_infos_cnf_btei
, 1, ENC_BIG_ENDIAN
);
1712 num_stas
= tvb_get_guint8(ptvcursor_tvbuff(cursor
),
1713 ptvcursor_current_offset(cursor
));
1714 ptvcursor_add(cursor
, hf_homeplug_av_brg_infos_cnf_num_stas
, 1, ENC_BIG_ENDIAN
);
1716 for (sta
= 0; sta
< num_stas
; sta
++) {
1717 ptvcursor_add(cursor
, hf_homeplug_av_brg_infos_cnf_mac
, 6, ENC_NA
);
1721 ptvcursor_pop_subtree(cursor
);
1725 dissect_homeplug_av_nw_infos_cnf(ptvcursor_t
*cursor
)
1731 if (!ptvcursor_tree(cursor
))
1734 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cm_nw_infos_cnf
, -1, ENC_NA
);
1736 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cm_nw_infos_cnf
);
1738 num_avlns
= tvb_get_guint8(ptvcursor_tvbuff(cursor
),
1739 ptvcursor_current_offset(cursor
));
1740 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_num_avlns
, 1, ENC_BIG_ENDIAN
);
1742 for (net
= 0; net
< num_avlns
; net
++) {
1743 /* Force HomePlug AV 1.0 layout here */
1744 dissect_homeplug_av_nw_info_net(cursor
, FALSE
, 0);
1747 ptvcursor_pop_subtree(cursor
);
1751 dissect_homeplug_av_nw_stats_cnf(ptvcursor_t
*cursor
)
1757 if (!ptvcursor_tree(cursor
))
1760 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_nw_stats_cnf
, -1, ENC_NA
);
1762 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_nw_stats_cnf
);
1764 num_stas
= tvb_get_guint8(ptvcursor_tvbuff(cursor
),
1765 ptvcursor_current_offset(cursor
));
1766 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_num_stas
, 1, ENC_BIG_ENDIAN
);
1768 for (sta
= 0; sta
< num_stas
; sta
++) {
1769 /* Force HomePlug AV 1.0 layout here */
1770 dissect_homeplug_av_nw_info_sta(cursor
, FALSE
, 0);
1773 ptvcursor_pop_subtree(cursor
);
1776 /* Intellon specific vendor MMEs */
1778 dissect_homeplug_av_get_sw_cnf(ptvcursor_t
*cursor
)
1782 if (!ptvcursor_tree(cursor
))
1785 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_get_sw_cnf
, -1, ENC_NA
);
1787 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_get_sw_cnf
);
1789 ptvcursor_add(cursor
, hf_homeplug_av_get_sw_cnf_status
, 1, ENC_BIG_ENDIAN
);
1790 ptvcursor_add(cursor
, hf_homeplug_av_get_sw_cnf_dev_id
, 1, ENC_BIG_ENDIAN
);
1791 ptvcursor_add(cursor
, hf_homeplug_av_get_sw_cnf_ver_len
, 1, ENC_BIG_ENDIAN
);
1792 ptvcursor_add(cursor
, hf_homeplug_av_get_sw_cnf_ver_str
, 64, ENC_ASCII
|ENC_NA
);
1793 ptvcursor_add(cursor
, hf_homeplug_av_get_sw_cnf_upg
, 1, ENC_BIG_ENDIAN
);
1795 ptvcursor_pop_subtree(cursor
);
1799 dissect_homeplug_av_wr_mem_req(ptvcursor_t
*cursor
)
1803 if (!ptvcursor_tree(cursor
))
1806 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_wr_mem_req
, -1, ENC_NA
);
1808 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_wr_mem_req
);
1810 ptvcursor_add(cursor
, hf_homeplug_av_mem_addr
, 4, ENC_LITTLE_ENDIAN
);
1811 ptvcursor_add(cursor
, hf_homeplug_av_mem_len_32bits
, 4, ENC_LITTLE_ENDIAN
);
1812 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mem_data
, -1, ENC_NA
);
1814 ptvcursor_pop_subtree(cursor
);
1818 dissect_homeplug_av_wr_mem_cnf(ptvcursor_t
*cursor
)
1822 if (!ptvcursor_tree(cursor
))
1825 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_wr_mem_cnf
, -1, ENC_NA
);
1827 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_wr_mem_cnf
);
1829 ptvcursor_add(cursor
, hf_homeplug_av_mem_status
, 1, ENC_BIG_ENDIAN
);
1830 ptvcursor_add(cursor
, hf_homeplug_av_mem_addr
, 4, ENC_LITTLE_ENDIAN
);
1831 ptvcursor_add(cursor
, hf_homeplug_av_mem_len_32bits
, 4, ENC_LITTLE_ENDIAN
);
1833 ptvcursor_pop_subtree(cursor
);
1837 dissect_homeplug_av_rd_mem_req(ptvcursor_t
*cursor
)
1841 if (!ptvcursor_tree(cursor
))
1844 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_rd_mem_req
, -1, ENC_NA
);
1846 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_rd_mem_req
);
1848 ptvcursor_add(cursor
, hf_homeplug_av_mem_addr
, 4, ENC_LITTLE_ENDIAN
);
1849 ptvcursor_add(cursor
, hf_homeplug_av_mem_len_32bits
, 4, ENC_LITTLE_ENDIAN
);
1851 ptvcursor_pop_subtree(cursor
);
1855 dissect_homeplug_av_rd_mem_cnf(ptvcursor_t
*cursor
)
1859 if (!ptvcursor_tree(cursor
))
1862 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_rd_mem_cnf
, -1, ENC_NA
);
1864 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_rd_mem_cnf
);
1866 ptvcursor_add(cursor
, hf_homeplug_av_mem_status
, 1, ENC_BIG_ENDIAN
);
1867 ptvcursor_add(cursor
, hf_homeplug_av_mem_addr
, 4, ENC_LITTLE_ENDIAN
);
1868 ptvcursor_add(cursor
, hf_homeplug_av_mem_len_32bits
, 4, ENC_LITTLE_ENDIAN
);
1869 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mem_data
, -1, ENC_NA
);
1871 ptvcursor_pop_subtree(cursor
);
1875 dissect_homeplug_av_st_mac_req(ptvcursor_t
*cursor
)
1879 if (!ptvcursor_tree(cursor
))
1882 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_st_mac_req
, -1, ENC_NA
);
1884 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_st_mac_req
);
1886 ptvcursor_add(cursor
, hf_homeplug_av_mac_module_id
, 1, ENC_BIG_ENDIAN
);
1887 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 3, ENC_NA
);
1888 ptvcursor_add(cursor
, hf_homeplug_av_st_mac_req_img_load
, 4, ENC_LITTLE_ENDIAN
);
1889 ptvcursor_add(cursor
, hf_homeplug_av_st_mac_req_img_len
, 4, ENC_LITTLE_ENDIAN
);
1890 ptvcursor_add(cursor
, hf_homeplug_av_st_mac_req_img_chksum
, 4, ENC_LITTLE_ENDIAN
);
1891 ptvcursor_add(cursor
, hf_homeplug_av_st_mac_req_img_start
, 4, ENC_LITTLE_ENDIAN
);
1893 ptvcursor_pop_subtree(cursor
);
1898 dissect_homeplug_av_st_mac_cnf(ptvcursor_t
*cursor
)
1902 if (!ptvcursor_tree(cursor
))
1905 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_st_mac_cnf
, -1, ENC_NA
);
1907 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_st_mac_cnf
);
1909 ptvcursor_add(cursor
, hf_homeplug_av_st_mac_cnf_status
, 1, ENC_BIG_ENDIAN
);
1910 ptvcursor_add(cursor
, hf_homeplug_av_mac_module_id
, 1, ENC_BIG_ENDIAN
);
1912 ptvcursor_pop_subtree(cursor
);
1916 dissect_homeplug_av_get_nvm_cnf(ptvcursor_t
*cursor
)
1920 if (!ptvcursor_tree(cursor
))
1923 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_get_nvm_cnf
, -1, ENC_NA
);
1925 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_get_nvm_cnf
);
1927 ptvcursor_add(cursor
, hf_homeplug_av_get_nvm_cnf_status
, 1, ENC_BIG_ENDIAN
);
1928 ptvcursor_add(cursor
, hf_homeplug_av_get_nvm_cnf_nvm_type
, 4, ENC_LITTLE_ENDIAN
);
1929 ptvcursor_add(cursor
, hf_homeplug_av_get_nvm_cnf_nvm_page
, 4, ENC_LITTLE_ENDIAN
);
1930 ptvcursor_add(cursor
, hf_homeplug_av_get_nvm_cnf_nvm_block
, 4, ENC_LITTLE_ENDIAN
);
1931 ptvcursor_add(cursor
, hf_homeplug_av_get_nvm_cnf_nvm_size
, 4, ENC_LITTLE_ENDIAN
);
1933 ptvcursor_pop_subtree(cursor
);
1937 dissect_homeplug_av_rs_dev_cnf(ptvcursor_t
*cursor
)
1941 if (!ptvcursor_tree(cursor
))
1944 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_rs_dev_cnf
, -1, ENC_NA
);
1946 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_rs_dev_cnf
);
1948 ptvcursor_add(cursor
, hf_homeplug_av_rs_dev_cnf_status
, 1, ENC_BIG_ENDIAN
);
1950 ptvcursor_pop_subtree(cursor
);
1953 static void dissect_homeplug_av_wr_mod_req(ptvcursor_t
*cursor
)
1957 if (!ptvcursor_tree(cursor
))
1960 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_wr_mod_req
, -1, ENC_NA
);
1962 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_wr_mod_req
);
1964 ptvcursor_add(cursor
, hf_homeplug_av_mac_module_id
, 1, ENC_BIG_ENDIAN
);
1965 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
1966 ptvcursor_add(cursor
, hf_homeplug_av_mem_len_16bits
, 2, ENC_LITTLE_ENDIAN
);
1967 ptvcursor_add(cursor
, hf_homeplug_av_mem_offset
, 4, ENC_LITTLE_ENDIAN
);
1968 ptvcursor_add(cursor
, hf_homeplug_av_mem_checksum
, 4, ENC_LITTLE_ENDIAN
);
1969 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mem_data
, -1, ENC_NA
);
1971 ptvcursor_pop_subtree(cursor
);
1974 static void dissect_homeplug_av_wr_mod_cnf(ptvcursor_t
*cursor
)
1978 if (!ptvcursor_tree(cursor
))
1981 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_wr_mod_cnf
, -1, ENC_NA
);
1983 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_wr_mod_cnf
);
1985 ptvcursor_add(cursor
, hf_homeplug_av_wr_mod_cnf_status
, 1, ENC_BIG_ENDIAN
);
1986 ptvcursor_add(cursor
, hf_homeplug_av_mac_module_id
, 1, ENC_BIG_ENDIAN
);
1987 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
1988 ptvcursor_add(cursor
, hf_homeplug_av_mem_len_16bits
, 2, ENC_LITTLE_ENDIAN
);
1989 ptvcursor_add(cursor
, hf_homeplug_av_mem_offset
, 4, ENC_LITTLE_ENDIAN
);
1991 ptvcursor_pop_subtree(cursor
);
1994 static void dissect_homeplug_av_wr_mod_ind(ptvcursor_t
*cursor
)
1998 if (!ptvcursor_tree(cursor
))
2001 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_wr_mod_ind
, -1, ENC_NA
);
2003 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_wr_mod_ind
);
2005 ptvcursor_add(cursor
, hf_homeplug_av_wr_mod_ind_status
, 1, ENC_BIG_ENDIAN
);
2006 ptvcursor_add(cursor
, hf_homeplug_av_mac_module_id
, 1, ENC_BIG_ENDIAN
);
2008 ptvcursor_pop_subtree(cursor
);
2012 dissect_homeplug_av_rd_mod_req(ptvcursor_t
*cursor
)
2016 if (!ptvcursor_tree(cursor
))
2019 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_rd_mod_req
, -1, ENC_NA
);
2021 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_rd_mod_req
);
2023 ptvcursor_add(cursor
, hf_homeplug_av_mac_module_id
, 1, ENC_BIG_ENDIAN
);
2024 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
2025 ptvcursor_add(cursor
, hf_homeplug_av_mem_len_16bits
, 2, ENC_LITTLE_ENDIAN
);
2026 ptvcursor_add(cursor
, hf_homeplug_av_mem_offset
, 4, ENC_LITTLE_ENDIAN
);
2028 ptvcursor_pop_subtree(cursor
);
2032 dissect_homeplug_av_rd_mod_cnf(ptvcursor_t
*cursor
)
2036 if (!ptvcursor_tree(cursor
))
2039 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_rd_mod_cnf
, -1, ENC_NA
);
2041 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_rd_mod_cnf
);
2043 ptvcursor_add(cursor
, hf_homeplug_av_rd_mod_cnf_status
, 1, ENC_BIG_ENDIAN
);
2044 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 3, ENC_NA
);
2045 ptvcursor_add(cursor
, hf_homeplug_av_mac_module_id
, 1, ENC_BIG_ENDIAN
);
2046 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
2047 ptvcursor_add(cursor
, hf_homeplug_av_mem_len_16bits
, 2, ENC_LITTLE_ENDIAN
);
2048 ptvcursor_add(cursor
, hf_homeplug_av_mem_offset
, 4, ENC_LITTLE_ENDIAN
);
2049 ptvcursor_add(cursor
, hf_homeplug_av_mem_checksum
, 4, ENC_LITTLE_ENDIAN
);
2050 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mem_data
, -1, ENC_NA
);
2052 ptvcursor_pop_subtree(cursor
);
2056 dissect_homeplug_av_mod_nvm_req(ptvcursor_t
*cursor
)
2060 if (!ptvcursor_tree(cursor
))
2063 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mod_nvm_req
, -1, ENC_NA
);
2065 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_mod_nvm_req
);
2067 ptvcursor_add(cursor
, hf_homeplug_av_mac_module_id
, 1, ENC_BIG_ENDIAN
);
2069 ptvcursor_pop_subtree(cursor
);
2073 dissect_homeplug_av_mod_nvm_cnf(ptvcursor_t
*cursor
)
2077 if (!ptvcursor_tree(cursor
))
2080 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mod_nvm_cnf
, -1, ENC_NA
);
2082 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_mod_nvm_cnf
);
2084 ptvcursor_add(cursor
, hf_homeplug_av_mod_nvm_cnf_status
, 1, ENC_BIG_ENDIAN
);
2085 ptvcursor_add(cursor
, hf_homeplug_av_mac_module_id
, 1, ENC_BIG_ENDIAN
);
2087 ptvcursor_pop_subtree(cursor
);
2091 dissect_homeplug_av_wd_rpt_req(ptvcursor_t
*cursor
)
2095 if (!ptvcursor_tree(cursor
))
2098 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_wd_rpt_req
, -1, ENC_NA
);
2100 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_wd_rpt_req
);
2102 ptvcursor_add(cursor
, hf_homeplug_av_wd_rpt_req_session_id
, 2, ENC_LITTLE_ENDIAN
);
2103 ptvcursor_add(cursor
, hf_homeplug_av_wd_rpt_req_clr
, 1, ENC_BIG_ENDIAN
);
2105 ptvcursor_pop_subtree(cursor
);
2109 dissect_homeplug_av_wd_rpt_ind(ptvcursor_t
*cursor
)
2113 if (!ptvcursor_tree(cursor
))
2116 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_wd_rpt_ind
, -1, ENC_NA
);
2118 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_wd_rpt_ind
);
2120 ptvcursor_add(cursor
, hf_homeplug_av_wd_rpt_ind_status
, 1, ENC_BIG_ENDIAN
);
2121 ptvcursor_add(cursor
, hf_homeplug_av_wd_rpt_ind_session_id
, 2, ENC_LITTLE_ENDIAN
);
2122 ptvcursor_add(cursor
, hf_homeplug_av_wd_rpt_ind_num_parts
, 1, ENC_BIG_ENDIAN
);
2123 ptvcursor_add(cursor
, hf_homeplug_av_wd_rpt_ind_curr_part
, 1, ENC_BIG_ENDIAN
);
2124 ptvcursor_add(cursor
, hf_homeplug_av_wd_rpt_ind_rdata_len
, 2, ENC_LITTLE_ENDIAN
);
2125 ptvcursor_add(cursor
, hf_homeplug_av_wd_rpt_ind_rdata_ofs
, 1, ENC_BIG_ENDIAN
);
2126 ptvcursor_add(cursor
, hf_homeplug_av_wd_rpt_ind_rdata
, -1, ENC_NA
);
2128 ptvcursor_pop_subtree(cursor
);
2132 dissect_homeplug_av_lnk_stats_req(ptvcursor_t
*cursor
)
2136 if (!ptvcursor_tree(cursor
))
2139 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_lnk_stats_req
, -1, ENC_NA
);
2141 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_lnk_stats_req
);
2143 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_req_mcontrol
, 1, ENC_BIG_ENDIAN
);
2144 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_req_dir
, 1, ENC_BIG_ENDIAN
);
2145 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_req_lid
, 1, ENC_BIG_ENDIAN
);
2146 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_req_macaddr
, 6, ENC_NA
);
2148 ptvcursor_pop_subtree(cursor
);
2152 dissect_homeplug_av_lnk_stats_tx(ptvcursor_t
*cursor
)
2156 if (!ptvcursor_tree(cursor
))
2159 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_lnk_stats_tx
, -1, ENC_NA
);
2161 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_lnk_stats_tx
);
2163 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_tx_mpdu_ack
, 8, ENC_LITTLE_ENDIAN
);
2164 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_tx_mpdu_col
, 8, ENC_LITTLE_ENDIAN
);
2165 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_tx_mpdu_fai
, 8, ENC_LITTLE_ENDIAN
);
2166 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_tx_pbs_pass
, 8, ENC_LITTLE_ENDIAN
);
2167 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_tx_pbs_fail
, 8, ENC_LITTLE_ENDIAN
);
2169 ptvcursor_pop_subtree(cursor
);
2173 dissect_homeplug_av_lnk_stats_rx_interval(ptvcursor_t
*cursor
)
2177 if (!ptvcursor_tree(cursor
))
2180 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_rx_inv_stats
, -1, ENC_NA
);
2182 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_lnk_stats_rx_inv
);
2184 ptvcursor_add(cursor
, hf_homeplug_av_rx_inv_phy_rate
, 1, ENC_BIG_ENDIAN
);
2185 ptvcursor_add(cursor
, hf_homeplug_av_rx_inv_pbs_pass
, 8, ENC_LITTLE_ENDIAN
);
2186 ptvcursor_add(cursor
, hf_homeplug_av_rx_inv_pbs_fail
, 8, ENC_LITTLE_ENDIAN
);
2187 ptvcursor_add(cursor
, hf_homeplug_av_rx_inv_tb_pass
, 8, ENC_LITTLE_ENDIAN
);
2188 ptvcursor_add(cursor
, hf_homeplug_av_rx_inv_tb_fail
, 8, ENC_LITTLE_ENDIAN
);
2190 ptvcursor_pop_subtree(cursor
);
2194 dissect_homeplug_av_lnk_stats_rx(ptvcursor_t
*cursor
)
2197 guint8 num_rx_interval
;
2200 if (!ptvcursor_tree(cursor
))
2203 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_lnk_stats_rx
, -1, ENC_NA
);
2205 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_lnk_stats_rx
);
2207 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_rx_mpdu_ack
, 8, ENC_LITTLE_ENDIAN
);
2208 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_rx_mpdu_fai
, 8, ENC_LITTLE_ENDIAN
);
2209 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_rx_pbs_pass
, 8, ENC_LITTLE_ENDIAN
);
2210 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_rx_pbs_fail
, 8, ENC_LITTLE_ENDIAN
);
2211 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_rx_tb_pass
, 8, ENC_LITTLE_ENDIAN
);
2212 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_rx_tb_fail
, 8, ENC_LITTLE_ENDIAN
);
2213 num_rx_interval
= tvb_get_guint8(ptvcursor_tvbuff(cursor
),
2214 ptvcursor_current_offset(cursor
));
2215 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_rx_num_int
, 1, ENC_BIG_ENDIAN
);
2217 for (interval
= 0; interval
< num_rx_interval
; interval
++) {
2218 dissect_homeplug_av_lnk_stats_rx_interval(cursor
);
2221 ptvcursor_pop_subtree(cursor
);
2225 dissect_homeplug_av_lnk_stats_cnf(ptvcursor_t
*cursor
)
2231 if (!ptvcursor_tree(cursor
))
2234 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_lnk_stats_cnf
, -1, ENC_NA
);
2236 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_lnk_stats_cnf
);
2238 status
= tvb_get_guint8(ptvcursor_tvbuff(cursor
),
2239 ptvcursor_current_offset(cursor
));
2240 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_cnf_status
, 1, ENC_BIG_ENDIAN
);
2242 direction
= tvb_get_guint8(ptvcursor_tvbuff(cursor
),
2243 ptvcursor_current_offset(cursor
));
2244 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_cnf_dir
, 1, ENC_BIG_ENDIAN
);
2246 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_cnf_lid
, 1, ENC_BIG_ENDIAN
);
2247 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_cnf_tei
, 1, ENC_BIG_ENDIAN
);
2249 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_lnk_stats_cnf_lstats
, -1, ENC_NA
);
2251 if (status
== HOMEPLUG_AV_LNK_STATS_STATUS_SUCCESS
)
2253 switch (direction
) {
2254 case HOMEPLUG_AV_LNK_STATS_DIR_TX
:
2255 dissect_homeplug_av_lnk_stats_tx(cursor
);
2257 case HOMEPLUG_AV_LNK_STATS_DIR_RX
:
2258 dissect_homeplug_av_lnk_stats_rx(cursor
);
2260 case HOMEPLUG_AV_LNK_STATS_DIR_TX_RX
:
2261 dissect_homeplug_av_lnk_stats_tx(cursor
);
2262 dissect_homeplug_av_lnk_stats_rx(cursor
);
2267 ptvcursor_pop_subtree(cursor
);
2271 dissect_homeplug_av_sniffer_req(ptvcursor_t
*cursor
)
2275 if (!ptvcursor_tree(cursor
))
2278 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_sniffer_req
, -1, ENC_NA
);
2280 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_sniffer_req
);
2282 ptvcursor_add(cursor
, hf_homeplug_av_sniffer_req_ctrl
, 1, ENC_BIG_ENDIAN
);
2283 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 4, ENC_NA
);
2285 ptvcursor_pop_subtree(cursor
);
2289 dissect_homeplug_av_sniffer_cnf(ptvcursor_t
*cursor
)
2293 if (!ptvcursor_tree(cursor
))
2296 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_sniffer_cnf
, -1, ENC_NA
);
2298 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_sniffer_cnf
);
2300 ptvcursor_add(cursor
, hf_homeplug_av_sniffer_cnf_status
, 1, ENC_BIG_ENDIAN
);
2301 ptvcursor_add(cursor
, hf_homeplug_av_sniffer_cnf_state
, 1, ENC_BIG_ENDIAN
);
2302 ptvcursor_add(cursor
, hf_homeplug_av_sniffer_cnf_da
, 6, ENC_NA
);
2304 ptvcursor_pop_subtree(cursor
);
2308 dissect_homeplug_av_sniffer_ind(ptvcursor_t
*cursor
)
2311 proto_item
*it_data
;
2313 if (!ptvcursor_tree(cursor
))
2316 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_sniffer_ind
, -1, ENC_NA
);
2318 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_sniffer_ind
);
2320 ptvcursor_add(cursor
, hf_homeplug_av_sniffer_ind_type
, 1, ENC_BIG_ENDIAN
);
2322 it_data
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_sniffer_ind_data
, -1, ENC_NA
);
2324 ptvcursor_push_subtree(cursor
, it_data
, ett_homeplug_av_sniffer_ind_data
);
2326 ptvcursor_add(cursor
, hf_homeplug_av_sniffer_data_dir
, 1, ENC_BIG_ENDIAN
);
2327 ptvcursor_add(cursor
, hf_homeplug_av_sniffer_data_systime
, 8, ENC_LITTLE_ENDIAN
);
2328 ptvcursor_add(cursor
, hf_homeplug_av_sniffer_data_bc_time
, 4, ENC_LITTLE_ENDIAN
);
2329 dissect_homeplug_av_frame_control(cursor
);
2330 dissect_homeplug_av_beacon(cursor
);
2332 ptvcursor_pop_subtree(cursor
);
2334 ptvcursor_pop_subtree(cursor
);
2338 dissect_homeplug_av_nw_info_cnf(ptvcursor_t
*cursor
, guint8 homeplug_av_mmver
)
2345 if (!ptvcursor_tree(cursor
))
2348 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_nw_info_cnf
, -1, ENC_NA
);
2350 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_nw_info_cnf
);
2352 if (homeplug_av_mmver
== 1)
2353 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 5, ENC_NA
);
2355 num_avlns
= tvb_get_guint8(ptvcursor_tvbuff(cursor
),
2356 ptvcursor_current_offset(cursor
));
2357 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_num_avlns
, 1, ENC_BIG_ENDIAN
);
2360 dissect_homeplug_av_nw_info_net(cursor
, TRUE
, homeplug_av_mmver
);
2361 num_stas
= tvb_get_guint8(ptvcursor_tvbuff(cursor
),
2362 ptvcursor_current_offset(cursor
));
2363 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_num_stas
, 1, ENC_BIG_ENDIAN
);
2365 if (homeplug_av_mmver
== 1)
2366 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 5, ENC_NA
);
2368 for (sta
= 0; sta
< num_stas
; sta
++) {
2369 dissect_homeplug_av_nw_info_sta(cursor
, TRUE
, homeplug_av_mmver
);
2373 ptvcursor_pop_subtree(cursor
);
2377 dissect_homeplug_av_cp_rpt_req(ptvcursor_t
*cursor
)
2381 if (!ptvcursor_tree(cursor
))
2384 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cp_rpt_req
, -1, ENC_NA
);
2386 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cp_rpt_req
);
2388 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_req_session_id
, 2, ENC_LITTLE_ENDIAN
);
2389 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_req_clr
, 1, ENC_BIG_ENDIAN
);
2391 ptvcursor_pop_subtree(cursor
);
2395 dissect_homeplug_av_cp_rpt_ind(ptvcursor_t
*cursor
)
2399 if (!ptvcursor_tree(cursor
))
2402 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cp_rpt_ind
, -1, ENC_NA
);
2404 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cp_rpt_ind
);
2406 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_status
, 1, ENC_LITTLE_ENDIAN
);
2407 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_major_ver
, 1, ENC_BIG_ENDIAN
);
2408 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_minor_ver
, 1, ENC_BIG_ENDIAN
);
2409 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 14, ENC_NA
);
2410 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_session_id
, 2, ENC_LITTLE_ENDIAN
);
2411 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_total_size
, 4, ENC_LITTLE_ENDIAN
);
2412 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_blk_offset
, 4, ENC_LITTLE_ENDIAN
);
2413 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_byte_index
, 4, ENC_LITTLE_ENDIAN
);
2414 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_num_parts
, 1, ENC_BIG_ENDIAN
);
2415 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_curr_part
, 1, ENC_BIG_ENDIAN
);
2416 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_data_len
, 2, ENC_LITTLE_ENDIAN
);
2417 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_data_ofs
, 1, ENC_LITTLE_ENDIAN
);
2418 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cp_rpt_ind_data
, -1, ENC_NA
);
2420 ptvcursor_pop_subtree(cursor
);
2424 dissect_homeplug_av_fr_lbk_req(ptvcursor_t
*cursor
)
2428 if (!ptvcursor_tree(cursor
))
2431 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fr_lbk_req
, -1, ENC_NA
);
2433 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_fr_lbk_req
);
2435 ptvcursor_add(cursor
, hf_homeplug_av_fr_lbk_duration
, 1, ENC_BIG_ENDIAN
);
2436 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
2437 ptvcursor_add(cursor
, hf_homeplug_av_fr_lbk_len
, 2, ENC_BIG_ENDIAN
);
2438 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fr_lbk_req_data
, -1, ENC_NA
);
2440 ptvcursor_pop_subtree(cursor
);
2444 dissect_homeplug_av_fr_lbk_cnf(ptvcursor_t
*cursor
)
2448 if (!ptvcursor_tree(cursor
))
2451 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fr_lbk_cnf
, -1, ENC_NA
);
2453 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_fr_lbk_cnf
);
2455 ptvcursor_add(cursor
, hf_homeplug_av_fr_lbk_cnf_status
, 1, ENC_BIG_ENDIAN
);
2456 ptvcursor_add(cursor
, hf_homeplug_av_fr_lbk_duration
, 1, ENC_BIG_ENDIAN
);
2457 ptvcursor_add(cursor
, hf_homeplug_av_fr_lbk_len
, 2, ENC_BIG_ENDIAN
);
2459 ptvcursor_pop_subtree(cursor
);
2463 dissect_homeplug_av_lbk_stat_cnf(ptvcursor_t
*cursor
)
2467 if (!ptvcursor_tree(cursor
))
2470 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_lbk_stat_cnf
, -1, ENC_NA
);
2472 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_lbk_stat_cnf
);
2474 ptvcursor_add(cursor
, hf_homeplug_av_lbk_stat_cnf_status
, 1, ENC_BIG_ENDIAN
);
2475 ptvcursor_add(cursor
, hf_homeplug_av_lbk_stat_cnf_lbk_stat
, 1, ENC_BIG_ENDIAN
);
2477 ptvcursor_pop_subtree(cursor
);
2481 dissect_homeplug_av_set_key_req(ptvcursor_t
*cursor
)
2485 if (!ptvcursor_tree(cursor
))
2488 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_set_key_req
, -1, ENC_NA
);
2490 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_set_key_req
);
2492 ptvcursor_add(cursor
, hf_homeplug_av_set_key_req_eks
, 1, ENC_BIG_ENDIAN
);
2493 ptvcursor_add(cursor
, hf_homeplug_av_set_key_req_nmk
, 16, ENC_NA
);
2494 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_peks
, 1, ENC_BIG_ENDIAN
);
2495 ptvcursor_add(cursor
, hf_homeplug_av_set_key_req_rda
, 6, ENC_NA
);
2496 ptvcursor_add(cursor
, hf_homeplug_av_set_key_req_dak
, 16, ENC_NA
);
2498 ptvcursor_pop_subtree(cursor
);
2502 dissect_homeplug_av_set_key_cnf(ptvcursor_t
*cursor
)
2506 if (!ptvcursor_tree(cursor
))
2509 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_set_key_cnf
, -1, ENC_NA
);
2511 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_set_key_cnf
);
2513 ptvcursor_add(cursor
, hf_homeplug_av_set_key_cnf_status
, 1, ENC_BIG_ENDIAN
);
2515 ptvcursor_pop_subtree(cursor
);
2519 dissect_homeplug_av_mfg_string_cnf(ptvcursor_t
*cursor
)
2523 if (!ptvcursor_tree(cursor
))
2526 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mfg_string_cnf
, -1, ENC_NA
);
2528 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_mfg_string_cnf
);
2530 ptvcursor_add(cursor
, hf_homeplug_av_mfg_string_cnf_status
, 1, ENC_BIG_ENDIAN
);
2531 ptvcursor_add(cursor
, hf_homeplug_av_mfg_string_cnf_len
, 1, ENC_BIG_ENDIAN
);
2532 ptvcursor_add(cursor
, hf_homeplug_av_mfg_string_cnf_string
, 64, ENC_ASCII
|ENC_NA
);
2534 ptvcursor_pop_subtree(cursor
);
2538 dissect_homeplug_av_cblock_hdr(ptvcursor_t
*cursor
)
2542 if (!ptvcursor_tree(cursor
))
2545 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cblock_hdr
, -1, ENC_NA
);
2547 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cblock_hdr
);
2549 ptvcursor_add(cursor
, hf_homeplug_av_cblock_hdr_ver
, 4, ENC_LITTLE_ENDIAN
);
2550 ptvcursor_add(cursor
, hf_homeplug_av_cblock_img_rom_addr
, 4, ENC_LITTLE_ENDIAN
);
2551 ptvcursor_add(cursor
, hf_homeplug_av_cblock_img_addr
, 4, ENC_LITTLE_ENDIAN
);
2552 ptvcursor_add(cursor
, hf_homeplug_av_cblock_img_len
, 4, ENC_LITTLE_ENDIAN
);
2553 ptvcursor_add(cursor
, hf_homeplug_av_cblock_img_chksum
, 4, ENC_LITTLE_ENDIAN
);
2554 ptvcursor_add(cursor
, hf_homeplug_av_cblock_entry_point
, 4, ENC_LITTLE_ENDIAN
);
2555 ptvcursor_add(cursor
, hf_homeplug_av_cblock_hdr_minor
, 1, ENC_NA
);
2556 ptvcursor_add(cursor
, hf_homeplug_av_cblock_hdr_img_type
, 1, ENC_NA
);
2557 ptvcursor_add(cursor
, hf_homeplug_av_cblock_hdr_ignore_mask
, 2, ENC_LITTLE_ENDIAN
);
2558 ptvcursor_add(cursor
, hf_homeplug_av_cblock_hdr_module_id
, 4, ENC_LITTLE_ENDIAN
);
2559 ptvcursor_add(cursor
, hf_homeplug_av_cblock_hdr_module_subid
, 4, ENC_LITTLE_ENDIAN
);
2560 ptvcursor_add(cursor
, hf_homeplug_av_cblock_next_hdr
, 4, ENC_LITTLE_ENDIAN
);
2561 ptvcursor_add(cursor
, hf_homeplug_av_cblock_hdr_chksum
, 4, ENC_LITTLE_ENDIAN
);
2563 ptvcursor_pop_subtree(cursor
);
2567 dissect_homeplug_av_cblock(ptvcursor_t
*cursor
)
2571 if (!ptvcursor_tree(cursor
))
2574 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cblock
, -1, ENC_NA
);
2576 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cblock
);
2578 ptvcursor_add(cursor
, hf_homeplug_av_cblock_sdram_size
, 4, ENC_LITTLE_ENDIAN
);
2579 ptvcursor_add(cursor
, hf_homeplug_av_cblock_sdram_conf
, 4, ENC_LITTLE_ENDIAN
);
2580 ptvcursor_add(cursor
, hf_homeplug_av_cblock_sdram_tim0
, 4, ENC_LITTLE_ENDIAN
);
2581 ptvcursor_add(cursor
, hf_homeplug_av_cblock_sdram_tim1
, 4, ENC_LITTLE_ENDIAN
);
2582 ptvcursor_add(cursor
, hf_homeplug_av_cblock_sdram_cntrl
, 4, ENC_LITTLE_ENDIAN
);
2583 ptvcursor_add(cursor
, hf_homeplug_av_cblock_sdram_refresh
, 4, ENC_LITTLE_ENDIAN
);
2584 ptvcursor_add(cursor
, hf_homeplug_av_cblock_mac_clock
, 4, ENC_LITTLE_ENDIAN
);
2585 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 4, ENC_NA
);
2587 ptvcursor_pop_subtree(cursor
);
2591 dissect_homeplug_av_rd_cblock_cnf(ptvcursor_t
*cursor
)
2595 if (!ptvcursor_tree(cursor
))
2598 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_rd_cblock_cnf
, -1, ENC_NA
);
2600 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_rd_cblock_cnf
);
2602 ptvcursor_add(cursor
, hf_homeplug_av_rd_cblock_cnf_status
, 1, ENC_BIG_ENDIAN
);
2603 ptvcursor_add(cursor
, hf_homeplug_av_rd_cblock_cnf_len
, 1, ENC_BIG_ENDIAN
);
2604 dissect_homeplug_av_cblock_hdr(cursor
);
2605 dissect_homeplug_av_cblock(cursor
);
2607 ptvcursor_pop_subtree(cursor
);
2611 dissect_homeplug_av_set_sdram_req(ptvcursor_t
*cursor
)
2615 if (!ptvcursor_tree(cursor
))
2618 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_set_sdram_req
, -1, ENC_NA
);
2620 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_set_sdram_req
);
2622 dissect_homeplug_av_cblock(cursor
);
2623 ptvcursor_add(cursor
, hf_homeplug_av_set_sdram_req_chksum
, 4, ENC_LITTLE_ENDIAN
);
2625 ptvcursor_pop_subtree(cursor
);
2629 dissect_homeplug_av_set_sdram_cnf(ptvcursor_t
*cursor
)
2633 if (!ptvcursor_tree(cursor
))
2636 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_set_sdram_cnf
, -1, ENC_NA
);
2638 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_set_sdram_cnf
);
2640 ptvcursor_add(cursor
, hf_homeplug_av_set_sdram_cnf_status
, 1, ENC_BIG_ENDIAN
);
2642 ptvcursor_pop_subtree(cursor
);
2646 dissect_homeplug_av_host_action_ind(ptvcursor_t
*cursor
)
2650 if (!ptvcursor_tree(cursor
))
2653 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_host_action_ind
, -1, ENC_NA
);
2655 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_host_action_ind
);
2657 ptvcursor_add(cursor
, hf_homeplug_av_host_action_ind_act
, 1, ENC_BIG_ENDIAN
);
2659 ptvcursor_pop_subtree(cursor
);
2663 dissect_homeplug_av_host_action_rsp(ptvcursor_t
*cursor
)
2667 if (!ptvcursor_tree(cursor
))
2670 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_host_action_rsp
, -1, ENC_NA
);
2672 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_host_action_rsp
);
2674 ptvcursor_add(cursor
, hf_homeplug_av_host_action_rsp_sts
, 1, ENC_BIG_ENDIAN
);
2676 ptvcursor_pop_subtree(cursor
);
2680 dissect_homeplug_av_op_attr_req(ptvcursor_t
*cursor
)
2684 if (!ptvcursor_tree(cursor
))
2687 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_op_attr_req
, -1, ENC_NA
);
2689 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_op_attr_req
);
2691 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_cookie
, 4, ENC_LITTLE_ENDIAN
);
2692 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_rep_type
, 1, ENC_BIG_ENDIAN
);
2694 ptvcursor_pop_subtree(cursor
);
2698 dissect_homeplug_av_op_attr_bin_report(ptvcursor_t
*cursor
)
2702 if (!ptvcursor_tree(cursor
))
2705 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_op_attr_cnf_data
, -1, ENC_NA
);
2707 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_op_attr_data
);
2709 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_hw
, 16, ENC_ASCII
|ENC_NA
);
2710 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw
, 16, ENC_ASCII
|ENC_NA
);
2711 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw_major
, 4, ENC_LITTLE_ENDIAN
);
2712 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw_minor
, 4, ENC_LITTLE_ENDIAN
);
2713 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw_sub
, 4, ENC_LITTLE_ENDIAN
);
2714 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw_num
, 4, ENC_LITTLE_ENDIAN
);
2715 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 4, ENC_NA
);
2716 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw_date
, 8, ENC_ASCII
|ENC_NA
);
2717 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw_rel
, 12, ENC_ASCII
|ENC_NA
);
2718 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw_sdram_type
, 1, ENC_NA
);
2719 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
2720 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_op_attr_data_sw_linefreq
, 1, ENC_NA
);
2721 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw_zerocross
, 1, ENC_NA
);
2722 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw_sdram_size
, 4, ENC_LITTLE_ENDIAN
);
2723 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw_auth_mode
, 1, ENC_NA
);
2725 ptvcursor_pop_subtree(cursor
);
2729 dissect_homeplug_av_op_attr_cnf(ptvcursor_t
*cursor
)
2733 if (!ptvcursor_tree(cursor
))
2736 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_op_attr_cnf
, -1, ENC_NA
);
2738 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_op_attr_cnf
);
2740 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_cnf_status
, 2, ENC_LITTLE_ENDIAN
);
2741 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_cookie
, 4, ENC_LITTLE_ENDIAN
);
2742 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_rep_type
, 1, ENC_BIG_ENDIAN
);
2743 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_cnf_size
, 2, ENC_LITTLE_ENDIAN
);
2744 dissect_homeplug_av_op_attr_bin_report(cursor
);
2746 ptvcursor_pop_subtree(cursor
);
2750 dissect_homeplug_av_get_enet_phy_req(ptvcursor_t
*cursor
)
2754 if (!ptvcursor_tree(cursor
))
2757 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_enet_phy_req
, -1, ENC_NA
);
2759 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_enet_phy_req
);
2761 ptvcursor_add(cursor
, hf_homeplug_av_enet_phy_req_mcontrol
, 1, ENC_BIG_ENDIAN
);
2762 ptvcursor_add(cursor
, hf_homeplug_av_enet_phy_req_addcaps
, 1, ENC_BIG_ENDIAN
);
2763 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 3, ENC_NA
);
2765 ptvcursor_pop_subtree(cursor
);
2769 dissect_homeplug_av_get_enet_phy_cnf(ptvcursor_t
*cursor
)
2773 if (!ptvcursor_tree(cursor
))
2776 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_enet_phy_cnf
, -1, ENC_NA
);
2778 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_enet_phy_cnf
);
2780 ptvcursor_add(cursor
, hf_homeplug_av_enet_phy_cnf_status
, 1, ENC_BIG_ENDIAN
);
2781 ptvcursor_add(cursor
, hf_homeplug_av_enet_phy_cnf_speed
, 1, ENC_BIG_ENDIAN
);
2782 ptvcursor_add(cursor
, hf_homeplug_av_enet_phy_cnf_duplex
, 1, ENC_BIG_ENDIAN
);
2784 ptvcursor_pop_subtree(cursor
);
2788 dissect_homeplug_av_tone_map_tx_req(ptvcursor_t
*cursor
, guint8 homeplug_av_mmver
)
2792 if (!ptvcursor_tree(cursor
))
2795 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_tone_map_tx_req
, -1, ENC_NA
);
2796 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_tone_map_tx_req
);
2798 if (homeplug_av_mmver
== HOMEPLUG_AV_MMVER_1_1
)
2800 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 4, ENC_NA
);
2801 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_req_mac
, 6, ENC_NA
);
2802 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_req_slot
, 1, ENC_BIG_ENDIAN
);
2803 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_req_coupling
, 1, ENC_LITTLE_ENDIAN
);
2807 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_req_mac
, 6, ENC_NA
);
2808 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_req_slot
, 1, ENC_BIG_ENDIAN
);
2811 ptvcursor_pop_subtree(cursor
);
2815 dissect_homeplug_av_tone_map_rx_req(ptvcursor_t
*cursor
, guint8 homeplug_av_mmver
)
2819 if (!ptvcursor_tree(cursor
))
2822 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_tone_map_rx_req
, -1, ENC_NA
);
2823 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_tone_map_rx_req
);
2825 if (homeplug_av_mmver
== HOMEPLUG_AV_MMVER_1_1
)
2827 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 4, ENC_NA
);
2828 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_req_mac
, 6, ENC_NA
);
2829 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_req_slot
, 1, ENC_BIG_ENDIAN
);
2830 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_req_coupling
, 1, ENC_LITTLE_ENDIAN
);
2834 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_req_mac
, 6, ENC_NA
);
2835 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_req_slot
, 1, ENC_BIG_ENDIAN
);
2838 ptvcursor_pop_subtree(cursor
);
2842 dissect_homeplug_av_tone_map_carrier(ptvcursor_t
*cursor
, guint16 num_carriers
)
2844 proto_item
*it
, *ittm
;
2845 guint8 hilo
, hi_bits
, lo_bits
, hi_snr
, lo_snr
;
2846 guint16 num_carrier_bytes
, cb
, cid
;
2847 guint16 num_act_carriers
=0, total_bits
=0, total_snr
=0;
2849 static const guint8 map_carrier2modbits
[] = { 0, 1, 2, 3, 4, 6, 8, 10, 12, 0, 0, 0, 0, 0, 0, 0 }; /* Carrier-Nibble to #Modulated-Bits Mapping */
2850 static const guint8 map_carrier2modbitsSnr
[] = { 0, 2, 4, 7, 10, 16, 22, 28, 36, 0, 0, 0, 0, 0, 0, 0 }; /* Carrier-Nibble to #Modulated-Bits-SNR Mapping */
2852 if (!ptvcursor_tree(cursor
))
2854 num_carrier_bytes
= num_carriers
/ 2;
2856 /* check if number of carriers is odd */
2857 if (num_carriers
& 1)
2858 num_carrier_bytes
+= 1;
2860 ittm
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_tone_map_carriers
, num_carrier_bytes
, ENC_NA
);
2861 ptvcursor_push_subtree(cursor
, ittm
, ett_homeplug_av_tone_map_carriers
);
2863 for (cb
= 0; cb
< num_carrier_bytes
; cb
++)
2865 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_tone_map_carrier
, 1, ENC_NA
);
2867 proto_item_append_text(it
, " (Carrier #%d/#%d)", cid
, cid
+1 );
2869 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_tone_map_carrier
);
2871 hilo
= tvb_get_guint8(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
2872 lo_bits
= map_carrier2modbits
[ (hilo
& 0x0f) ];
2873 hi_bits
= map_carrier2modbits
[ (hilo
& 0xf0) >> 4 ];
2874 if(lo_bits
) num_act_carriers
++;
2875 if(hi_bits
) num_act_carriers
++;
2876 lo_snr
= map_carrier2modbitsSnr
[ (hilo
& 0x0f) ];
2877 hi_snr
= map_carrier2modbitsSnr
[ (hilo
& 0xf0) >> 4 ];
2879 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_tone_map_carrier_lo
, 1, ENC_BIG_ENDIAN
);
2880 proto_item_prepend_text(it
, "Carrier #%d -> %u bits@SNR %udB: ", cid
, lo_bits
, lo_snr
);
2881 it
= ptvcursor_add(cursor
, hf_homeplug_av_tone_map_carrier_hi
, 1, ENC_BIG_ENDIAN
);
2882 proto_item_prepend_text(it
, "Carrier #%d -> %u bits@SNR %udB: ", cid
+1, hi_bits
, hi_snr
);
2884 ptvcursor_pop_subtree(cursor
);
2885 total_bits
+= (hi_bits
+lo_bits
);
2886 total_snr
+= (hi_snr
+lo_snr
);
2889 if (num_act_carriers
)
2891 /* Append to TM-Subtree: total modulated bits, number of active carriers, Average #Bits/Carrier, Average SNR/Carrier */
2892 proto_item_append_text(ittm
, " (Total #ModulatedBits=%d bit, Active #Carriers=%d, Average #Bits/Carrier=%.2f bit), Average SNR/Carrier=%.2f dB)",
2893 total_bits
, num_act_carriers
, (float) total_bits
/num_act_carriers
, (float) total_snr
/num_act_carriers
);
2895 ptvcursor_pop_subtree(cursor
);
2899 dissect_homeplug_av_tone_map_tx_cnf(ptvcursor_t
*cursor
, guint8 homeplug_av_mmver
)
2902 guint16 num_act_carriers
;
2904 if (!ptvcursor_tree(cursor
))
2907 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_tone_map_tx_cnf
, -1, ENC_NA
);
2908 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_tone_map_tx_cnf
);
2910 if (homeplug_av_mmver
== HOMEPLUG_AV_MMVER_1_1
)
2912 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_cnf_status
, 2, ENC_LITTLE_ENDIAN
);
2913 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_cnf_len
, 2, ENC_LITTLE_ENDIAN
);
2914 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 2, ENC_NA
);
2915 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_cnf_mac
, 6, ENC_NA
);
2916 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_cnf_slot
, 2, ENC_LITTLE_ENDIAN
);
2917 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_cnf_num_tms
, 2, ENC_LITTLE_ENDIAN
);
2919 num_act_carriers
= tvb_get_letohs(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
2920 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_cnf_num_act
, 2, ENC_LITTLE_ENDIAN
);
2921 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 4, ENC_NA
);
2923 if (num_act_carriers
)
2925 dissect_homeplug_av_tone_map_carrier(cursor
, num_act_carriers
);
2930 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_cnf_status
, 1, ENC_LITTLE_ENDIAN
);
2931 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_cnf_slot
, 1, ENC_LITTLE_ENDIAN
);
2932 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_cnf_num_tms
, 1, ENC_LITTLE_ENDIAN
);
2934 num_act_carriers
= tvb_get_letohs(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
2935 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_cnf_num_act
, 2, ENC_LITTLE_ENDIAN
);
2937 if (num_act_carriers
)
2939 dissect_homeplug_av_tone_map_carrier(cursor
, num_act_carriers
);
2943 ptvcursor_pop_subtree(cursor
);
2947 dissect_homeplug_av_tone_map_rx_cnf(ptvcursor_t
*cursor
, guint8 homeplug_av_mmver
)
2950 guint16 num_act_carriers
;
2952 if (!ptvcursor_tree(cursor
))
2955 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_tone_map_rx_cnf
, -1, ENC_NA
);
2956 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_tone_map_rx_cnf
);
2958 if (homeplug_av_mmver
== HOMEPLUG_AV_MMVER_1_1
)
2960 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_status
, 1, ENC_LITTLE_ENDIAN
);
2961 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
2962 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_len
, 2, ENC_LITTLE_ENDIAN
);
2963 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_subver
, 1, ENC_LITTLE_ENDIAN
);
2964 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
2965 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_mac
, 6, ENC_NA
);
2966 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_slot
, 1, ENC_LITTLE_ENDIAN
);
2967 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_coupling
, 1, ENC_LITTLE_ENDIAN
);
2968 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_num_tms
, 1, ENC_LITTLE_ENDIAN
);
2969 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
2971 num_act_carriers
= tvb_get_letohs(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
2972 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_num_act
, 2, ENC_LITTLE_ENDIAN
);
2974 if (num_act_carriers
)
2976 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 4, ENC_NA
);
2977 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_gil
, 1, ENC_LITTLE_ENDIAN
);
2978 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
2979 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_agc
, 1, ENC_LITTLE_ENDIAN
);
2980 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
2982 dissect_homeplug_av_tone_map_carrier(cursor
, num_act_carriers
);
2987 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_status
, 1, ENC_LITTLE_ENDIAN
);
2988 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_slot
, 1, ENC_LITTLE_ENDIAN
);
2989 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_num_tms
, 1, ENC_LITTLE_ENDIAN
);
2991 num_act_carriers
= tvb_get_letohs(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
2992 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_num_act
, 2, ENC_LITTLE_ENDIAN
);
2994 if (num_act_carriers
)
2996 dissect_homeplug_av_tone_map_carrier(cursor
, num_act_carriers
);
2998 if (num_act_carriers
> HOMEPLUG_AV_TONE_MAP_MAX_NUM_CARRIERS_A
)
2999 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, (HOMEPLUG_AV_TONE_MAP_MAX_NUM_CARRIERS_B
-num_act_carriers
) >>1 , ENC_NA
);
3001 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, (HOMEPLUG_AV_TONE_MAP_MAX_NUM_CARRIERS_A
-num_act_carriers
) >>1 , ENC_NA
);
3003 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_gil
, 1, ENC_LITTLE_ENDIAN
);
3004 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_agc
, 1, ENC_LITTLE_ENDIAN
);
3008 ptvcursor_pop_subtree(cursor
);
3012 dissect_homeplug_av_mme(ptvcursor_t
*cursor
, guint8 homeplug_av_mmver
, guint16 homeplug_av_mmtype
)
3015 switch (homeplug_av_mmtype
) {
3017 case HOMEPLUG_AV_MMTYPE_CC_DISC_LIST_CNF
:
3018 dissect_homeplug_av_cc_disc_list_cnf(cursor
);
3020 case HOMEPLUG_AV_MMTYPE_CM_ENC_PLD_IND
:
3021 dissect_homeplug_av_cm_enc_pld_ind(cursor
);
3023 case HOMEPLUG_AV_MMTYPE_CM_ENC_PLD_RSP
:
3024 dissect_homeplug_av_cm_enc_pld_rsp(cursor
);
3026 case HOMEPLUG_AV_MMTYPE_CM_SET_KEY_REQ
:
3027 dissect_homeplug_av_cm_set_key_req(cursor
);
3029 case HOMEPLUG_AV_MMTYPE_CM_SET_KEY_CNF
:
3030 dissect_homeplug_av_cm_set_key_cnf(cursor
);
3032 case HOMEPLUG_AV_MMTYPE_CM_GET_KEY_REQ
:
3033 dissect_homeplug_av_cm_get_key_req(cursor
);
3035 case HOMEPLUG_AV_MMTYPE_CM_GET_KEY_CNF
:
3036 dissect_homeplug_av_cm_get_key_cnf(cursor
);
3038 case HOMEPLUG_AV_MMTYPE_CM_BRG_INFO_CNF
:
3039 dissect_homeplug_av_get_brg_infos_cnf(cursor
);
3041 case HOMEPLUG_AV_MMTYPE_CM_NW_INFO_CNF
:
3042 dissect_homeplug_av_nw_infos_cnf(cursor
);
3044 case HOMEPLUG_AV_MMTYPE_CM_NW_STATS_CNF
:
3045 dissect_homeplug_av_nw_stats_cnf(cursor
);
3048 /* Intellon Vendor-specific MMEs */
3049 case HOMEPLUG_AV_MMTYPE_GET_SW_CNF
:
3050 dissect_homeplug_av_get_sw_cnf(cursor
);
3052 case HOMEPLUG_AV_MMTYPE_WR_MEM_REQ
:
3053 dissect_homeplug_av_wr_mem_req(cursor
);
3055 case HOMEPLUG_AV_MMTYPE_WR_MEM_CNF
:
3056 dissect_homeplug_av_wr_mem_cnf(cursor
);
3058 case HOMEPLUG_AV_MMTYPE_RD_MEM_REQ
:
3059 dissect_homeplug_av_rd_mem_req(cursor
);
3061 case HOMEPLUG_AV_MMTYPE_RD_MEM_CNF
:
3062 dissect_homeplug_av_rd_mem_cnf(cursor
);
3064 case HOMEPLUG_AV_MMTYPE_ST_MAC_REQ
:
3065 dissect_homeplug_av_st_mac_req(cursor
);
3067 case HOMEPLUG_AV_MMTYPE_ST_MAC_CNF
:
3068 dissect_homeplug_av_st_mac_cnf(cursor
);
3070 case HOMEPLUG_AV_MMTYPE_GET_NVM_CNF
:
3071 dissect_homeplug_av_get_nvm_cnf(cursor
);
3073 case HOMEPLUG_AV_MMTYPE_RS_DEV_CNF
:
3074 dissect_homeplug_av_rs_dev_cnf(cursor
);
3076 case HOMEPLUG_AV_MMTYPE_WR_MOD_REQ
:
3077 dissect_homeplug_av_wr_mod_req(cursor
);
3079 case HOMEPLUG_AV_MMTYPE_WR_MOD_CNF
:
3080 dissect_homeplug_av_wr_mod_cnf(cursor
);
3082 case HOMEPLUG_AV_MMTYPE_WR_MOD_IND
:
3083 dissect_homeplug_av_wr_mod_ind(cursor
);
3085 case HOMEPLUG_AV_MMTYPE_RD_MOD_REQ
:
3086 dissect_homeplug_av_rd_mod_req(cursor
);
3088 case HOMEPLUG_AV_MMTYPE_RD_MOD_CNF
:
3089 dissect_homeplug_av_rd_mod_cnf(cursor
);
3091 case HOMEPLUG_AV_MMTYPE_NVM_MOD_REQ
:
3092 dissect_homeplug_av_mod_nvm_req(cursor
);
3094 case HOMEPLUG_AV_MMTYPE_NVM_MOD_CNF
:
3095 dissect_homeplug_av_mod_nvm_cnf(cursor
);
3097 case HOMEPLUG_AV_MMTYPE_WD_RPT_REQ
:
3098 dissect_homeplug_av_wd_rpt_req(cursor
);
3100 case HOMEPLUG_AV_MMTYPE_WD_RPT_IND
:
3101 dissect_homeplug_av_wd_rpt_ind(cursor
);
3103 case HOMEPLUG_AV_MMTYPE_LNK_STATS_REQ
:
3104 dissect_homeplug_av_lnk_stats_req(cursor
);
3106 case HOMEPLUG_AV_MMTYPE_LNK_STATS_CNF
:
3107 dissect_homeplug_av_lnk_stats_cnf(cursor
);
3109 case HOMEPLUG_AV_MMTYPE_SNIFFER_REQ
:
3110 dissect_homeplug_av_sniffer_req(cursor
);
3112 case HOMEPLUG_AV_MMTYPE_SNIFFER_CNF
:
3113 dissect_homeplug_av_sniffer_cnf(cursor
);
3115 case HOMEPLUG_AV_MMTYPE_SNIFFER_IND
:
3116 dissect_homeplug_av_sniffer_ind(cursor
);
3118 case HOMEPLUG_AV_MMTYPE_NW_INFO_CNF
:
3119 dissect_homeplug_av_nw_info_cnf(cursor
, homeplug_av_mmver
);
3121 case HOMEPLUG_AV_MMTYPE_CP_RPT_REQ
:
3122 dissect_homeplug_av_cp_rpt_req(cursor
);
3124 case HOMEPLUG_AV_MMTYPE_CP_RPT_IND
:
3125 dissect_homeplug_av_cp_rpt_ind(cursor
);
3127 case HOMEPLUG_AV_MMTYPE_FR_LBK_REQ
:
3128 dissect_homeplug_av_fr_lbk_req(cursor
);
3130 case HOMEPLUG_AV_MMTYPE_FR_LBK_CNF
:
3131 dissect_homeplug_av_fr_lbk_cnf(cursor
);
3133 case HOMEPLUG_AV_MMTYPE_LBK_STAT_CNF
:
3134 dissect_homeplug_av_lbk_stat_cnf(cursor
);
3136 case HOMEPLUG_AV_MMTYPE_SET_KEY_REQ
:
3137 dissect_homeplug_av_set_key_req(cursor
);
3139 case HOMEPLUG_AV_MMTYPE_SET_KEY_CNF
:
3140 dissect_homeplug_av_set_key_cnf(cursor
);
3142 case HOMEPLUG_AV_MMTYPE_MFG_STRING_CNF
:
3143 dissect_homeplug_av_mfg_string_cnf(cursor
);
3145 case HOMEPLUG_AV_MMTYPE_RD_CBLOCK_CNF
:
3146 dissect_homeplug_av_rd_cblock_cnf(cursor
);
3148 case HOMEPLUG_AV_MMTYPE_SET_SDRAM_REQ
:
3149 dissect_homeplug_av_set_sdram_req(cursor
);
3151 case HOMEPLUG_AV_MMTYPE_SET_SDRAM_CNF
:
3152 dissect_homeplug_av_set_sdram_cnf(cursor
);
3154 case HOMEPLUG_AV_MMTYPE_HOST_ACTION_IND
:
3155 dissect_homeplug_av_host_action_ind(cursor
);
3157 case HOMEPLUG_AV_MMTYPE_HOST_ACTION_RSP
:
3158 dissect_homeplug_av_host_action_rsp(cursor
);
3160 case HOMEPLUG_AV_MMTYPE_OP_ATTR_REQ
:
3161 dissect_homeplug_av_op_attr_req(cursor
);
3163 case HOMEPLUG_AV_MMTYPE_OP_ATTR_CNF
:
3164 dissect_homeplug_av_op_attr_cnf(cursor
);
3166 case HOMEPLUG_AV_MMTYPE_GET_ENET_PHY_REQ
:
3167 dissect_homeplug_av_get_enet_phy_req(cursor
);
3169 case HOMEPLUG_AV_MMTYPE_GET_ENET_PHY_CNF
:
3170 dissect_homeplug_av_get_enet_phy_cnf(cursor
);
3172 case HOMEPLUG_AV_MMTYPE_TONE_MAP_RX_REQ
:
3173 dissect_homeplug_av_tone_map_rx_req(cursor
, homeplug_av_mmver
);
3175 case HOMEPLUG_AV_MMTYPE_TONE_MAP_RX_CNF
:
3176 dissect_homeplug_av_tone_map_rx_cnf(cursor
, homeplug_av_mmver
);
3178 case HOMEPLUG_AV_MMTYPE_TONE_MAP_TX_REQ
:
3179 dissect_homeplug_av_tone_map_tx_req(cursor
, homeplug_av_mmver
);
3181 case HOMEPLUG_AV_MMTYPE_TONE_MAP_TX_CNF
:
3182 dissect_homeplug_av_tone_map_tx_cnf(cursor
, homeplug_av_mmver
);
3192 dissect_homeplug_av(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
)
3194 proto_item
*ti
= NULL
;
3195 proto_tree
*homeplug_av_tree
= NULL
;
3196 ptvcursor_t
*cursor
;
3197 guint8 homeplug_av_mmver
;
3198 guint16 homeplug_av_mmtype
;
3200 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "HomePlug AV");
3201 col_set_str(pinfo
->cinfo
, COL_INFO
, "MAC Management");
3204 ti
= proto_tree_add_item(tree
, proto_homeplug_av
, tvb
, 0, -1, ENC_NA
);
3205 homeplug_av_tree
= proto_item_add_subtree(ti
, ett_homeplug_av
);
3208 cursor
= ptvcursor_new(homeplug_av_tree
, tvb
, 0);
3210 /* Check if we have enough data to process the header */
3211 if (check_tvb_length(cursor
, HOMEPLUG_AV_MMHDR_LEN
) != TVB_LEN_SHORTEST
) {
3213 dissect_homeplug_av_mmhdr(cursor
, &homeplug_av_mmver
, &homeplug_av_mmtype
);
3215 col_append_sep_str(pinfo
->cinfo
, COL_INFO
, ", ",
3216 val_to_str_ext(homeplug_av_mmtype
, &homeplug_av_mmtype_vals_ext
, "Unknown 0x%x"));
3218 dissect_homeplug_av_mme(cursor
, homeplug_av_mmver
, homeplug_av_mmtype
);
3221 ptvcursor_free(cursor
);
3225 proto_register_homeplug_av(void)
3227 static hf_register_info hf
[] = {
3228 { &hf_homeplug_av_reserved
,
3229 { "Reserved", "homeplug_av.reserved",
3230 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3233 { &hf_homeplug_av_mmhdr
,
3234 { "MAC Management Header", "homeplug_av.mmhdr",
3235 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3237 { &hf_homeplug_av_mmhdr_mmver
,
3238 { "Version", "homeplug_av.mmhdr.mmver",
3239 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_mmver_vals
), HOMEPLUG_AV_MMVER_MASK
, NULL
, HFILL
}
3241 { &hf_homeplug_av_mmhdr_mmtype
,
3242 { "Type", "homeplug_av.mmhdr.mmtype",
3243 FT_UINT16
, BASE_HEX
| BASE_EXT_STRING
, &homeplug_av_mmtype_vals_ext
, 0x0000, NULL
, HFILL
}
3245 { &hf_homeplug_av_mmhdr_mmtype_lsb
,
3246 { "LSB", "homeplug_av.mmhdr.mmtype.lsb",
3247 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_mmtype_lsb_vals
), HOMEPLUG_AV_MMTYPE_LSB_MASK
, NULL
, HFILL
}
3249 { &hf_homeplug_av_mmhdr_mmtype_msb
,
3250 { "MSB", "homeplug_av.mmhdr.mmtype.msb",
3251 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_mmtype_msb_vals
), HOMEPLUG_AV_MMTYPE_MSB_MASK
, "Reserved", HFILL
},
3253 { &hf_homeplug_av_mmhdr_fmi
,
3254 { "Fragmentation Info", "homeplug_av.mmhdr.fmi",
3255 FT_UINT16
, BASE_HEX
, NULL
, 0x0000, "Reserved", HFILL
},
3258 { &hf_homeplug_av_public
,
3259 { "Public MME", "homeplug_av.public",
3260 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3262 { &hf_homeplug_av_public_frag_count
,
3263 { "Fragment count", "homeplug_av.public.frag_count",
3264 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_PUBLIC_FRAG_COUNT_MASK
, NULL
, HFILL
}
3266 { &hf_homeplug_av_public_frag_index
,
3267 { "Fragment index", "homeplug_av.public.frag_index",
3268 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_PUBLIC_FRAG_INDEX_MASK
, NULL
, HFILL
}
3270 { &hf_homeplug_av_public_frag_seqnum
,
3271 { "Fragment Sequence number", "homeplug_av.public.frag_seqnum",
3272 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3275 { &hf_homeplug_av_fc
,
3276 { "Frame control", "homeplug_av.fc",
3277 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3279 { &hf_homeplug_av_fc_stei
,
3280 { "Source Terminal Equipment Identifier", "homeplug_av.fc.snei",
3281 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3283 { &hf_homeplug_av_fc_dtei
,
3284 { "Destination Terminal Equipment Identifier", "homeplug_av.fc.dtei",
3285 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3287 { &hf_homeplug_av_fc_lid
,
3288 { "Link ID", "homeplug_av.fc.lid",
3289 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3291 { &hf_homeplug_av_fc_cfs
,
3292 { "Contention free session", "homeplug_av.fc.cfs",
3293 FT_BOOLEAN
, 8, NULL
, 0x01, NULL
, HFILL
}
3295 { &hf_homeplug_av_fc_bdf
,
3296 { "Beacon detect flag", "homeplug_av.fc.bdf",
3297 FT_BOOLEAN
, 8, NULL
, 0x02, NULL
, HFILL
}
3299 { &hf_homeplug_av_fc_hp10df
,
3300 { "Homeplug AV version 1.0", "homeplug_av.fc.hp10df",
3301 FT_BOOLEAN
, 8, NULL
, 0x04, NULL
, HFILL
}
3303 { &hf_homeplug_av_fc_hp11df
,
3304 { "Homeplug AV version 1.1", "homeplug_av.fc.hp11df",
3305 FT_BOOLEAN
, 8, NULL
, 0x08, NULL
, HFILL
}
3307 { &hf_homeplug_av_fc_ppb
,
3308 { "Pending PHY blocks", "homeplug_av.fc.ppb",
3309 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3311 { &hf_homeplug_av_fc_ble
,
3312 { "Bit loading estimate", "homeplug_av.fc.ble",
3313 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3315 { &hf_homeplug_av_fc_pbsz
,
3316 { "PHY block size", "homeplug_av.fc.pbsz",
3317 FT_BOOLEAN
, 8, NULL
, 0x01, NULL
, HFILL
}
3319 { &hf_homeplug_av_fc_num_sym
,
3320 { "Number of symbols", "homeplug_av.fc.num_sym",
3321 FT_UINT8
, BASE_DEC
, NULL
, 0x06, NULL
, HFILL
}
3323 { &hf_homeplug_av_fc_tmi_av
,
3324 { "Tonemap index", "homeplug_av.fc.tmi_av",
3325 FT_UINT8
, BASE_DEC
, NULL
, 0xF8, NULL
, HFILL
}
3327 { &hf_homeplug_av_fc_fl_av
,
3328 { "Frame length", "homeplug_av.fc.fl_av",
3329 FT_UINT16
, BASE_DEC
, NULL
, 0x0FFF, NULL
, HFILL
}
3331 { &hf_homeplug_av_fc_mpdu_cnt
,
3332 { "MPDU count", "homeplug_av.fc.mpdu_cnt",
3333 FT_UINT8
, BASE_DEC
, NULL
, 0x3000, NULL
, HFILL
}
3335 { &hf_homeplug_av_fc_burst_cnt
,
3336 { "Burst count", "homeplug_av.fc.burst_cnt",
3337 FT_UINT8
, BASE_DEC
, NULL
, 0xC000, NULL
, HFILL
}
3339 { &hf_homeplug_av_fc_clst
,
3340 { "Convergence layer SAP type", "homeplug_av.fc.clst",
3341 FT_UINT8
, BASE_HEX
, NULL
, 0x07, NULL
, HFILL
}
3343 { &hf_homeplug_av_fc_rg_len
,
3344 { "Reverse grant length", "homeplug_av.fc.rg_len",
3345 FT_UINT8
, BASE_DEC
, NULL
, 0x3F, NULL
, HFILL
}
3347 { &hf_homeplug_av_fc_mfs_cmd_mgmt
,
3348 { "Management MAC frame stream command", "homeplug_av.fc.mfs_cmd_mgmt",
3349 FT_UINT8
, BASE_DEC
, NULL
, 0x0E, NULL
, HFILL
}
3351 { &hf_homeplug_av_fc_mfs_cmd_data
,
3352 { "Data MAC frame stream command", "homeplug_av.fc.mfs_data_mgmt",
3353 FT_UINT8
, BASE_DEC
, NULL
, 0x70, NULL
, HFILL
}
3355 { &hf_homeplug_av_fc_rsr
,
3356 { "Request SACK transmission", "homeplug_av.fc.rsr",
3357 FT_BOOLEAN
, 8, NULL
, 0x80, NULL
, HFILL
}
3359 { &hf_homeplug_av_fc_mcf
,
3360 { "Multicast", "homeplug_av.fc.mcf",
3361 FT_BOOLEAN
, 8, NULL
, 0x01, NULL
, HFILL
}
3363 { &hf_homeplug_av_fc_dccpcf
,
3364 { "Different CP PHY clock", "homeplug_av.fc.dccpcf",
3365 FT_BOOLEAN
, 8, NULL
, 0x02, NULL
, HFILL
}
3367 { &hf_homeplug_av_fc_mnbf
,
3368 { "Multinetwork broadcast", "homeplug_av.fc.mnbf",
3369 FT_BOOLEAN
, 8, NULL
, 0x04, NULL
, HFILL
}
3372 { &hf_homeplug_av_bcn
,
3373 { "Beacon", "homeplug_av.bcn",
3374 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3376 { &hf_homeplug_av_bcn_bts
,
3377 { "Beacon timestamp", "homeplug_av.bcn.bts",
3378 FT_UINT32
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3380 { &hf_homeplug_av_bcn_bto_0
,
3381 { "Beacon transmission offset 0", "homeplug_av.bcn.bto_0",
3382 FT_UINT16
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
3384 { &hf_homeplug_av_bcn_bto_1
,
3385 { "Beacon transmission offset 1", "homeplug_av.bcn.bto_1",
3386 FT_UINT16
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
3388 { &hf_homeplug_av_bcn_bto_2
,
3389 { "Beacon transmission offset 2", "homeplug_av.bcn.bto_2",
3390 FT_UINT16
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
3392 { &hf_homeplug_av_bcn_bto_3
,
3393 { "Beacon transmission offset 3", "homeplug_av.bcn.bto_3",
3394 FT_UINT16
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
3396 /* Central Coordination Discovery List Confirmation */
3397 { &hf_homeplug_av_cc_disc_list_cnf
,
3398 { "Central Coordination Discovery List Confirmation", "homeplug_av.cc_disc_list_cnf",
3399 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3401 /* Station informations */
3402 { &hf_homeplug_av_cc_disc_list_sta_cnt
,
3403 { "Station count", "homeplug_av.cc_disc_list_cnf.sta_cnt",
3404 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3406 { &hf_homeplug_av_cc_sta_info
,
3407 { "Station information", "homeplug_av.cc_disc_list_cnf.sta_info",
3408 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3410 { &hf_homeplug_av_cc_sta_info_mac
,
3411 { "MAC address", "homeplug_av.cc_disc_list_cnf.sta_info.mac",
3412 FT_ETHER
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3414 { &hf_homeplug_av_cc_sta_info_tei
,
3415 { "Terminal Equipment Identifier", "homeplug_av.cc_disc_list_cnf.sta_info.tei",
3416 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3418 { &hf_homeplug_av_cc_sta_info_same_net
,
3419 { "Network type", "homeplug_av.cc_disc_list_cnf.sta_info.same_net",
3420 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_cc_sta_net_type_vals
), HOMEPLUG_AV_CC_STA_NET_MASK
, NULL
, HFILL
}
3422 { &hf_homeplug_av_cc_sta_info_sig_level
,
3423 { "Signal level", "homeplug_av.cc_disc_list_cnf.sta_info.sig_level",
3424 FT_UINT8
, BASE_HEX
| BASE_EXT_STRING
, &homeplug_av_sig_level_vals_ext
, 0x00, "Reserved", HFILL
}
3426 { &hf_homeplug_av_cc_sta_info_avg_ble
,
3427 { "Average BLE", "homeplug_av.cc_disc_list_cnf.sta_info.avg_ble",
3428 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3431 { &hf_homeplug_av_cc_disc_list_net_cnt
,
3432 { "Network count", "homeplug_av.cc_disc_list_cnf.net_cnt",
3433 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3435 { &hf_homeplug_av_cc_net_info
,
3436 { "Network information", "homeplug_av.cc_disc_list_cnf.net_info",
3437 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3439 { &hf_homeplug_av_cc_net_info_hyb_mode
,
3440 { "Hybrid mode", "homeplug_av.cc_disc_list_cnf.net_info.hyb_mode",
3441 FT_UINT8
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
3443 { &hf_homeplug_av_cc_net_info_bcn_slots
,
3444 { "Beacon slots", "homeplug_av.cc_disc_list_cnf.net_info.bcn_slots",
3445 FT_UINT8
, BASE_DEC
, NULL
, 0x08, "Reserved", HFILL
}
3447 { &hf_homeplug_av_cc_net_info_cco_sts
,
3448 { "Coordinating status", "homeplug_av.cc_disc_list_cnf.net_info.cco_status",
3449 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_cco_status_vals
), HOMEPLUG_AV_CCO_STATUS_MASK
, "Unknown", HFILL
}
3451 { &hf_homeplug_av_cc_net_info_bcn_ofs
,
3452 { "Beacon offset", "homeplug_av.cc_disc_list_cnf.net_info.bcn_ofs",
3453 FT_UINT16
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
3455 /* Shared encrypted related fields */
3456 { &hf_homeplug_av_nw_info_del_type
,
3457 { "Delimiter type", "homeplug_av.nw_info.del_type",
3458 FT_UINT8
, BASE_HEX
, NULL
, 0x07, NULL
, HFILL
}
3460 { &hf_homeplug_av_nw_info_fccs_av
,
3461 { "Frame control check sequence", "homeplug_av.nw_info.fccs_av",
3462 FT_BYTES
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3464 { &hf_homeplug_av_nw_info_peks
,
3465 { "Payload Encryption Key Select", "homeplug_av.nw_info.peks",
3466 FT_UINT8
, BASE_HEX
| BASE_EXT_STRING
, &homeplug_av_peks_vals_ext
, HOMEPLUG_AV_PEKS_MASK
, NULL
, HFILL
}
3468 { &hf_homeplug_av_nw_info_pid
,
3469 { "Protocol ID", "homeplug_av.nw_info.pid",
3470 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_pid_vals
), HOMEPLUG_AV_PID_MASK
, "Reserved", HFILL
}
3472 { &hf_homeplug_av_nw_info_prn
,
3473 { "Protocol run number", "homeplug_av.nw_info.prn",
3474 FT_UINT16
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3476 { &hf_homeplug_av_nw_info_pmn
,
3477 { "Protocol message number", "homeplug_av.nw_info.pmn",
3478 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3480 { &hf_homeplug_av_nw_info_my_nonce
,
3481 { "My nonce", "homeplug_av.nw_info.my_nonce",
3482 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
3484 { &hf_homeplug_av_nw_info_your_nonce
,
3485 { "Your nonce", "homeplug_av.nw_info.your_nonce",
3486 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
3488 { &hf_homeplug_av_nw_info_cco_cap
,
3489 { "CCo capabilities", "homeplug_av.nw_info.cco_cap",
3490 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_nw_info_role_vals
), HOMEPLUG_AV_NW_INFO_ROLE_MASK
, NULL
, HFILL
}
3492 { &hf_homeplug_av_nw_info_key_type
,
3493 { "Key type", "homeplug_av.nw_info.key_type",
3494 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_key_type_vals
), HOMEPLUG_AV_KEY_TYPE_MASK
, NULL
, HFILL
}
3496 /* Encrypted Payload Indicate */
3497 { &hf_homeplug_av_cm_enc_pld_ind
,
3498 { "Encrypted Payload Indicate", "homeplug_av.cm_enc_pld_ind",
3499 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3501 { &hf_homeplug_av_cm_enc_pld_ind_avlns
,
3502 { "AVLN status", "homeplug_av.cm_enc_pld_ind.avlns",
3503 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_avln_status_vals
), HOMEPLUG_AV_AVLN_STATUS_MASK
, "Reserved", HFILL
}
3505 { &hf_homeplug_av_cm_enc_pld_ind_iv
,
3506 { "Initialization vector", "homeplug_av.cm_enc_pld_ind.iv",
3507 FT_BYTES
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3509 { &hf_homeplug_av_cm_enc_pld_ind_uuid
,
3510 { "UUID", "homeplug_av.cm_enc_pld_ind.uuid",
3511 FT_GUID
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3513 { &hf_homeplug_av_cm_enc_pld_ind_len
,
3514 { "Length", "homeplug_av.cm_enc_pld_ind.len",
3515 FT_UINT16
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3517 { &hf_homeplug_av_cm_enc_pld_ind_pld
,
3518 { "Encrypted payload", "homeplug_av.cm_enc_pld_ind.pld",
3519 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3521 /* Encrypted Payload Response */
3522 { &hf_homeplug_av_cm_enc_pld_rsp
,
3523 { "Encrypted Payload Response", "homeplug_av.cm_enc_pld_rsp",
3524 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3526 { &hf_homeplug_av_cm_enc_pld_rsp_result
,
3527 { "Result", "homeplug_av.cm_enc_pld_rsp.result",
3528 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_generic_status_vals
), HOMEPLUG_AV_GEN_STATUS_MASK
, NULL
, HFILL
}
3530 /* Set Key Request */
3531 { &hf_homeplug_av_cm_set_key_req
,
3532 { "Set Key Request", "homeplug_av.cm_set_key_req",
3533 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3535 { &hf_homeplug_av_cm_set_key_req_nw_key
,
3536 { "New Key", "homeplug_av.cm_set_key_req.nw_key",
3537 FT_BYTES
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3539 /* Set Key Confirmation */
3540 { &hf_homeplug_av_cm_set_key_cnf
,
3541 { "Set Key Confirmation", "homeplug_av.cm_set_key_cnf",
3542 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3544 { &hf_homeplug_av_cm_set_key_cnf_result
,
3545 { "Result", "homeplug_av.cm_set_key_cnf.result",
3546 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_generic_status_vals
), HOMEPLUG_AV_GEN_STATUS_MASK
, NULL
, HFILL
}
3548 /* Get Key Request */
3549 { &hf_homeplug_av_cm_get_key_req
,
3550 { "Get Key request", "homeplug_av.cm_get_key_req",
3551 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3553 { &hf_homeplug_av_cm_get_key_req_type
,
3554 { "Request type", "homeplug_av.cm_get_key_req.type",
3555 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_req_type_vals
), HOMEPLUG_AV_REQ_TYPE_MASK
, "Reserved", HFILL
}
3557 { &hf_homeplug_av_cm_get_key_req_has_key
,
3558 { "Hash key", "homeplug_av.cm_get_key_req.hash_key",
3559 FT_BYTES
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3561 /* Get Key Confirmation */
3562 { &hf_homeplug_av_cm_get_key_cnf
,
3563 { "Get Key Confirmation", "homeplug_av.cm_get_key_cnf",
3564 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3566 { &hf_homeplug_av_cm_get_key_cnf_result
,
3567 { "Result", "homeplug_av.cm_get_key_cnf.result",
3568 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_key_result_vals
), HOMEPLUG_AV_KEY_RESULT_MASK
, NULL
, HFILL
}
3570 { &hf_homeplug_av_cm_get_key_cnf_rtype
,
3571 { "Requested key type", "homeplug_av.cm_get_key_cnf.rtype",
3572 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_key_type_vals
), HOMEPLUG_AV_KEY_TYPE_MASK
, NULL
, HFILL
}
3574 { &hf_homeplug_av_cm_get_key_cnf_key
,
3575 { "Encryption/Hash key", "homeplug_av.cm_get_key_cnf.key",
3576 FT_BYTES
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3578 /* Get Bridge Informations Confirmation */
3579 { &hf_homeplug_av_brg_infos_cnf
,
3580 { "Get Bridge Informations Confirmation", "homeplug_av.brg_infos_cnf",
3581 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3583 { &hf_homeplug_av_brg_infos_cnf_brd
,
3584 { "Bridging", "homeplug_av.brg_infos_cnf.brd",
3585 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3587 { &hf_homeplug_av_brg_infos_cnf_btei
,
3588 { "Bridge Terminal Equipement Identifier", "homeplug_av.brg_infos_cnf.btei",
3589 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3591 { &hf_homeplug_av_brg_infos_cnf_num_stas
,
3592 { "Number of stations", "homeplug_av.brg_infos_cnf.num_stas",
3593 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3595 { &hf_homeplug_av_brg_infos_cnf_mac
,
3596 { "Bridged Destination Address", "homeplug_av.brg_infos_cnf.mac",
3597 FT_ETHER
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3599 /* Get Network Informations Confirmation */
3600 { &hf_homeplug_av_cm_nw_infos_cnf
,
3601 { "Get Network Informations Confirmation", "homeplug_av.nw_infos_cnf",
3602 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3604 /* Get Network Statistics Confirmation */
3605 { &hf_homeplug_av_nw_stats_cnf
,
3606 { "Get Network Statistics Confirmation", "homeplug_av.nw_stats_cnf",
3607 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3609 /* Vendor Specific */
3610 { &hf_homeplug_av_vendor
,
3611 { "Vendor MME", "homeplug_av.vendor",
3612 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3614 { &hf_homeplug_av_vendor_oui
,
3615 { "OUI", "homeplug_av.vendor.oui",
3616 FT_BYTES
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3618 /* Get Device/SW Version */
3619 { &hf_homeplug_av_get_sw_cnf
,
3620 { "Get Device/SW Version", "homeplug_av.get_sw_cnf",
3621 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3623 { &hf_homeplug_av_get_sw_cnf_status
,
3624 { "Status", "homeplug_av.get_sw_cnf.status",
3625 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3627 { &hf_homeplug_av_get_sw_cnf_dev_id
,
3628 { "Device ID", "homeplug_av.get_sw_cnf.dev_id",
3629 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_dev_id_vals
), HOMEPLUG_AV_DEV_ID_MASK
, NULL
, HFILL
}
3631 { &hf_homeplug_av_get_sw_cnf_ver_len
,
3632 { "Version length", "homeplug_av.get_sw_cnf.ver_len",
3633 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3635 { &hf_homeplug_av_get_sw_cnf_ver_str
,
3636 { "Version", "homeplug_av.get_sw_cnf.ver_str",
3637 FT_STRING
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3639 { &hf_homeplug_av_get_sw_cnf_upg
,
3640 { "Upgradable", "homeplug_av.get_sw_cnf.upg",
3641 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3643 /* Write MAC Memory Request */
3644 { &hf_homeplug_av_wr_mem_req
,
3645 { "Write MAC Memory Request", "homeplug_av.wr_mem_req",
3646 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3648 { &hf_homeplug_av_mem_addr
,
3649 { "Address", "homeplug_av.mem.addr",
3650 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
3652 { &hf_homeplug_av_mem_len_32bits
,
3653 { "Length", "homeplug_av.mem.len_32bits",
3654 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
3656 /* Write MAC Memory Confirmation */
3657 { &hf_homeplug_av_wr_mem_cnf
,
3658 { "Write MAC Memory Confirmation", "homeplug_av.wr_mem_cnf",
3659 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3661 /* Read MAC Memory Request */
3662 { &hf_homeplug_av_rd_mem_req
,
3663 { "Read MAC Memory Request", "homeplug_av.rd_mem_req",
3664 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3666 { &hf_homeplug_av_rd_mem_cnf
,
3667 { "Read MAC Memory Confirmation", "homeplug_av.rd_mem_cnf",
3668 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3670 /* Start MAC Request */
3671 { &hf_homeplug_av_st_mac_req
,
3672 { "Start MAC Request", "homeplug_av.st_mac_req",
3673 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3675 { &hf_homeplug_av_st_mac_req_img_load
,
3676 { "Image Load Starting Address", "homeplug_av.st_mac_req.img_load",
3677 FT_UINT32
, BASE_HEX
, NULL
, 0x00, "Unknown", HFILL
}
3679 { &hf_homeplug_av_st_mac_req_img_len
,
3680 { "Image Length", "homeplug_av.st_mac_req.img_len",
3681 FT_UINT32
, BASE_HEX
, NULL
, 0x00, "Unknown", HFILL
}
3683 { &hf_homeplug_av_st_mac_req_img_chksum
,
3684 { "Image Checksum", "homeplug_av.st_mac_req.img_chksum",
3685 FT_UINT32
, BASE_HEX
, NULL
, 0x00, "Unknown", HFILL
}
3687 { &hf_homeplug_av_st_mac_req_img_start
,
3688 { "Image Starting Address", "homeplug_av.st_mac_req.img_start",
3689 FT_UINT32
, BASE_HEX
, NULL
, 0x00, "Unknown", HFILL
}
3691 /* Start MAC Confirmation */
3692 { &hf_homeplug_av_st_mac_cnf
,
3693 { "Start MAC Confirmation", "homeplug_av.st_mac_cnf",
3694 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3696 { &hf_homeplug_av_st_mac_cnf_status
,
3697 { "Module ID", "homeplug_av.st_mac_cnf.status",
3698 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_st_mac_status_vals
), 0x00, "Unknown", HFILL
}
3700 /* Get NVM Parameters Confirmation */
3701 { &hf_homeplug_av_get_nvm_cnf
,
3702 { "Get NVM Parameters Confirmation", "homeplug_av.get_nvm_cnf",
3703 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3705 { &hf_homeplug_av_get_nvm_cnf_status
,
3706 { "Status", "homeplug_av.get_nvm_cnf.status",
3707 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_get_nvm_status_vals
), 0x00, "Unknown", HFILL
}
3709 { &hf_homeplug_av_get_nvm_cnf_nvm_type
,
3710 { "NVM Type", "homeplug_av.get_nvm_cnf.nvm_type",
3711 FT_UINT32
, BASE_HEX
, NULL
, 0x00, "Unknown", HFILL
}
3713 { &hf_homeplug_av_get_nvm_cnf_nvm_page
,
3714 { "NVM Page Size", "homeplug_av.get_nvm_cnf.nvm_page",
3715 FT_UINT32
, BASE_HEX
, NULL
, 0x00, "Unknown", HFILL
}
3717 { &hf_homeplug_av_get_nvm_cnf_nvm_block
,
3718 { "NVM Block Size", "homeplug_av.get_nvm_cnf.nvm_block",
3719 FT_UINT32
, BASE_HEX
, NULL
, 0x00, "Unknown", HFILL
}
3721 { &hf_homeplug_av_get_nvm_cnf_nvm_size
,
3722 { "NVM Memory Size", "homeplug_av.get_nvm_cnf.nvm_size",
3723 FT_UINT32
, BASE_HEX
, NULL
, 0x00, "Unknown", HFILL
}
3725 /* Reset Device Confirmation */
3726 { &hf_homeplug_av_rs_dev_cnf
,
3727 { "Reset Device Confirmation", "homeplug_av.rs_dev_cnf",
3728 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3730 { &hf_homeplug_av_rs_dev_cnf_status
,
3731 { "Status", "homeplug_av.rs_dev_cnf.status",
3732 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_rs_dev_status_vals
), 0x00, "Unknown", HFILL
}
3734 /* Shared memory related fields */
3735 { &hf_homeplug_av_mem_len_16bits
,
3736 { "Length", "homeplug_av.mem.len_16bits",
3737 FT_UINT16
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
3739 { &hf_homeplug_av_mem_offset
,
3740 { "Offset", "homeplug_av.mem.offset",
3741 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
3743 { &hf_homeplug_av_mem_checksum
,
3744 { "Checksum", "homeplug_av.mem.checksum",
3745 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
3747 { &hf_homeplug_av_mem_data
,
3748 { "Data", "homeplug_av.mem.data",
3749 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3751 { &hf_homeplug_av_mem_status
,
3752 { "Status", "homeplug_av.mem.status",
3753 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_wr_rd_mem_status_vals
), 0x00, "Unknown", HFILL
}
3755 /* Write Module Data Request */
3756 { &hf_homeplug_av_wr_mod_req
,
3757 { "Write Module Data Request", "homeplug_av.wr_mod_req",
3758 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3760 /* Write Module Data Confirmation */
3761 { &hf_homeplug_av_wr_mod_cnf
,
3762 { "Write Module Data Confirmation", "homeplug_av.wr_mod_cnf",
3763 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3765 { &hf_homeplug_av_wr_mod_cnf_status
,
3766 { "Status", "homeplug_av.wr_mod_cnf.status",
3767 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_wr_rd_mod_cnf_status_vals
), 0x00, "Unknown", HFILL
}
3769 /* Write Module Data Indicate */
3770 { &hf_homeplug_av_wr_mod_ind
,
3771 { "Write Module Data Indicate", "homeplug_av.wr_mod_ind",
3772 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3774 { &hf_homeplug_av_wr_mod_ind_status
,
3775 { "Status", "homeplug_av.wr_mod_ind.status",
3776 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_wr_mod_ind_status_vals
), 0x00, "Unknown", HFILL
}
3778 /* Read Module Data Request */
3779 { &hf_homeplug_av_rd_mod_req
,
3780 { "Read Module Data Request", "homeplug_av.rd_mod_req",
3781 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3783 /* Read Module Data Confirmation */
3784 { &hf_homeplug_av_rd_mod_cnf
,
3785 { "Read Module Data Confirmation", "homeplug_av.rd_mod_cnf",
3786 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3788 { &hf_homeplug_av_rd_mod_cnf_status
,
3789 { "Status", "homeplug_av.rd_mod_cnf.status",
3790 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_wr_rd_mod_cnf_status_vals
), 0x00, "Unknown", HFILL
}
3792 { &hf_homeplug_av_mac_module_id
,
3793 { "Module ID", "homeplug_av.module_id",
3794 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_mac_module_id_vals
), 0x00, "Unknown", HFILL
}
3796 /* Write Module Data to NVM Request */
3797 { &hf_homeplug_av_mod_nvm_req
,
3798 { "Write Module Data to NVM Request", "homeplug_av.mod_nvm_req",
3799 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3801 /* Write Module Data to NVM Confirmation */
3802 { &hf_homeplug_av_mod_nvm_cnf
,
3803 { "Write Module Data to NVM Confirmation", "homeplug_av.mod_nvm_cnf",
3804 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3806 { &hf_homeplug_av_mod_nvm_cnf_status
,
3807 { "Status", "homeplug_av.mod_nvm_cnf.status",
3808 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_mod_nvm_status_vals
), 0x00, "Unknown", HFILL
}
3810 /* Get Watchdog Report Request */
3811 { &hf_homeplug_av_wd_rpt_req
,
3812 { "Get Watchdog Report Request", "homeplug_av.wd_rpt_req",
3813 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3815 { &hf_homeplug_av_wd_rpt_req_session_id
,
3816 { "Session ID", "homeplug_av.wd_rpt_req.session_id",
3817 FT_UINT16
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3819 { &hf_homeplug_av_wd_rpt_req_clr
,
3820 { "Clear flag", "homeplug_av.wd_rpt_req.clr",
3821 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_rpt_clr_vals
), HOMEPLUG_AV_RPT_CLR_MASK
, "Unknown", HFILL
}
3823 /* Get Watchdog Report Indicate */
3824 { &hf_homeplug_av_wd_rpt_ind
,
3825 { "Get Watchdog Report Indicate", "homeplug_av.wd_rpt_ind",
3826 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3828 { &hf_homeplug_av_wd_rpt_ind_status
,
3829 { "Status", "homeplug_av.wd_rpt_ind.status",
3830 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_generic_status_vals
), HOMEPLUG_AV_GEN_STATUS_MASK
, "Unknown", HFILL
}
3832 { &hf_homeplug_av_wd_rpt_ind_session_id
,
3833 { "Session ID", "homeplug_av.wd_rpt_ind.session_id",
3834 FT_UINT16
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3836 { &hf_homeplug_av_wd_rpt_ind_num_parts
,
3837 { "Number of parts", "homeplug_av.wd_rpt_ind.num_parts",
3838 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3840 { &hf_homeplug_av_wd_rpt_ind_curr_part
,
3841 { "Current Part", "homeplug_av.wd_rpt_ind.curr_part",
3842 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3844 { &hf_homeplug_av_wd_rpt_ind_rdata_len
,
3845 { "Report Data Length", "homeplug_av.wd_rpt_ind.rdata_len",
3846 FT_UINT16
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3848 { &hf_homeplug_av_wd_rpt_ind_rdata_ofs
,
3849 { "Report Data Offset", "homeplug_av.wd_rpt_ind.rdata_offset",
3850 FT_UINT8
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
3852 { &hf_homeplug_av_wd_rpt_ind_rdata
,
3853 { "Report Data", "homeplug_av.wd_rpt_ind.rdata",
3854 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3856 /* Link Statistics Request */
3857 { &hf_homeplug_av_lnk_stats_req
,
3858 { "Link Statistics Request", "homeplug_av.lnk_stats_req",
3859 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3861 { &hf_homeplug_av_lnk_stats_req_mcontrol
,
3862 { "Control", "homeplug_av.lnk_stats_req.mcontrol",
3863 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_lnk_stats_mctrl_vals
), HOMEPLUG_AV_LNK_STATS_MCTL_MASK
, "Unknown", HFILL
}
3865 { &hf_homeplug_av_lnk_stats_req_dir
,
3866 { "Direction", "homeplug_av.lnk_stats_req.dir",
3867 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_lnk_stats_dir_vals
), HOMEPLUG_AV_LNK_STATS_DIR_MASK
, "Unknown", HFILL
}
3869 { &hf_homeplug_av_lnk_stats_req_lid
,
3870 { "Link ID", "homeplug_av.lnk_stats_req.lid",
3871 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_lnk_stats_lid_vals
), 0x00, "Unknown", HFILL
}
3873 { &hf_homeplug_av_lnk_stats_req_macaddr
,
3874 { "Peer Node", "homeplug_av.lnk_stats_req.macaddr",
3875 FT_ETHER
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3877 /* Link Statistics Confirmation */
3878 { &hf_homeplug_av_lnk_stats_cnf
,
3879 { "Link Statistics Confirmation", "homeplug_av.lnk_stats_cnf",
3880 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3882 { &hf_homeplug_av_lnk_stats_cnf_status
,
3883 { "Status", "homeplug_av.lnk_stats_cnf.status",
3884 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_lnk_status_vals
), 0x00, "Unknown", HFILL
}
3886 { &hf_homeplug_av_lnk_stats_cnf_dir
,
3887 { "Direction", "homeplug_av.lnk_stats_cnf.dir",
3888 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_lnk_stats_dir_vals
), HOMEPLUG_AV_LNK_STATS_DIR_MASK
, "Unknown", HFILL
}
3890 { &hf_homeplug_av_lnk_stats_cnf_lid
,
3891 { "Link ID", "homeplug_av.lnk_stats_cnf.lid",
3892 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_lnk_stats_lid_vals
), 0x00, "Unknown", HFILL
}
3894 { &hf_homeplug_av_lnk_stats_cnf_tei
,
3895 { "TEI", "homeplug_av.lnk_stats_cnf.tei",
3896 FT_UINT8
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
3898 { &hf_homeplug_av_lnk_stats_cnf_lstats
,
3899 { "Link statistics", "homeplug_av.lnk_stats_cnf.lstats",
3900 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3902 /* Link statistics members */
3903 { &hf_homeplug_av_lnk_stats_tx
,
3904 { "Tx link statistics", "homeplug_av.lnk_stats.tx",
3905 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3907 { &hf_homeplug_av_lnk_stats_tx_mpdu_ack
,
3908 { "Number of MPDUs Transmitted and Acknowledged", "homeplug_av.lnk_stats.tx.mpdu_ack",
3909 FT_UINT64
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3911 { &hf_homeplug_av_lnk_stats_tx_mpdu_col
,
3912 { "Number of MPDUs Transmitted and Collided", "homeplug_av.lnk_stats.tx.mpdu_col",
3913 FT_UINT64
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3915 { &hf_homeplug_av_lnk_stats_tx_mpdu_fai
,
3916 { "Number of MPDUs Transmitted and Failed", "homeplug_av.lnk_stats.tx.mpdu_fail",
3917 FT_UINT64
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3919 { &hf_homeplug_av_lnk_stats_tx_pbs_pass
,
3920 { "Number of PB Transmitted Successfully", "homeplug_av.lnk_stats.tx.pbs_pass",
3921 FT_UINT64
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3923 { &hf_homeplug_av_lnk_stats_tx_pbs_fail
,
3924 { "Number of PB Transmitted Unsuccessfully", "homeplug_av.lnk_stats.tx.pbs_fail",
3925 FT_UINT64
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3927 { &hf_homeplug_av_lnk_stats_rx
,
3928 { "Rx link statistics", "homeplug_av.lnk_stats.rx",
3929 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3931 { &hf_homeplug_av_lnk_stats_rx_mpdu_ack
,
3932 { "Number of MPDUs Received and Acknowledged", "homeplug_av.lnk_stats.rx.mdpu_ack",
3933 FT_UINT64
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3935 { &hf_homeplug_av_lnk_stats_rx_mpdu_fai
,
3936 { "Number of MPDUs Received and Failed", "homeplug_av.lnk_stats.rx.mdpu_fail",
3937 FT_UINT64
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3939 { &hf_homeplug_av_lnk_stats_rx_pbs_pass
,
3940 { "Number of PB Received Successfully", "homeplug_av.lnk_stats.rx.pbs_pass",
3941 FT_UINT64
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3943 { &hf_homeplug_av_lnk_stats_rx_pbs_fail
,
3944 { "Number of PB Received Unsuccessfully", "homeplug_av.lnk_stats.rx.pbs_fail",
3945 FT_UINT64
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3947 { &hf_homeplug_av_lnk_stats_rx_tb_pass
,
3948 { "Sum of Turbo Bit Error over successfully recevied PBs", "homeplug_av.lnk_stats.rx.tb_pass",
3949 FT_UINT64
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3951 { &hf_homeplug_av_lnk_stats_rx_tb_fail
,
3952 { "Sum of Turbo Bit Error over unsuccessfully recevied PBs", "homeplug_av.lnk_stats.rx.tb_fail",
3953 FT_UINT64
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3955 { &hf_homeplug_av_lnk_stats_rx_num_int
,
3956 { "Number of Tone Map Intervals", "homeplug_av.lnk_stats.rx.num_int",
3957 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3959 { &hf_homeplug_av_rx_inv_stats
,
3960 { "Rx Interval Statistics", "homeplug_av.lnk_stats.rx.inv",
3961 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3963 { &hf_homeplug_av_rx_inv_phy_rate
,
3964 { "Rx Phy Rate for Tone Map Interval 0", "homeplug_av.lnk_stats.rx.inv.phy_rate",
3965 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3967 { &hf_homeplug_av_rx_inv_pbs_pass
,
3968 { "Number of PB Received Successfully", "homeplug_av.lnk_stats.rx.inv.pbs_pass",
3969 FT_UINT64
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3971 { &hf_homeplug_av_rx_inv_pbs_fail
,
3972 { "Number of PB Received Unsuccessfully", "homeplug_av.lnk_stats.rx.inv.pbs_fail",
3973 FT_UINT64
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3975 { &hf_homeplug_av_rx_inv_tb_pass
,
3976 { "Sum of the Turbo Bit Error over all PBs received successfully", "homeplug_av.lnk_stats.rx.inv.tb_pass",
3977 FT_UINT64
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3979 { &hf_homeplug_av_rx_inv_tb_fail
,
3980 { "Sum of the Turbo Bit Error over all PBs received unsuccessfully", "homeplug_av.lnk_stats.rx.inv.tb_fail",
3981 FT_UINT64
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
3983 /* Sniffer Request */
3984 { &hf_homeplug_av_sniffer_req
,
3985 { "Sniffer Request", "homeplug_av.sniffer_req",
3986 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3988 { &hf_homeplug_av_sniffer_req_ctrl
,
3989 { "Sniffer Control", "homeplug_av.sniffer_req.ctrl",
3990 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_sniffer_ctrl_vals
), HOMEPLUG_AV_SNIFFER_CTRL_MASK
, NULL
, HFILL
}
3992 /* Sniffer Confirmation */
3993 { &hf_homeplug_av_sniffer_cnf
,
3994 { "Sniffer Confirmation" , "homeplug_av.sniffer_cnf",
3995 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
3997 { &hf_homeplug_av_sniffer_cnf_status
,
3998 { "Status", "homeplug_av.sniffer_cnf.status",
3999 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_sniffer_status_vals
), 0x00, NULL
, HFILL
}
4001 { &hf_homeplug_av_sniffer_cnf_state
,
4002 { "State", "homeplug_av.sniffer_cnf.state",
4003 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4005 { &hf_homeplug_av_sniffer_cnf_da
,
4006 { "Destination address", "homeplug_av.sniffer_cnf.da",
4007 FT_ETHER
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4009 /* Sniffer Indicate */
4010 { &hf_homeplug_av_sniffer_ind
,
4011 { "Sniffer Indicate", "homeplug_av.sniffer_ind",
4012 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4014 { &hf_homeplug_av_sniffer_ind_type
,
4015 { "Sniffer Type", "homeplug_av.sniffer_ind.type",
4016 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_sniffer_type_vals
), 0x00, "Unknown", HFILL
}
4018 { &hf_homeplug_av_sniffer_ind_data
,
4019 { "Sniffer Data", "homeplug_av.sniffer_ind.data",
4020 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4022 { &hf_homeplug_av_sniffer_data_dir
,
4023 { "Direction", "homeplug_av.sniffer_ind.data.dir",
4024 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_lnk_stats_dir_vals
), HOMEPLUG_AV_LNK_STATS_DIR_MASK
, NULL
, HFILL
}
4026 { &hf_homeplug_av_sniffer_data_systime
,
4027 { "System time", "homeplug_av.sniffer_ind.data.systime",
4028 FT_UINT64
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4030 { &hf_homeplug_av_sniffer_data_bc_time
,
4031 { "Beacon time", "homeplug_av.sniffer_ind.data.bc_time",
4032 FT_UINT32
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4034 /* Network Info Confirmation */
4035 { &hf_homeplug_av_nw_info_cnf
,
4036 { "Network Info Confirmation", "homeplug_av.nw_info_cnf",
4037 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4039 { &hf_homeplug_av_nw_info_net_info
,
4040 { "Networks informations", "homeplug_av.nw_info_cnf.net_info",
4041 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4043 { &hf_homeplug_av_nw_info_num_avlns
,
4044 { "Number of AV Logical Networks", "homeplug_av.nw_info.num_avlns",
4045 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4047 { &hf_homeplug_av_nw_info_nid
,
4048 { "Network ID", "homeplug_av.nw_info.nid",
4049 FT_BYTES
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4051 { &hf_homeplug_av_nw_info_snid
,
4052 { "Short Network ID", "homeplug_av.nw_info.snid",
4053 FT_UINT8
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
4055 { &hf_homeplug_av_nw_info_tei
,
4056 { "Terminal Equipement Identifer", "homeplug_av.nw_info.tei",
4057 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4059 { &hf_homeplug_av_nw_info_sta_role
,
4060 { "Station Role", "homeplug_av.nw_info.sta_role",
4061 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_nw_info_role_vals
), HOMEPLUG_AV_NW_INFO_ROLE_MASK
, "Reserved", HFILL
}
4063 { &hf_homeplug_av_nw_info_cco_mac
,
4064 { "CCo MAC Address", "homeplug_av.nw_info_cnf.cco_mac",
4065 FT_ETHER
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4067 { &hf_homeplug_av_nw_info_cco_tei
,
4068 { "CCo Terminal Equipement Identifier", "homeplug_av.nw_info_cnf.cco_tei",
4069 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4071 { &hf_homeplug_av_nw_info_num_stas
,
4072 { "Number of AV Stations", "homeplug_av.nw_info_cnf.num_stas",
4073 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4075 { &hf_homeplug_av_nw_info_access
,
4076 { "Access network", "homeplug_av.nw_info_cnf.access",
4077 FT_UINT8
, BASE_HEX
, VALS(homeplug_nw_info_access_vals
), HOMEPLUG_AV_NW_INFO_NID_MASK
, "Reserved", HFILL
}
4079 { &hf_homeplug_av_nw_info_num_coord
,
4080 { "Number of neighbor networks coordinating", "homeplug_av.nw_info_cnf.num_coord",
4081 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4083 /* Network Info per station */
4084 { &hf_homeplug_av_nw_info_sta_info
,
4085 { "Stations Informations", "homeplug_av.nw_info_cnf.sta_info",
4086 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4088 { &hf_homeplug_av_nw_info_sta_da
,
4089 { "Station MAC Address", "homeplug_av.nw_info_cnf.sta_info.da",
4090 FT_ETHER
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4092 { &hf_homeplug_av_nw_info_sta_tei
,
4093 { "Station Terminal Equipement Identifier", "homeplug_av.nw_info_cnf.sta_indo.tei",
4094 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4096 { &hf_homeplug_av_nw_info_sta_bda
,
4097 { "MAC Address of first Node Bridged by Station", "homeplug_av.nw_info_cnf.sta_indo.bda",
4098 FT_ETHER
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4100 { &hf_homeplug_av10_nw_info_sta_phy_dr_tx
,
4101 { "Average PHY Tx data Rate (Mbits/sec)", "homeplug_av.nw_info_cnf.sta_indo.phy_dr_tx",
4102 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4104 { &hf_homeplug_av10_nw_info_sta_phy_dr_rx
,
4105 { "Average PHY Rx data Rate (Mbits/sec)", "homeplug_av.nw_info_cnf.sta_indo.phy_dr_rx",
4106 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4108 { &hf_homeplug_av11_nw_info_sta_phy_dr_tx
,
4109 { "Average PHY Tx data Rate (Mbits/sec)", "homeplug_av.nw_info_cnf.sta_indo.phy_dr_tx",
4110 FT_UINT16
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4112 { &hf_homeplug_av11_nw_info_sta_phy_dr_rx
,
4113 { "Average PHY Rx data Rate (Mbits/sec)", "homeplug_av.nw_info_cnf.sta_indo.phy_dr_rx",
4114 FT_UINT16
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4116 { &hf_homeplug_av11_nw_info_sta_cpling_tx
,
4117 { "PHY Tx Coupling", "homeplug_av.nw_info_cnf.sta_info.phy_coupling_tx",
4118 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_coupling_vals
), HOMEPLUG_AV_COUPLING_MASK
, "Unknown", HFILL
}
4120 { &hf_homeplug_av11_nw_info_sta_cpling_rx
,
4121 { "PHY Rx Coupling", "homeplug_av.nw_info_cnf.sta_info.phy_coupling_rx",
4122 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_coupling_vals
), HOMEPLUG_AV_COUPLING_MASK
<< 4, "Unknown", HFILL
}
4124 /* Check Points Request */
4125 { &hf_homeplug_av_cp_rpt_req
,
4126 { "Check Points Request", "homeplug_av.cp_rpt_req",
4127 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4129 { &hf_homeplug_av_cp_rpt_req_session_id
,
4130 { "Session ID", "homeplug_av.cp_rpt_req.session_id",
4131 FT_UINT16
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4133 { &hf_homeplug_av_cp_rpt_req_clr
,
4134 { "Clear flag", "homeplug_av.cp_rpt_req.clr",
4135 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_rpt_clr_vals
), HOMEPLUG_AV_RPT_CLR_MASK
, "Unknown", HFILL
}
4137 /* Check Points Confirmation */
4138 { &hf_homeplug_av_cp_rpt_ind
,
4139 { "Check Points Confirmation", "homeplug_av.cp_rpt_ind",
4140 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4142 { &hf_homeplug_av_cp_rpt_ind_status
,
4143 { "Status", "homeplug_av.cp_rpt_ind.status",
4144 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_generic_status_vals
), HOMEPLUG_AV_GEN_STATUS_MASK
, "Unknown", HFILL
}
4146 { &hf_homeplug_av_cp_rpt_ind_major_ver
,
4147 { "Major version", "homeplug_av.cp_rpt_ind.major_ver",
4148 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4150 { &hf_homeplug_av_cp_rpt_ind_minor_ver
,
4151 { "Minor version", "homeplug_av.cp_rpt_ind.minor_ver",
4152 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4154 { &hf_homeplug_av_cp_rpt_ind_session_id
,
4155 { "Session ID", "homeplug_av.cp_rpt_ind.session_id",
4156 FT_UINT16
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4158 { &hf_homeplug_av_cp_rpt_ind_total_size
,
4159 { "Total size", "homeplug_av.cp_rpt_ind.total_size",
4160 FT_UINT32
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4162 { &hf_homeplug_av_cp_rpt_ind_blk_offset
,
4163 { "Offset", "homeplug_av.cp_rpt_ind.blk_offset",
4164 FT_UINT32
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4166 { &hf_homeplug_av_cp_rpt_ind_byte_index
,
4167 { "Byte Index", "homeplug_av.cp_rpt_ind.byte_index",
4168 FT_UINT32
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4170 { &hf_homeplug_av_cp_rpt_ind_num_parts
,
4171 { "Number of parts", "homeplug_av.cp_rpt_ind.num_parts",
4172 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4174 { &hf_homeplug_av_cp_rpt_ind_curr_part
,
4175 { "Current part", "homeplug_av.cp_rpt_ind.curr_part",
4176 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4178 { &hf_homeplug_av_cp_rpt_ind_data_len
,
4179 { "Data length", "homeplug_av.cp_rpt_ind.data_len",
4180 FT_UINT16
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4182 { &hf_homeplug_av_cp_rpt_ind_data_ofs
,
4183 { "Data offset", "homeplug_av.cp_rpt_ind.data_ofs",
4184 FT_UINT8
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
4186 { &hf_homeplug_av_cp_rpt_ind_data
,
4187 { "Report Data", "homeplug_av.cp_rpt_ind.data",
4188 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4190 /* Loopback Request */
4191 { &hf_homeplug_av_fr_lbk_req
,
4192 { "Loopback Request", "homeplug_av.fr_lbk.req",
4193 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4195 { &hf_homeplug_av_fr_lbk_duration
,
4196 { "Duration", "homeplug_av.lbk.duration",
4197 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4199 { &hf_homeplug_av_fr_lbk_len
,
4200 { "Length", "homeplug_av.lbk.len",
4201 FT_UINT16
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4203 { &hf_homeplug_av_fr_lbk_req_data
,
4204 { "Data", "homeplug_av.fr_lbj_req.data",
4205 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4207 /* Loopback Confirmation */
4208 { &hf_homeplug_av_fr_lbk_cnf
,
4209 { "Loopback Confirmation", "homeplug_av.fr_lbk_cnf",
4210 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4212 { &hf_homeplug_av_fr_lbk_cnf_status
,
4213 { "Status", "homeplug_av.fr_lbk_cnf.status",
4214 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_generic_status_vals
), HOMEPLUG_AV_GEN_STATUS_MASK
, "Unknown", HFILL
}
4216 { &hf_homeplug_av_lbk_stat_cnf
,
4217 { "Loopback Status Confirmation", "homeplug_av.lnk_stat_cnf",
4218 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4220 { &hf_homeplug_av_lbk_stat_cnf_status
,
4221 { "Status", "homeplug_av.lnk_stat_cnf.status",
4222 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_generic_status_vals
), HOMEPLUG_AV_GEN_STATUS_MASK
, NULL
, HFILL
}
4224 { &hf_homeplug_av_lbk_stat_cnf_lbk_stat
,
4225 { "Loopback Status", "homeplug_av.lnk_stat_cnf.lbk_stat",
4226 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_lbk_status_vals
), HOMEPLUG_AV_LBK_STATUS_MASK
, NULL
, HFILL
}
4228 /* Set Encryption Key Request */
4229 { &hf_homeplug_av_set_key_req
,
4230 { "Set Encryption Key Request", "homeplug_av.set_key_req",
4231 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4233 { &hf_homeplug_av_set_key_req_eks
,
4234 { "EKS", "homeplug_av.set_key_req.eks",
4235 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_set_key_peks_vals
), 0x00, "Unknown", HFILL
}
4237 { &hf_homeplug_av_set_key_req_nmk
,
4238 { "NMK", "homeplug_av.set_key_req.nmk",
4239 FT_BYTES
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4241 { &hf_homeplug_av_set_key_req_rda
,
4242 { "Destination Address", "homeplug_av.set_key_req.rda",
4243 FT_ETHER
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4245 { &hf_homeplug_av_set_key_req_dak
,
4246 { "DAK", "homeplug_av.set_key_req.dak",
4247 FT_BYTES
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4249 /* Set Encryption Key Confirmation */
4250 { &hf_homeplug_av_set_key_cnf
,
4251 { "Set Encryption Key Confirmation", "homeplug_av.set_key_cnf",
4252 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4254 { &hf_homeplug_av_set_key_cnf_status
,
4255 { "Status", "homeplug_av.set_key_cnf.status",
4256 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_set_key_status_vals
), 0x00, NULL
, HFILL
}
4258 /* Get Manufacturer String Confirmation */
4259 { &hf_homeplug_av_mfg_string_cnf
,
4260 { "Get Manufacturer String Confirmation", "homeplug_av.mfg_string_cnf",
4261 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4263 { &hf_homeplug_av_mfg_string_cnf_status
,
4264 { "Status", "homeplug_av.mfg_string_cnf.status",
4265 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_generic_status_vals
), HOMEPLUG_AV_GEN_STATUS_MASK
, NULL
, HFILL
}
4267 { &hf_homeplug_av_mfg_string_cnf_len
,
4268 { "Length", "homeplug_av.mfg_string_cnf.len",
4269 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4271 { &hf_homeplug_av_mfg_string_cnf_string
,
4272 { "Manufacturing String", "homeplug_av.mfg_string_cnf.string",
4273 FT_STRING
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4275 /* Read Configuration Block Confirmation */
4276 { &hf_homeplug_av_rd_cblock_cnf
,
4277 { "Read Configuration Block Confirmation", "homeplug_av.rd_block_cnf",
4278 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4280 { &hf_homeplug_av_rd_cblock_cnf_status
,
4281 { "Status", "homeplug_av.rd_block_cnf.status",
4282 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_cblock_status_vals
), 0x00, NULL
, HFILL
}
4284 { &hf_homeplug_av_rd_cblock_cnf_len
,
4285 { "Length", "homeplug_av.rd_block_cnf.len",
4286 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4288 /* Configuration Block Header */
4289 { &hf_homeplug_av_cblock_hdr
,
4290 { "Configuration Block Header", "homeplug_av.cblock_hdr",
4291 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4293 { &hf_homeplug_av_cblock_hdr_ver
,
4294 { "Header Version Number", "homeplug_av.cblock_hdr.ver",
4295 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
4297 { &hf_homeplug_av_cblock_img_rom_addr
,
4298 { "Image address in NVM", "homeplug_av.cblock_hdr.img_rom_addr",
4299 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
4301 { &hf_homeplug_av_cblock_img_addr
,
4302 { "Image address in SDRAM", "homeplug_av.cblock_hdr.img_addr",
4303 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
4305 { &hf_homeplug_av_cblock_img_len
,
4306 { "Image length", "homeplug_av.cblock_hdr.img_len",
4307 FT_UINT32
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4309 { &hf_homeplug_av_cblock_img_chksum
,
4310 { "Image Checksum", "homeplug_av.cblock_hdr.img_chksum",
4311 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
4313 { &hf_homeplug_av_cblock_entry_point
,
4314 { "Entry Point", "homeplug_av.cblock_hdr.entry_point",
4315 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
4317 { &hf_homeplug_av_cblock_hdr_minor
,
4318 { "Header minor version", "homeplug_av.cblock_hdr.minor",
4319 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4321 { &hf_homeplug_av_cblock_hdr_img_type
,
4322 { "Header image type", "homeplug_av.cblock_hdr.img_type",
4323 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_nvm_img_type_vals
), HOMEPLUG_AV_NVM_IMG_TYPE_MASK
, "Unknown", HFILL
}
4325 { &hf_homeplug_av_cblock_hdr_ignore_mask
,
4326 { "Header ignore mask", "homeplug_av.cblock_hdr.ignore_mask",
4327 FT_UINT16
, BASE_HEX
, VALS(homeplug_av_nvm_ignore_mask_vals
), HOMEPLUG_AV_NVM_IGNORE_MASK_MASK
, "Unknown", HFILL
}
4329 { &hf_homeplug_av_cblock_hdr_module_id
,
4330 { "Header module ID", "homeplug_av.cblock_hdr.module_id",
4331 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
4333 { &hf_homeplug_av_cblock_hdr_module_subid
,
4334 { "Header module sub ID", "homeplug_av.cblock_hdr.module_subid",
4335 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
4337 { &hf_homeplug_av_cblock_next_hdr
,
4338 { "Address of next header in NVM", "homeplug_av.cblock_hdr.next_hdr",
4339 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
4341 { &hf_homeplug_av_cblock_hdr_chksum
,
4342 { "Header checksum", "homeplug_av.cblock_hdr.hdr_chksum",
4343 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
4345 /* Configuration Block */
4346 { &hf_homeplug_av_cblock
,
4347 { "Configuration Block", "homeplug_av.cblock",
4348 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4350 { &hf_homeplug_av_cblock_sdram_size
,
4351 { "SDRAM size", "homeplug_av.cblock.sdram_size",
4352 FT_UINT32
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4354 { &hf_homeplug_av_cblock_sdram_conf
,
4355 { "SDRAM Configuration Register", "homeplug_av.cblock.sdram_conf",
4356 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
4358 { &hf_homeplug_av_cblock_sdram_tim0
,
4359 { "SDRAM Timing Register 0", "homeplug_av.cblock.sdram_tim0",
4360 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
4362 { &hf_homeplug_av_cblock_sdram_tim1
,
4363 { "SDRAM Timing Register 1", "homeplug_av.cblock.sdram_tim1",
4364 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
4366 { &hf_homeplug_av_cblock_sdram_cntrl
,
4367 { "SDRAM Control Register", "homeplug_av.cblock.sdram_cntrl",
4368 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
4370 { &hf_homeplug_av_cblock_sdram_refresh
,
4371 { "SDRAM Refresh Register", "homeplug_av.cblock.sdram_refresh",
4372 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
4374 { &hf_homeplug_av_cblock_mac_clock
,
4375 { "MAC Clock Register", "homeplug_av.cblock.mac_clock",
4376 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
4378 /* Set SDRAM Configuration Request */
4379 { &hf_homeplug_av_set_sdram_req
,
4380 { "Set SDRAM Configuration Request", "homeplug_av.set_sdram_req",
4381 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4383 { &hf_homeplug_av_set_sdram_req_chksum
,
4384 { "Checksum", "homeplug_av.set_sdram_req.chksum",
4385 FT_UINT32
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
4387 /* Set SDRAM Configuration Confirmation */
4388 { &hf_homeplug_av_set_sdram_cnf
,
4389 { "Set SDRAM Configuration Confirmation", "homeplug_av.set_sdram_cnf",
4390 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4392 { &hf_homeplug_av_set_sdram_cnf_status
,
4393 { "Status", "homeplug_av.set_sdram_cnf.status",
4394 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_cblock_status_vals
), 0x00, "Unknown", HFILL
}
4396 /* Embedded Host Action Required Indicate */
4397 { &hf_homeplug_av_host_action_ind
,
4398 { "Embedded Host Action Required Indicate", "homeplug_av.host_action_ind",
4399 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4401 { &hf_homeplug_av_host_action_ind_act
,
4402 { "Action required", "homeplug_av.host_action_ind.action",
4403 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_host_action_vals
), 0x00, NULL
, HFILL
}
4405 /* Embedded Host Action Required Reponse */
4406 { &hf_homeplug_av_host_action_rsp
,
4407 { "Embedded Host Action Required Response", "homeplug_av.host_action_rsp",
4408 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4410 { &hf_homeplug_av_host_action_rsp_sts
,
4411 { "Status", "homeplug_av.host_action_rsp.status",
4412 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_generic_status_vals
), HOMEPLUG_AV_GEN_STATUS_MASK
, "Unknown", HFILL
}
4414 /* Get Device Attributes Request */
4415 { &hf_homeplug_av_op_attr_req
,
4416 { "Get Device Attributes Request", "homeplug_av.op_attr_req",
4417 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4419 { &hf_homeplug_av_op_attr_cookie
,
4420 { "Cookie", "homeplug_av.op_attr.cookie",
4421 FT_UINT32
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4423 { &hf_homeplug_av_op_attr_rep_type
,
4424 { "Report Type", "homeplug_av.op_attr.rep_type",
4425 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_op_attr_report_vals
), 0x00, NULL
, HFILL
}
4427 /* Get Device Attributes Confirmation */
4428 { &hf_homeplug_av_op_attr_cnf
,
4429 { "Get Device Attributes Confirmation", "homeplug_av.op_attr_cnf",
4430 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4432 { &hf_homeplug_av_op_attr_cnf_status
,
4433 { "Status", "homeplug_av.op_attr_cnf.status",
4434 FT_UINT16
, BASE_HEX
, VALS(homeplug_av_generic_status_vals
), HOMEPLUG_AV_GEN_STATUS_MASK
, NULL
, HFILL
}
4436 { &hf_homeplug_av_op_attr_cnf_size
,
4437 { "Size", "homeplug_av.op_attr_cnf.size",
4438 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4440 { &hf_homeplug_av_op_attr_cnf_data
,
4441 { "Data", "homeplug_av.op_attr_cnf.data",
4442 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4444 /* Device Attributes binary report */
4445 { &hf_homeplug_av_op_attr_data_hw
,
4446 { "Hardware platform", "homeplug_av.op_attr_cnf.data.hw",
4447 FT_STRING
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4449 { &hf_homeplug_av_op_attr_data_sw
,
4450 { "Software platform", "homeplug_av.op_attr_cnf.data.sw",
4451 FT_STRING
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4453 { &hf_homeplug_av_op_attr_data_sw_major
,
4454 { "Major version", "homeplug_av.op_attr_cnf.data.sw_major",
4455 FT_UINT32
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4457 { &hf_homeplug_av_op_attr_data_sw_minor
,
4458 { "Minor version", "homeplug_av.op_attr_cnf.data.sw_minor",
4459 FT_UINT32
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4461 { &hf_homeplug_av_op_attr_data_sw_sub
,
4462 { "Software/PIB version", "homeplug_av.op_attr_cnf.data.sw_sub",
4463 FT_UINT32
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4465 { &hf_homeplug_av_op_attr_data_sw_num
,
4466 { "Software build number", "homeplug_av.op_attr_cnf.data.sw_sub",
4467 FT_UINT32
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4469 { &hf_homeplug_av_op_attr_data_sw_date
,
4470 { "Build date", "homeplug_av.op_attr_cnf.data.sw_date",
4471 FT_STRING
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4473 { &hf_homeplug_av_op_attr_data_sw_rel
,
4474 { "Release type", "homeplug_av.op_attr_cnf.data.sw_rel",
4475 FT_STRING
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4477 { &hf_homeplug_av_op_attr_data_sw_sdram_type
,
4478 { "SDRAM type", "homeplug_av.op_attr_cnf.data.sw_sdram_type",
4479 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4481 { &hf_homeplug_av_op_attr_data_sw_linefreq
,
4482 { "Line frequency (Hz)", "homeplug_av.op_attr_cnf.data.sw_linefreq",
4483 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_linefreq_vals
), HOMEPLUG_AV_LINEFREQ_MASK
, "Unknown", HFILL
}
4485 { &hf_homeplug_av_op_attr_data_sw_zerocross
,
4486 { "Zero-crossing", "homeplug_av.op_attr_cnf.data.sw_zerocross",
4487 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_zerocrossing_vals
), HOMEPLUG_AV_ZEROCROSS_MASK
<< 2, "Unknown", HFILL
}
4489 { &hf_homeplug_av_op_attr_data_sw_sdram_size
,
4490 { "SDRAM size (Mbytes)", "homeplug_av.op_attr_cnf.data.sw_sdram_size",
4491 FT_UINT32
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4493 { &hf_homeplug_av_op_attr_data_sw_auth_mode
,
4494 { "Authorization mode", "homeplug_av.op_attr_cnf.data.sw_auth_mode",
4495 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4497 /* Get Ethernet PHY Settings Request */
4498 { &hf_homeplug_av_enet_phy_req
,
4499 { "Get Ethernet PHY Settings Request", "homeplug_av.enet_phy_req",
4500 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4502 { &hf_homeplug_av_enet_phy_req_mcontrol
,
4503 { "Message Control", "homeplug_av.enet_phy_req.mcontrol",
4504 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_enet_phy_mcontrol_vals
), HOMEPLUG_AV_ENET_PHY_MCONTROL_MASK
, "Unknown", HFILL
}
4506 { &hf_homeplug_av_enet_phy_req_addcaps
,
4507 { "Advertisement Capabilities", "homeplug_av.enet_phy_req.addcaps",
4508 FT_UINT8
, BASE_HEX
, NULL
, 0x00, NULL
, HFILL
}
4510 /* Get Ethernet PHY Settings Confirmation */
4511 { &hf_homeplug_av_enet_phy_cnf
,
4512 { "Get Ethernet PHY Settings Confirmation", "homeplug_av.enet_phy_cnf",
4513 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4515 { &hf_homeplug_av_enet_phy_cnf_status
,
4516 { "Status", "homeplug_av.enet_phy_cnf.status",
4517 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_generic_status_vals
), HOMEPLUG_AV_GEN_STATUS_MASK
, NULL
, HFILL
}
4519 { &hf_homeplug_av_enet_phy_cnf_speed
,
4520 { "Speed", "homeplug_av.enet_phy.speed",
4521 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_enet_phy_speed_vals
), HOMEPLUG_AV_ENET_PHY_SPEED_MASK
, "Unknown", HFILL
},
4523 { &hf_homeplug_av_enet_phy_cnf_duplex
,
4524 { "Duplex", "homeplug_av.enet_phy.duplex",
4525 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_enet_phy_duplex_vals
), HOMEPLUG_AV_ENET_PHY_DUPLEX_MASK
, "Unknown", HFILL
},
4527 /* Tone Map Tx Characteristics Request */
4528 { &hf_homeplug_av_tone_map_tx_req
,
4529 { "Tone Map Tx Characteristics Request", "homeplug_av.tone_map_tx_req",
4530 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4532 { &hf_homeplug_av_tone_map_tx_req_mac
,
4533 { "Peer address", "homeplug_av.tone_map_tx_req.mac",
4534 FT_ETHER
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4536 { &hf_homeplug_av_tone_map_tx_req_slot
,
4537 { "Tone Map slot", "homeplug_av.tone_map_tx_req.slot",
4538 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4540 { &hf_homeplug_av_tone_map_tx_req_coupling
,
4541 { "Coupling", "homeplug_av.tone_map_tx_req.coupling",
4542 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_coupling_vals
), HOMEPLUG_AV_COUPLING_MASK
, "Unknown", HFILL
}
4544 /* Tone Map Rx Characteristics Request */
4545 { &hf_homeplug_av_tone_map_rx_req
,
4546 { "Tone Map Rx Characteristics Request", "homeplug_av.tone_map_rx_req",
4547 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4549 { &hf_homeplug_av_tone_map_rx_req_mac
,
4550 { "Peer address", "homeplug_av.tone_map_rx_req.mac",
4551 FT_ETHER
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4553 { &hf_homeplug_av_tone_map_rx_req_slot
,
4554 { "Tone Map slot", "homeplug_av.tone_map_rx_req.slot",
4555 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4557 { &hf_homeplug_av_tone_map_rx_req_coupling
,
4558 { "Coupling", "homeplug_av.tone_map_rx_req.coupling",
4559 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_coupling_vals
), HOMEPLUG_AV_COUPLING_MASK
, "Unknown", HFILL
}
4561 /* Tone Map Tx Characteristics Confirmation */
4562 { &hf_homeplug_av_tone_map_tx_cnf
,
4563 { "Tone Map Tx Characteristics Confirmation", "homeplug_av.tone_map_tx_cnf",
4564 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4566 { &hf_homeplug_av_tone_map_tx_cnf_status
,
4567 { "Status", "homeplug_av.tone_map_tx_cnf.status",
4568 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_tone_map_status_vals
), 0x00, NULL
, HFILL
}
4570 { &hf_homeplug_av_tone_map_tx_cnf_len
,
4571 { "Length", "homeplug_av.tone_map_tx_cnf.len",
4572 FT_UINT16
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4574 { &hf_homeplug_av_tone_map_tx_cnf_mac
,
4575 { "Peer address", "homeplug_av.tone_map_tx_cnf.mac",
4576 FT_ETHER
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4578 { &hf_homeplug_av_tone_map_tx_cnf_slot
,
4579 { "Slot", "homeplug_av.tone_map_tx_cnf.slot",
4580 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4582 { &hf_homeplug_av_tone_map_tx_cnf_num_tms
,
4583 { "Number of Tone Maps in use", "homeplug_av.tone_map_tx_cnf.num_tms",
4584 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4586 { &hf_homeplug_av_tone_map_tx_cnf_num_act
,
4587 { "Tone map number of active carriers", "homeplug_av.tone_map_tx_cnf.num_act",
4588 FT_UINT16
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4590 /* Tone Map Rx Characteristics Confirmation */
4591 { &hf_homeplug_av_tone_map_rx_cnf
,
4592 { "Tone Map Rx Characteristics Confirmation", "homeplug_av.tone_map_rx_cnf",
4593 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4595 { &hf_homeplug_av_tone_map_rx_cnf_status
,
4596 { "Status", "homeplug_av.tone_map_rx_cnf.status",
4597 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_tone_map_status_vals
), 0x00, NULL
, HFILL
}
4599 { &hf_homeplug_av_tone_map_rx_cnf_len
,
4600 { "Length", "homeplug_av.tone_map_rx_cnf.len",
4601 FT_UINT16
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4603 { &hf_homeplug_av_tone_map_rx_cnf_subver
,
4604 { "MME Subversion", "homeplug_av.tone_map_rx_cnf.mmesubversion",
4605 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4607 { &hf_homeplug_av_tone_map_rx_cnf_mac
,
4608 { "Peer address", "homeplug_av.tone_map_rx_cnf.mac",
4609 FT_ETHER
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4611 { &hf_homeplug_av_tone_map_rx_cnf_slot
,
4612 { "Slot", "homeplug_av.tone_map_rx_cnf.slot",
4613 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4615 { &hf_homeplug_av_tone_map_rx_cnf_coupling
,
4616 { "Coupling", "homeplug_av.tone_map_rx_cnf.coupling",
4617 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_coupling_vals
), HOMEPLUG_AV_COUPLING_MASK
, "Unknown", HFILL
}
4619 { &hf_homeplug_av_tone_map_rx_cnf_num_tms
,
4620 { "Number of Tone Maps in use", "homeplug_av.tone_map_rx_cnf.num_tms",
4621 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4623 { &hf_homeplug_av_tone_map_rx_cnf_num_act
,
4624 { "Tone map number of active carriers", "homeplug_av.tone_map_rx_cnf.num_act",
4625 FT_UINT16
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4627 { &hf_homeplug_av_tone_map_rx_cnf_agc
,
4628 { "Automatic Gain Control (AGC)", "homeplug_av.tone_map_rx_cnf.agc",
4629 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4631 { &hf_homeplug_av_tone_map_rx_cnf_gil
,
4632 { "Guard Interval Length (GIL)", "homeplug_av.tone_map_rx_cnf.gil",
4633 FT_UINT8
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
4635 /* Tone Map Carrier informations */
4636 { &hf_homeplug_av_tone_map_carriers
,
4637 { "Tone Map carriers", "homeplug_av.tone_map_cnf.carriers",
4638 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4640 { &hf_homeplug_av_tone_map_carrier
,
4641 { "Modulation per carrier", "homeplug_av.tone_map_cnf.carrier",
4642 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
4644 { &hf_homeplug_av_tone_map_carrier_lo
,
4645 { "Modulation (Low carrier)", "homeplug_av.tone_map_cnf.carrier.lo",
4646 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_tone_map_vals
), HOMEPLUG_AV_TONE_MAP_MASK
, NULL
, HFILL
}
4648 { &hf_homeplug_av_tone_map_carrier_hi
,
4649 { "Modulation (High carrier)", "homeplug_av.tone_map_cnf.carrier.hi",
4650 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_tone_map_vals
), HOMEPLUG_AV_TONE_MAP_MASK
<< 4, NULL
, HFILL
}
4654 static gint
*ett
[] = {
4656 &ett_homeplug_av_mmhdr
,
4657 &ett_homeplug_av_mmtype
,
4658 &ett_homeplug_av_fmi
,
4659 &ett_homeplug_av_vendor
,
4660 &ett_homeplug_av_public
,
4662 &ett_homeplug_av_fc
,
4663 &ett_homeplug_av_bcn
,
4664 &ett_homeplug_av_cc_disc_list_cnf
,
4665 &ett_homeplug_av_cc_sta_info
,
4666 &ett_homeplug_av_cc_net_info
,
4667 &ett_homeplug_av_cm_enc_pld_ind
,
4668 &ett_homeplug_av_cm_enc_pld_rsp
,
4669 &ett_homeplug_av_cm_set_key_req
,
4670 &ett_homeplug_av_cm_set_key_cnf
,
4671 &ett_homeplug_av_cm_get_key_req
,
4672 &ett_homeplug_av_cm_get_key_cnf
,
4673 &ett_homeplug_av_brg_infos_cnf
,
4674 &ett_homeplug_av_cm_nw_infos_cnf
,
4675 &ett_homeplug_av_nw_stats_cnf
,
4677 &ett_homeplug_av_get_sw_cnf
,
4678 &ett_homeplug_av_wr_mem_req
,
4679 &ett_homeplug_av_wr_mem_cnf
,
4680 &ett_homeplug_av_rd_mem_req
,
4681 &ett_homeplug_av_st_mac_req
,
4682 &ett_homeplug_av_st_mac_cnf
,
4683 &ett_homeplug_av_rd_mem_cnf
,
4684 &ett_homeplug_av_get_nvm_cnf
,
4685 &ett_homeplug_av_rs_dev_cnf
,
4686 &ett_homeplug_av_wr_mod_req
,
4687 &ett_homeplug_av_wr_mod_cnf
,
4688 &ett_homeplug_av_wr_mod_ind
,
4689 &ett_homeplug_av_rd_mod_req
,
4690 &ett_homeplug_av_rd_mod_cnf
,
4691 &ett_homeplug_av_mod_nvm_req
,
4692 &ett_homeplug_av_mod_nvm_cnf
,
4693 &ett_homeplug_av_wd_rpt_req
,
4694 &ett_homeplug_av_wd_rpt_ind
,
4695 &ett_homeplug_av_lnk_stats_req
,
4696 &ett_homeplug_av_lnk_stats_cnf
,
4697 &ett_homeplug_av_lnk_stats_tx
,
4698 &ett_homeplug_av_lnk_stats_rx
,
4699 &ett_homeplug_av_lnk_stats_rx_inv
,
4700 &ett_homeplug_av_sniffer_req
,
4701 &ett_homeplug_av_sniffer_cnf
,
4702 &ett_homeplug_av_sniffer_ind
,
4703 &ett_homeplug_av_sniffer_ind_data
,
4704 &ett_homeplug_av_nw_info_cnf
,
4705 &ett_homeplug_av_nw_info_sta_info
,
4706 &ett_homeplug_av_nw_info_net_info
,
4707 &ett_homeplug_av_cp_rpt_req
,
4708 &ett_homeplug_av_cp_rpt_ind
,
4709 &ett_homeplug_av_fr_lbk_req
,
4710 &ett_homeplug_av_fr_lbk_cnf
,
4711 &ett_homeplug_av_lbk_stat_cnf
,
4712 &ett_homeplug_av_set_key_req
,
4713 &ett_homeplug_av_set_key_cnf
,
4714 &ett_homeplug_av_mfg_string_cnf
,
4715 &ett_homeplug_av_rd_cblock_cnf
,
4716 &ett_homeplug_av_cblock_hdr
,
4717 &ett_homeplug_av_cblock
,
4718 &ett_homeplug_av_set_sdram_req
,
4719 &ett_homeplug_av_set_sdram_cnf
,
4720 &ett_homeplug_av_host_action_ind
,
4721 &ett_homeplug_av_host_action_rsp
,
4722 &ett_homeplug_av_op_attr_req
,
4723 &ett_homeplug_av_op_attr_cnf
,
4724 &ett_homeplug_av_op_attr_data
,
4725 &ett_homeplug_av_enet_phy_req
,
4726 &ett_homeplug_av_enet_phy_cnf
,
4727 &ett_homeplug_av_tone_map_tx_req
,
4728 &ett_homeplug_av_tone_map_rx_req
,
4729 &ett_homeplug_av_tone_map_tx_cnf
,
4730 &ett_homeplug_av_tone_map_rx_cnf
,
4731 &ett_homeplug_av_tone_map_carriers
,
4732 &ett_homeplug_av_tone_map_carrier
4736 proto_homeplug_av
= proto_register_protocol("HomePlug AV protocol", "HomePlug AV", "homeplug-av");
4738 proto_register_field_array(proto_homeplug_av
, hf
, array_length(hf
));
4740 proto_register_subtree_array(ett
, array_length(ett
));
4744 proto_reg_handoff_homeplug_av(void)
4746 dissector_handle_t homeplug_av_handle
;
4748 homeplug_av_handle
= create_dissector_handle(dissect_homeplug_av
, proto_homeplug_av
);
4749 dissector_add_uint("ethertype", ETHERTYPE_HOMEPLUG_AV
, homeplug_av_handle
);
4758 * indent-tabs-mode: nil
4761 * ex: set shiftwidth=3 tabstop=8 expandtab:
4762 * :indentSize=3:tabSize=8:noTabs=true: