1 /* packet-homeplug-av.c
2 * Routines for HomePlug AV dissection
4 * Copyright 2011, Florian Fainelli <florian[AT]openwrt.org>
5 * Copyright 2016, Nora Sandler <nsandler[AT]securityinnovation.com>
6 * Copyright 2018, Sergey Rak <sergrak[AT]iotecha.com>
8 * Wireshark - Network traffic analyzer
9 * By Gerald Combs <gerald[AT]wireshark.org>
10 * Copyright 1998 Gerald Combs
12 * SPDX-License-Identifier: GPL-2.0-or-later
17 #include <epan/packet.h>
18 #include <epan/etypes.h>
19 #include <epan/ptvcursor.h>
22 void proto_register_homeplug_av(void);
23 void proto_reg_handoff_homeplug_av(void);
25 static dissector_handle_t homeplug_av_handle
;
27 static int proto_homeplug_av
;
29 static int hf_homeplug_av_mmhdr
;
30 static int hf_homeplug_av_mmhdr_mmver
;
31 static int hf_homeplug_av_mmhdr_mmtype_general
;
32 static int hf_homeplug_av_mmhdr_mmtype_qualcomm
;
33 static int hf_homeplug_av_mmhdr_mmtype_st
;
34 static int hf_homeplug_av_mmhdr_mmtype_lsb
;
35 static int hf_homeplug_av_mmhdr_mmtype_msb
;
36 static int hf_homeplug_av_mmhdr_fmi
;
37 static int hf_homeplug_av_vendor
;
38 static int hf_homeplug_av_vendor_oui
;
39 static int hf_homeplug_av_reserved
;
41 /* Frame Control fields (for sniffer data) */
42 static int hf_homeplug_av_fc
;
43 static int hf_homeplug_av_fc_del_type
;
44 static int hf_homeplug_av_fc_access
;
45 static int hf_homeplug_av_fc_snid
;
46 static int hf_homeplug_av_fc_fccs_av
;
48 /* Variant fields used by multiple MPDU types */
49 static int hf_homeplug_av_dtei
;
50 static int hf_homeplug_av_stei
;
51 static int hf_homeplug_av_lid
;
52 static int hf_homeplug_av_cfs
;
53 static int hf_homeplug_av_bdf
;
54 static int hf_homeplug_av_hp10df
;
55 static int hf_homeplug_av_hp11df
;
56 static int hf_homeplug_av_svn
;
57 static int hf_homeplug_av_rrtf
;
58 static int hf_homeplug_av_fl_av
;
59 static int hf_homeplug_av_ppb
;
60 static int hf_homeplug_av_mfs_rsp_data
;
61 static int hf_homeplug_av_mfs_rsp_mgmt
;
64 static int hf_homeplug_av_bcn
;
65 static int hf_homeplug_av_bcn_bts
;
66 static int hf_homeplug_av_bcn_bto_0
;
67 static int hf_homeplug_av_bcn_bto_1
;
68 static int hf_homeplug_av_bcn_bto_2
;
69 static int hf_homeplug_av_bcn_bto_3
;
71 /* Beacon MPDU Payload */
72 static int hf_homeplug_av_bcn_payload
;
73 static int hf_homeplug_av_bcn_type
;
74 static int hf_homeplug_av_bcn_nid
;
75 static int hf_homeplug_av_bcn_stei
;
76 static int hf_homeplug_av_bcn_ncnr
;
77 static int hf_homeplug_av_bcn_num_slots
;
78 static int hf_homeplug_av_bcn_slot_use
;
79 static int hf_homeplug_av_bcn_slot_id
;
80 static int hf_homeplug_av_bcn_aclss
;
81 static int hf_homeplug_av_bcn_hm
;
82 static int hf_homeplug_av_bcn_nm
;
83 static int hf_homeplug_av_bcn_npsm
;
84 static int hf_homeplug_av_bcn_cco_cap
;
85 static int hf_homeplug_av_bcn_rtsbf
;
86 static int hf_homeplug_av_bcn_hoip
;
87 static int hf_homeplug_av_bcn_rsf
;
88 static int hf_homeplug_av_bcn_plevel
;
89 static int hf_homeplug_av_bcn_bentries
;
90 static int hf_homeplug_av_bcn_bpcs
;
93 static int hf_homeplug_av_sof
;
94 static int hf_homeplug_av_sof_peks
;
95 static int hf_homeplug_av_sof_ble
;
96 static int hf_homeplug_av_sof_pbsz
;
97 static int hf_homeplug_av_sof_num_sym
;
98 static int hf_homeplug_av_sof_tmi_av
;
99 static int hf_homeplug_av_sof_mpdu_cnt
;
100 static int hf_homeplug_av_sof_burst_cnt
;
101 static int hf_homeplug_av_sof_bbf
;
102 static int hf_homeplug_av_sof_mrtfl
;
103 static int hf_homeplug_av_sof_clst
;
104 static int hf_homeplug_av_sof_mfs_cmd_mgmt
;
105 static int hf_homeplug_av_sof_mfs_cmd_data
;
106 static int hf_homeplug_av_sof_rsr
;
107 static int hf_homeplug_av_sof_mcf
;
108 static int hf_homeplug_av_sof_dccpcf
;
109 static int hf_homeplug_av_sof_mnbf
;
110 static int hf_homeplug_av_sof_mfs_rsp_mgmt
;
111 static int hf_homeplug_av_sof_mfs_rsp_data
;
112 static int hf_homeplug_av_sof_bm_sack
;
114 /* Selective Acknowledgement */
115 static int hf_homeplug_av_sack
;
117 /* Request to Send/Clear to Send */
118 static int hf_homeplug_av_rtscts
;
119 static int hf_homeplug_av_rtscts_rtsf
;
120 static int hf_homeplug_av_rtscts_igf
;
121 static int hf_homeplug_av_rtscts_mnbf
;
122 static int hf_homeplug_av_rtscts_mcf
;
123 static int hf_homeplug_av_rtscts_dur
;
126 static int hf_homeplug_av_sound
;
127 static int hf_homeplug_av_sound_pbsz
;
128 static int hf_homeplug_av_sound_bdf
;
129 static int hf_homeplug_av_sound_saf
;
130 static int hf_homeplug_av_sound_scf
;
131 static int hf_homeplug_av_sound_req_tm
;
132 static int hf_homeplug_av_sound_mpdu_cnt
;
133 static int hf_homeplug_av_sound_src
;
134 static int hf_homeplug_av_sound_add_req_tm
;
135 static int hf_homeplug_av_sound_max_pb_sym
;
136 static int hf_homeplug_av_sound_ecsf
;
137 static int hf_homeplug_av_sound_ecuf
;
138 static int hf_homeplug_av_sound_ems
;
139 static int hf_homeplug_av_sound_esgisf
;
140 static int hf_homeplug_av_sound_elgisf
;
141 static int hf_homeplug_av_sound_efrs
;
143 /* Reverse Start of Frame */
144 static int hf_homeplug_av_rsof
;
145 static int hf_homeplug_av_rsof_fl
;
146 static int hf_homeplug_av_rsof_tmi
;
147 static int hf_homeplug_av_rsof_pbsz
;
148 static int hf_homeplug_av_rsof_num_sym
;
149 static int hf_homeplug_av_rsof_mfs_cmd_mgmt
;
150 static int hf_homeplug_av_rsof_mfs_cmd_data
;
153 static int hf_homeplug_av_public
;
154 static int hf_homeplug_av_public_frag_count
;
155 static int hf_homeplug_av_public_frag_index
;
156 static int hf_homeplug_av_public_frag_seqnum
;
158 static int hf_homeplug_av_cc_disc_list_cnf
;
160 static int hf_homeplug_av_cc_disc_list_sta_cnt
;
161 static int hf_homeplug_av_cc_sta_info
;
162 static int hf_homeplug_av_cc_sta_info_mac
;
163 static int hf_homeplug_av_cc_sta_info_tei
;
164 static int hf_homeplug_av_cc_sta_info_same_net
;
165 static int hf_homeplug_av_cc_sta_info_sig_level
;
166 static int hf_homeplug_av_cc_sta_info_avg_ble
;
168 static int hf_homeplug_av_cc_disc_list_net_cnt
;
169 static int hf_homeplug_av_cc_net_info
;
170 static int hf_homeplug_av_cc_net_info_hyb_mode
;
171 static int hf_homeplug_av_cc_net_info_bcn_slots
;
172 static int hf_homeplug_av_cc_net_info_cco_sts
;
173 static int hf_homeplug_av_cc_net_info_bcn_ofs
;
175 static int hf_homeplug_av_brg_infos_cnf
;
176 static int hf_homeplug_av_brg_infos_cnf_brd
;
177 static int hf_homeplug_av_brg_infos_cnf_btei
;
178 static int hf_homeplug_av_brg_infos_cnf_num_stas
;
179 static int hf_homeplug_av_brg_infos_cnf_mac
;
181 static int hf_homeplug_av_cm_nw_infos_cnf
;
183 static int hf_homeplug_av_nw_stats_cnf
;
185 /* Shared network informations fields */
186 static int hf_homeplug_av_nw_info_peks
;
187 static int hf_homeplug_av_nw_info_pid
;
188 static int hf_homeplug_av_nw_info_prn
;
189 static int hf_homeplug_av_nw_info_pmn
;
190 static int hf_homeplug_av_nw_info_my_nonce
;
191 static int hf_homeplug_av_nw_info_your_nonce
;
192 static int hf_homeplug_av_nw_info_key_type
;
193 static int hf_homeplug_av_nw_info_cco_cap
;
194 static int hf_homeplug_av_nw_info_num_avlns
;
195 static int hf_homeplug_av_nw_info_nid
;
196 static int hf_homeplug_av_nw_info_snid
;
197 static int hf_homeplug_av_nw_info_tei
;
198 static int hf_homeplug_av_nw_info_sta_role
;
199 static int hf_homeplug_av_nw_info_cco_mac
;
200 static int hf_homeplug_av_nw_info_cco_tei
;
201 static int hf_homeplug_av_nw_info_num_stas
;
202 static int hf_homeplug_av_nw_info_access
;
203 static int hf_homeplug_av_nw_info_num_coord
;
206 static int hf_homeplug_av_cm_enc_pld_ind
;
207 static int hf_homeplug_av_cm_enc_pld_ind_avlns
;
208 static int hf_homeplug_av_cm_enc_pld_ind_iv
;
209 static int hf_homeplug_av_cm_enc_pld_ind_uuid
;
210 static int hf_homeplug_av_cm_enc_pld_ind_len
;
211 static int hf_homeplug_av_cm_enc_pld_ind_pld
;
213 static int hf_homeplug_av_cm_enc_pld_rsp
;
214 static int hf_homeplug_av_cm_enc_pld_rsp_result
;
216 static int hf_homeplug_av_cm_set_key_req
;
217 static int hf_homeplug_av_cm_set_key_req_nw_key
;
219 static int hf_homeplug_av_cm_set_key_cnf
;
220 static int hf_homeplug_av_cm_set_key_cnf_result
;
222 static int hf_homeplug_av_cm_get_key_req
;
223 static int hf_homeplug_av_cm_get_key_req_type
;
224 static int hf_homeplug_av_cm_get_key_req_has_key
;
226 static int hf_homeplug_av_cm_get_key_cnf
;
227 static int hf_homeplug_av_cm_get_key_cnf_result
;
228 static int hf_homeplug_av_cm_get_key_cnf_rtype
;
229 static int hf_homeplug_av_cm_get_key_cnf_key
;
232 /* Intellon specific vendor MMEs */
233 static int hf_homeplug_av_get_sw_cnf
;
234 static int hf_homeplug_av_get_sw_cnf_status
;
235 static int hf_homeplug_av_get_sw_cnf_dev_id
;
236 static int hf_homeplug_av_get_sw_cnf_ver_len
;
237 static int hf_homeplug_av_get_sw_cnf_ver_str
;
238 static int hf_homeplug_av_get_sw_cnf_upg
;
240 /* Shared memory related fields */
241 static int hf_homeplug_av_mem_len_16bits
;
242 static int hf_homeplug_av_mem_len_32bits
;
243 static int hf_homeplug_av_mem_offset
;
244 static int hf_homeplug_av_mem_checksum
;
245 static int hf_homeplug_av_mem_data
;
246 static int hf_homeplug_av_mem_addr
;
247 static int hf_homeplug_av_mem_status
;
249 static int hf_homeplug_av_wr_mem_req
;
250 static int hf_homeplug_av_wr_mem_cnf
;
252 static int hf_homeplug_av_rd_mem_req
;
253 static int hf_homeplug_av_rd_mem_cnf
;
255 static int hf_homeplug_av_mac_module_id
;
257 static int hf_homeplug_av_st_mac_req
;
258 static int hf_homeplug_av_st_mac_req_img_load
;
259 static int hf_homeplug_av_st_mac_req_img_len
;
260 static int hf_homeplug_av_st_mac_req_img_chksum
;
261 static int hf_homeplug_av_st_mac_req_img_start
;
263 static int hf_homeplug_av_st_mac_cnf
;
264 static int hf_homeplug_av_st_mac_cnf_status
;
266 static int hf_homeplug_av_get_nvm_cnf
;
267 static int hf_homeplug_av_get_nvm_cnf_status
;
268 static int hf_homeplug_av_get_nvm_cnf_nvm_type
;
269 static int hf_homeplug_av_get_nvm_cnf_nvm_page
;
270 static int hf_homeplug_av_get_nvm_cnf_nvm_block
;
271 static int hf_homeplug_av_get_nvm_cnf_nvm_size
;
273 static int hf_homeplug_av_rs_dev_cnf
;
274 static int hf_homeplug_av_rs_dev_cnf_status
;
276 static int hf_homeplug_av_wr_mod_req
;
278 static int hf_homeplug_av_wr_mod_cnf
;
279 static int hf_homeplug_av_wr_mod_cnf_status
;
281 static int hf_homeplug_av_wr_mod_ind
;
282 static int hf_homeplug_av_wr_mod_ind_status
;
284 static int hf_homeplug_av_rd_mod_req
;
286 static int hf_homeplug_av_rd_mod_cnf
;
287 static int hf_homeplug_av_rd_mod_cnf_status
;
289 static int hf_homeplug_av_mod_nvm_req
;
291 static int hf_homeplug_av_mod_nvm_cnf
;
292 static int hf_homeplug_av_mod_nvm_cnf_status
;
294 static int hf_homeplug_av_wd_rpt_req
;
295 static int hf_homeplug_av_wd_rpt_req_session_id
;
296 static int hf_homeplug_av_wd_rpt_req_clr
;
298 static int hf_homeplug_av_wd_rpt_ind
;
299 static int hf_homeplug_av_wd_rpt_ind_status
;
300 static int hf_homeplug_av_wd_rpt_ind_session_id
;
301 static int hf_homeplug_av_wd_rpt_ind_num_parts
;
302 static int hf_homeplug_av_wd_rpt_ind_curr_part
;
303 static int hf_homeplug_av_wd_rpt_ind_rdata_len
;
304 static int hf_homeplug_av_wd_rpt_ind_rdata_ofs
;
305 static int hf_homeplug_av_wd_rpt_ind_rdata
;
307 static int hf_homeplug_av_lnk_stats_req
;
308 static int hf_homeplug_av_lnk_stats_req_mcontrol
;
309 static int hf_homeplug_av_lnk_stats_req_dir
;
310 static int hf_homeplug_av_lnk_stats_req_lid
;
311 static int hf_homeplug_av_lnk_stats_req_macaddr
;
313 static int hf_homeplug_av_lnk_stats_cnf
;
314 static int hf_homeplug_av_lnk_stats_cnf_status
;
315 static int hf_homeplug_av_lnk_stats_cnf_dir
;
316 static int hf_homeplug_av_lnk_stats_cnf_lid
;
317 static int hf_homeplug_av_lnk_stats_cnf_tei
;
318 static int hf_homeplug_av_lnk_stats_cnf_lstats
;
320 static int hf_homeplug_av_lnk_stats_tx
;
321 static int hf_homeplug_av_lnk_stats_tx_mpdu_ack
;
322 static int hf_homeplug_av_lnk_stats_tx_mpdu_col
;
323 static int hf_homeplug_av_lnk_stats_tx_mpdu_fai
;
324 static int hf_homeplug_av_lnk_stats_tx_pbs_pass
;
325 static int hf_homeplug_av_lnk_stats_tx_pbs_fail
;
327 static int hf_homeplug_av_lnk_stats_rx
;
328 static int hf_homeplug_av_lnk_stats_rx_mpdu_ack
;
329 static int hf_homeplug_av_lnk_stats_rx_mpdu_fai
;
330 static int hf_homeplug_av_lnk_stats_rx_pbs_pass
;
331 static int hf_homeplug_av_lnk_stats_rx_pbs_fail
;
332 static int hf_homeplug_av_lnk_stats_rx_tb_pass
;
333 static int hf_homeplug_av_lnk_stats_rx_tb_fail
;
334 static int hf_homeplug_av_lnk_stats_rx_num_int
;
336 static int hf_homeplug_av_rx_inv_stats
;
337 static int hf_homeplug_av_rx_inv_phy_rate
;
338 static int hf_homeplug_av_rx_inv_pbs_pass
;
339 static int hf_homeplug_av_rx_inv_pbs_fail
;
340 static int hf_homeplug_av_rx_inv_tb_pass
;
341 static int hf_homeplug_av_rx_inv_tb_fail
;
343 static int hf_homeplug_av_sniffer_req
;
344 static int hf_homeplug_av_sniffer_req_ctrl
;
346 static int hf_homeplug_av_sniffer_cnf
;
347 static int hf_homeplug_av_sniffer_cnf_status
;
348 static int hf_homeplug_av_sniffer_cnf_state
;
349 static int hf_homeplug_av_sniffer_cnf_da
;
351 static int hf_homeplug_av_sniffer_ind
;
352 static int hf_homeplug_av_sniffer_ind_type
;
353 static int hf_homeplug_av_sniffer_ind_data
;
354 static int hf_homeplug_av_sniffer_data_dir
;
355 static int hf_homeplug_av_sniffer_data_systime
;
356 static int hf_homeplug_av_sniffer_data_bc_time
;
358 static int hf_homeplug_av_nw_info_cnf
;
360 static int hf_homeplug_av_nw_info_sta_info
;
361 static int hf_homeplug_av_nw_info_net_info
;
363 static int hf_homeplug_av_nw_info_sta_da
;
364 static int hf_homeplug_av_nw_info_sta_tei
;
365 static int hf_homeplug_av_nw_info_sta_bda
;
366 static int hf_homeplug_av10_nw_info_sta_phy_dr_tx
;
367 static int hf_homeplug_av10_nw_info_sta_phy_dr_rx
;
368 static int hf_homeplug_av11_nw_info_sta_phy_dr_tx
;
369 static int hf_homeplug_av11_nw_info_sta_cpling_tx
;
370 static int hf_homeplug_av11_nw_info_sta_phy_dr_rx
;
371 static int hf_homeplug_av11_nw_info_sta_cpling_rx
;
373 static int hf_homeplug_av_cp_rpt_req
;
374 static int hf_homeplug_av_cp_rpt_req_session_id
;
375 static int hf_homeplug_av_cp_rpt_req_clr
;
377 static int hf_homeplug_av_cp_rpt_ind
;
378 static int hf_homeplug_av_cp_rpt_ind_status
;
379 static int hf_homeplug_av_cp_rpt_ind_major_ver
;
380 static int hf_homeplug_av_cp_rpt_ind_minor_ver
;
381 static int hf_homeplug_av_cp_rpt_ind_session_id
;
382 static int hf_homeplug_av_cp_rpt_ind_total_size
;
383 static int hf_homeplug_av_cp_rpt_ind_blk_offset
;
384 static int hf_homeplug_av_cp_rpt_ind_byte_index
;
385 static int hf_homeplug_av_cp_rpt_ind_num_parts
;
386 static int hf_homeplug_av_cp_rpt_ind_curr_part
;
387 static int hf_homeplug_av_cp_rpt_ind_data_len
;
388 static int hf_homeplug_av_cp_rpt_ind_data_ofs
;
389 static int hf_homeplug_av_cp_rpt_ind_data
;
391 static int hf_homeplug_av_fr_lbk_duration
;
392 static int hf_homeplug_av_fr_lbk_len
;
394 static int hf_homeplug_av_fr_lbk_req
;
395 static int hf_homeplug_av_fr_lbk_req_data
;
397 static int hf_homeplug_av_fr_lbk_cnf
;
398 static int hf_homeplug_av_fr_lbk_cnf_status
;
400 static int hf_homeplug_av_lbk_stat_cnf
;
401 static int hf_homeplug_av_lbk_stat_cnf_status
;
402 static int hf_homeplug_av_lbk_stat_cnf_lbk_stat
;
404 static int hf_homeplug_av_set_key_req
;
405 static int hf_homeplug_av_set_key_req_eks
;
406 static int hf_homeplug_av_set_key_req_nmk
;
407 static int hf_homeplug_av_set_key_req_rda
;
408 static int hf_homeplug_av_set_key_req_dak
;
410 static int hf_homeplug_av_set_key_cnf
;
411 static int hf_homeplug_av_set_key_cnf_status
;
413 static int hf_homeplug_av_mfg_string_cnf
;
414 static int hf_homeplug_av_mfg_string_cnf_status
;
415 static int hf_homeplug_av_mfg_string_cnf_len
;
416 static int hf_homeplug_av_mfg_string_cnf_string
;
418 static int hf_homeplug_av_rd_cblock_cnf
;
419 static int hf_homeplug_av_rd_cblock_cnf_status
;
420 static int hf_homeplug_av_rd_cblock_cnf_len
;
422 static int hf_homeplug_av_cblock_hdr
;
423 static int hf_homeplug_av_cblock_hdr_ver
;
424 static int hf_homeplug_av_cblock_img_rom_addr
;
425 static int hf_homeplug_av_cblock_img_addr
;
426 static int hf_homeplug_av_cblock_img_len
;
427 static int hf_homeplug_av_cblock_img_chksum
;
428 static int hf_homeplug_av_cblock_entry_point
;
429 static int hf_homeplug_av_cblock_hdr_minor
;
430 static int hf_homeplug_av_cblock_hdr_img_type
;
431 static int hf_homeplug_av_cblock_hdr_ignore_mask
;
432 static int hf_homeplug_av_cblock_hdr_module_id
;
433 static int hf_homeplug_av_cblock_hdr_module_subid
;
434 static int hf_homeplug_av_cblock_next_hdr
;
435 static int hf_homeplug_av_cblock_hdr_chksum
;
437 static int hf_homeplug_av_cblock
;
438 static int hf_homeplug_av_cblock_sdram_size
;
439 static int hf_homeplug_av_cblock_sdram_conf
;
440 static int hf_homeplug_av_cblock_sdram_tim0
;
441 static int hf_homeplug_av_cblock_sdram_tim1
;
442 static int hf_homeplug_av_cblock_sdram_cntrl
;
443 static int hf_homeplug_av_cblock_sdram_refresh
;
444 static int hf_homeplug_av_cblock_mac_clock
;
446 static int hf_homeplug_av_set_sdram_req
;
447 static int hf_homeplug_av_set_sdram_req_chksum
;
449 static int hf_homeplug_av_set_sdram_cnf
;
450 static int hf_homeplug_av_set_sdram_cnf_status
;
452 static int hf_homeplug_av_host_action_ind
;
453 static int hf_homeplug_av_host_action_ind_act
;
455 static int hf_homeplug_av_host_action_rsp
;
456 static int hf_homeplug_av_host_action_rsp_sts
;
458 static int hf_homeplug_av_op_attr_cookie
;
459 static int hf_homeplug_av_op_attr_rep_type
;
461 static int hf_homeplug_av_op_attr_req
;
463 static int hf_homeplug_av_op_attr_cnf
;
464 static int hf_homeplug_av_op_attr_cnf_status
;
465 static int hf_homeplug_av_op_attr_cnf_size
;
466 static int hf_homeplug_av_op_attr_cnf_data
;
468 static int hf_homeplug_av_op_attr_data_hw
;
469 static int hf_homeplug_av_op_attr_data_sw
;
470 static int hf_homeplug_av_op_attr_data_sw_major
;
471 static int hf_homeplug_av_op_attr_data_sw_minor
;
472 static int hf_homeplug_av_op_attr_data_sw_sub
;
473 static int hf_homeplug_av_op_attr_data_sw_num
;
474 static int hf_homeplug_av_op_attr_data_sw_date
;
475 static int hf_homeplug_av_op_attr_data_sw_rel
;
476 static int hf_homeplug_av_op_attr_data_sw_sdram_type
;
477 static int hf_homeplug_av_op_attr_data_sw_linefreq
;
478 static int hf_homeplug_av_op_attr_data_sw_zerocross
;
479 static int hf_homeplug_av_op_attr_data_sw_sdram_size
;
480 static int hf_homeplug_av_op_attr_data_sw_auth_mode
;
482 static int hf_homeplug_av_enet_phy_req
;
483 static int hf_homeplug_av_enet_phy_req_mcontrol
;
484 static int hf_homeplug_av_enet_phy_req_addcaps
;
486 static int hf_homeplug_av_enet_phy_cnf
;
487 static int hf_homeplug_av_enet_phy_cnf_status
;
488 static int hf_homeplug_av_enet_phy_cnf_speed
;
489 static int hf_homeplug_av_enet_phy_cnf_duplex
;
491 static int hf_homeplug_av_tone_map_tx_req
;
492 static int hf_homeplug_av_tone_map_tx_req_mac
;
493 static int hf_homeplug_av_tone_map_tx_req_slot
;
494 static int hf_homeplug_av_tone_map_tx_req_coupling
;
496 static int hf_homeplug_av_tone_map_rx_req
;
497 static int hf_homeplug_av_tone_map_rx_req_mac
;
498 static int hf_homeplug_av_tone_map_rx_req_slot
;
499 static int hf_homeplug_av_tone_map_rx_req_coupling
;
501 static int hf_homeplug_av_tone_map_tx_cnf
;
502 static int hf_homeplug_av_tone_map_tx_cnf_status
;
503 static int hf_homeplug_av_tone_map_tx_cnf_len
;
504 static int hf_homeplug_av_tone_map_tx_cnf_mac
;
505 static int hf_homeplug_av_tone_map_tx_cnf_slot
;
506 static int hf_homeplug_av_tone_map_tx_cnf_num_tms
;
507 static int hf_homeplug_av_tone_map_tx_cnf_num_act
;
509 static int hf_homeplug_av_tone_map_rx_cnf
;
510 static int hf_homeplug_av_tone_map_rx_cnf_status
;
511 static int hf_homeplug_av_tone_map_rx_cnf_len
;
512 static int hf_homeplug_av_tone_map_rx_cnf_subver
;
513 static int hf_homeplug_av_tone_map_rx_cnf_coupling
;
514 static int hf_homeplug_av_tone_map_rx_cnf_mac
;
515 static int hf_homeplug_av_tone_map_rx_cnf_slot
;
516 static int hf_homeplug_av_tone_map_rx_cnf_num_tms
;
517 static int hf_homeplug_av_tone_map_rx_cnf_num_act
;
518 static int hf_homeplug_av_tone_map_rx_cnf_agc
;
519 static int hf_homeplug_av_tone_map_rx_cnf_gil
;
521 static int hf_homeplug_av_tone_map_carriers
;
522 static int hf_homeplug_av_tone_map_carrier
;
523 static int hf_homeplug_av_tone_map_carrier_lo
;
524 static int hf_homeplug_av_tone_map_carrier_hi
;
526 static int hf_homeplug_av_cc_assoc_reqtype
;
527 static int hf_homeplug_av_cc_assoc_cco_cap
;
528 static int hf_homeplug_av_cc_assoc_proxy_net_cap
;
529 static int hf_homeplug_av_cc_assoc_result
;
530 static int hf_homeplug_av_cc_assoc_nid
;
531 static int hf_homeplug_av_cc_assoc_snid
;
532 static int hf_homeplug_av_cc_assoc_tei
;
533 static int hf_homeplug_av_cc_assoc_lease_time
;
535 static int hf_homeplug_av_cc_set_tei_map_ind_mode
;
536 static int hf_homeplug_av_cc_set_tei_map_ind_num
;
537 static int hf_homeplug_av_cc_set_tei_map_ind_tei
;
538 static int hf_homeplug_av_cc_set_tei_map_ind_mac
;
539 static int hf_homeplug_av_cc_set_tei_map_ind_status
;
541 static int hf_homeplug_av_cm_unassoc_sta_nid
;
542 static int hf_homeplug_av_cm_unassoc_sta_cco_cap
;
545 static int hf_homeplug_av_gp_cm_slac_parm_apptype
;
546 static int hf_homeplug_av_gp_cm_slac_parm_sectype
;
547 static int hf_homeplug_av_gp_cm_slac_parm_runid
;
548 static int hf_homeplug_av_gp_cm_slac_parm_cipher_size
;
549 static int hf_homeplug_av_gp_cm_slac_parm_cipher
;
550 static int hf_homeplug_av_gp_cm_slac_parm_sound_target
;
551 static int hf_homeplug_av_gp_cm_slac_parm_sound_count
;
552 static int hf_homeplug_av_gp_cm_slac_parm_time_out
;
553 static int hf_homeplug_av_gp_cm_slac_parm_resptype
;
554 static int hf_homeplug_av_gp_cm_slac_parm_forwarding_sta
;
556 static int hf_homeplug_av_gp_cm_atten_profile_ind_pev_mac
;
557 static int hf_homeplug_av_gp_cm_atten_profile_ind_num_groups
;
558 static int hf_homeplug_av_gp_cm_atten_profile_ind_aag
;
560 static int hf_homeplug_av_gp_cm_atten_char_apptype
;
561 static int hf_homeplug_av_gp_cm_atten_char_sectype
;
562 static int hf_homeplug_av_gp_cm_atten_char_source_mac
;
563 static int hf_homeplug_av_gp_cm_atten_char_runid
;
564 static int hf_homeplug_av_gp_cm_atten_char_source_id
;
565 static int hf_homeplug_av_gp_cm_atten_char_resp_id
;
566 static int hf_homeplug_av_gp_cm_atten_char_numsounds
;
567 static int hf_homeplug_av_gp_cm_atten_char_numgroups
;
568 static int hf_homeplug_av_gp_cm_atten_char_aag
;
569 static int hf_homeplug_av_gp_cm_atten_char_profile
;
570 static int hf_homeplug_av_gp_cm_atten_char_cms_data
;
571 static int hf_homeplug_av_gp_cm_atten_char_result
;
573 static int hf_homeplug_av_gp_cm_start_atten_char_time_out
;
574 static int hf_homeplug_av_gp_cm_start_atten_char_resptype
;
575 static int hf_homeplug_av_gp_cm_start_atten_char_forwarding_sta
;
576 static int hf_homeplug_av_gp_cm_start_atten_char_runid
;
577 static int hf_homeplug_av_gp_cm_start_atten_char_numsounds
;
579 static int hf_homeplug_av_gp_cm_mnbc_sound_apptype
;
580 static int hf_homeplug_av_gp_cm_mnbc_sound_sectype
;
581 static int hf_homeplug_av_gp_cm_mnbc_sound_sender_id
;
582 static int hf_homeplug_av_gp_cm_mnbc_sound_countdown
;
583 static int hf_homeplug_av_gp_cm_mnbc_sound_runid
;
584 static int hf_homeplug_av_gp_cm_mnbc_sound_rsvd
;
585 static int hf_homeplug_av_gp_cm_mnbc_sound_rnd
;
587 static int hf_homeplug_av_gp_cm_validate_signaltype
;
588 static int hf_homeplug_av_gp_cm_validate_timer
;
589 static int hf_homeplug_av_gp_cm_validate_result
;
590 static int hf_homeplug_av_gp_cm_validate_togglenum
;
592 static int hf_homeplug_av_gp_cm_slac_match_apptype
;
593 static int hf_homeplug_av_gp_cm_slac_match_sectype
;
594 static int hf_homeplug_av_gp_cm_slac_match_length
;
595 static int hf_homeplug_av_gp_cm_slac_match_pev_id
;
596 static int hf_homeplug_av_gp_cm_slac_match_pev_mac
;
597 static int hf_homeplug_av_gp_cm_slac_match_evse_id
;
598 static int hf_homeplug_av_gp_cm_slac_match_evse_mac
;
599 static int hf_homeplug_av_gp_cm_slac_match_runid
;
600 static int hf_homeplug_av_gp_cm_slac_match_rsvd
;
601 static int hf_homeplug_av_gp_cm_slac_match_nid
;
602 static int hf_homeplug_av_gp_cm_slac_match_nmk
;
604 static int hf_homeplug_av_gp_cm_slac_user_data_broadcast_tlv_type
;
605 static int hf_homeplug_av_gp_cm_slac_user_data_tlv
;
606 static int hf_homeplug_av_gp_cm_slac_user_data_tlv_type
;
607 static int hf_homeplug_av_gp_cm_slac_user_data_tlv_length
;
608 static int hf_homeplug_av_gp_cm_slac_user_data_tlv_str_bytes
;
609 static int hf_homeplug_av_gp_cm_slac_user_data_tlv_oui
;
610 static int hf_homeplug_av_gp_cm_slac_user_data_tlv_subtype
;
611 static int hf_homeplug_av_gp_cm_slac_user_data_tlv_info_str
;
612 /* End of HPAV/GP fields*/
614 /* ST/IoTecha fields */
615 static int hf_homeplug_av_st_iotecha_header_rsvd
;
616 static int hf_homeplug_av_st_iotecha_header_mmever
;
617 static int hf_homeplug_av_st_iotecha_header_mver
;
619 static int hf_homeplug_av_st_iotecha_auth_nmk
;
620 static int hf_homeplug_av_st_iotecha_status_byte
;
622 static int hf_homeplug_av_st_iotecha_linkstatus_status
;
623 static int hf_homeplug_av_st_iotecha_linkstatus_devmode
;
625 static int hf_homeplug_av_st_iotecha_stp_discover_tlv
;
626 static int hf_homeplug_av_st_iotecha_stp_discover_tlv_type
;
627 static int hf_homeplug_av_st_iotecha_stp_discover_tlv_length
;
628 static int hf_homeplug_av_st_iotecha_stp_discover_tlv_value_bytes
;
629 static int hf_homeplug_av_st_iotecha_stp_discover_tlv_value_string
;
631 static int hf_homeplug_av_st_iotecha_gain_ask
;
632 static int hf_homeplug_av_st_iotecha_gain_new
;
633 static int hf_homeplug_av_st_iotecha_gain_prev
;
635 static int hf_homeplug_av_st_iotecha_mac_address
;
637 static int hf_homeplug_av_st_iotecha_tei_count
;
638 static int hf_homeplug_av_st_iotecha_tei
;
640 static int hf_homeplug_av_st_iotecha_tei_snap_tei
;
641 static int hf_homeplug_av_st_iotecha_tei_snap_addr_count
;
642 static int hf_homeplug_av_st_iotecha_tei_snap_mac_address_flag
;
644 static int hf_homeplug_av_st_iotecha_bss_list_count
;
645 static int hf_homeplug_av_st_iotecha_bss_entry
;
646 static int hf_homeplug_av_st_iotecha_bss_type
;
647 static int hf_homeplug_av_st_iotecha_bss_value_bytes
;
649 static int hf_homeplug_av_st_iotecha_chanqual_req_type
;
650 static int hf_homeplug_av_st_iotecha_chanqual_substatus
;
651 static int hf_homeplug_av_st_iotecha_chanqual_mac_local
;
652 static int hf_homeplug_av_st_iotecha_chanqual_mac_remote
;
653 static int hf_homeplug_av_st_iotecha_chanqual_source
;
654 static int hf_homeplug_av_st_iotecha_chanqual_response_type
;
655 static int hf_homeplug_av_st_iotecha_chanqual_tmi_count
;
656 static int hf_homeplug_av_st_iotecha_chanqual_tmi
;
657 static int hf_homeplug_av_st_iotecha_chanqual_int
;
658 static int hf_homeplug_av_st_iotecha_chanqual_int_count
;
659 static int hf_homeplug_av_st_iotecha_chanqual_int_et
;
660 static int hf_homeplug_av_st_iotecha_chanqual_int_tmi
;
661 static int hf_homeplug_av_st_iotecha_chanqual_tmi_attached
;
662 static int hf_homeplug_av_st_iotecha_chanqual_fec_type
;
663 static int hf_homeplug_av_st_iotecha_chanqual_cbld
;
664 static int hf_homeplug_av_st_iotecha_chanqual_cbld_data_low
;
665 static int hf_homeplug_av_st_iotecha_chanqual_cbld_data_high
;
667 static int hf_homeplug_av_st_iotecha_mfct_crc
;
668 static int hf_homeplug_av_st_iotecha_mfct_total_length
;
669 static int hf_homeplug_av_st_iotecha_mfct_offset
;
670 static int hf_homeplug_av_st_iotecha_mfct_length
;
671 static int hf_homeplug_av_st_iotecha_mfct_data
;
672 static int hf_homeplug_av_st_iotecha_mfct_timeout
;
673 static int hf_homeplug_av_st_iotecha_mfct_request_type
;
674 static int hf_homeplug_av_st_iotecha_mfct_reboot
;
675 static int hf_homeplug_av_st_iotecha_mfct_item_offset
;
676 static int hf_homeplug_av_st_iotecha_mfct_item_total_length
;
677 static int hf_homeplug_av_st_iotecha_mfct_name
;
678 static int hf_homeplug_av_st_iotecha_mfct_value
;
679 static int hf_homeplug_av_st_iotecha_mfct_result
;
681 static int hf_homeplug_av_st_iotecha_stp_fup_mac_da
;
682 static int hf_homeplug_av_st_iotecha_stp_fup_mac_sa
;
683 static int hf_homeplug_av_st_iotecha_stp_fup_mtype
;
685 static int hf_homeplug_av_st_iotecha_cpstate_state
;
686 static int hf_homeplug_av_st_iotecha_cpstate_pwm_duty
;
687 static int hf_homeplug_av_st_iotecha_cpstate_pwm_freq
;
688 static int hf_homeplug_av_st_iotecha_cpstate_voltage
;
689 static int hf_homeplug_av_st_iotecha_cpstate_adc_bitmask
;
690 static int hf_homeplug_av_st_iotecha_cpstate_adc_voltage_1
;
691 static int hf_homeplug_av_st_iotecha_cpstate_adc_voltage_2
;
692 static int hf_homeplug_av_st_iotecha_cpstate_adc_voltage_3
;
694 static int hf_homeplug_av_st_iotecha_user_message_info
;
695 static int hf_homeplug_av_st_iotecha_user_message_details
;
697 static int hf_homeplug_av_st_iotecha_test_type
;
698 static int hf_homeplug_av_st_iotecha_num_sound
;
699 static int hf_homeplug_av_st_iotecha_data_ind_addr
;
700 static int hf_homeplug_av_st_iotecha_agc_lock
;
701 static int hf_homeplug_av_st_iotecha_db_agc_val
;
703 static int hf_homeplug_av_st_iotecha_test_status
;
704 static int hf_homeplug_av_st_iotecha_suppress_data
;
706 // STP_TEST_CHAN_ATTEN_DATA
707 static int hf_homeplug_av_st_iotecha_sound_remain
;
708 static int hf_homeplug_av_st_iotecha_ntb_time
;
709 static int hf_homeplug_av_st_iotecha_rsvd1
;
710 static int hf_homeplug_av_st_iotecha_rsvd2
;
711 static int hf_homeplug_av_st_iotecha_num_segments
;
712 static int hf_homeplug_av_st_iotecha_segment
;
713 static int hf_homeplug_av_st_iotecha_num_chan
;
714 static int hf_homeplug_av_st_iotecha_chan_start
;
716 /* End of ST/IoTecha fields */
719 static int ett_homeplug_av
;
720 static int ett_homeplug_av_mmhdr
;
721 static int ett_homeplug_av_mmtype
;
722 static int ett_homeplug_av_fmi
;
723 static int ett_homeplug_av_vendor
;
724 static int ett_homeplug_av_public
;
726 static int ett_homeplug_av_fc
;
727 static int ett_homeplug_av_sof
;
728 static int ett_homeplug_av_sack
;
729 static int ett_homeplug_av_rtscts
;
730 static int ett_homeplug_av_sound
;
731 static int ett_homeplug_av_rsof
;
732 static int ett_homeplug_av_bcn
;
733 static int ett_homeplug_av_bcn_payload
;
734 static int ett_homeplug_av_cc_disc_list_cnf
;
735 static int ett_homeplug_av_cc_sta_info
;
736 static int ett_homeplug_av_cc_net_info
;
737 static int ett_homeplug_av_cm_enc_pld_ind
;
738 static int ett_homeplug_av_cm_enc_pld_rsp
;
739 static int ett_homeplug_av_cm_set_key_req
;
740 static int ett_homeplug_av_cm_set_key_cnf
;
741 static int ett_homeplug_av_cm_get_key_req
;
742 static int ett_homeplug_av_cm_get_key_cnf
;
743 static int ett_homeplug_av_brg_infos_cnf
;
744 static int ett_homeplug_av_cm_nw_infos_cnf
;
745 static int ett_homeplug_av_nw_stats_cnf
;
747 static int ett_homeplug_av_get_sw_cnf
;
748 static int ett_homeplug_av_wr_mem_req
;
749 static int ett_homeplug_av_wr_mem_cnf
;
750 static int ett_homeplug_av_rd_mem_req
;
751 static int ett_homeplug_av_st_mac_req
;
752 static int ett_homeplug_av_st_mac_cnf
;
753 static int ett_homeplug_av_rd_mem_cnf
;
754 static int ett_homeplug_av_get_nvm_cnf
;
755 static int ett_homeplug_av_rs_dev_cnf
;
756 static int ett_homeplug_av_wr_mod_req
;
757 static int ett_homeplug_av_wr_mod_cnf
;
758 static int ett_homeplug_av_wr_mod_ind
;
759 static int ett_homeplug_av_rd_mod_req
;
760 static int ett_homeplug_av_rd_mod_cnf
;
761 static int ett_homeplug_av_mod_nvm_req
;
762 static int ett_homeplug_av_mod_nvm_cnf
;
763 static int ett_homeplug_av_wd_rpt_req
;
764 static int ett_homeplug_av_wd_rpt_ind
;
765 static int ett_homeplug_av_lnk_stats_req
;
766 static int ett_homeplug_av_lnk_stats_cnf
;
767 static int ett_homeplug_av_lnk_stats_tx
;
768 static int ett_homeplug_av_lnk_stats_rx
;
769 static int ett_homeplug_av_lnk_stats_rx_inv
;
770 static int ett_homeplug_av_sniffer_req
;
771 static int ett_homeplug_av_sniffer_cnf
;
772 static int ett_homeplug_av_sniffer_ind
;
773 static int ett_homeplug_av_sniffer_ind_data
;
774 static int ett_homeplug_av_nw_info_cnf
;
775 static int ett_homeplug_av_nw_info_sta_info
;
776 static int ett_homeplug_av_nw_info_net_info
;
777 static int ett_homeplug_av_cp_rpt_req
;
778 static int ett_homeplug_av_cp_rpt_ind
;
779 static int ett_homeplug_av_fr_lbk_req
;
780 static int ett_homeplug_av_fr_lbk_cnf
;
781 static int ett_homeplug_av_lbk_stat_cnf
;
782 static int ett_homeplug_av_set_key_req
;
783 static int ett_homeplug_av_set_key_cnf
;
784 static int ett_homeplug_av_mfg_string_cnf
;
785 static int ett_homeplug_av_rd_cblock_cnf
;
786 static int ett_homeplug_av_cblock_hdr
;
787 static int ett_homeplug_av_cblock
;
788 static int ett_homeplug_av_set_sdram_req
;
789 static int ett_homeplug_av_set_sdram_cnf
;
790 static int ett_homeplug_av_host_action_ind
;
791 static int ett_homeplug_av_host_action_rsp
;
792 static int ett_homeplug_av_op_attr_req
;
793 static int ett_homeplug_av_op_attr_cnf
;
794 static int ett_homeplug_av_op_attr_data
;
795 static int ett_homeplug_av_enet_phy_req
;
796 static int ett_homeplug_av_enet_phy_cnf
;
797 static int ett_homeplug_av_tone_map_tx_req
;
798 static int ett_homeplug_av_tone_map_rx_req
;
799 static int ett_homeplug_av_tone_map_tx_cnf
;
800 static int ett_homeplug_av_tone_map_rx_cnf
;
801 static int ett_homeplug_av_tone_map_carriers
;
802 static int ett_homeplug_av_tone_map_carrier
;
804 static int ett_homeplug_av_gp_cm_atten_char_profile
;
805 static int ett_homeplug_av_gp_cm_slac_user_data_tlv
;
807 /* ST/IoTecha specific subtrees */
808 static int ett_homeplug_av_st_iotecha_header
;
809 static int ett_homeplug_av_st_iotecha_type_length_value
;
810 static int ett_homeplug_av_st_iotecha_chanqual_int
;
811 static int ett_homeplug_av_st_iotecha_chanqual_cbld
;
812 static int ett_homeplug_av_st_iotecha_bss_entry
;
813 /* End of ST/IoTecha specific subtrees */
815 /* Saving vendor specific subtree */
816 static proto_tree
*ti_vendor
;
818 #define HOMEPLUG_AV_MMHDR_LEN 3 /* MM version (1) + MM type (2) */
820 #define HOMEPLUG_AV_PUBLIC_FRAG_COUNT_MASK 0xF0
821 #define HOMEPLUG_AV_PUBLIC_FRAG_INDEX_MASK 0x0F
824 /* General MME Types */
826 /* Station - Central Coordinator*/
827 HOMEPLUG_AV_MMTYPE_GENERAL_CC_BACKUP_APPOINT_REQ
= 0x0004,
828 HOMEPLUG_AV_MMTYPE_GENERAL_CC_BACKUP_APPOINT_CNF
= 0x0005,
829 HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_INFO_REQ
= 0x0008,
830 HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_INFO_CNF
= 0x0009,
831 HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_INFO_IND
= 0x000A,
832 HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_INFO_RSP
= 0x000B,
833 HOMEPLUG_AV_MMTYPE_GENERAL_CC_HANDOVER_REQ
= 0x000C,
834 HOMEPLUG_AV_MMTYPE_GENERAL_CC_HANDOVER_CNF
= 0x000D,
835 HOMEPLUG_AV_MMTYPE_GENERAL_CC_HANDOVER_INFO_IND
= 0x0012,
836 HOMEPLUG_AV_MMTYPE_GENERAL_CC_HANDOVER_INFO_RSP
= 0x0013,
837 HOMEPLUG_AV_MMTYPE_GENERAL_CC_DISCOVER_LIST_REQ
= 0x0014,
838 HOMEPLUG_AV_MMTYPE_GENERAL_CC_DISCOVER_LIST_CNF
= 0x0015,
839 HOMEPLUG_AV_MMTYPE_GENERAL_CC_DISCOVER_LIST_IND
= 0x0016,
840 HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_NEW_REQ
= 0x0018,
841 HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_NEW_CNF
= 0x0019,
842 HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_MOD_REQ
= 0x001C,
843 HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_MOD_CNF
= 0x001D,
844 HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_SQZ_REQ
= 0x0020,
845 HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_SQZ_CNF
= 0x0021,
846 HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_REL_REQ
= 0x0024,
847 HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_REL_IND
= 0x0026,
848 HOMEPLUG_AV_MMTYPE_GENERAL_CC_DETECTC_REPORT_REQ
= 0x0028,
849 HOMEPLUG_AV_MMTYPE_GENERAL_CC_DETECTC_REPORT_CNF
= 0x0029,
850 HOMEPLUG_AV_MMTYPE_GENERAL_CC_WHO_RU_REQ
= 0x002C,
851 HOMEPLUG_AV_MMTYPE_GENERAL_CC_WHO_RU_CNF
= 0x002D,
852 HOMEPLUG_AV_MMTYPE_GENERAL_CC_ASSOC_REQ
= 0x0030,
853 HOMEPLUG_AV_MMTYPE_GENERAL_CC_ASSOC_CNF
= 0x0031,
854 HOMEPLUG_AV_MMTYPE_GENERAL_CC_LEAVE_REQ
= 0x0034,
855 HOMEPLUG_AV_MMTYPE_GENERAL_CC_LEAVE_CNF
= 0x0035,
856 HOMEPLUG_AV_MMTYPE_GENERAL_CC_LEAVE_IND
= 0x0036,
857 HOMEPLUG_AV_MMTYPE_GENERAL_CC_LEAVE_RSP
= 0x0037,
858 HOMEPLUG_AV_MMTYPE_GENERAL_CC_SET_TEI_MAP_REQ
= 0x0038,
859 HOMEPLUG_AV_MMTYPE_GENERAL_CC_SET_TEI_MAP_IND
= 0x003A,
860 HOMEPLUG_AV_MMTYPE_GENERAL_CC_RELAY_REQ
= 0x003C,
861 HOMEPLUG_AV_MMTYPE_GENERAL_CC_RELAY_IND
= 0x003E,
862 HOMEPLUG_AV_MMTYPE_GENERAL_CC_BEACON_RELIABILITY_REQ
= 0x0040,
863 HOMEPLUG_AV_MMTYPE_GENERAL_CC_BEACON_RELIABILITY_CNF
= 0x0041,
864 HOMEPLUG_AV_MMTYPE_GENERAL_CC_ALLOC_MOVE_REQ
= 0x0044,
865 HOMEPLUG_AV_MMTYPE_GENERAL_CC_ALLOC_MOVE_CNF
= 0x0045,
866 HOMEPLUG_AV_MMTYPE_GENERAL_CC_ACCESS_NEW_REQ
= 0x0048,
867 HOMEPLUG_AV_MMTYPE_GENERAL_CC_ACCESS_NEW_CNF
= 0x0049,
868 HOMEPLUG_AV_MMTYPE_GENERAL_CC_ACCESS_NEW_IND
= 0x004A,
869 HOMEPLUG_AV_MMTYPE_GENERAL_CC_ACCESS_NEW_RSP
= 0x004B,
870 HOMEPLUG_AV_MMTYPE_GENERAL_CC_ACCESS_REL_REQ
= 0x004C,
871 HOMEPLUG_AV_MMTYPE_GENERAL_CC_ACCESS_REL_CNF
= 0x004D,
872 HOMEPLUG_AV_MMTYPE_GENERAL_CC_ACCESS_REL_IND
= 0x004E,
873 HOMEPLUG_AV_MMTYPE_GENERAL_CC_ACCESS_REL_RSP
= 0x004F,
874 HOMEPLUG_AV_MMTYPE_GENERAL_CC_DCPPC_IND
= 0x0052,
875 HOMEPLUG_AV_MMTYPE_GENERAL_CC_DCPPC_RSP
= 0x0053,
876 HOMEPLUG_AV_MMTYPE_GENERAL_CC_HP1_DET_REQ
= 0x0054,
877 HOMEPLUG_AV_MMTYPE_GENERAL_CC_HP1_DET_CNF
= 0x0055,
878 HOMEPLUG_AV_MMTYPE_GENERAL_CC_BLE_UPDATE_IND
= 0x005A,
880 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_BCAST_REPEAT_IND
= 0x005E,
881 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_BCAST_REPEAT_RSP
= 0x005F,
882 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_MH_LINK_NEW_REQ
= 0x0060,
883 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_MH_LINK_NEW_CNF
= 0x0061,
884 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_ISP_DETECTION_REPORT_IND
= 0x0066,
885 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_ISP_START_RESYNC_REQ
= 0x0068,
886 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_ISP_FINISH_RESYNC_REQ
= 0x006C,
887 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_ISP_DETECTED_RESYNC_IND
= 0x0072,
888 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_ISP_TRANSMIT_RESYNC_REQ
= 0x0074,
889 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_POWERSAVE_REQ
= 0x0078,
890 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_POWERSAVE_CNF
= 0x0079,
891 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_POWERSAVE_EXIT_REQ
= 0x007C,
892 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_POWERSAVE_EXIT_CNF
= 0x007D,
893 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_POWERSAVE_LIST_REQ
= 0x0080,
894 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_POWERSAVE_LIST_CNF
= 0x0081,
895 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_POWERSAVE_STOP_REQ
= 0x0084,
896 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_POWERSAVE_STOP_CNF
= 0x0085,
897 /* Proxy Coordinator */
898 HOMEPLUG_AV_MMTYPE_GENERAL_CP_PROXY_APPOINT_REQ
= 0x2000,
899 HOMEPLUG_AV_MMTYPE_GENERAL_CP_PROXY_APPOINT_CNF
= 0x2001,
900 HOMEPLUG_AV_MMTYPE_GENERAL_PH_PROXY_APPOINT_IND
= 0x2006,
901 HOMEPLUG_AV_MMTYPE_GENERAL_CP_PROXY_WAKE_REQ
= 0x2008,
903 HOMEPLUG_AV_MMTYPE_GENERAL_NN_INL_REQ
= 0x4000,
904 HOMEPLUG_AV_MMTYPE_GENERAL_NN_INL_CNF
= 0x4001,
905 HOMEPLUG_AV_MMTYPE_GENERAL_NN_NEW_NET_REQ
= 0x4004,
906 HOMEPLUG_AV_MMTYPE_GENERAL_NN_NEW_NET_CNF
= 0x4005,
907 HOMEPLUG_AV_MMTYPE_GENERAL_NN_NEW_NET_IND
= 0x4006,
908 HOMEPLUG_AV_MMTYPE_GENERAL_NN_ADD_ALLOC_REQ
= 0x4008,
909 HOMEPLUG_AV_MMTYPE_GENERAL_NN_ADD_ALLOC_CNF
= 0x4009,
910 HOMEPLUG_AV_MMTYPE_GENERAL_NN_ADD_ALLOC_IND
= 0x400A,
911 HOMEPLUG_AV_MMTYPE_GENERAL_NN_REL_ALLOC_REQ
= 0x400C,
912 HOMEPLUG_AV_MMTYPE_GENERAL_NN_REL_ALLOC_CNF
= 0x400D,
913 HOMEPLUG_AV_MMTYPE_GENERAL_NN_REL_NET_IND
= 0x4012,
914 /* Station - Station */
915 HOMEPLUG_AV_MMTYPE_GENERAL_CM_UNASSOCIATED_STA_IND
= 0x6002,
916 HOMEPLUG_AV_MMTYPE_GENERAL_CM_ENCRYPTED_PAYLOAD_IND
= 0x6006,
917 HOMEPLUG_AV_MMTYPE_GENERAL_CM_ENCRYPTED_PAYLOAD_RSP
= 0x6007,
918 HOMEPLUG_AV_MMTYPE_GENERAL_CM_SET_KEY_REQ
= 0x6008,
919 HOMEPLUG_AV_MMTYPE_GENERAL_CM_SET_KEY_CNF
= 0x6009,
920 HOMEPLUG_AV_MMTYPE_GENERAL_CM_GET_KEY_REQ
= 0x600C,
921 HOMEPLUG_AV_MMTYPE_GENERAL_CM_GET_KEY_CNF
= 0x600D,
922 HOMEPLUG_AV_MMTYPE_GENERAL_CM_SC_JOIN_REQ
= 0x6010,
923 HOMEPLUG_AV_MMTYPE_GENERAL_CM_SC_JOIN_CNF
= 0x6011,
924 HOMEPLUG_AV_MMTYPE_GENERAL_CM_SC_CHAN_EST_IND
= 0x6016,
925 HOMEPLUG_AV_MMTYPE_GENERAL_CM_TM_UPDATE_IND
= 0x601A,
926 HOMEPLUG_AV_MMTYPE_GENERAL_CM_AMP_MAP_REQ
= 0x601C,
927 HOMEPLUG_AV_MMTYPE_GENERAL_CM_AMP_MAP_CNF
= 0x601D,
928 HOMEPLUG_AV_MMTYPE_GENERAL_CM_BRG_INFO_REQ
= 0x6020,
929 HOMEPLUG_AV_MMTYPE_GENERAL_CM_BRG_INFO_CNF
= 0x6021,
930 HOMEPLUG_AV_MMTYPE_GENERAL_CM_CONN_NEW_REQ
= 0x6024,
931 HOMEPLUG_AV_MMTYPE_GENERAL_CM_CONN_NEW_CNF
= 0x6025,
932 HOMEPLUG_AV_MMTYPE_GENERAL_CM_CONN_REL_IND
= 0x602A,
933 HOMEPLUG_AV_MMTYPE_GENERAL_CM_CONN_REL_RSP
= 0x602B,
934 HOMEPLUG_AV_MMTYPE_GENERAL_CM_CONN_MOD_REQ
= 0x602C,
935 HOMEPLUG_AV_MMTYPE_GENERAL_CM_CONN_MOD_CNF
= 0x602D,
936 HOMEPLUG_AV_MMTYPE_GENERAL_CM_CONN_INFO_REQ
= 0x6030,
937 HOMEPLUG_AV_MMTYPE_GENERAL_CM_CONN_INFO_CNF
= 0x6031,
938 HOMEPLUG_AV_MMTYPE_GENERAL_CM_STA_CAP_REQ
= 0x6034,
939 HOMEPLUG_AV_MMTYPE_GENERAL_CM_STA_CAP_CNF
= 0x6035,
940 HOMEPLUG_AV_MMTYPE_GENERAL_CM_NW_INFO_REQ
= 0x6038,
941 HOMEPLUG_AV_MMTYPE_GENERAL_CM_NW_INFO_CNF
= 0x6039,
942 HOMEPLUG_AV_MMTYPE_GENERAL_CM_GET_BEACON_REQ
= 0x603C,
943 HOMEPLUG_AV_MMTYPE_GENERAL_CM_GET_BEACON_CNF
= 0x603D,
944 HOMEPLUG_AV_MMTYPE_GENERAL_CM_HFID_REQ
= 0x6040,
945 HOMEPLUG_AV_MMTYPE_GENERAL_CM_HFID_CNF
= 0x6041,
946 HOMEPLUG_AV_MMTYPE_GENERAL_CM_MME_ERROR_IND
= 0x6046,
947 HOMEPLUG_AV_MMTYPE_GENERAL_CM_NW_STATS_REQ
= 0x6048,
948 HOMEPLUG_AV_MMTYPE_GENERAL_CM_NW_STATS_CNF
= 0x6049,
949 HOMEPLUG_AV_MMTYPE_GENERAL_CM_LINK_STATS_REQ
= 0x604C,
950 HOMEPLUG_AV_MMTYPE_GENERAL_CM_LINK_STATS_CNF
= 0x604D,
952 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_ROUTE_INFO_REQ
= 0x6050,
953 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_ROUTE_INFO_CNF
= 0x6051,
954 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_ROUTE_INFO_IND
= 0x6052,
955 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_UNREACHABLE_IND
= 0x6056,
956 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_MH_CONN_NEW_REQ
= 0x6058,
957 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_MH_CONN_NEW_CNF
= 0x6059,
958 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_EXTENDED_TONEMASK_REQ
= 0x605C,
959 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_EXTENDED_TONEMASK_CNF
= 0x605D,
960 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_STA_IDENTIFY_REQ
= 0x6060,
961 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_STA_IDENTIFY_CNF
= 0x6061,
962 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_STA_IDENTIFY_IND
= 0x6062,
963 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_STA_IDENTIFY_RSP
= 0x6063,
964 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_SLAC_PARM_REQ
= 0x6064,
965 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_SLAC_PARM_CNF
= 0x6065,
966 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_START_ATTEN_CHAR_IND
= 0x606A,
967 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_ATTEN_CHAR_IND
= 0x606E,
968 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_ATTEN_CHAR_RSP
= 0x606F,
969 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_PKCS_CERT_REQ
= 0x6070,
970 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_PKCS_CERT_CNF
= 0x6071,
971 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_PKCS_CERT_IND
= 0x6072,
972 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_PKCS_CERT_RSP
= 0x6073,
973 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_MNBC_SOUND_IND
= 0x6076,
974 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_VALIDATE_REQ
= 0x6078,
975 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_VALIDATE_CNF
= 0x6079,
976 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_SLAC_MATCH_REQ
= 0x607C,
977 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_SLAC_MATCH_CNF
= 0x607D,
978 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_SLAC_USER_DATA_REQ
= 0x6080,
979 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_SLAC_USER_DATA_CNF
= 0x6081,
980 HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_ATTEN_PROFILE_IND
= 0x6086,
981 } homeplug_av_mmetypes_general_type
;
985 HOMEPLUG_AV_MMTYPE_QUALCOMM_GET_SW_REQ
= 0xA000,
986 HOMEPLUG_AV_MMTYPE_QUALCOMM_GET_SW_CNF
= 0xA001,
987 HOMEPLUG_AV_MMTYPE_QUALCOMM_WR_MEM_REQ
= 0xA004,
988 HOMEPLUG_AV_MMTYPE_QUALCOMM_WR_MEM_CNF
= 0xA005,
989 HOMEPLUG_AV_MMTYPE_QUALCOMM_RD_MEM_REQ
= 0xA008,
990 HOMEPLUG_AV_MMTYPE_QUALCOMM_RD_MEM_CNF
= 0xA009,
991 HOMEPLUG_AV_MMTYPE_QUALCOMM_ST_MAC_REQ
= 0xA00C,
992 HOMEPLUG_AV_MMTYPE_QUALCOMM_ST_MAC_CNF
= 0xA00D,
993 HOMEPLUG_AV_MMTYPE_QUALCOMM_GET_NVM_REQ
= 0xA010,
994 HOMEPLUG_AV_MMTYPE_QUALCOMM_GET_NVM_CNF
= 0xA011,
995 HOMEPLUG_AV_MMTYPE_QUALCOMM_RS_DEV_REQ
= 0xA01C,
996 HOMEPLUG_AV_MMTYPE_QUALCOMM_RS_DEV_CNF
= 0xA01D,
997 HOMEPLUG_AV_MMTYPE_QUALCOMM_WR_MOD_REQ
= 0xA020,
998 HOMEPLUG_AV_MMTYPE_QUALCOMM_WR_MOD_CNF
= 0xA021,
999 HOMEPLUG_AV_MMTYPE_QUALCOMM_WR_MOD_IND
= 0xA022,
1000 HOMEPLUG_AV_MMTYPE_QUALCOMM_RD_MOD_REQ
= 0xA024,
1001 HOMEPLUG_AV_MMTYPE_QUALCOMM_RD_MOD_CNF
= 0xA025,
1002 HOMEPLUG_AV_MMTYPE_QUALCOMM_NVM_MOD_REQ
= 0xA028,
1003 HOMEPLUG_AV_MMTYPE_QUALCOMM_NVM_MOD_CNF
= 0xA029,
1004 HOMEPLUG_AV_MMTYPE_QUALCOMM_WD_RPT_REQ
= 0xA02C,
1005 HOMEPLUG_AV_MMTYPE_QUALCOMM_WD_RPT_IND
= 0xA02E,
1006 HOMEPLUG_AV_MMTYPE_QUALCOMM_LNK_STATS_REQ
= 0xA030,
1007 HOMEPLUG_AV_MMTYPE_QUALCOMM_LNK_STATS_CNF
= 0xA031,
1008 HOMEPLUG_AV_MMTYPE_QUALCOMM_SNIFFER_REQ
= 0xA034,
1009 HOMEPLUG_AV_MMTYPE_QUALCOMM_SNIFFER_CNF
= 0xA035,
1010 HOMEPLUG_AV_MMTYPE_QUALCOMM_SNIFFER_IND
= 0xA036,
1011 HOMEPLUG_AV_MMTYPE_QUALCOMM_NW_INFO_REQ
= 0xA038,
1012 HOMEPLUG_AV_MMTYPE_QUALCOMM_NW_INFO_CNF
= 0xA039,
1013 HOMEPLUG_AV_MMTYPE_QUALCOMM_CP_RPT_REQ
= 0xA040,
1014 HOMEPLUG_AV_MMTYPE_QUALCOMM_CP_RPT_IND
= 0xA042,
1015 HOMEPLUG_AV_MMTYPE_QUALCOMM_FR_LBK_REQ
= 0xA048,
1016 HOMEPLUG_AV_MMTYPE_QUALCOMM_FR_LBK_CNF
= 0xA049,
1017 HOMEPLUG_AV_MMTYPE_QUALCOMM_LBK_STAT_REQ
= 0xA04C,
1018 HOMEPLUG_AV_MMTYPE_QUALCOMM_LBK_STAT_CNF
= 0xA04D,
1019 HOMEPLUG_AV_MMTYPE_QUALCOMM_SET_KEY_REQ
= 0xA050,
1020 HOMEPLUG_AV_MMTYPE_QUALCOMM_SET_KEY_CNF
= 0xA051,
1021 HOMEPLUG_AV_MMTYPE_QUALCOMM_MFG_STRING_REQ
= 0xA054,
1022 HOMEPLUG_AV_MMTYPE_QUALCOMM_MFG_STRING_CNF
= 0xA055,
1023 HOMEPLUG_AV_MMTYPE_QUALCOMM_RD_CBLOCK_REQ
= 0xA058,
1024 HOMEPLUG_AV_MMTYPE_QUALCOMM_RD_CBLOCK_CNF
= 0xA059,
1025 HOMEPLUG_AV_MMTYPE_QUALCOMM_SET_SDRAM_REQ
= 0xA05C,
1026 HOMEPLUG_AV_MMTYPE_QUALCOMM_SET_SDRAM_CNF
= 0xA05D,
1027 HOMEPLUG_AV_MMTYPE_QUALCOMM_HOST_ACTION_IND
= 0xA062,
1028 HOMEPLUG_AV_MMTYPE_QUALCOMM_HOST_ACTION_RSP
= 0xA063,
1029 HOMEPLUG_AV_MMTYPE_QUALCOMM_OP_ATTR_REQ
= 0xA068,
1030 HOMEPLUG_AV_MMTYPE_QUALCOMM_OP_ATTR_CNF
= 0xA069,
1031 HOMEPLUG_AV_MMTYPE_QUALCOMM_GET_ENET_PHY_REQ
= 0xA06C,
1032 HOMEPLUG_AV_MMTYPE_QUALCOMM_GET_ENET_PHY_CNF
= 0xA06D,
1033 HOMEPLUG_AV_MMTYPE_QUALCOMM_TONE_MAP_TX_REQ
= 0xA070,
1034 HOMEPLUG_AV_MMTYPE_QUALCOMM_TONE_MAP_TX_CNF
= 0xA071,
1035 HOMEPLUG_AV_MMTYPE_QUALCOMM_TONE_MAP_RX_REQ
= 0xA090,
1036 HOMEPLUG_AV_MMTYPE_QUALCOMM_TONE_MAP_RX_CNF
= 0xA091,
1037 HOMEPLUG_AV_MMTYPE_QUALCOMM_LINK_STATUS_REQ
= 0xA0B8,
1038 HOMEPLUG_AV_MMTYPE_QUALCOMM_LINK_STATUS_CNF
= 0xA0B9,
1039 } homeplug_av_mmetypes_qualcomm_type
;
1041 /* ST/IoTecha MME Types */
1043 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_AUTH_SET_NMK_REQ
= 0x8000,
1044 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_AUTH_SET_NMK_CNF
= 0x8001,
1045 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_LINK_STATUS_REQ
= 0x8004,
1046 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_LINK_STATUS_CNF
= 0x8005,
1047 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_LINK_STATUS_IND
= 0x8006,
1048 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_DISCOVER_LOCAL_REQ
= 0x8008,
1049 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_DISCOVER_LOCAL_CNF
= 0x8009,
1050 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_SET_MAXGAIN_REQ
= 0x800C,
1051 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_SET_MAXGAIN_CNF
= 0x800D,
1052 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_DISCOVER_REQ
= 0xA000,
1053 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_DISCOVER_CNF
= 0xA001,
1054 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_GET_TEI_LIST_REQ
= 0xA00C,
1055 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_GET_TEI_LIST_CNF
= 0xA00D,
1056 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_GET_TEI_SNAPSHOT_REQ
= 0xA010,
1057 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_GET_TEI_SNAPSHOT_CNF
= 0xA011,
1058 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_GET_BSS_LIST_REQ
= 0xA014,
1059 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_GET_BSS_LIST_CNF
= 0xA015,
1060 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_CHANQUAL_REPORT_REQ
= 0xA018,
1061 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_CHANQUAL_REPORT_CNF
= 0xA019,
1062 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_CHANQUAL_REPORT_IND
= 0xA01A,
1063 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_TEST_CHAN_ATTEN_START_RX_REQ
= 0xA100,
1064 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_TEST_CHAN_ATTEN_START_RX_CNF
= 0xA101,
1065 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_TEST_CHAN_ATTEN_DATA_IND
= 0xA106,
1066 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_TEST_CHAN_ATTEN_START_TX_REQ
= 0xA108,
1067 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_TEST_CHAN_ATTEN_START_TX_CNF
= 0xA109,
1068 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_TEST_SOUND_QUIET_IND
= 0xA10E,
1069 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_UPDATE_STAGE_REQ
= 0xA200,
1070 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_UPDATE_STAGE_CNF
= 0xA201,
1071 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_UPDATE_FINISH_REQ
= 0xA204,
1072 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_UPDATE_FINISH_CNF
= 0xA205,
1073 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_GET_ITEM_REQ
= 0xA208,
1074 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_GET_ITEM_CNF
= 0xA209,
1075 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_GET_KEYLIST_REQ
= 0xA20C,
1076 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_GET_KEYLIST_CNF
= 0xA20D,
1077 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_FUP_REQ
= 0xA210,
1078 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_RESERVED_REQ
= 0xA214,
1079 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_CPSTATE_IND
= 0xA22E,
1080 HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_USER_MESSAGE_IND
= 0xA232,
1081 } homeplug_av_mmetypes_st_iotecha_type
;
1084 #define HOMEPLUG_AV_OUI_NONE 0
1085 #define HOMEPLUG_AV_OUI_QCA 0x00B052
1086 #define HOMEPLUG_AV_OUI_ST_IOTECHA 0x0080E1
1088 static const value_string homeplug_av_vendors_oui_vals
[] = {
1089 { HOMEPLUG_AV_OUI_QCA
, "Qualcomm Atheros" },
1090 { HOMEPLUG_AV_OUI_ST_IOTECHA
, "ST/IoTecha" },
1096 static const value_string homeplug_av_mmtype_general_vals
[] = {
1097 /* Station - Central Coordinator*/
1098 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_BACKUP_APPOINT_REQ
, "CC_BACKUP_APPOINT.REQ" },
1099 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_BACKUP_APPOINT_CNF
, "CC_BACKUP_APPOINT.CNF" },
1100 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_INFO_REQ
, "CC_LINK_INFO.REQ" },
1101 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_INFO_CNF
, "CC_LINK_INFO.CNF" },
1102 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_INFO_IND
, "CC_LINK_INFO.IND" },
1103 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_INFO_RSP
, "CC_LINK_INFO.RSP" },
1104 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_HANDOVER_REQ
, "CC_HANDOVER.REQ" },
1105 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_HANDOVER_CNF
, "CC_HANDOVER.CNF" },
1106 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_HANDOVER_INFO_IND
, "CC_HANDOVER_INFO.IND" },
1107 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_HANDOVER_INFO_RSP
, "CC_HANDOVER_INFO.RSP" },
1108 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_DISCOVER_LIST_REQ
, "CC_DISCOVER_LIST.REQ (Central Coordination Discovery List Request)" },
1109 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_DISCOVER_LIST_CNF
, "CC_DISCOVER_LIST.CNF (Central Coordination Discovery List Confirmation)" },
1110 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_DISCOVER_LIST_IND
, "CC_DISCOVER_LIST.IND" },
1111 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_NEW_REQ
, "CC_LINK_NEW.REQ" },
1112 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_NEW_CNF
, "CC_LINK_NEW.CNF" },
1113 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_MOD_REQ
, "CC_LINK_MOD.REQ" },
1114 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_MOD_CNF
, "CC_LINK_MOD.CNF" },
1115 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_SQZ_REQ
, "CC_LINK_SQZ.REQ" },
1116 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_SQZ_CNF
, "CC_LINK_SQZ.CNF" },
1117 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_REL_REQ
, "CC_LINK_REL.REQ" },
1118 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_LINK_REL_IND
, "CC_LINK_REL.IND" },
1119 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_DETECTC_REPORT_REQ
, "CC_DETECTC_REPORT.REQ" },
1120 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_DETECTC_REPORT_CNF
, "CC_DETECTC_REPORT.CNF" },
1121 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_WHO_RU_REQ
, "CC_WHO_RU.REQ" },
1122 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_WHO_RU_CNF
, "CC_WHO_RU.CNF" },
1123 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_ASSOC_REQ
, "CC_ASSOC.REQ" },
1124 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_ASSOC_CNF
, "CC_ASSOC.CNF" },
1125 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_LEAVE_REQ
, "CC_LEAVE.REQ" },
1126 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_LEAVE_CNF
, "CC_LEAVE.CNF" },
1127 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_LEAVE_IND
, "CC_LEAVE.IND" },
1128 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_LEAVE_RSP
, "CC_LEAVE.RSP" },
1129 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_SET_TEI_MAP_REQ
, "CC_SET_TEI_MAP.REQ" },
1130 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_SET_TEI_MAP_IND
, "CC_SET_TEI_MAP.IND" },
1131 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_RELAY_REQ
, "CC_RELAY.REQ" },
1132 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_RELAY_IND
, "CC_RELAY.IND" },
1133 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_BEACON_RELIABILITY_REQ
, "CC_BEACON_RELIABILITY.REQ" },
1134 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_BEACON_RELIABILITY_CNF
, "CC_BEACON_RELIABILITY.CNF" },
1135 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_ALLOC_MOVE_REQ
, "CC_ALLOC_MOVE.REQ" },
1136 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_ALLOC_MOVE_CNF
, "CC_ALLOC_MOVE.CNF" },
1137 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_ACCESS_NEW_REQ
, "CC_ACCESS_NEW.REQ" },
1138 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_ACCESS_NEW_CNF
, "CC_ACCESS_NEW.CNF" },
1139 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_ACCESS_NEW_IND
, "CC_ACCESS_NEW.IND" },
1140 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_ACCESS_NEW_RSP
, "CC_ACCESS_NEW.RSP" },
1141 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_ACCESS_REL_REQ
, "CC_ACCESS_REL.REQ" },
1142 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_ACCESS_REL_CNF
, "CC_ACCESS_REL.CNF" },
1143 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_ACCESS_REL_IND
, "CC_ACCESS_REL.IND" },
1144 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_ACCESS_REL_RSP
, "CC_ACCESS_REL.RSP" },
1145 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_DCPPC_IND
, "CC_DCPPC.IND" },
1146 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_DCPPC_RSP
, "CC_DCPPC.RSP" },
1147 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_HP1_DET_REQ
, "CC_HP1_DET.REQ" },
1148 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_HP1_DET_CNF
, "CC_HP1_DET.CNF" },
1149 { HOMEPLUG_AV_MMTYPE_GENERAL_CC_BLE_UPDATE_IND
, "CC_BLE_UPDATE.IND" },
1151 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_BCAST_REPEAT_IND
, "CC_BCAST_REPEAT.IND" },
1152 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_BCAST_REPEAT_RSP
, "CC_BCAST_REPEAT.RSP" },
1153 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_MH_LINK_NEW_REQ
, "CC_MH_LINK_NEW.REQ" },
1154 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_MH_LINK_NEW_CNF
, "CC_MH_LINK_NEW.CNF" },
1155 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_ISP_DETECTION_REPORT_IND
, "CC_ISP_DETECTION_REPORT.IND" },
1156 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_ISP_START_RESYNC_REQ
, "CC_ISP_START_RESYNC.REQ" },
1157 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_ISP_FINISH_RESYNC_REQ
, "CC_ISP_FINISH_RESYNC.REQ" },
1158 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_ISP_DETECTED_RESYNC_IND
, "CC_ISP_DETECTED_RESYNC.IND" },
1159 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_ISP_TRANSMIT_RESYNC_REQ
, "CC_ISP_TRANSMIT_RESYNC.REQ" },
1160 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_POWERSAVE_REQ
, "CC_POWERSAVE.REQ" },
1161 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_POWERSAVE_CNF
, "CC_POWERSAVE.CNF" },
1162 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_POWERSAVE_EXIT_REQ
, "CC_POWERSAVE_EXIT.REQ" },
1163 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_POWERSAVE_EXIT_CNF
, "CC_POWERSAVE_EXIT.CNF" },
1164 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_POWERSAVE_LIST_REQ
, "CC_POWERSAVE_LIST.REQ" },
1165 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_POWERSAVE_LIST_CNF
, "CC_POWERSAVE_LIST.CNF" },
1166 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_POWERSAVE_STOP_REQ
, "CC_POWERSAVE_STOP.REQ" },
1167 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CC_POWERSAVE_STOP_CNF
, "CC_POWERSAVE_STOP.CNF" },
1168 /* Proxy Coordinator */
1169 { HOMEPLUG_AV_MMTYPE_GENERAL_CP_PROXY_APPOINT_REQ
, "CP_PROXY_APPOINT.REQ" },
1170 { HOMEPLUG_AV_MMTYPE_GENERAL_CP_PROXY_APPOINT_CNF
, "CP_PROXY_APPOINT.CNF" },
1171 { HOMEPLUG_AV_MMTYPE_GENERAL_PH_PROXY_APPOINT_IND
, "PH_PROXY_APPOINT.IND" },
1172 { HOMEPLUG_AV_MMTYPE_GENERAL_CP_PROXY_WAKE_REQ
, "CP_PROXY_WAKE.REQ" },
1174 { HOMEPLUG_AV_MMTYPE_GENERAL_NN_INL_REQ
, "NN_INL.REQ" },
1175 { HOMEPLUG_AV_MMTYPE_GENERAL_NN_INL_CNF
, "NN_INL.CNF" },
1176 { HOMEPLUG_AV_MMTYPE_GENERAL_NN_NEW_NET_REQ
, "NN_NEW_NET.REQ" },
1177 { HOMEPLUG_AV_MMTYPE_GENERAL_NN_NEW_NET_CNF
, "NN_NEW_NET.CNF" },
1178 { HOMEPLUG_AV_MMTYPE_GENERAL_NN_NEW_NET_IND
, "NN_NEW_NET.IND" },
1179 { HOMEPLUG_AV_MMTYPE_GENERAL_NN_ADD_ALLOC_REQ
, "NN_ADD_ALLOC.REQ" },
1180 { HOMEPLUG_AV_MMTYPE_GENERAL_NN_ADD_ALLOC_CNF
, "NN_ADD_ALLOC.CNF" },
1181 { HOMEPLUG_AV_MMTYPE_GENERAL_NN_ADD_ALLOC_IND
, "NN_ADD_ALLOC.IND" },
1182 { HOMEPLUG_AV_MMTYPE_GENERAL_NN_REL_ALLOC_REQ
, "NN_REL_ALLOC.REQ" },
1183 { HOMEPLUG_AV_MMTYPE_GENERAL_NN_REL_ALLOC_CNF
, "NN_REL_ALLOC.CNF" },
1184 { HOMEPLUG_AV_MMTYPE_GENERAL_NN_REL_NET_IND
, "NN_REL_NET.IND" },
1185 /* Station - Station */
1186 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_UNASSOCIATED_STA_IND
, "CM_UNASSOCIATED_STA.IND" },
1187 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_ENCRYPTED_PAYLOAD_IND
, "CM_ENCRYPTED_PAYLOAD.IND (Encrypted Payload Indicate)" },
1188 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_ENCRYPTED_PAYLOAD_RSP
, "CM_ENCRYPTED_PAYLOAD.RSP (Encrypted Payload Response)" },
1189 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_SET_KEY_REQ
, "CM_SET_KEY.REQ (Set Key Request)" },
1190 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_SET_KEY_CNF
, "CM_SET_KEY.CNF (Set Key Confirmation)" },
1191 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_GET_KEY_REQ
, "CM_GET_KEY.REQ (Get Key Request)" },
1192 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_GET_KEY_CNF
, "CM_GET_KEY.CNF (Get Key Confirmation)" },
1193 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_SC_JOIN_REQ
, "CM_SC_JOIN.REQ" },
1194 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_SC_JOIN_CNF
, "CM_SC_JOIN.CNF" },
1195 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_SC_CHAN_EST_IND
, "CM_SC_CHAN_EST.IND" },
1196 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_TM_UPDATE_IND
, "CM_TM_UPDATE.IND" },
1197 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_AMP_MAP_REQ
, "CM_AMP_MAP.REQ" },
1198 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_AMP_MAP_CNF
, "CM_AMP_MAP.CNF" },
1199 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_BRG_INFO_REQ
, "CM_BRG_INFO.REQ (Get Bridge Informations Request)" },
1200 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_BRG_INFO_CNF
, "CM_BRG_INFO.CNF (Get Bridge Informations Confirmation)" },
1201 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_CONN_NEW_REQ
, "CM_CONN_NEW.REQ" },
1202 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_CONN_NEW_CNF
, "CM_CONN_NEW.CNF" },
1203 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_CONN_REL_IND
, "CM_CONN_REL.IND" },
1204 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_CONN_REL_RSP
, "CM_CONN_REL.RSP" },
1205 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_CONN_MOD_REQ
, "CM_CONN_MOD.REQ" },
1206 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_CONN_MOD_CNF
, "CM_CONN_MOD.CNF" },
1207 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_CONN_INFO_REQ
, "CM_CONN_INFO.REQ" },
1208 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_CONN_INFO_CNF
, "CM_CONN_INFO.CNF" },
1209 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_STA_CAP_REQ
, "CM_STA_CAP.REQ" },
1210 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_STA_CAP_CNF
, "CM_STA_CAP.CNF" },
1211 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_NW_INFO_REQ
, "CM_NW_INFO.REQ (Get Network Informations Request)" },
1212 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_NW_INFO_CNF
, "CM_NW_INFO.CNF (Get Network Informations Confirmation)" },
1213 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_GET_BEACON_REQ
, "CM_GET_BEACON.REQ" },
1214 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_GET_BEACON_CNF
, "CM_GET_BEACON.CNF" },
1215 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_HFID_REQ
, "CM_HFID.REQ" },
1216 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_HFID_CNF
, "CM_HFID.CNF" },
1217 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_MME_ERROR_IND
, "CM_MME_ERROR.IND" },
1218 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_NW_STATS_REQ
, "CM_NW_STATS.REQ (Get Network Statistics Request)" },
1219 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_NW_STATS_CNF
, "CM_NW_STATS.CNF (Get Network Statistics Confirmation)" },
1220 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_LINK_STATS_REQ
, "CM_LINK_STATS.REQ" },
1221 { HOMEPLUG_AV_MMTYPE_GENERAL_CM_LINK_STATS_CNF
, "CM_LINK_STATS.CNF" },
1223 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_ROUTE_INFO_REQ
, "CM_ROUTE_INFO.REQ" },
1224 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_ROUTE_INFO_CNF
, "CM_ROUTE_INFO.CNF" },
1225 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_ROUTE_INFO_IND
, "CM_ROUTE_INFO.IND" },
1226 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_UNREACHABLE_IND
, "CM_UNREACHABLE.IND" },
1227 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_MH_CONN_NEW_REQ
, "CM_MH_CONN_NEW.REQ" },
1228 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_MH_CONN_NEW_CNF
, "CM_MH_CONN_NEW.CNF" },
1229 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_EXTENDED_TONEMASK_REQ
, "CM_EXTENDED_TONEMASK.REQ" },
1230 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_EXTENDED_TONEMASK_CNF
, "CM_EXTENDED_TONEMASK.CNF" },
1231 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_STA_IDENTIFY_REQ
, "CM_STA_IDENTIFY.REQ" },
1232 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_STA_IDENTIFY_CNF
, "CM_STA_IDENTIFY_CNF" },
1233 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_STA_IDENTIFY_IND
, "CM_STA_IDENTIFY.IND" },
1234 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_STA_IDENTIFY_RSP
, "CM_STA_IDENTIFY.RSP" },
1235 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_SLAC_PARM_REQ
, "CM_SLAC_PARM.REQ" },
1236 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_SLAC_PARM_CNF
, "CM_SLAC_PARM.CNF" },
1237 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_START_ATTEN_CHAR_IND
, "CM_START_ATTEN_CHAR.IND" },
1238 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_ATTEN_CHAR_IND
, "CM_ATTEN_CHAR.IND" },
1239 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_ATTEN_CHAR_RSP
, "CM_ATTEN_CHAR.RSP" },
1240 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_PKCS_CERT_REQ
, "CM_PKCS_CERT.REQ" },
1241 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_PKCS_CERT_CNF
, "CM_PKCS_CERT.CNF" },
1242 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_PKCS_CERT_IND
, "CM_PKCS_CERT.IND" },
1243 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_PKCS_CERT_RSP
, "CM_PKCS_CERT.RSP" },
1244 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_MNBC_SOUND_IND
, "CM_MNBC_SOUND.IND" },
1245 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_VALIDATE_REQ
, "CM_VALIDATE.REQ" },
1246 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_VALIDATE_CNF
, "CM_VALIDATE.CNF" },
1247 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_SLAC_MATCH_REQ
, "CM_SLAC_MATCH.REQ" },
1248 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_SLAC_MATCH_CNF
, "CM_SLAC_MATCH.CNF" },
1249 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_SLAC_USER_DATA_REQ
, "CM_SLAC_USER_DATA.REQ" },
1250 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_SLAC_USER_DATA_CNF
, "CM_SLAC_USER_DATA.CNF" },
1251 { HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_ATTEN_PROFILE_IND
, "CM_ATTEN_PROFILE.IND" },
1255 /* QCA vendor-specific MMEs */
1256 static const value_string homeplug_av_mmtype_qualcomm_vals
[] = {
1257 { HOMEPLUG_AV_MMTYPE_QUALCOMM_GET_SW_REQ
, "GET_SW.REQ (Get Device/SW Version Request)" },
1258 { HOMEPLUG_AV_MMTYPE_QUALCOMM_GET_SW_CNF
, "GET_SW.CNF (Get Device/SW Version Confirmation)" },
1259 { HOMEPLUG_AV_MMTYPE_QUALCOMM_WR_MEM_REQ
, "WR_MEM.REQ (Write MAC Memory Request)" },
1260 { HOMEPLUG_AV_MMTYPE_QUALCOMM_WR_MEM_CNF
, "WR_MEM.CNF (Write MAC Memory Confirmation)" },
1261 { HOMEPLUG_AV_MMTYPE_QUALCOMM_RD_MEM_REQ
, "RD_MEM.REQ (Read MAC Memory Request)" },
1262 { HOMEPLUG_AV_MMTYPE_QUALCOMM_RD_MEM_CNF
, "RD_MEM.CNF (Read MAC Memory Confirmation)" },
1263 { HOMEPLUG_AV_MMTYPE_QUALCOMM_ST_MAC_REQ
, "ST_MAC.REQ (Start MAC Request)" },
1264 { HOMEPLUG_AV_MMTYPE_QUALCOMM_ST_MAC_CNF
, "ST_MAC.CNF (Start MAC Confirmation)" },
1265 { HOMEPLUG_AV_MMTYPE_QUALCOMM_GET_NVM_REQ
, "GET_NVM.REQ (Get NVM Parameters Request)" },
1266 { HOMEPLUG_AV_MMTYPE_QUALCOMM_GET_NVM_CNF
, "GET_NVM.CNF (Get NVM Parameters Confirmation)" },
1267 { HOMEPLUG_AV_MMTYPE_QUALCOMM_RS_DEV_REQ
, "RS_DEV.REQ (Reset Device Request)" },
1268 { HOMEPLUG_AV_MMTYPE_QUALCOMM_RS_DEV_CNF
, "RS_DEV.CNF (Reset Device Confirmation)" },
1269 { HOMEPLUG_AV_MMTYPE_QUALCOMM_WR_MOD_REQ
, "WR_MOD.REQ (Write Module Data Request)" },
1270 { HOMEPLUG_AV_MMTYPE_QUALCOMM_WR_MOD_CNF
, "WR_MOD.CNF (Write Module Data Confirmation)" },
1271 { HOMEPLUG_AV_MMTYPE_QUALCOMM_WR_MOD_IND
, "WR_MOD.IND (Write Module Data Indicate)" },
1272 { HOMEPLUG_AV_MMTYPE_QUALCOMM_RD_MOD_REQ
, "RD_MOD.REQ (Read Module Data Request)" },
1273 { HOMEPLUG_AV_MMTYPE_QUALCOMM_RD_MOD_CNF
, "RD_MOD.CNF (Read Module Data Confirmation)" },
1274 { HOMEPLUG_AV_MMTYPE_QUALCOMM_NVM_MOD_REQ
, "NVM_MOD.REQ (Write Module Data to NVM Request)" },
1275 { HOMEPLUG_AV_MMTYPE_QUALCOMM_NVM_MOD_CNF
, "NVM_MOD.CNF (Write Module Data to NVM Confirmation)" },
1276 { HOMEPLUG_AV_MMTYPE_QUALCOMM_WD_RPT_REQ
, "WD_RPT.REQ (Get Watchdog Report Request)" },
1277 { HOMEPLUG_AV_MMTYPE_QUALCOMM_WD_RPT_IND
, "WD_RPT.IND (Get Watchdog Report Indicate)" },
1278 { HOMEPLUG_AV_MMTYPE_QUALCOMM_LNK_STATS_REQ
, "LNK_STATS.REQ (Link Statistics Request)" },
1279 { HOMEPLUG_AV_MMTYPE_QUALCOMM_LNK_STATS_CNF
, "LNK_STATS.CNF (Link Statistics Confirmation)" },
1280 { HOMEPLUG_AV_MMTYPE_QUALCOMM_SNIFFER_REQ
, "SNIFFER.REQ (Sniffer Request)" },
1281 { HOMEPLUG_AV_MMTYPE_QUALCOMM_SNIFFER_CNF
, "SNIFFER.CNF (Sniffer Confirmation)" },
1282 { HOMEPLUG_AV_MMTYPE_QUALCOMM_SNIFFER_IND
, "SNIFFER.IND (Sniffer Indicate)" },
1283 { HOMEPLUG_AV_MMTYPE_QUALCOMM_NW_INFO_REQ
, "NW_INFO.REQ (Network Info Request)" },
1284 { HOMEPLUG_AV_MMTYPE_QUALCOMM_NW_INFO_CNF
, "NW_INFO.CNF (Network Info Confirmation)" },
1285 { HOMEPLUG_AV_MMTYPE_QUALCOMM_CP_RPT_REQ
, "CP_RPT.REQ (Check Points Request)" },
1286 { HOMEPLUG_AV_MMTYPE_QUALCOMM_CP_RPT_IND
, "CP_RPT.IND (Check Points Indicate)" },
1287 { HOMEPLUG_AV_MMTYPE_QUALCOMM_FR_LBK_REQ
, "FR_LBK.REQ (Loopback Request)" },
1288 { HOMEPLUG_AV_MMTYPE_QUALCOMM_FR_LBK_CNF
, "FR_LBK.CNF (Loopback Confirmation)" },
1289 { HOMEPLUG_AV_MMTYPE_QUALCOMM_LBK_STAT_REQ
, "LBK_STAT.REQ (Loopback Status Request)" },
1290 { HOMEPLUG_AV_MMTYPE_QUALCOMM_LBK_STAT_CNF
, "LBK_STAT.CNF (Loopback Status Confirmation)" },
1291 { HOMEPLUG_AV_MMTYPE_QUALCOMM_SET_KEY_REQ
, "SET_KEY.REQ (Set Encryption Key Request)" },
1292 { HOMEPLUG_AV_MMTYPE_QUALCOMM_SET_KEY_CNF
, "SET_KEY.CNF (Set Encryption Key Confirmation)" },
1293 { HOMEPLUG_AV_MMTYPE_QUALCOMM_MFG_STRING_REQ
, "MFG_STRING.REQ (Get Manufacturer String Request)" },
1294 { HOMEPLUG_AV_MMTYPE_QUALCOMM_MFG_STRING_CNF
, "MFG_STRING.CNF (Get Manufacturer String Confirmation)" },
1295 { HOMEPLUG_AV_MMTYPE_QUALCOMM_RD_CBLOCK_REQ
, "RD_CBLOCK.REQ (Read Configuration Block Request)" },
1296 { HOMEPLUG_AV_MMTYPE_QUALCOMM_RD_CBLOCK_CNF
, "RD_CBLOCK.CNF (Read Configuration Block Confirmation)" },
1297 { HOMEPLUG_AV_MMTYPE_QUALCOMM_SET_SDRAM_REQ
, "SET_SDRAM.REQ (Set SDRAM Configuration Request)" },
1298 { HOMEPLUG_AV_MMTYPE_QUALCOMM_SET_SDRAM_CNF
, "SET_SDRAM.CNF (Set SDRAM Configuration Confirmation)" },
1299 { HOMEPLUG_AV_MMTYPE_QUALCOMM_HOST_ACTION_IND
, "HOST_ACTION.IND (Embedded Host Action Required Indication)" },
1300 { HOMEPLUG_AV_MMTYPE_QUALCOMM_HOST_ACTION_RSP
, "HOST_ACTION.RSP (Embedded Host Action Required Response)" },
1301 { HOMEPLUG_AV_MMTYPE_QUALCOMM_OP_ATTR_REQ
, "OP_ATTR.REQ (Get Device Attributes Request)" },
1302 { HOMEPLUG_AV_MMTYPE_QUALCOMM_OP_ATTR_CNF
, "OP_ATTR.CNF (Get Device Attributes Confirmation)" },
1303 { HOMEPLUG_AV_MMTYPE_QUALCOMM_GET_ENET_PHY_REQ
, "GET_ENET_PHY.REQ (Get Ethernet PHY Settings Request)" },
1304 { HOMEPLUG_AV_MMTYPE_QUALCOMM_GET_ENET_PHY_CNF
, "GET_ENET_PHY.CNF (Get Ethernet PHY Settings Confirmation)" },
1305 { HOMEPLUG_AV_MMTYPE_QUALCOMM_TONE_MAP_TX_REQ
, "TONE_MAP_TX.REQ (Tone Map Tx Characteristics Request)" },
1306 { HOMEPLUG_AV_MMTYPE_QUALCOMM_TONE_MAP_TX_CNF
, "TONE_MAP_TX.CNF (Tone Map Tx Characteristics Confirmation)" },
1307 { HOMEPLUG_AV_MMTYPE_QUALCOMM_TONE_MAP_RX_REQ
, "TONE_MAP_RX.REQ (Tone Map Rx Characteristics Request)" },
1308 { HOMEPLUG_AV_MMTYPE_QUALCOMM_TONE_MAP_RX_CNF
, "TONE_MAP_RX.CNF (Tone Map Rx Characteristics Confirmation)" },
1309 { HOMEPLUG_AV_MMTYPE_QUALCOMM_LINK_STATUS_REQ
, "LINK_STATUS.REQ" },
1310 { HOMEPLUG_AV_MMTYPE_QUALCOMM_LINK_STATUS_CNF
, "LINK_STATUS.CNF" },
1314 /* ST/IoTecha vendor-specific MMEs */
1315 static const value_string homeplug_av_mmtype_st_iotecha_vals
[] = {
1316 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_AUTH_SET_NMK_REQ
, "STP_AUTH_SET_NMK.REQ" },
1317 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_AUTH_SET_NMK_CNF
, "STP_AUTH_SET_NMK.CNF" },
1318 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_LINK_STATUS_REQ
, "STP_LINK_STATUS.REQ" },
1319 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_LINK_STATUS_CNF
, "STP_LINK_STATUS.CNF" },
1320 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_LINK_STATUS_IND
, "STP_LINK_STATUS.IND" },
1321 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_DISCOVER_LOCAL_REQ
, "STP_DISCOVER_LOCAL.REQ" },
1322 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_DISCOVER_LOCAL_CNF
, "STP_DISCOVER_LOCAL.CNF" },
1323 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_SET_MAXGAIN_REQ
, "STP_SET_MAXGAIN.REQ" },
1324 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_SET_MAXGAIN_CNF
, "STP_SET_MAXGAIN.CNF" },
1325 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_DISCOVER_REQ
, "STP_DISCOVER.REQ" },
1326 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_DISCOVER_CNF
, "STP_DISCOVER.CNF" },
1327 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_GET_TEI_LIST_REQ
, "STP_GET_TEI_LIST.REQ" },
1328 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_GET_TEI_LIST_CNF
, "STP_GET_TEI_LIST.CNF" },
1329 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_GET_TEI_SNAPSHOT_REQ
, "STP_GET_TEI_SNAPSHOT.REQ" },
1330 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_GET_TEI_SNAPSHOT_CNF
, "STP_GET_TEI_SNAPSHOT.CNF" },
1331 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_GET_BSS_LIST_REQ
, "STP_GET_BSS_LIST.REQ" },
1332 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_GET_BSS_LIST_CNF
, "STP_GET_BSS_LIST.CNF" },
1333 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_CHANQUAL_REPORT_REQ
, "STP_CHANQUAL_REPORT.REQ" },
1334 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_CHANQUAL_REPORT_CNF
, "STP_CHANQUAL_REPORT.CNF" },
1335 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_CHANQUAL_REPORT_IND
, "STP_CHANQUAL_REPORT.IND" },
1336 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_TEST_CHAN_ATTEN_START_RX_REQ
, "STP_TEST_CHAN_ATTEN_START_RX.REQ" },
1337 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_TEST_CHAN_ATTEN_START_RX_CNF
, "STP_TEST_CHAN_ATTEN_START_RX.CNF" },
1338 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_TEST_CHAN_ATTEN_DATA_IND
, "STP_TEST_CHAN_ATTEN_DATA.IND" },
1339 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_TEST_CHAN_ATTEN_START_TX_REQ
, "STP_TEST_CHAN_ATTEN_START_TX.REQ" },
1340 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_TEST_CHAN_ATTEN_START_TX_CNF
, "STP_TEST_CHAN_ATTEN_START_TX.CNF" },
1341 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_TEST_SOUND_QUIET_IND
, "STP_TEST_SOUND_QUIET.IND" },
1342 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_UPDATE_STAGE_REQ
, "STP_MFCT_UPDATE_STAGE.REQ" },
1343 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_UPDATE_STAGE_CNF
, "STP_MFCT_UPDATE_STAGE.CNF" },
1344 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_UPDATE_FINISH_REQ
, "STP_MFCT_UPDATE_FINISH.REQ" },
1345 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_UPDATE_FINISH_CNF
, "STP_MFCT_UPDATE_FINISH.CNF" },
1346 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_GET_ITEM_REQ
, "STP_MFCT_GET_ITEM.REQ" },
1347 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_GET_ITEM_CNF
, "STP_MFCT_GET_ITEM.CNF" },
1348 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_GET_KEYLIST_REQ
, "STP_MFCT_GET_KEYLIST.REQ" },
1349 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_GET_KEYLIST_CNF
, "STP_MFCT_GET_KEYLIST.CNF" },
1350 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_FUP_REQ
, "STP_FUP.REQ" },
1351 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_RESERVED_REQ
, "STP_RESERVED.REQ (IoTecha HPGP Analyzer Raw Data)" },
1352 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_CPSTATE_IND
, "STP_CPSTATE.IND" },
1353 { HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_USER_MESSAGE_IND
, "STP_USER_MESSAGE.IND" },
1357 /* ext MMType vals */
1358 static value_string_ext homeplug_av_mmtype_general_vals_ext
= VALUE_STRING_EXT_INIT(homeplug_av_mmtype_general_vals
);
1359 static value_string_ext homeplug_av_mmtype_qualcomm_vals_ext
= VALUE_STRING_EXT_INIT(homeplug_av_mmtype_qualcomm_vals
);
1360 static value_string_ext homeplug_av_mmtype_st_iotecha_vals_ext
= VALUE_STRING_EXT_INIT(homeplug_av_mmtype_st_iotecha_vals
);
1363 #define HOMEPLUG_AV_MMVER_MASK 0x01
1364 #define HOMEPLUG_AV_MMVER_1_0 0x00
1365 #define HOMEPLUG_AV_MMVER_1_1 0x01
1367 static const value_string homeplug_av_mmver_vals
[] = {
1368 { HOMEPLUG_AV_MMVER_1_0
, "1.0" },
1369 { HOMEPLUG_AV_MMVER_1_1
, "1.1" },
1373 /* MMTYPE LSB Values */
1374 #define HOMEPLUG_AV_MMTYPE_LSB_MASK 0x03
1376 static const value_string homeplug_av_mmtype_lsb_vals
[] = {
1377 { 0x00, "Request" },
1378 { 0x01, "Confirm" },
1379 { 0x02, "Indication" },
1380 { 0x03, "Response" },
1384 /* MMTYPE MSB Values */
1385 #define HOMEPLUG_AV_MMTYPE_MSB_STA_CCO 0x00
1386 #define HOMEPLUG_AV_MMTYPE_MSB_PROXY 0x01
1387 #define HOMEPLUG_AV_MMTYPE_MSB_CCO_CCO 0x02
1388 #define HOMEPLUG_AV_MMTYPE_MSB_STA_STA 0x03
1389 #define HOMEPLUG_AV_MMTYPE_MSB_MANUF 0x04
1390 #define HOMEPLUG_AV_MMTYPE_MSB_VENDOR 0x05
1391 #define HOMEPLUG_AV_MMTYPE_MSB_RSV 0x06
1392 #define HOMEPLUG_AV_MMTYPE_MSB_MASK 0xe0
1393 #define HOMEPLUG_AV_MMTYPE_MSB_SHIFT (5)
1395 static const value_string homeplug_av_mmtype_msb_vals
[] = {
1396 { HOMEPLUG_AV_MMTYPE_MSB_STA_CCO
, "STA - Central Coordinator" },
1397 { HOMEPLUG_AV_MMTYPE_MSB_PROXY
, "Proxy Coordinator" },
1398 { HOMEPLUG_AV_MMTYPE_MSB_CCO_CCO
, "Central Coordinator - Central Coordinator" },
1399 { HOMEPLUG_AV_MMTYPE_MSB_STA_STA
, "STA - STA" },
1400 { HOMEPLUG_AV_MMTYPE_MSB_MANUF
, "Manufacturer Specific" },
1401 { HOMEPLUG_AV_MMTYPE_MSB_VENDOR
, "Vendor Specific" },
1405 #define HOMEPLUG_AV_CC_STA_NET_MASK 0x01
1407 static const value_string homeplug_av_cc_sta_net_type_vals
[] = {
1408 { 0x00, "Different network" },
1409 { 0x01, "Same network" },
1413 static const value_string homeplug_av_sig_level_vals
[] = {
1415 { 0x01, "> - 10 dB, but <= 0 dB" },
1416 { 0x02, "> - 15 dB, but <= -10 dB" },
1417 { 0x03, "> - 20 dB, but <= -15 dB" },
1418 { 0x04, "> - 25 dB, but <= -20 dB" },
1419 { 0x05, "> - 30 dB, but <= -25 dB" },
1420 { 0x06, "> - 35 dB, but <= -30 dB" },
1421 { 0x07, "> - 40 dB, but <= -35 dB" },
1422 { 0x08, "> - 45 dB, but <= -40 dB" },
1423 { 0x09, "> - 50 dB, but <= -45 dB" },
1424 { 0x0A, "> - 55 dB, but <= -50 dB" },
1425 { 0x0B, "> - 60 dB, but <= -55 dB" },
1426 { 0x0C, "> - 65 dB, but <= -60 dB" },
1427 { 0x0D, "> - 70 dB, but <= -65 dB" },
1428 { 0x0E, "> - 75 dB, but <= -70 dB" },
1429 { 0x0F, "<= -75 dB" },
1432 static value_string_ext homeplug_av_sig_level_vals_ext
= VALUE_STRING_EXT_INIT(homeplug_av_sig_level_vals
);
1434 #define HOMEPLUG_AV_CCO_STATUS_MASK 0x07
1436 static const value_string homeplug_av_cco_status_vals
[] = {
1437 { 0x00, "Unknown" },
1438 { 0x01, "Non-coordinating Network" },
1439 { 0x02, "Coordinating, group status unknown" },
1440 { 0x03, "Coordinating network in the same group" },
1441 { 0x04, "Coordinating network not in the same group" },
1445 #define HOMEPLUG_AV_NW_INFO_ROLE_MASK 0x03
1447 static const value_string homeplug_av_nw_info_role_vals
[] = {
1448 { 0x00, "Station" },
1449 { 0x01, "Proxy coordinator" },
1450 { 0x02, "Central coordinator" },
1454 #define HOMEPLUG_AV_NW_INFO_NID_MASK 0x01
1455 #define HOMEPLUG_AV_NW_INFO_ACCESS_MASK 0x08
1457 static const value_string homeplug_nw_info_access_vals
[] = {
1458 { 0x00, "In-home" },
1463 #define HOMEPLUG_AV_PEKS_MASK 0x0F
1464 #define HOMEPLUG_AV_SOF_PEKS_MASK 0xF0
1466 static const value_string homeplug_av_peks_vals
[] = {
1467 { 0x00, "Destination STA's DAK" },
1468 { 0x01, "NMK known to STA" },
1469 { 0x02, "TEK Index 0" },
1470 { 0x03, "TEK Index 1" },
1471 { 0x04, "TEK Index 2" },
1472 { 0x05, "TEK Index 3" },
1473 { 0x06, "TEK Index 4" },
1474 { 0x07, "TEK Index 5" },
1475 { 0x08, "TEK Index 6" },
1476 { 0x09, "TEK Index 7" },
1477 { 0x0A, "TEK Index 8" },
1478 { 0x0B, "TEK Index 9" },
1479 { 0x0C, "TEK Index 10" },
1480 { 0x0D, "TEK Index 11" },
1481 { 0x0E, "TEK Index 12" },
1485 static value_string_ext homeplug_av_peks_vals_ext
= VALUE_STRING_EXT_INIT(homeplug_av_peks_vals
);
1487 #define HOMEPLUG_AV_CCO_CAP_MASK 0x0C
1489 static const value_string homeplug_av_bcn_cco_cap_vals
[] = {
1490 { 0x0, "CSMA-only (no QoS/TDMA)" },
1491 { 0x1, "Uncoordinated mode QoS/TDMA" },
1492 { 0x2, "Coordinated mode QoS/TDMA" },
1493 { 0x3, "Reserved" },
1497 #define HOMEPLUG_AV_AVLN_STATUS_MASK 0x0F
1498 #define HOMEPLUG_AV_RSF_MASK 0x10
1499 #define HOMEPLUG_AV_PLEVEL_MASK 0xE0
1501 static const value_string homeplug_av_avln_status_vals
[] = {
1502 { 0x00, "Unassociated and Level-0 CCo capable" },
1503 { 0x01, "Unassociated and Level-1 CCo capable" },
1504 { 0x02, "Unassociated and Level-2 CCo capable" },
1505 { 0x03, "Unassociated and Level-3 CCo capable" },
1506 { 0x04, "Associated but not PCo capable" },
1507 { 0x05, "Associated but and PCo capable" },
1508 { 0x06, "Reserved" },
1509 { 0x07, "Reserved" },
1510 { 0x08, "CCo of an AV Logical Network" },
1514 #define HOMEPLUG_AV_PID_AUTH_STA 0x00
1515 #define HOMEPLUG_AV_PID_PROV_AUTH_NEK 0x01
1516 #define HOMEPLUG_AV_PID_PROV_AUTH_DAK 0x02
1517 #define HOMEPLUG_AV_PID_PROV_AUTH_UKE 0x03
1518 #define HOMEPLUG_AV_PID_HLE 0x04
1519 #define HOMEPLUG_AV_PID_MASK 0x07
1521 static const value_string homeplug_av_pid_vals
[] = {
1522 { HOMEPLUG_AV_PID_AUTH_STA
, "Authentication request by new STA" },
1523 { HOMEPLUG_AV_PID_PROV_AUTH_NEK
, "Provision authenticated STA with new NEK by CCo" },
1524 { HOMEPLUG_AV_PID_PROV_AUTH_DAK
, "Provision STA with NMK using DAK" },
1525 { HOMEPLUG_AV_PID_PROV_AUTH_UKE
, "Provision STA with NMK using UKE" },
1526 { HOMEPLUG_AV_PID_HLE
, "HLE" },
1530 #define HOMEPLUG_AV_KEY_TYPE_DAK 0x00
1531 #define HOMEPLUG_AV_KEY_TYPE_NMK 0x01
1532 #define HOMEPLUG_AV_KEY_TYPE_NEK 0x02
1533 #define HOMEPLUG_AV_KEY_TYPE_TEK 0x03
1534 #define HOMEPLUG_AV_KEY_TYPE_HASH 0x04
1535 #define HOMEPLUG_AV_KEY_TYPE_NONE 0x05
1536 #define HOMEPLUG_AV_KEY_TYPE_MASK 0x07
1538 static const value_string homeplug_av_key_type_vals
[] = {
1539 { HOMEPLUG_AV_KEY_TYPE_DAK
, "DAK" },
1540 { HOMEPLUG_AV_KEY_TYPE_NMK
, "NMK" },
1541 { HOMEPLUG_AV_KEY_TYPE_NEK
, "NEK" },
1542 { HOMEPLUG_AV_KEY_TYPE_TEK
, "TEK" },
1543 { HOMEPLUG_AV_KEY_TYPE_HASH
, "Hash Key" },
1544 { HOMEPLUG_AV_KEY_TYPE_NONE
, "Nonce only (no key)" },
1548 #define HOMEPLUG_AV_DEV_ID_MASK 0x0
1550 static const value_string homeplug_av_dev_id_vals
[] = {
1551 { 0x00, "Unknown" },
1552 { 0x01, "INT6000" },
1553 { 0x02, "INT6300" },
1554 { 0x03, "INT6400" },
1557 { 0x20, "QCA7450/QCA7420" },
1558 { 0x21, "QCA6410/QCA6411" },
1559 { 0x22, "QCA7000" },
1563 #define HOMEPLUG_AV_REQ_TYPE_MASK 0x01
1565 static const value_string homeplug_av_req_type_vals
[] = {
1567 { 0x01, "Relayed" },
1571 #define HOMEPLUG_AV_KEY_RESULT_MASK 0x03
1573 static const value_string homeplug_av_key_result_vals
[] = {
1574 { 0x00, "Key granted" },
1575 { 0x01, "Request refused" },
1576 { 0x02, "Unsupported method/key type" },
1580 #define HOMEPLUG_AV_LINEFREQ_MASK 0x03
1582 static const value_string homeplug_av_linefreq_vals
[] = {
1583 { 0x00, "Unknown frequency" },
1589 #define HOMEPLUG_AV_ZEROCROSS_MASK 0x03
1591 static const value_string homeplug_av_zerocrossing_vals
[] = {
1592 { 0x00, "Not yet detected" },
1593 { 0x01, "Detected" },
1594 { 0x02, "Missing" },
1598 #define HOMEPLUG_AV_ENET_PHY_SPEED_MASK 0x03
1600 static const value_string homeplug_av_enet_phy_speed_vals
[] = {
1601 { 0x00, "10 Mbits/sec" },
1602 { 0x01, "100 Mbits/sec" },
1603 { 0x02, "1 Gbits/sec" },
1607 #define HOMEPLUG_AV_ENET_PHY_DUPLEX_MASK 0x01
1609 static const value_string homeplug_av_enet_phy_duplex_vals
[] = {
1615 #define HOMEPLUG_AV_ENET_PHY_MCONTROL_MASK 0x01
1617 static const value_string homeplug_av_enet_phy_mcontrol_vals
[] = {
1623 static const value_string homeplug_av_wr_rd_mem_status_vals
[] = {
1624 { 0x00, "Success" },
1625 { 0x10, "Invalid Address" },
1626 { 0x14, "Invalid Length" },
1630 static const value_string homeplug_av_mac_module_id_vals
[] = {
1631 { 0x00, "MAC Soft-Loader Image" },
1632 { 0x01, "MAC Software Image" },
1634 { 0x10, "Write Alternate Flash Location" },
1638 static const value_string homeplug_av_st_mac_status_vals
[] = {
1639 { 0x00, "Success" },
1640 { 0x10, "Invalid Module ID" },
1641 { 0x14, "Invalid Command" },
1645 static const value_string homeplug_av_get_nvm_status_vals
[] = {
1646 { 0x00, "Success" },
1647 { 0x10, "NVM Not Present" },
1651 static const value_string homeplug_av_rs_dev_status_vals
[] = {
1652 { 0x00, "Success" },
1653 { 0x01, "NVM Not Present" },
1657 static const value_string homeplug_av_wr_rd_mod_cnf_status_vals
[] = {
1658 { 0x00, "Success" },
1659 { 0x10, "Invalid Module ID" },
1660 { 0x12, "Invalid Length" },
1661 { 0x14, "Invalid Checksum" },
1662 { 0x18, "Bad Header Checksum" },
1663 { 0x1C, "Invalid Length" },
1664 { 0x20, "Unexpected Offset" },
1668 static const value_string homeplug_av_wr_mod_ind_status_vals
[] = {
1669 { 0x00, "Successful module update" },
1670 { 0x10, "Update occurred but not successful" },
1674 static const value_string homeplug_av_mod_nvm_status_vals
[] = {
1675 { 0x00, "Success" },
1676 { 0x10, "Invalid Module ID" },
1677 { 0x14, "NVM Module Not Present" },
1678 { 0x18, "NVM Too Small" },
1679 { 0x1C, "Invalid Header Checksum" },
1680 { 0x20, "Invalid Section Mismatch" },
1684 #define HOMEPLUG_AV_RPT_CLR_MASK 0x01
1686 static const value_string homeplug_av_rpt_clr_vals
[] = {
1687 { 0x00, "Get Report" },
1688 { 0x01, "Get Report and Clear" },
1692 #define HOMEPLUG_AV_GEN_STATUS_MASK 0x03
1694 static const value_string homeplug_av_generic_status_vals
[] = {
1695 { 0x00, "Success" },
1696 { 0x01, "Failure" },
1697 { 0x02, "Not supported" },
1701 #define HOMEPLUG_AV_LNK_STATS_MCTL_MASK 0x01
1703 static const value_string homeplug_av_lnk_stats_mctrl_vals
[] = {
1709 #define HOMEPLUG_AV_LNK_STATS_DIR_TX 0x00
1710 #define HOMEPLUG_AV_LNK_STATS_DIR_RX 0x01
1711 #define HOMEPLUG_AV_LNK_STATS_DIR_TX_RX 0x02
1712 #define HOMEPLUG_AV_LNK_STATS_DIR_MASK 0x03
1714 static const value_string homeplug_av_lnk_stats_dir_vals
[] = {
1715 { HOMEPLUG_AV_LNK_STATS_DIR_TX
, "Tx" },
1716 { HOMEPLUG_AV_LNK_STATS_DIR_RX
, "Rx" },
1717 { HOMEPLUG_AV_LNK_STATS_DIR_TX_RX
, "Tx/Rx" },
1721 static const value_string homeplug_av_lnk_stats_lid_vals
[] = {
1722 { 0x00, "CSMA Channel Access Priority 0" },
1723 { 0x01, "CSMA Channel Access Priority 1" },
1724 { 0x02, "CSMA Channel Access Priority 2" },
1725 { 0x03, "CSMA Channel Access Priority 3" },
1726 { 0xF8, "Sum of all CSMA stats for Peer Node" },
1727 { 0xFB, "Reserved" },
1728 { 0xFC, "Sum of all CSMA stats" },
1732 #define HOMEPLUG_AV_LNK_STATS_STATUS_SUCCESS 0x00
1733 #define HOMEPLUG_AV_LNK_STATS_STATUS_INV_CTRL 0x01
1734 #define HOMEPLUG_AV_LNK_STATS_STATUS_INV_DIR 0x02
1735 #define HOMEPLUG_AV_LNK_STATS_STATUS_INV_LID 0x10
1736 #define HOMEPLUG_AV_LNK_STATS_STATUS_INV_MAC 0x20
1738 static const value_string homeplug_av_lnk_status_vals
[] = {
1739 { HOMEPLUG_AV_LNK_STATS_STATUS_SUCCESS
, "Success" },
1740 { HOMEPLUG_AV_LNK_STATS_STATUS_INV_CTRL
, "Invalid Control" },
1741 { HOMEPLUG_AV_LNK_STATS_STATUS_INV_DIR
, "Invalid Direction" },
1742 { HOMEPLUG_AV_LNK_STATS_STATUS_INV_LID
, "Invalid Link ID" },
1743 { HOMEPLUG_AV_LNK_STATS_STATUS_INV_MAC
, "Invalid MAC Address" },
1747 #define HOMEPLUG_AV_SNIFFER_CTRL_MASK 0x03
1749 static const value_string homeplug_av_sniffer_ctrl_vals
[] = {
1750 { 0x00, "Disable" },
1752 { 0x02, "No change" },
1756 static const value_string homeplug_av_sniffer_status_vals
[] = {
1757 { 0x00, "Success" },
1758 { 0x10, "Invalid Control" },
1762 static const value_string homeplug_av_sniffer_type_vals
[] = {
1763 { 0x00, "Regular" },
1767 #define HOMEPLUG_AV_DEL_TYPE_BCN 0x00
1768 #define HOMEPLUG_AV_DEL_TYPE_SOF 0x01
1769 #define HOMEPLUG_AV_DEL_TYPE_SACK 0x02
1770 #define HOMEPLUG_AV_DEL_TYPE_RTS 0x03
1771 #define HOMEPLUG_AV_DEL_TYPE_SOUND 0x04
1772 #define HOMEPLUG_AV_DEL_TYPE_RSOF 0x05
1774 #define HOMEPLUG_AV_DEL_TYPE_MASK 0x07
1776 static const value_string homeplug_av_fc_del_type_vals
[] = {
1777 { HOMEPLUG_AV_DEL_TYPE_BCN
, "Beacon" },
1778 { HOMEPLUG_AV_DEL_TYPE_SOF
, "Start-of-Frame" },
1779 { HOMEPLUG_AV_DEL_TYPE_SACK
, "Selective Acknowledgement" },
1780 { HOMEPLUG_AV_DEL_TYPE_RTS
, "Request-to-Send/Clear-to-Send" },
1781 { HOMEPLUG_AV_DEL_TYPE_SOUND
, "Sound" },
1782 { HOMEPLUG_AV_DEL_TYPE_RSOF
, "Reverse Start-of-Frame" },
1783 { 0x06, "Unknown" },
1784 { 0x07, "Unknown" },
1790 #define HOMEPLUG_AV_SNID_MASK 0xf0
1791 #define HOMEPLUG_AV_CFS_MASK 0x01
1792 #define HOMEPLUG_AV_BDF_MASK 0x02
1793 #define HOMEPLUG_AV_HP10DF_MASK 0x04
1794 #define HOMEPLUG_AV_HP11DF_MASK 0x08
1795 #define HOMEPLUG_AV_SVN_MASK 0x04
1796 #define HOMEPLUG_AV_RRTF_MASK 0x08
1797 #define HOMEPLUG_AV_FL_AV_MASK 0x0FFF
1798 #define HOMEPLUG_AV_RSP_DATA_MASK 0x03
1799 #define HOMEPLUG_AV_RSP_MGMT_MASK 0x0C
1801 static int * const rsof_sack_fields
[] = {
1802 &hf_homeplug_av_cfs
,
1803 &hf_homeplug_av_bdf
,
1804 &hf_homeplug_av_svn
,
1805 &hf_homeplug_av_rrtf
,
1806 &hf_homeplug_av_mfs_rsp_data
,
1807 &hf_homeplug_av_mfs_rsp_mgmt
,
1811 #define HOMEPLUG_AV_PBSZ_MASK 0x01
1813 static const true_false_string homeplug_av_phy_block_size_vals
= {
1818 #define HOMEPLUG_AV_NUM_SYM_MASK 0x06
1819 #define HOMEPLUG_AV_TMI_AV_MASK 0xF8
1820 #define HOMEPLUG_AV_SOF_MPDU_CNT_MASK 0x3000
1821 #define HOMEPLUG_AV_BURST_CNT_MASK 0xC000
1822 #define HOMEPLUG_AV_BBF_MASK 0x01
1824 static const true_false_string homeplug_av_bbf_vals
= {
1829 #define HOMEPLUG_AV_MRTLF_MASK 0x1E
1830 #define HOMEPLUG_AV_DCCPCF_MASK 0x20
1831 #define HOMEPLUG_AV_MCF_MASK 0x40
1832 #define HOMEPLUG_AV_MNBF_MASK 0x80
1833 #define HOMEPLUG_AV_RSR_MASK 0x01
1834 #define HOMEPLUG_AV_CLST_MASK 0x02
1836 static const true_false_string homeplug_av_clst_vals
= {
1841 #define HOMEPLUG_AV_MFS_MGMT_MASK 0x1C
1842 #define HOMEPLUG_AV_MFS_DATA_MASK 0xE0
1843 #define HOMEPLUG_AV_SOF_RSP_MGMT_MASK 0x03
1844 #define HOMEPLUG_AV_SOF_RSP_DATA_MASK 0x0C
1845 #define HOMEPLUG_AV_BM_SACK_MASK 0xF0
1847 #define HOMEPLUG_AV_RTSF_MASK 0x10
1849 static const true_false_string homeplug_av_rtsf_vals
= {
1854 #define HOMEPLUG_AV_IGF_MASK 0x20
1855 #define HOMEPLUG_AV_RTSCTS_MNBF_MASK 0x40
1856 #define HOMEPLUG_AV_RTSCTS_MCF_MASK 0x80
1857 #define HOMEPLUG_AV_DUR_MASK 0x3FFF
1859 #define HOMEPLUG_AV_SOUND_PBSZ_MASK 0x02
1860 #define HOMEPLUG_AV_SOUND_BDF_MASK 0x04
1861 #define HOMEPLUG_AV_SAF_MASK 0x08
1862 #define HOMEPLUG_AV_SCF_MASK 0x10
1863 #define HOMEPLUG_AV_REQ_TM_MASK 0xE0
1864 #define HOMEPLUG_AV_SOUND_MPDU_CNT_MASK 0x3000
1865 #define HOMEPLUG_AV_ADD_REQ_TM_MASK 0x07
1866 #define HOMEPLUG_AV_MAX_PB_SYM_MASK 0x38
1867 #define HOMEPLUG_AV_ECSF_MASK 0x40
1868 #define HOMEPLUG_AV_ECUF_MASK 0x80
1869 #define HOMEPLUG_AV_EMS_MASK 0x03
1871 static const value_string homeplug_av_ems_vals
[] = {
1872 { 0x00, "Extended QAM Modulations not supported" },
1873 { 0x01, "4096 QAM Modulation support" },
1874 { 0x02, "Reserved" },
1875 { 0x03, "Reserved" },
1879 #define HOMEPLUG_AV_ESGISF_MASK 0x04
1880 #define HOMEPLUG_AV_ELGISF_MASK 0x08
1881 #define HOMEPLUG_AV_EFRS_MASK 0x30
1883 static const value_string homeplug_av_efrs_vals
[] = {
1884 { 0x00, "Extended FEC Rates Not Supported" },
1885 { 0x01, "16/18 FED Rate Supported" },
1886 { 0x02, "Reserved" },
1887 { 0x03, "Reserved" },
1891 #define HOMEPLUG_AV_RSOF_FL_MASK 0x03FF
1892 #define HOMEPLUG_AV_RSOF_TMI_MASK 0x7C00
1893 #define HOMEPLUG_AV_RSOF_PBSZ_MASK 0x8000
1894 #define HOMEPLUG_AV_RSOF_NUM_SYM_MASK 0x03
1896 /* MPDU Beacon payloads */
1898 #define HOMEPLUG_AV_BCN_NID_MASK 0xFFFFFFFFFFFF3F
1899 #define HOMEPLUG_AV_HM_MASK 0xC0
1901 static const val64_string homeplug_av_bcn_hm_vals
[] = {
1902 { 0x00, "AV-only mode" },
1903 { 0x01, "Shared CSMA Hybrid Mode" },
1904 { 0x02, "Fully hybrid mode" },
1905 { 0x03, "Fully hybrid mode with unrestricted frame lengths" },
1909 #define HOMEPLUG_AV_BCN_TYPE_MASK 0x07
1911 static const value_string homeplug_av_bcn_type_vals
[] = {
1913 { 0x1, "Discover" },
1918 #define HOMEPLUG_AV_NCNR_MASK 0x08
1919 #define HOMEPLUG_AV_NPSM_MASK 0x10
1920 #define HOMEPLUG_AV_NUM_SLOTS_MASK 0xE0
1921 #define HOMEPLUG_AV_SLOT_ID_MASK 0x03
1923 /* There must be a better way to do this. */
1924 static const value_string homeplug_av_bcn_slot_vals
[] = {
1936 #define HOMEPLUG_AV_ACLSS_MASK 0x38
1937 #define HOMEPLUG_AV_HOIP_MASK 0x40
1938 #define HOMEPLUG_AV_RTSBF_MASK 0x80
1939 #define HOMEPLUG_AV_NM_MASK 0x03
1941 static const value_string homeplug_av_bcn_nm_vals
[] = {
1942 { 0x1, "Uncoordinated Mode" },
1943 { 0x2, "Coordinated Mode" },
1944 { 0x3, "CSMA-only Mode" },
1948 #define HOMEPLUG_AV_LBK_STATUS_MASK 0x01
1950 static const value_string homeplug_av_lbk_status_vals
[] = {
1952 { 0x01, "Looping frame" },
1956 static const value_string homeplug_av_set_key_peks_vals
[] = {
1962 static const value_string homeplug_av_set_key_status_vals
[] = {
1963 { 0x00, "Success" },
1964 { 0x10, "Invalid EKS" },
1965 { 0x11, "Invalid PKS" },
1969 static const value_string homeplug_av_cblock_status_vals
[] = {
1970 { 0x00, "Success" },
1971 { 0x01, "Failure" },
1972 { 0x10, "No Flash" },
1973 { 0x30, "Invalid Checksum" },
1974 { 0x34, "BIST Failed" },
1978 #define HOMEPLUG_AV_NVM_IMG_TYPE_MASK 0x1F
1980 static const value_string homeplug_av_nvm_img_type_vals
[] = {
1981 { 0x00, "Generic Image" },
1982 { 0x01, "Synopsis configuration" },
1983 { 0x02, "Denali configuration" },
1984 { 0x03, "Denali applet" },
1985 { 0x04, "Runtime firmware" },
1986 { 0x05, "OAS client" },
1987 { 0x06, "Custom image" },
1988 { 0x07, "Memory control applet" },
1989 { 0x08, "Power management applet" },
1990 { 0x09, "OAS client IP stack" },
1991 { 0x0A, "OAS client TR069" },
1992 { 0x0B, "SoftLoader" },
1993 { 0x0C, "Flash layout" },
1994 { 0x0D, "Unknown" },
1995 { 0x0E, "Chain manifest" },
1996 { 0x0F, "Runtime parameters" },
1997 { 0x10, "Custom module in scratch" },
1998 { 0x11, "Custom module update applet" },
2002 #define HOMEPLUG_AV_NVM_IGNORE_MASK_MASK 0x01FF
2004 static const value_string homeplug_av_nvm_ignore_mask_vals
[] = {
2005 { 0x00, "INT6000" },
2006 { 0x01, "INT6300" },
2007 { 0x04, "INT6400" },
2009 { 0x100, "AR7420" },
2013 #define HOMEPLUG_AV_HOST_ACTION_SOFT_LDR 0x00
2014 #define HOMEPLUG_AV_HOST_ACTION_FW_UPG_RDY 0x01
2015 #define HOMEPLUG_AV_HOST_ACTION_PIB_UP_RDY 0x02
2016 #define HOMEPLUG_AV_HOST_ACTION_FW_PIB_UP_RDY 0x03
2017 #define HOMEPLUG_AV_HOST_ACTION_BOOT_LDR 0x04
2019 static const value_string homeplug_av_host_action_vals
[] = {
2020 { HOMEPLUG_AV_HOST_ACTION_SOFT_LDR
, "Loader (Soft/Bootloader)" },
2021 { HOMEPLUG_AV_HOST_ACTION_FW_UPG_RDY
, "Firmware Upgrade Ready" },
2022 { HOMEPLUG_AV_HOST_ACTION_PIB_UP_RDY
, "PIB Update Ready" },
2023 { HOMEPLUG_AV_HOST_ACTION_FW_PIB_UP_RDY
, "Firmware Upgrade and PIB Update Ready" },
2024 { HOMEPLUG_AV_HOST_ACTION_BOOT_LDR
, "Loader (Bootloader)" },
2028 static const value_string homeplug_av_op_attr_report_vals
[] = {
2034 #define HOMEPLUG_AV_TONE_MAP_MAX_NUM_CARRIERS_A 1155
2035 #define HOMEPLUG_AV_TONE_MAP_MAX_NUM_CARRIERS_B 2880
2037 #define HOMEPLUG_AV_TONE_MAP_MASK 0x0f
2039 static const value_string homeplug_av_tone_map_vals
[] = {
2040 { 0x00, "No modulation" },
2046 { 0x06, "256-QAM" },
2047 { 0x07, "1024-QAM" },
2048 { 0x08, "4096-QAM" },
2052 static const value_string homeplug_av_tone_map_status_vals
[] = {
2053 { 0x00, "Success" },
2054 { 0x01, "Unknown MAC address" },
2055 { 0x02, "Unknown Tone Map slot" },
2059 #define HOMEPLUG_AV_COUPLING_MASK 0x0F
2061 static const value_string homeplug_av_coupling_vals
[] = {
2062 { 0x00, "Primary" },
2063 { 0x01, "Alternate" },
2067 static const value_string homeplug_av_cc_assoc_result_vals
[] = {
2068 { 0x00, "Success" },
2069 { 0x01, "Failure due to temporary resource exhaustion, try again later" },
2070 { 0x02, "Failure due to permanent resource exhaustion" },
2071 { 0x03, "Failure" },
2075 static const value_string homeplug_av_cc_assoc_reqtype_vals
[] = {
2076 { 0x00, "New request" },
2077 { 0x01, "Renewal request" },
2081 static const value_string homeplug_av_cc_assoc_proxy_net_cap_vals
[] = {
2082 { 0x00, "Doesn't support Proxy Networking" },
2083 { 0x01, "Supports Proxy Networking" },
2089 #define HOMEPLUG_AV_GP_APPTYPE_PEV_EVSE_ASSOC 0x00
2091 #define HOMEPLUG_AV_GP_SECURITY_TYPE_NONE 0x00
2092 #define HOMEPLUG_AV_GP_SECURITY_TYPE_PUBLIC_KEY 0x01
2094 static const value_string homeplug_av_gp_cm_slac_parm_sectype_vals
[] = {
2095 { HOMEPLUG_AV_GP_SECURITY_TYPE_NONE
, "No Security" },
2096 { HOMEPLUG_AV_GP_SECURITY_TYPE_PUBLIC_KEY
, "Public Key Signature" },
2100 static const value_string homeplug_av_gp_cm_slac_parm_resptype_vals
[] = {
2101 { 0x00, "Not Transmitted to other GP STA's HLE" },
2102 { 0x01, "Transmitted to another GP STA's HLE" },
2106 #define HOMEPLUG_AV_GP_SIGNAL_TYPE_PEV_S2_TOGGLES 0x00
2108 static const value_string homeplug_av_gp_cm_validate_signaltype_vals
[] = {
2109 { HOMEPLUG_AV_GP_SIGNAL_TYPE_PEV_S2_TOGGLES
, "PEV S2 toggles on CPLT line" },
2113 static const value_string homeplug_av_gp_cm_validate_result_vals
[] = {
2114 { 0x00, "Not Ready" },
2116 { 0x02, "Success" },
2117 { 0x03, "Failure" },
2118 { 0x04, "Not required" },
2122 /* We need third octet */
2123 #define HOMEPLUG_AV_GP_CM_SLAC_USER_DATA_BROADCAST_MASK (((uint32_t)0xFF) << 16)
2125 static const value_string homeplug_av_gp_cm_slac_user_data_broadcast_vals
[] = {
2126 { 0x00, "Unicast" },
2127 { 0x01, "AVLN Broadcast" },
2128 { 0x02, "Multi-network broadcast" },
2132 #define HOMEPLUG_AV_GP_CM_SLAC_USER_DATA_TLV_HEADER_SIZE 2
2133 #define HOMEPLUG_AV_GP_CM_SLAC_USER_DATA_TLV_TYPE_MASK (((1<<7)-1)<<9)
2134 #define HOMEPLUG_AV_GP_CM_SLAC_USER_DATA_TLV_LENGTH_MASK ((1<<9)-1)
2136 #define HOMEPLUG_AV_GP_CM_SLAC_USER_DATA_TLV_TYPE_VENDOR_RESERVED 0x1F
2138 static const value_string homeplug_av_gp_cm_slac_user_data_tlv_types_vals
[] = {
2139 { HOMEPLUG_AV_GP_CM_SLAC_USER_DATA_TLV_TYPE_VENDOR_RESERVED
, "Vendor Reserved" },
2144 HOMEPLUG_AV_CC_SET_TEI_MAP_IND_MODE_FULL_ENTRIES_UPATE
= 0x00,
2145 HOMEPLUG_AV_CC_SET_TEI_MAP_IND_MODE_ADD_NEW_ENTRIES
= 0x01,
2146 HOMEPLUG_AV_CC_SET_TEI_MAP_IND_MODE_REMOVE_ENTRIES
= 0x02
2147 } homeplug_av_cc_set_tei_map_ind_mode_types
;
2149 static const value_string homeplug_av_cc_set_tei_map_ind_mode_vals
[] = {
2150 { HOMEPLUG_AV_CC_SET_TEI_MAP_IND_MODE_FULL_ENTRIES_UPATE
, "Update Entire STA" },
2151 { HOMEPLUG_AV_CC_SET_TEI_MAP_IND_MODE_ADD_NEW_ENTRIES
, "Add new STA entries" },
2152 { HOMEPLUG_AV_CC_SET_TEI_MAP_IND_MODE_REMOVE_ENTRIES
, "Remove existing STA entries" },
2157 HOMEPLUG_AV_CC_SET_TEI_MAP_IND_STATUS_NOT_AUTHENTICATED
= 0x00,
2158 HOMEPLUG_AV_CC_SET_TEI_MAP_IND_STATUS_AUTHENTICATED
= 0x01,
2159 } homeplug_av_cc_set_tei_map_ind_status_types
;
2161 static const value_string homeplug_av_cc_set_tei_map_ind_status_vals
[] = {
2162 { HOMEPLUG_AV_CC_SET_TEI_MAP_IND_STATUS_NOT_AUTHENTICATED
, "Not Authenticated" },
2163 { HOMEPLUG_AV_CC_SET_TEI_MAP_IND_STATUS_AUTHENTICATED
, "Authenticated" },
2167 #define HOMEPLUG_AV_GP_CM_ATTEN_CHAR_AAG_FORMAT "Avg. Attenuation of group #%d (dB): %d"
2169 /* ST/IoTecha specific values */
2171 static const value_string homeplug_av_st_iotecha_linkstatus_status_vals
[] = {
2172 { 0x00, "No Link" },
2173 { 0x01, "Link with at least 1 device" },
2177 static const value_string homeplug_av_st_iotecha_linkstatus_devmode_vals
[] = {
2178 { 0x00, "Unavailable" },
2179 { 0x01, "UNAS STA" },
2180 { 0x02, "ASSC STA" },
2181 { 0x03, "AUTH STA" },
2182 { 0x04, "UNAS BM" },
2183 { 0x05, "ASSC BM" },
2184 { 0x06, "AUTH BM" },
2188 #define HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_HEADER_SIZE 2
2189 #define HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_MASK (((1<<6)-1)<<10)
2190 #define HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_LENGTH_MASK ((1<<10)-1)
2193 HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_NULL
= 0x00,
2194 HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_DEVICE_NAME
= 0x01,
2195 HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_DEVICE_TYPE
= 0x02,
2196 HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_BUILD_ID
= 0x03,
2197 HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_RESERVED
= 0x04,
2198 HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_DEVICE_UID
= 0x05,
2199 HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_MAC_ADDRESS
= 0x06,
2200 HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_HARDWARE_NAME
= 0x07,
2201 HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_HARDWARE_VERSION
= 0x08,
2202 HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_LINUX_KERNEL_VERSION
= 0x09,
2203 HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_LINUX_USER_VERSION
= 0x0A,
2204 } homeplug_av_st_iotecha_stp_discover_tlv_types
;
2206 static const value_string homeplug_av_st_iotecha_stp_discover_tlv_type_vals
[] = {
2207 { HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_NULL
, "NULL" },
2208 { HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_DEVICE_NAME
, "Device name" },
2209 { HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_DEVICE_TYPE
, "Device type" },
2210 { HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_BUILD_ID
, "Build ID" },
2211 { HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_RESERVED
, "Reserved" },
2212 { HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_DEVICE_UID
, "Device UID" },
2213 { HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_MAC_ADDRESS
, "MAC Address" },
2214 { HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_HARDWARE_NAME
, "Hardware name" },
2215 { HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_HARDWARE_VERSION
, "Hardware version" },
2216 { HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_LINUX_KERNEL_VERSION
, "Linux Kernel version" },
2217 { HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_LINUX_USER_VERSION
, "Linux User version" },
2222 HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_NULL
= 0x00,
2223 HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_BEGIN_BSS
= 0x01,
2224 HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_LOCAL_BSS
= 0x02,
2225 HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_RESERVED
= 0x03,
2226 HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_REMOTE_BSS
= 0x04,
2227 HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_SNID
= 0x05,
2228 HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_NID
= 0x06,
2229 HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_NET_MODE
= 0x07,
2230 HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_BEACON_AGE
= 0x08,
2231 HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_BEACON_FC_RELIABILITY
= 0x09,
2232 HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_BEACON_PLD_RELIABILITY
= 0x0A,
2233 HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_SIGNAL_LEVEL
= 0x0B,
2234 HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_SIGNAL_LEVEL_TOS
= 0x0C,
2235 HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_SIGNAL_LEVEL_MIN
= 0x0D,
2236 HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_SIGNAL_LEVEL_TOS_MIN
= 0x0E,
2237 HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_SIGNAL_LEVEL_MAX
= 0x0F,
2238 HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_SIGNAL_LEVEL_TOS_MAX
= 0x10,
2239 HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_NET_HYB_MODE
= 0x11,
2240 HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_TEI
= 0x12,
2241 HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_END_BSS
= 0xFF,
2242 } homeplug_av_st_iotecha_stp_get_bss_tlv_types
;
2244 static const value_string homeplug_av_st_iotecha_stp_get_bss_tlv_type_vals
[] = {
2245 { HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_NULL
, "NULL" },
2246 { HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_BEGIN_BSS
, "Start of BSS descriptor" },
2247 { HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_LOCAL_BSS
, "Local BSS Manager" },
2248 { HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_RESERVED
, "Reserved Data" },
2249 { HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_REMOTE_BSS
, "Remote BSS" },
2250 { HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_SNID
, "Short Network ID" },
2251 { HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_NID
, "Network ID" },
2252 { HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_NET_MODE
, "Network Mode" },
2253 { HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_BEACON_AGE
, "Beacon Age" },
2254 { HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_BEACON_FC_RELIABILITY
, "Beacon Frame Control reliability" },
2255 { HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_BEACON_PLD_RELIABILITY
,"Beacon Payload reliability" },
2256 { HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_SIGNAL_LEVEL
, "Signal Level" },
2257 { HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_SIGNAL_LEVEL_TOS
, "Signal Level Time of Sample" },
2258 { HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_SIGNAL_LEVEL_MIN
, "Min Signal Level" },
2259 { HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_SIGNAL_LEVEL_TOS_MIN
, "Min Signal Level Time of Sample" },
2260 { HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_SIGNAL_LEVEL_MAX
, "Max Signal Level" },
2261 { HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_SIGNAL_LEVEL_TOS_MAX
, "Max Signal Level Time of Sample" },
2262 { HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_NET_HYB_MODE
, "Network Hybrid Mode" },
2263 { HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_TEI
, "TEI of BM" },
2264 { HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_END_BSS
, "End of BSS descriptor" },
2268 static const value_string homeplug_av_st_iotecha_mac_address_flag_vals
[] = {
2269 { 0x00, "Unknown" },
2270 { 0x01, "Local MAC" },
2271 { 0x02, "Local Bridged MAC" },
2272 { 0x04, "Remote MAC" },
2273 { 0x08, "Remote Bridged MAC" },
2277 static const value_string homeplug_av_st_iotecha_chanqual_tei_source_vals
[] = {
2278 { 0x01, "Local Tei" },
2279 { 0x02, "Remote Tei" },
2283 static const value_string homeplug_av_st_iotecha_chanqual_substatus_vals
[] = {
2284 { 0x01, "Subscribed" },
2285 { 0x02, "Unsubscribed" },
2286 { 0x03, "Invalid Request Type" },
2290 static const value_string homeplug_av_st_iotecha_chanqual_responsetype_vals
[] = {
2291 { 0x00, "Default Tone map transmitted in ICE" },
2296 static const value_string homeplug_av_st_iotecha_chanqual_tmi_vals
[] = {
2297 { 0xFE, "Not Available For Particular Interval" },
2298 { 0xFF, "Unusable Interval" },
2302 #define HOMEPLUG_AV_ST_IOTECHA_CHANQUAL_CBLD_DATA_MASK_LOW 0x0F
2303 #define HOMEPLUG_AV_ST_IOTECHA_CHANQUAL_CBLD_DATA_MASK_HIGH 0xF0
2305 #define HOMEPLUG_AV_ST_IOTECHA_CHANQUAL_CBLD_DATA_COUNT 577
2306 static const value_string homeplug_av_st_iotecha_chanqual_cbld_data_vals
[] = {
2308 { 0x01, "Bitload of 1" },
2309 { 0x02, "Bitload of 2" },
2310 { 0x03, "Bitload of 3" },
2311 { 0x04, "Bitload of 4" },
2312 { 0x05, "Bitload of 5" },
2313 { 0x06, "Bitload of 6" },
2314 { 0x07, "Bitload of 7" },
2315 { 0x08, "Bitload of 8" },
2316 { 0x09, "Bitload of 9" },
2317 { 0x0A, "Bitload of 10" },
2318 { 0x0F, "Unusable" },
2322 static const value_string homeplug_av_st_iotecha_chanqual_reqtype_vals
[] = {
2323 { 0x01, "Subscribe" },
2324 { 0x02, "Unsubscribe" },
2328 static const value_string homeplug_av_st_iotecha_mfct_request_type_vals
[] = {
2334 static const value_string homeplug_av_st_iotecha_mfct_result_vals
[] = {
2335 { 0x00, "Success" },
2336 { 0x03, "Parameter Not Found" },
2337 { 0x04, "Permission Error" },
2338 { 0x05, "Insufficient space in parameter region" },
2339 { 0x06, "Internal Error" },
2343 static const value_string homeplug_av_st_iotecha_stp_fwup_mtype_vals
[] = {
2344 { 0x00, "Start Request" },
2345 { 0x01, "Start Confirmation" },
2346 { 0x02, "Data Index" },
2347 { 0x03, "Data Response" },
2351 static const value_string homeplug_av_st_iotecha_stp_cpstate_state_vals
[] = {
2354 { 0x02, "Ambiguous (A-B)"},
2356 { 0x04, "Ambiguous (B-C)"},
2358 { 0x06, "Ambiguous (C-D)"},
2360 { 0x08, "Ambiguous (D-E)"},
2366 static const value_string homeplug_av_st_iotecha_test_type_vals
[] = {
2372 static const value_string homeplug_av_st_iotecha_agc_lock_vals
[] = {
2373 { 0x00, "Disabled"},
2378 static const value_string homeplug_av_st_iotecha_test_status_vals
[] = {
2379 { 0x00, "Test running"},
2380 { 0x01, "Failed to start test"},
2381 { 0x02, "Test reset"},
2385 static const value_string homeplug_av_st_iotecha_suppress_data_vals
[] = {
2386 { 0x00, "Disabled"},
2392 adc_bitmask_base(char *buf
, uint8_t value
) {
2393 snprintf(buf
, ITEM_LABEL_LENGTH
, "%s, %s, %s (%d)",
2394 (value
& 0x01) ? "true" : "false",
2395 (value
& 0x02) ? "true" : "false",
2396 (value
& 0x04) ? "true" : "false",
2400 /* End of ST/IoTecha specific values */
2402 #define TVB_LEN_GREATEST 1
2403 #define TVB_LEN_UNDEF 0
2404 #define TVB_LEN_SHORTEST -1
2405 static int check_tvb_length(ptvcursor_t
*cursor
, const int length
)
2408 return TVB_LEN_UNDEF
;
2410 if (tvb_reported_length_remaining(ptvcursor_tvbuff(cursor
),
2411 ptvcursor_current_offset(cursor
)) < length
)
2412 return TVB_LEN_SHORTEST
;
2414 return TVB_LEN_GREATEST
;
2417 static inline unsigned int homeplug_av_mmtype_msb_is_vendor(uint8_t msb
)
2419 return ((msb
& (HOMEPLUG_AV_MMTYPE_MSB_VENDOR
<< HOMEPLUG_AV_MMTYPE_MSB_SHIFT
)) ==
2420 (HOMEPLUG_AV_MMTYPE_MSB_VENDOR
<< HOMEPLUG_AV_MMTYPE_MSB_SHIFT
));
2423 static inline unsigned int homeplug_av_mmtype_msb_is_manufacturer(uint8_t msb
)
2425 return ((msb
& (HOMEPLUG_AV_MMTYPE_MSB_MANUF
<< HOMEPLUG_AV_MMTYPE_MSB_SHIFT
)) ==
2426 (HOMEPLUG_AV_MMTYPE_MSB_MANUF
<< HOMEPLUG_AV_MMTYPE_MSB_SHIFT
));
2429 static inline uint8_t homeplug_av_get_mmhdr_size(uint8_t mmv
) {
2430 /* Header in HomePlug AV 1.1 is 2 bytes larger (Fragmentation information) */
2431 return (mmv
? 5 : 3);
2434 /* Dissection of MMHDR */
2436 dissect_homeplug_av_mmhdr(ptvcursor_t
*cursor
, uint8_t *homeplug_av_mmver
, uint16_t *homeplug_av_mmtype
, uint32_t *homeplug_av_oui
)
2439 proto_tree
*ti_mmtype
;
2440 /* Save in static variable */
2441 /* proto_tree *ti_vendor; */
2442 proto_tree
*ti_public
;
2443 uint8_t lsb
, msb
, mmv
;
2448 mmv
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),
2449 ptvcursor_current_offset(cursor
));
2450 lsb
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),
2451 ptvcursor_current_offset(cursor
) + 1);
2452 msb
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),
2453 ptvcursor_current_offset(cursor
) + 2);
2455 *homeplug_av_mmver
= mmv
;
2456 *homeplug_av_mmtype
= (msb
<< 8) | lsb
;
2458 if (homeplug_av_mmtype_msb_is_vendor(msb
)
2459 || homeplug_av_mmtype_msb_is_manufacturer(msb
))
2461 /* read three bytes of OUI */
2462 *homeplug_av_oui
= tvb_get_uint24(ptvcursor_tvbuff(cursor
),
2463 ptvcursor_current_offset(cursor
)+homeplug_av_get_mmhdr_size(mmv
),
2467 if (!ptvcursor_tree(cursor
)) {
2468 /* advance even there is no tree to be able to extract data in packet specific dissectors */
2469 offset
+= homeplug_av_get_mmhdr_size(mmv
);
2470 if (homeplug_av_mmtype_msb_is_vendor(msb
)
2471 || homeplug_av_mmtype_msb_is_manufacturer(msb
)) {
2474 ptvcursor_advance(cursor
, offset
);
2478 /* Header in HomePlug AV 1.1 is 2 bytes larger (Fragmentation information) */
2479 ti
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mmhdr
, homeplug_av_get_mmhdr_size(*homeplug_av_mmver
), ENC_NA
);
2481 ptvcursor_push_subtree(cursor
, ti
, ett_homeplug_av_mmhdr
);
2483 ptvcursor_add(cursor
, hf_homeplug_av_mmhdr_mmver
, 1, ENC_BIG_ENDIAN
);
2485 switch (*homeplug_av_oui
) {
2486 case HOMEPLUG_AV_OUI_QCA
:
2487 ti_mmtype
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mmhdr_mmtype_qualcomm
, 2, ENC_LITTLE_ENDIAN
);
2489 case HOMEPLUG_AV_OUI_ST_IOTECHA
:
2490 ti_mmtype
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mmhdr_mmtype_st
, 2, ENC_LITTLE_ENDIAN
);
2493 ti_mmtype
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mmhdr_mmtype_general
, 2, ENC_LITTLE_ENDIAN
);
2497 ptvcursor_push_subtree(cursor
, ti_mmtype
, ett_homeplug_av_mmtype
);
2499 ptvcursor_add(cursor
, hf_homeplug_av_mmhdr_mmtype_lsb
, 1, ENC_BIG_ENDIAN
);
2500 ptvcursor_add(cursor
, hf_homeplug_av_mmhdr_mmtype_msb
, 1, ENC_BIG_ENDIAN
);
2502 ptvcursor_pop_subtree(cursor
);
2504 /* Fragmentation information is part of the header in HomePlug AV 1.1 */
2507 ti_public
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mmhdr_fmi
, 2, ENC_LITTLE_ENDIAN
);
2509 ptvcursor_push_subtree(cursor
, ti_public
, ett_homeplug_av_fmi
);
2511 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_public_frag_count
, 1, ENC_BIG_ENDIAN
);
2512 ptvcursor_add(cursor
, hf_homeplug_av_public_frag_index
, 1, ENC_BIG_ENDIAN
);
2513 ptvcursor_add(cursor
, hf_homeplug_av_public_frag_seqnum
, 1, ENC_BIG_ENDIAN
);
2515 ptvcursor_pop_subtree(cursor
);
2518 ptvcursor_pop_subtree(cursor
);
2520 /* Vendor management frame */
2521 if (homeplug_av_mmtype_msb_is_vendor(msb
) || homeplug_av_mmtype_msb_is_manufacturer(msb
))
2523 ti_vendor
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_vendor
, 3, ENC_NA
);
2525 ptvcursor_push_subtree(cursor
, ti_vendor
, ett_homeplug_av_vendor
);
2527 ptvcursor_add(cursor
, hf_homeplug_av_vendor_oui
, 3, ENC_NA
);
2529 ptvcursor_pop_subtree(cursor
);
2531 /* Public management frame in HomePlug AV 1.0 */
2534 ti_public
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_public
, -1, ENC_NA
);
2536 ptvcursor_push_subtree(cursor
, ti_public
, ett_homeplug_av_public
);
2538 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_public_frag_count
, 1, ENC_BIG_ENDIAN
);
2539 ptvcursor_add(cursor
, hf_homeplug_av_public_frag_index
, 1, ENC_BIG_ENDIAN
);
2540 ptvcursor_add(cursor
, hf_homeplug_av_public_frag_seqnum
, 1, ENC_BIG_ENDIAN
);
2542 ptvcursor_pop_subtree(cursor
);
2549 dissect_homeplug_av_beacon_payload(ptvcursor_t
*cursor
)
2556 if (!ptvcursor_tree(cursor
))
2559 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_bcn_payload
, -1, ENC_NA
);
2561 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_bcn_payload
);
2563 tree
= ptvcursor_tree(cursor
);
2564 tvb
= ptvcursor_tvbuff(cursor
);
2566 static int * const bcn1_fields
[] = {
2567 &hf_homeplug_av_bcn_nid
,
2568 &hf_homeplug_av_bcn_hm
,
2572 proto_tree_add_bitmask_list(tree
, tvb
, ptvcursor_current_offset(cursor
), 7, bcn1_fields
, ENC_BIG_ENDIAN
);
2573 ptvcursor_advance(cursor
, 7);
2575 ptvcursor_add(cursor
, hf_homeplug_av_bcn_stei
, 1, ENC_BIG_ENDIAN
);
2577 static int * const bcn2_fields
[] = {
2578 &hf_homeplug_av_bcn_type
,
2579 &hf_homeplug_av_bcn_ncnr
,
2580 &hf_homeplug_av_bcn_npsm
,
2581 &hf_homeplug_av_bcn_num_slots
,
2585 proto_tree_add_bitmask_list(tree
, tvb
, ptvcursor_current_offset(cursor
), 1, bcn2_fields
, ENC_BIG_ENDIAN
);
2586 ptvcursor_advance(cursor
, 1);
2588 ptvcursor_add(cursor
, hf_homeplug_av_bcn_slot_use
, 1, ENC_BIG_ENDIAN
);
2590 static int * const bcn3_fields
[] = {
2591 &hf_homeplug_av_bcn_slot_id
,
2592 &hf_homeplug_av_bcn_aclss
,
2593 &hf_homeplug_av_bcn_hoip
,
2594 &hf_homeplug_av_bcn_rtsbf
,
2598 proto_tree_add_bitmask_list(tree
, tvb
, ptvcursor_current_offset(cursor
), 1, bcn3_fields
, ENC_BIG_ENDIAN
);
2599 ptvcursor_advance(cursor
, 1);
2601 static int * const bcn4_fields
[] = {
2602 &hf_homeplug_av_bcn_nm
,
2603 &hf_homeplug_av_bcn_cco_cap
,
2604 &hf_homeplug_av_bcn_rsf
,
2605 &hf_homeplug_av_bcn_plevel
,
2609 proto_tree_add_bitmask_list(tree
, tvb
, ptvcursor_current_offset(cursor
), 1, bcn4_fields
, ENC_BIG_ENDIAN
);
2610 ptvcursor_advance(cursor
, 1);
2612 /* TODO: decode individual beacon entries */
2613 ptvcursor_add(cursor
, hf_homeplug_av_bcn_bentries
, 120, ENC_NA
);
2614 ptvcursor_add(cursor
, hf_homeplug_av_bcn_bpcs
, 4, ENC_LITTLE_ENDIAN
);
2616 ptvcursor_pop_subtree(cursor
);
2620 dissect_homeplug_av_beacon(ptvcursor_t
*cursor
)
2624 if (!ptvcursor_tree(cursor
))
2627 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_bcn
, -1, ENC_NA
);
2629 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_bcn
);
2631 ptvcursor_add(cursor
, hf_homeplug_av_bcn_bts
, 4, ENC_LITTLE_ENDIAN
);
2632 ptvcursor_add(cursor
, hf_homeplug_av_bcn_bto_0
, 2, ENC_LITTLE_ENDIAN
);
2633 ptvcursor_add(cursor
, hf_homeplug_av_bcn_bto_1
, 2, ENC_LITTLE_ENDIAN
);
2634 ptvcursor_add(cursor
, hf_homeplug_av_bcn_bto_2
, 2, ENC_LITTLE_ENDIAN
);
2635 ptvcursor_add(cursor
, hf_homeplug_av_bcn_bto_3
, 2, ENC_LITTLE_ENDIAN
);
2636 ptvcursor_add(cursor
, hf_homeplug_av_fc_fccs_av
, 3, ENC_NA
);
2637 dissect_homeplug_av_beacon_payload(cursor
);
2639 ptvcursor_pop_subtree(cursor
);
2642 /* Start of Frame */
2644 dissect_homeplug_av_start_of_frame(ptvcursor_t
*cursor
)
2650 if (!ptvcursor_tree(cursor
))
2653 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_sof
, -1, ENC_NA
);
2655 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_sof
);
2657 tree
= ptvcursor_tree(cursor
);
2658 tvb
= ptvcursor_tvbuff(cursor
);
2660 ptvcursor_add(cursor
, hf_homeplug_av_stei
, 1, ENC_BIG_ENDIAN
);
2661 ptvcursor_add(cursor
, hf_homeplug_av_dtei
, 1, ENC_BIG_ENDIAN
);
2662 ptvcursor_add(cursor
, hf_homeplug_av_lid
, 1, ENC_BIG_ENDIAN
);
2664 static int * const sof1_fields
[] = {
2665 &hf_homeplug_av_cfs
,
2666 &hf_homeplug_av_bdf
,
2667 &hf_homeplug_av_hp10df
,
2668 &hf_homeplug_av_hp11df
,
2669 &hf_homeplug_av_sof_peks
,
2673 proto_tree_add_bitmask_list(tree
, tvb
, ptvcursor_current_offset(cursor
), 1, sof1_fields
, ENC_BIG_ENDIAN
);
2674 ptvcursor_advance(cursor
, 1);
2676 ptvcursor_add(cursor
, hf_homeplug_av_ppb
, 1, ENC_BIG_ENDIAN
);
2677 ptvcursor_add(cursor
, hf_homeplug_av_sof_ble
, 1, ENC_BIG_ENDIAN
);
2679 static int * const sof2_fields
[] = {
2680 &hf_homeplug_av_sof_pbsz
,
2681 &hf_homeplug_av_sof_num_sym
,
2682 &hf_homeplug_av_sof_tmi_av
,
2686 proto_tree_add_bitmask_list(tree
, tvb
, ptvcursor_current_offset(cursor
), 1, sof2_fields
, ENC_BIG_ENDIAN
);
2687 ptvcursor_advance(cursor
, 1);
2689 static int * const sof3_fields
[] = {
2690 &hf_homeplug_av_fl_av
,
2691 &hf_homeplug_av_sof_mpdu_cnt
,
2692 &hf_homeplug_av_sof_burst_cnt
,
2696 proto_tree_add_bitmask_list(tree
, tvb
, ptvcursor_current_offset(cursor
), 2, sof3_fields
, ENC_LITTLE_ENDIAN
);
2697 ptvcursor_advance(cursor
, 2);
2699 static int * const sof4_fields
[] = {
2700 &hf_homeplug_av_sof_bbf
,
2701 &hf_homeplug_av_sof_mrtfl
,
2702 &hf_homeplug_av_sof_dccpcf
,
2703 &hf_homeplug_av_sof_mcf
,
2704 &hf_homeplug_av_sof_mnbf
,
2708 proto_tree_add_bitmask_list(tree
, tvb
, ptvcursor_current_offset(cursor
), 1, sof4_fields
, ENC_BIG_ENDIAN
);
2709 ptvcursor_advance(cursor
, 1);
2711 static int * const sof5_fields
[] = {
2712 &hf_homeplug_av_sof_rsr
,
2713 &hf_homeplug_av_sof_clst
,
2714 &hf_homeplug_av_sof_mfs_cmd_mgmt
,
2715 &hf_homeplug_av_sof_mfs_cmd_data
,
2719 proto_tree_add_bitmask_list(tree
, tvb
, ptvcursor_current_offset(cursor
), 1, sof5_fields
, ENC_BIG_ENDIAN
);
2720 ptvcursor_advance(cursor
, 1);
2722 static int * const sof6_fields
[] = {
2723 &hf_homeplug_av_sof_mfs_rsp_mgmt
,
2724 &hf_homeplug_av_sof_mfs_rsp_data
,
2725 &hf_homeplug_av_sof_bm_sack
,
2729 proto_tree_add_bitmask_list(tree
, tvb
, ptvcursor_current_offset(cursor
), 1, sof6_fields
, ENC_BIG_ENDIAN
);
2730 ptvcursor_advance(cursor
, 1);
2732 ptvcursor_add(cursor
, hf_homeplug_av_fc_fccs_av
, 3, ENC_NA
);
2734 ptvcursor_pop_subtree(cursor
);
2737 /* Selective acknowledgment */
2739 dissect_homeplug_av_sack(ptvcursor_t
*cursor
)
2745 if (!ptvcursor_tree(cursor
))
2748 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_sack
, -1, ENC_NA
);
2750 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_sack
);
2752 tree
= ptvcursor_tree(cursor
);
2753 tvb
= ptvcursor_tvbuff(cursor
);
2755 ptvcursor_add(cursor
, hf_homeplug_av_dtei
, 1, ENC_BIG_ENDIAN
);
2757 proto_tree_add_bitmask_list(tree
, tvb
, ptvcursor_current_offset(cursor
), 1, rsof_sack_fields
, ENC_BIG_ENDIAN
);
2758 ptvcursor_advance(cursor
, 1);
2760 /* TODO: add variable fields here */
2761 ptvcursor_advance(cursor
, 10);
2762 ptvcursor_add(cursor
, hf_homeplug_av_fc_fccs_av
, 3, ENC_NA
);
2764 ptvcursor_pop_subtree(cursor
);
2767 /* Request to send/clear to send */
2769 dissect_homeplug_av_rtscts(ptvcursor_t
*cursor
)
2775 if (!ptvcursor_tree(cursor
))
2778 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_rtscts
, -1, ENC_NA
);
2780 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_rtscts
);
2782 tree
= ptvcursor_tree(cursor
);
2783 tvb
= ptvcursor_tvbuff(cursor
);
2785 ptvcursor_add(cursor
, hf_homeplug_av_stei
, 1, ENC_BIG_ENDIAN
);
2786 ptvcursor_add(cursor
, hf_homeplug_av_dtei
, 1, ENC_BIG_ENDIAN
);
2787 ptvcursor_add(cursor
, hf_homeplug_av_lid
, 1, ENC_BIG_ENDIAN
);
2789 static int * const rtscts_fields
[] = {
2790 &hf_homeplug_av_cfs
,
2791 &hf_homeplug_av_bdf
,
2792 &hf_homeplug_av_hp10df
,
2793 &hf_homeplug_av_hp11df
,
2794 &hf_homeplug_av_rtscts_rtsf
,
2795 &hf_homeplug_av_rtscts_igf
,
2796 &hf_homeplug_av_rtscts_mnbf
,
2797 &hf_homeplug_av_rtscts_mcf
,
2801 proto_tree_add_bitmask_list(tree
, tvb
, ptvcursor_current_offset(cursor
), 1, rtscts_fields
, ENC_BIG_ENDIAN
);
2802 ptvcursor_advance(cursor
, 1);
2804 ptvcursor_add(cursor
, hf_homeplug_av_rtscts_dur
, 2, ENC_LITTLE_ENDIAN
);
2805 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 6, ENC_NA
);
2806 ptvcursor_add(cursor
, hf_homeplug_av_fc_fccs_av
, 3, ENC_NA
);
2808 ptvcursor_pop_subtree(cursor
);
2813 dissect_homeplug_av_sound(ptvcursor_t
*cursor
)
2819 if (!ptvcursor_tree(cursor
))
2822 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_sound
, -1, ENC_NA
);
2824 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_sound
);
2826 tree
= ptvcursor_tree(cursor
);
2827 tvb
= ptvcursor_tvbuff(cursor
);
2829 ptvcursor_add(cursor
, hf_homeplug_av_stei
, 1, ENC_BIG_ENDIAN
);
2830 ptvcursor_add(cursor
, hf_homeplug_av_dtei
, 1, ENC_BIG_ENDIAN
);
2831 ptvcursor_add(cursor
, hf_homeplug_av_lid
, 1, ENC_BIG_ENDIAN
);
2833 static int * const sound1_fields
[] = {
2834 &hf_homeplug_av_cfs
,
2835 &hf_homeplug_av_sound_pbsz
,
2836 &hf_homeplug_av_sound_bdf
,
2837 &hf_homeplug_av_sound_saf
,
2838 &hf_homeplug_av_sound_scf
,
2839 &hf_homeplug_av_sound_req_tm
,
2843 proto_tree_add_bitmask_list(tree
, tvb
, ptvcursor_current_offset(cursor
), 1, sound1_fields
, ENC_BIG_ENDIAN
);
2844 ptvcursor_advance(cursor
, 1);
2846 static int * const sound2_fields
[] = {
2847 &hf_homeplug_av_fl_av
,
2848 &hf_homeplug_av_sound_mpdu_cnt
,
2852 proto_tree_add_bitmask_list(tree
, tvb
, ptvcursor_current_offset(cursor
), 2, sound2_fields
, ENC_LITTLE_ENDIAN
);
2853 ptvcursor_advance(cursor
, 2);
2855 ptvcursor_add(cursor
, hf_homeplug_av_ppb
, 1, ENC_BIG_ENDIAN
);
2856 ptvcursor_add(cursor
, hf_homeplug_av_sound_src
, 1, ENC_BIG_ENDIAN
);
2858 static int * const sound3_fields
[] = {
2859 &hf_homeplug_av_sound_add_req_tm
,
2860 &hf_homeplug_av_sound_max_pb_sym
,
2861 &hf_homeplug_av_sound_ecsf
,
2862 &hf_homeplug_av_sound_ecuf
,
2866 proto_tree_add_bitmask_list(tree
, tvb
, ptvcursor_current_offset(cursor
), 1, sound3_fields
, ENC_BIG_ENDIAN
);
2867 ptvcursor_advance(cursor
, 1);
2869 static int * const sound4_fields
[] = {
2870 &hf_homeplug_av_sound_ems
,
2871 &hf_homeplug_av_sound_esgisf
,
2872 &hf_homeplug_av_sound_elgisf
,
2873 &hf_homeplug_av_sound_efrs
,
2877 proto_tree_add_bitmask_list(tree
, tvb
, ptvcursor_current_offset(cursor
), 1, sound4_fields
, ENC_BIG_ENDIAN
);
2878 ptvcursor_advance(cursor
, 3); /* one byte for bitmask plus two reserved bytes we ignore */
2880 ptvcursor_add(cursor
, hf_homeplug_av_fc_fccs_av
, 3, ENC_NA
);
2882 ptvcursor_pop_subtree(cursor
);
2885 /* Reverse Start of Frame */
2887 dissect_homeplug_av_rsof(ptvcursor_t
*cursor
)
2893 if (!ptvcursor_tree(cursor
))
2896 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_rsof
, -1, ENC_NA
);
2898 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_rsof
);
2900 tree
= ptvcursor_tree(cursor
);
2901 tvb
= ptvcursor_tvbuff(cursor
);
2903 ptvcursor_add(cursor
, hf_homeplug_av_dtei
, 1, ENC_BIG_ENDIAN
);
2905 proto_tree_add_bitmask_list(tree
, tvb
, ptvcursor_current_offset(cursor
), 1, rsof_sack_fields
, ENC_BIG_ENDIAN
);
2906 ptvcursor_advance(cursor
, 8); /* 1 byte for bitmask field, plus 7 bytes of variable data */
2907 /* TODO: fill in variable fields */
2909 static int * const rsof2_fields
[] = {
2910 &hf_homeplug_av_rsof_fl
,
2911 &hf_homeplug_av_rsof_tmi
,
2912 &hf_homeplug_av_rsof_pbsz
,
2916 proto_tree_add_bitmask_list(tree
, tvb
, ptvcursor_current_offset(cursor
), 2, rsof2_fields
, ENC_LITTLE_ENDIAN
);
2917 ptvcursor_advance(cursor
, 2);
2919 static int * const rsof3_fields
[] = {
2920 &hf_homeplug_av_rsof_num_sym
,
2921 &hf_homeplug_av_rsof_mfs_cmd_mgmt
,
2922 &hf_homeplug_av_rsof_mfs_cmd_data
,
2926 proto_tree_add_bitmask_list(tree
, tvb
, ptvcursor_current_offset(cursor
), 1, rsof3_fields
, ENC_BIG_ENDIAN
);
2927 ptvcursor_advance(cursor
, 1);
2929 ptvcursor_add(cursor
, hf_homeplug_av_fc_fccs_av
, 3, ENC_NA
);
2931 ptvcursor_pop_subtree(cursor
);
2935 dissect_homeplug_av_nw_info_sta(ptvcursor_t
*cursor
, bool vendor
, unsigned homeplug_av_mmver
)
2939 if (!ptvcursor_tree(cursor
))
2942 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_nw_info_sta_info
, -1, ENC_NA
);
2944 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_nw_info_sta_info
);
2946 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_sta_da
, 6, ENC_NA
);
2948 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_sta_tei
, 1, ENC_BIG_ENDIAN
);
2950 if (homeplug_av_mmver
== HOMEPLUG_AV_MMVER_1_1
)
2951 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 3, ENC_NA
);
2953 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_sta_bda
, 6, ENC_NA
);
2955 if (!homeplug_av_mmver
)
2957 ptvcursor_add(cursor
, hf_homeplug_av10_nw_info_sta_phy_dr_tx
, 1, ENC_BIG_ENDIAN
);
2958 ptvcursor_add(cursor
, hf_homeplug_av10_nw_info_sta_phy_dr_rx
, 1, ENC_BIG_ENDIAN
);
2960 else if (homeplug_av_mmver
== HOMEPLUG_AV_MMVER_1_1
)
2962 ptvcursor_add(cursor
, hf_homeplug_av11_nw_info_sta_phy_dr_tx
, 2, ENC_LITTLE_ENDIAN
);
2963 ptvcursor_add_no_advance(cursor
, hf_homeplug_av11_nw_info_sta_cpling_tx
, 1, ENC_BIG_ENDIAN
);
2964 ptvcursor_add(cursor
, hf_homeplug_av11_nw_info_sta_cpling_rx
, 1, ENC_BIG_ENDIAN
);
2965 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
2966 ptvcursor_add(cursor
, hf_homeplug_av11_nw_info_sta_phy_dr_rx
, 2, ENC_LITTLE_ENDIAN
);
2967 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 2, ENC_NA
);
2970 ptvcursor_pop_subtree(cursor
);
2974 dissect_homeplug_av_nw_info_net(ptvcursor_t
*cursor
, bool vendor
, uint8_t homeplug_av_mmver
)
2978 if (!ptvcursor_tree(cursor
))
2981 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_nw_info_net_info
, -1, ENC_NA
);
2983 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_nw_info_net_info
);
2985 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_nid
, 7, ENC_NA
);
2987 if (homeplug_av_mmver
== HOMEPLUG_AV_MMVER_1_1
)
2988 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 2, ENC_NA
);
2990 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_snid
, 1, ENC_BIG_ENDIAN
);
2991 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_tei
, 1, ENC_BIG_ENDIAN
);
2993 if (homeplug_av_mmver
== HOMEPLUG_AV_MMVER_1_1
)
2994 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 4, ENC_NA
);
2996 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_sta_role
, 1, ENC_BIG_ENDIAN
);
2997 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_cco_mac
, 6, ENC_NA
);
2999 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_cco_tei
, 1, ENC_BIG_ENDIAN
);
3001 if (homeplug_av_mmver
== HOMEPLUG_AV_MMVER_1_1
)
3002 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 3, ENC_NA
);
3006 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_access
, 1, ENC_BIG_ENDIAN
);
3007 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_num_coord
, 1, ENC_BIG_ENDIAN
);
3010 ptvcursor_pop_subtree(cursor
);
3015 dissect_homeplug_av_cc_sta_info(ptvcursor_t
*cursor
)
3019 if (!ptvcursor_tree(cursor
))
3022 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cc_sta_info
, -1, ENC_NA
);
3024 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cc_sta_info
);
3026 ptvcursor_add(cursor
, hf_homeplug_av_cc_sta_info_mac
, 6, ENC_NA
);
3027 ptvcursor_add(cursor
, hf_homeplug_av_cc_sta_info_tei
, 1, ENC_BIG_ENDIAN
);
3028 ptvcursor_add(cursor
, hf_homeplug_av_cc_sta_info_same_net
, 1, ENC_BIG_ENDIAN
);
3029 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_snid
, 1, ENC_BIG_ENDIAN
);
3030 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_cco_cap
, 1, ENC_BIG_ENDIAN
);
3031 ptvcursor_add(cursor
, hf_homeplug_av_cc_sta_info_sig_level
, 1, ENC_BIG_ENDIAN
);
3032 ptvcursor_add(cursor
, hf_homeplug_av_cc_sta_info_avg_ble
, 1, ENC_BIG_ENDIAN
);
3034 ptvcursor_pop_subtree(cursor
);
3038 dissect_homeplug_av_cc_net_info(ptvcursor_t
*cursor
)
3042 if (!ptvcursor_tree(cursor
))
3045 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cc_net_info
, -1, ENC_NA
);
3047 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cc_net_info
);
3049 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_nid
, 7, ENC_NA
);
3050 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_snid
, 1, ENC_BIG_ENDIAN
);
3051 ptvcursor_add(cursor
, hf_homeplug_av_cc_net_info_hyb_mode
, 1, ENC_BIG_ENDIAN
);
3052 ptvcursor_add(cursor
, hf_homeplug_av_cc_net_info_bcn_slots
, 1, ENC_BIG_ENDIAN
);
3053 ptvcursor_add(cursor
, hf_homeplug_av_cc_net_info_cco_sts
, 1, ENC_BIG_ENDIAN
);
3054 ptvcursor_add(cursor
, hf_homeplug_av_cc_net_info_bcn_ofs
, 2, ENC_BIG_ENDIAN
);
3056 ptvcursor_pop_subtree(cursor
);
3060 dissect_homeplug_av_cc_disc_list_cnf(ptvcursor_t
*cursor
)
3068 if (!ptvcursor_tree(cursor
))
3071 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cc_disc_list_cnf
, -1, ENC_NA
);
3073 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cc_disc_list_cnf
);
3075 num_stas
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),
3076 ptvcursor_current_offset(cursor
));
3077 ptvcursor_add(cursor
, hf_homeplug_av_cc_disc_list_sta_cnt
, 1, ENC_BIG_ENDIAN
);
3079 for (sta
= 0; sta
< num_stas
; sta
++) {
3080 dissect_homeplug_av_cc_sta_info(cursor
);
3083 num_nets
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),
3084 ptvcursor_current_offset(cursor
));
3085 ptvcursor_add(cursor
, hf_homeplug_av_cc_disc_list_net_cnt
, 1, ENC_BIG_ENDIAN
);
3087 for (net
= 0; net
< num_nets
; net
++) {
3088 dissect_homeplug_av_cc_net_info(cursor
);
3091 ptvcursor_pop_subtree(cursor
);
3095 dissect_homeplug_av_cm_enc_pld_ind(ptvcursor_t
*cursor
)
3100 if (!ptvcursor_tree(cursor
))
3103 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cm_enc_pld_ind
, -1, ENC_NA
);
3105 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cm_enc_pld_ind
);
3107 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_peks
, 1, ENC_BIG_ENDIAN
);
3108 ptvcursor_add(cursor
, hf_homeplug_av_cm_enc_pld_ind_avlns
, 1, ENC_BIG_ENDIAN
);
3109 pid
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),
3110 ptvcursor_current_offset(cursor
));
3111 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pid
, 1, ENC_BIG_ENDIAN
);
3112 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_prn
, 2, ENC_LITTLE_ENDIAN
);
3113 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pmn
, 1, ENC_BIG_ENDIAN
);
3114 if (pid
== HOMEPLUG_AV_PID_HLE
) {
3115 ptvcursor_add(cursor
, hf_homeplug_av_cm_enc_pld_ind_iv
, 16, ENC_NA
);
3117 ptvcursor_add(cursor
, hf_homeplug_av_cm_enc_pld_ind_uuid
, 16, ENC_LITTLE_ENDIAN
);
3119 ptvcursor_add(cursor
, hf_homeplug_av_cm_enc_pld_ind_len
, 2, ENC_LITTLE_ENDIAN
);
3121 /* Encrypted payload follows */
3122 if (pid
!= HOMEPLUG_AV_PID_HLE
) {
3123 ptvcursor_add(cursor
, hf_homeplug_av_cm_enc_pld_ind_pld
, -1, ENC_NA
);
3126 ptvcursor_pop_subtree(cursor
);
3130 dissect_homeplug_av_cm_enc_pld_rsp(ptvcursor_t
*cursor
)
3134 if (!ptvcursor_tree(cursor
))
3137 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cm_enc_pld_rsp
, -1, ENC_NA
);
3139 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cm_enc_pld_rsp
);
3141 ptvcursor_add(cursor
, hf_homeplug_av_cm_enc_pld_rsp_result
, 1, ENC_BIG_ENDIAN
);
3142 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pid
, 1, ENC_BIG_ENDIAN
);
3143 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_prn
, 2, ENC_LITTLE_ENDIAN
);
3145 ptvcursor_pop_subtree(cursor
);
3149 dissect_homeplug_av_cm_set_key_req(ptvcursor_t
*cursor
)
3153 if (!ptvcursor_tree(cursor
))
3156 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cm_set_key_req
, -1, ENC_NA
);
3158 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cm_set_key_req
);
3160 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_key_type
, 1, ENC_BIG_ENDIAN
);
3161 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_my_nonce
, 4, ENC_LITTLE_ENDIAN
);
3162 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_your_nonce
, 4, ENC_LITTLE_ENDIAN
);
3163 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pid
, 1, ENC_BIG_ENDIAN
);
3164 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_prn
, 2, ENC_LITTLE_ENDIAN
);
3165 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pmn
, 1, ENC_BIG_ENDIAN
);
3166 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_cco_cap
, 1, ENC_BIG_ENDIAN
);
3167 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_nid
, 7, ENC_NA
);
3168 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_peks
, 1, ENC_BIG_ENDIAN
);
3169 ptvcursor_add(cursor
, hf_homeplug_av_cm_set_key_req_nw_key
, 16, ENC_NA
);
3171 ptvcursor_pop_subtree(cursor
);
3175 dissect_homeplug_av_cm_set_key_cnf(ptvcursor_t
*cursor
)
3179 if (!ptvcursor_tree(cursor
))
3182 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cm_set_key_cnf
, -1, ENC_NA
);
3184 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cm_set_key_cnf
);
3186 ptvcursor_add(cursor
, hf_homeplug_av_cm_set_key_cnf_result
, 1, ENC_BIG_ENDIAN
);
3187 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_my_nonce
, 4, ENC_LITTLE_ENDIAN
);
3188 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_your_nonce
, 4, ENC_LITTLE_ENDIAN
);
3189 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pid
, 1, ENC_BIG_ENDIAN
);
3190 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_prn
, 2, ENC_LITTLE_ENDIAN
);
3191 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pmn
, 1, ENC_BIG_ENDIAN
);
3192 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_cco_cap
, 1, ENC_BIG_ENDIAN
);
3194 ptvcursor_pop_subtree(cursor
);
3198 dissect_homeplug_av_cm_get_key_req(ptvcursor_t
*cursor
)
3203 if (!ptvcursor_tree(cursor
))
3206 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cm_get_key_req
, -1, ENC_NA
);
3208 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cm_get_key_req
);
3211 ptvcursor_add(cursor
, hf_homeplug_av_cm_get_key_req_type
, 1, ENC_BIG_ENDIAN
);
3212 key_type
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),
3213 ptvcursor_current_offset(cursor
));
3214 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_key_type
, 1, ENC_BIG_ENDIAN
);
3215 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_nid
, 7, ENC_NA
);
3216 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_my_nonce
, 4, ENC_LITTLE_ENDIAN
);
3217 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pid
, 1, ENC_BIG_ENDIAN
);
3218 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_prn
, 2, ENC_LITTLE_ENDIAN
);
3219 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pmn
, 1, ENC_BIG_ENDIAN
);
3220 if (key_type
== HOMEPLUG_AV_KEY_TYPE_HASH
) {
3221 ptvcursor_add(cursor
, hf_homeplug_av_cm_get_key_req_has_key
, -1, ENC_NA
);
3224 ptvcursor_pop_subtree(cursor
);
3228 dissect_homeplug_av_cm_get_key_cnf(ptvcursor_t
*cursor
)
3232 if (!ptvcursor_tree(cursor
))
3235 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cm_get_key_cnf
, -1, ENC_NA
);
3237 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cm_get_key_cnf
);
3239 ptvcursor_add(cursor
, hf_homeplug_av_cm_get_key_cnf_result
, 1, ENC_BIG_ENDIAN
);
3240 ptvcursor_add(cursor
, hf_homeplug_av_cm_get_key_cnf_rtype
, 1, ENC_BIG_ENDIAN
);
3241 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_my_nonce
, 4, ENC_LITTLE_ENDIAN
);
3242 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_your_nonce
, 4, ENC_LITTLE_ENDIAN
);
3243 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_nid
, 7, ENC_NA
);
3244 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_peks
, 1, ENC_BIG_ENDIAN
);
3245 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pid
, 1, ENC_BIG_ENDIAN
);
3246 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_prn
, 2, ENC_LITTLE_ENDIAN
);
3247 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_pmn
, 1, ENC_BIG_ENDIAN
);
3248 ptvcursor_add(cursor
, hf_homeplug_av_cm_get_key_cnf_key
, -1, ENC_NA
);
3250 ptvcursor_pop_subtree(cursor
);
3254 dissect_homeplug_av_get_brg_infos_cnf(ptvcursor_t
*cursor
)
3261 if (!ptvcursor_tree(cursor
))
3264 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_brg_infos_cnf
, -1, ENC_NA
);
3266 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_brg_infos_cnf
);
3268 bridging
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),
3269 ptvcursor_current_offset(cursor
));
3270 ptvcursor_add(cursor
, hf_homeplug_av_brg_infos_cnf_brd
, 1, ENC_BIG_ENDIAN
);
3273 ptvcursor_add(cursor
, hf_homeplug_av_brg_infos_cnf_btei
, 1, ENC_BIG_ENDIAN
);
3275 num_stas
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),
3276 ptvcursor_current_offset(cursor
));
3277 ptvcursor_add(cursor
, hf_homeplug_av_brg_infos_cnf_num_stas
, 1, ENC_BIG_ENDIAN
);
3279 for (sta
= 0; sta
< num_stas
; sta
++) {
3280 ptvcursor_add(cursor
, hf_homeplug_av_brg_infos_cnf_mac
, 6, ENC_NA
);
3284 ptvcursor_pop_subtree(cursor
);
3288 dissect_homeplug_av_nw_infos_cnf(ptvcursor_t
*cursor
)
3294 if (!ptvcursor_tree(cursor
))
3297 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cm_nw_infos_cnf
, -1, ENC_NA
);
3299 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cm_nw_infos_cnf
);
3301 num_avlns
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),
3302 ptvcursor_current_offset(cursor
));
3303 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_num_avlns
, 1, ENC_BIG_ENDIAN
);
3305 for (net
= 0; net
< num_avlns
; net
++) {
3306 /* Force HomePlug AV 1.0 layout here */
3307 dissect_homeplug_av_nw_info_net(cursor
, false, 0);
3310 ptvcursor_pop_subtree(cursor
);
3314 dissect_homeplug_av_nw_stats_cnf(ptvcursor_t
*cursor
)
3320 if (!ptvcursor_tree(cursor
))
3323 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_nw_stats_cnf
, -1, ENC_NA
);
3325 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_nw_stats_cnf
);
3327 num_stas
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),
3328 ptvcursor_current_offset(cursor
));
3329 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_num_stas
, 1, ENC_BIG_ENDIAN
);
3331 for (sta
= 0; sta
< num_stas
; sta
++) {
3332 /* Force HomePlug AV 1.0 layout here */
3333 dissect_homeplug_av_nw_info_sta(cursor
, false, 0);
3336 ptvcursor_pop_subtree(cursor
);
3339 /* Intellon - Qualcomm specific MME Types */
3341 dissect_homeplug_av_get_sw_cnf(ptvcursor_t
*cursor
)
3345 if (!ptvcursor_tree(cursor
))
3348 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_get_sw_cnf
, -1, ENC_NA
);
3350 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_get_sw_cnf
);
3352 ptvcursor_add(cursor
, hf_homeplug_av_get_sw_cnf_status
, 1, ENC_BIG_ENDIAN
);
3353 ptvcursor_add(cursor
, hf_homeplug_av_get_sw_cnf_dev_id
, 1, ENC_BIG_ENDIAN
);
3354 ptvcursor_add(cursor
, hf_homeplug_av_get_sw_cnf_ver_len
, 1, ENC_BIG_ENDIAN
);
3355 ptvcursor_add(cursor
, hf_homeplug_av_get_sw_cnf_ver_str
, 64, ENC_ASCII
);
3356 ptvcursor_add(cursor
, hf_homeplug_av_get_sw_cnf_upg
, 1, ENC_BIG_ENDIAN
);
3358 ptvcursor_pop_subtree(cursor
);
3362 dissect_homeplug_av_wr_mem_req(ptvcursor_t
*cursor
)
3366 if (!ptvcursor_tree(cursor
))
3369 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_wr_mem_req
, -1, ENC_NA
);
3371 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_wr_mem_req
);
3373 ptvcursor_add(cursor
, hf_homeplug_av_mem_addr
, 4, ENC_LITTLE_ENDIAN
);
3374 ptvcursor_add(cursor
, hf_homeplug_av_mem_len_32bits
, 4, ENC_LITTLE_ENDIAN
);
3375 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mem_data
, -1, ENC_NA
);
3377 ptvcursor_pop_subtree(cursor
);
3381 dissect_homeplug_av_wr_mem_cnf(ptvcursor_t
*cursor
)
3385 if (!ptvcursor_tree(cursor
))
3388 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_wr_mem_cnf
, -1, ENC_NA
);
3390 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_wr_mem_cnf
);
3392 ptvcursor_add(cursor
, hf_homeplug_av_mem_status
, 1, ENC_BIG_ENDIAN
);
3393 ptvcursor_add(cursor
, hf_homeplug_av_mem_addr
, 4, ENC_LITTLE_ENDIAN
);
3394 ptvcursor_add(cursor
, hf_homeplug_av_mem_len_32bits
, 4, ENC_LITTLE_ENDIAN
);
3396 ptvcursor_pop_subtree(cursor
);
3400 dissect_homeplug_av_rd_mem_req(ptvcursor_t
*cursor
)
3404 if (!ptvcursor_tree(cursor
))
3407 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_rd_mem_req
, -1, ENC_NA
);
3409 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_rd_mem_req
);
3411 ptvcursor_add(cursor
, hf_homeplug_av_mem_addr
, 4, ENC_LITTLE_ENDIAN
);
3412 ptvcursor_add(cursor
, hf_homeplug_av_mem_len_32bits
, 4, ENC_LITTLE_ENDIAN
);
3414 ptvcursor_pop_subtree(cursor
);
3418 dissect_homeplug_av_rd_mem_cnf(ptvcursor_t
*cursor
)
3422 if (!ptvcursor_tree(cursor
))
3425 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_rd_mem_cnf
, -1, ENC_NA
);
3427 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_rd_mem_cnf
);
3429 ptvcursor_add(cursor
, hf_homeplug_av_mem_status
, 1, ENC_BIG_ENDIAN
);
3430 ptvcursor_add(cursor
, hf_homeplug_av_mem_addr
, 4, ENC_LITTLE_ENDIAN
);
3431 ptvcursor_add(cursor
, hf_homeplug_av_mem_len_32bits
, 4, ENC_LITTLE_ENDIAN
);
3432 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mem_data
, -1, ENC_NA
);
3434 ptvcursor_pop_subtree(cursor
);
3438 dissect_homeplug_av_st_mac_req(ptvcursor_t
*cursor
)
3442 if (!ptvcursor_tree(cursor
))
3445 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_st_mac_req
, -1, ENC_NA
);
3447 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_st_mac_req
);
3449 ptvcursor_add(cursor
, hf_homeplug_av_mac_module_id
, 1, ENC_BIG_ENDIAN
);
3450 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 3, ENC_NA
);
3451 ptvcursor_add(cursor
, hf_homeplug_av_st_mac_req_img_load
, 4, ENC_LITTLE_ENDIAN
);
3452 ptvcursor_add(cursor
, hf_homeplug_av_st_mac_req_img_len
, 4, ENC_LITTLE_ENDIAN
);
3453 ptvcursor_add(cursor
, hf_homeplug_av_st_mac_req_img_chksum
, 4, ENC_LITTLE_ENDIAN
);
3454 ptvcursor_add(cursor
, hf_homeplug_av_st_mac_req_img_start
, 4, ENC_LITTLE_ENDIAN
);
3456 ptvcursor_pop_subtree(cursor
);
3461 dissect_homeplug_av_st_mac_cnf(ptvcursor_t
*cursor
)
3465 if (!ptvcursor_tree(cursor
))
3468 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_st_mac_cnf
, -1, ENC_NA
);
3470 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_st_mac_cnf
);
3472 ptvcursor_add(cursor
, hf_homeplug_av_st_mac_cnf_status
, 1, ENC_BIG_ENDIAN
);
3473 ptvcursor_add(cursor
, hf_homeplug_av_mac_module_id
, 1, ENC_BIG_ENDIAN
);
3475 ptvcursor_pop_subtree(cursor
);
3479 dissect_homeplug_av_get_nvm_cnf(ptvcursor_t
*cursor
)
3483 if (!ptvcursor_tree(cursor
))
3486 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_get_nvm_cnf
, -1, ENC_NA
);
3488 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_get_nvm_cnf
);
3490 ptvcursor_add(cursor
, hf_homeplug_av_get_nvm_cnf_status
, 1, ENC_BIG_ENDIAN
);
3491 ptvcursor_add(cursor
, hf_homeplug_av_get_nvm_cnf_nvm_type
, 4, ENC_LITTLE_ENDIAN
);
3492 ptvcursor_add(cursor
, hf_homeplug_av_get_nvm_cnf_nvm_page
, 4, ENC_LITTLE_ENDIAN
);
3493 ptvcursor_add(cursor
, hf_homeplug_av_get_nvm_cnf_nvm_block
, 4, ENC_LITTLE_ENDIAN
);
3494 ptvcursor_add(cursor
, hf_homeplug_av_get_nvm_cnf_nvm_size
, 4, ENC_LITTLE_ENDIAN
);
3496 ptvcursor_pop_subtree(cursor
);
3500 dissect_homeplug_av_rs_dev_cnf(ptvcursor_t
*cursor
)
3504 if (!ptvcursor_tree(cursor
))
3507 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_rs_dev_cnf
, -1, ENC_NA
);
3509 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_rs_dev_cnf
);
3511 ptvcursor_add(cursor
, hf_homeplug_av_rs_dev_cnf_status
, 1, ENC_BIG_ENDIAN
);
3513 ptvcursor_pop_subtree(cursor
);
3516 static void dissect_homeplug_av_wr_mod_req(ptvcursor_t
*cursor
)
3520 if (!ptvcursor_tree(cursor
))
3523 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_wr_mod_req
, -1, ENC_NA
);
3525 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_wr_mod_req
);
3527 ptvcursor_add(cursor
, hf_homeplug_av_mac_module_id
, 1, ENC_BIG_ENDIAN
);
3528 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
3529 ptvcursor_add(cursor
, hf_homeplug_av_mem_len_16bits
, 2, ENC_LITTLE_ENDIAN
);
3530 ptvcursor_add(cursor
, hf_homeplug_av_mem_offset
, 4, ENC_LITTLE_ENDIAN
);
3531 ptvcursor_add(cursor
, hf_homeplug_av_mem_checksum
, 4, ENC_LITTLE_ENDIAN
);
3532 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mem_data
, -1, ENC_NA
);
3534 ptvcursor_pop_subtree(cursor
);
3537 static void dissect_homeplug_av_wr_mod_cnf(ptvcursor_t
*cursor
)
3541 if (!ptvcursor_tree(cursor
))
3544 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_wr_mod_cnf
, -1, ENC_NA
);
3546 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_wr_mod_cnf
);
3548 ptvcursor_add(cursor
, hf_homeplug_av_wr_mod_cnf_status
, 1, ENC_BIG_ENDIAN
);
3549 ptvcursor_add(cursor
, hf_homeplug_av_mac_module_id
, 1, ENC_BIG_ENDIAN
);
3550 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
3551 ptvcursor_add(cursor
, hf_homeplug_av_mem_len_16bits
, 2, ENC_LITTLE_ENDIAN
);
3552 ptvcursor_add(cursor
, hf_homeplug_av_mem_offset
, 4, ENC_LITTLE_ENDIAN
);
3554 ptvcursor_pop_subtree(cursor
);
3557 static void dissect_homeplug_av_wr_mod_ind(ptvcursor_t
*cursor
)
3561 if (!ptvcursor_tree(cursor
))
3564 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_wr_mod_ind
, -1, ENC_NA
);
3566 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_wr_mod_ind
);
3568 ptvcursor_add(cursor
, hf_homeplug_av_wr_mod_ind_status
, 1, ENC_BIG_ENDIAN
);
3569 ptvcursor_add(cursor
, hf_homeplug_av_mac_module_id
, 1, ENC_BIG_ENDIAN
);
3571 ptvcursor_pop_subtree(cursor
);
3575 dissect_homeplug_av_rd_mod_req(ptvcursor_t
*cursor
)
3579 if (!ptvcursor_tree(cursor
))
3582 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_rd_mod_req
, -1, ENC_NA
);
3584 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_rd_mod_req
);
3586 ptvcursor_add(cursor
, hf_homeplug_av_mac_module_id
, 1, ENC_BIG_ENDIAN
);
3587 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
3588 ptvcursor_add(cursor
, hf_homeplug_av_mem_len_16bits
, 2, ENC_LITTLE_ENDIAN
);
3589 ptvcursor_add(cursor
, hf_homeplug_av_mem_offset
, 4, ENC_LITTLE_ENDIAN
);
3591 ptvcursor_pop_subtree(cursor
);
3595 dissect_homeplug_av_rd_mod_cnf(ptvcursor_t
*cursor
)
3599 if (!ptvcursor_tree(cursor
))
3602 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_rd_mod_cnf
, -1, ENC_NA
);
3604 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_rd_mod_cnf
);
3606 ptvcursor_add(cursor
, hf_homeplug_av_rd_mod_cnf_status
, 1, ENC_BIG_ENDIAN
);
3607 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 3, ENC_NA
);
3608 ptvcursor_add(cursor
, hf_homeplug_av_mac_module_id
, 1, ENC_BIG_ENDIAN
);
3609 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
3610 ptvcursor_add(cursor
, hf_homeplug_av_mem_len_16bits
, 2, ENC_LITTLE_ENDIAN
);
3611 ptvcursor_add(cursor
, hf_homeplug_av_mem_offset
, 4, ENC_LITTLE_ENDIAN
);
3612 ptvcursor_add(cursor
, hf_homeplug_av_mem_checksum
, 4, ENC_LITTLE_ENDIAN
);
3613 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mem_data
, -1, ENC_NA
);
3615 ptvcursor_pop_subtree(cursor
);
3619 dissect_homeplug_av_mod_nvm_req(ptvcursor_t
*cursor
)
3623 if (!ptvcursor_tree(cursor
))
3626 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mod_nvm_req
, -1, ENC_NA
);
3628 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_mod_nvm_req
);
3630 ptvcursor_add(cursor
, hf_homeplug_av_mac_module_id
, 1, ENC_BIG_ENDIAN
);
3632 ptvcursor_pop_subtree(cursor
);
3636 dissect_homeplug_av_mod_nvm_cnf(ptvcursor_t
*cursor
)
3640 if (!ptvcursor_tree(cursor
))
3643 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mod_nvm_cnf
, -1, ENC_NA
);
3645 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_mod_nvm_cnf
);
3647 ptvcursor_add(cursor
, hf_homeplug_av_mod_nvm_cnf_status
, 1, ENC_BIG_ENDIAN
);
3648 ptvcursor_add(cursor
, hf_homeplug_av_mac_module_id
, 1, ENC_BIG_ENDIAN
);
3650 ptvcursor_pop_subtree(cursor
);
3654 dissect_homeplug_av_wd_rpt_req(ptvcursor_t
*cursor
)
3658 if (!ptvcursor_tree(cursor
))
3661 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_wd_rpt_req
, -1, ENC_NA
);
3663 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_wd_rpt_req
);
3665 ptvcursor_add(cursor
, hf_homeplug_av_wd_rpt_req_session_id
, 2, ENC_LITTLE_ENDIAN
);
3666 ptvcursor_add(cursor
, hf_homeplug_av_wd_rpt_req_clr
, 1, ENC_BIG_ENDIAN
);
3668 ptvcursor_pop_subtree(cursor
);
3672 dissect_homeplug_av_wd_rpt_ind(ptvcursor_t
*cursor
)
3676 if (!ptvcursor_tree(cursor
))
3679 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_wd_rpt_ind
, -1, ENC_NA
);
3681 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_wd_rpt_ind
);
3683 ptvcursor_add(cursor
, hf_homeplug_av_wd_rpt_ind_status
, 1, ENC_BIG_ENDIAN
);
3684 ptvcursor_add(cursor
, hf_homeplug_av_wd_rpt_ind_session_id
, 2, ENC_LITTLE_ENDIAN
);
3685 ptvcursor_add(cursor
, hf_homeplug_av_wd_rpt_ind_num_parts
, 1, ENC_BIG_ENDIAN
);
3686 ptvcursor_add(cursor
, hf_homeplug_av_wd_rpt_ind_curr_part
, 1, ENC_BIG_ENDIAN
);
3687 ptvcursor_add(cursor
, hf_homeplug_av_wd_rpt_ind_rdata_len
, 2, ENC_LITTLE_ENDIAN
);
3688 ptvcursor_add(cursor
, hf_homeplug_av_wd_rpt_ind_rdata_ofs
, 1, ENC_BIG_ENDIAN
);
3689 ptvcursor_add(cursor
, hf_homeplug_av_wd_rpt_ind_rdata
, -1, ENC_NA
);
3691 ptvcursor_pop_subtree(cursor
);
3695 dissect_homeplug_av_lnk_stats_req(ptvcursor_t
*cursor
)
3699 if (!ptvcursor_tree(cursor
))
3702 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_lnk_stats_req
, -1, ENC_NA
);
3704 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_lnk_stats_req
);
3706 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_req_mcontrol
, 1, ENC_BIG_ENDIAN
);
3707 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_req_dir
, 1, ENC_BIG_ENDIAN
);
3708 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_req_lid
, 1, ENC_BIG_ENDIAN
);
3709 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_req_macaddr
, 6, ENC_NA
);
3711 ptvcursor_pop_subtree(cursor
);
3715 dissect_homeplug_av_lnk_stats_tx(ptvcursor_t
*cursor
)
3719 if (!ptvcursor_tree(cursor
))
3722 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_lnk_stats_tx
, -1, ENC_NA
);
3724 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_lnk_stats_tx
);
3726 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_tx_mpdu_ack
, 8, ENC_LITTLE_ENDIAN
);
3727 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_tx_mpdu_col
, 8, ENC_LITTLE_ENDIAN
);
3728 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_tx_mpdu_fai
, 8, ENC_LITTLE_ENDIAN
);
3729 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_tx_pbs_pass
, 8, ENC_LITTLE_ENDIAN
);
3730 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_tx_pbs_fail
, 8, ENC_LITTLE_ENDIAN
);
3732 ptvcursor_pop_subtree(cursor
);
3736 dissect_homeplug_av_lnk_stats_rx_interval(ptvcursor_t
*cursor
)
3740 if (!ptvcursor_tree(cursor
))
3743 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_rx_inv_stats
, -1, ENC_NA
);
3745 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_lnk_stats_rx_inv
);
3747 ptvcursor_add(cursor
, hf_homeplug_av_rx_inv_phy_rate
, 1, ENC_BIG_ENDIAN
);
3748 ptvcursor_add(cursor
, hf_homeplug_av_rx_inv_pbs_pass
, 8, ENC_LITTLE_ENDIAN
);
3749 ptvcursor_add(cursor
, hf_homeplug_av_rx_inv_pbs_fail
, 8, ENC_LITTLE_ENDIAN
);
3750 ptvcursor_add(cursor
, hf_homeplug_av_rx_inv_tb_pass
, 8, ENC_LITTLE_ENDIAN
);
3751 ptvcursor_add(cursor
, hf_homeplug_av_rx_inv_tb_fail
, 8, ENC_LITTLE_ENDIAN
);
3753 ptvcursor_pop_subtree(cursor
);
3757 dissect_homeplug_av_lnk_stats_rx(ptvcursor_t
*cursor
)
3760 uint8_t num_rx_interval
;
3763 if (!ptvcursor_tree(cursor
))
3766 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_lnk_stats_rx
, -1, ENC_NA
);
3768 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_lnk_stats_rx
);
3770 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_rx_mpdu_ack
, 8, ENC_LITTLE_ENDIAN
);
3771 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_rx_mpdu_fai
, 8, ENC_LITTLE_ENDIAN
);
3772 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_rx_pbs_pass
, 8, ENC_LITTLE_ENDIAN
);
3773 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_rx_pbs_fail
, 8, ENC_LITTLE_ENDIAN
);
3774 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_rx_tb_pass
, 8, ENC_LITTLE_ENDIAN
);
3775 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_rx_tb_fail
, 8, ENC_LITTLE_ENDIAN
);
3776 num_rx_interval
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),
3777 ptvcursor_current_offset(cursor
));
3778 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_rx_num_int
, 1, ENC_BIG_ENDIAN
);
3780 for (interval
= 0; interval
< num_rx_interval
; interval
++) {
3781 dissect_homeplug_av_lnk_stats_rx_interval(cursor
);
3784 ptvcursor_pop_subtree(cursor
);
3788 dissect_homeplug_av_lnk_stats_cnf(ptvcursor_t
*cursor
)
3794 if (!ptvcursor_tree(cursor
))
3797 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_lnk_stats_cnf
, -1, ENC_NA
);
3799 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_lnk_stats_cnf
);
3801 status
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),
3802 ptvcursor_current_offset(cursor
));
3803 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_cnf_status
, 1, ENC_BIG_ENDIAN
);
3805 direction
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),
3806 ptvcursor_current_offset(cursor
));
3807 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_cnf_dir
, 1, ENC_BIG_ENDIAN
);
3809 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_cnf_lid
, 1, ENC_BIG_ENDIAN
);
3810 ptvcursor_add(cursor
, hf_homeplug_av_lnk_stats_cnf_tei
, 1, ENC_BIG_ENDIAN
);
3812 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_lnk_stats_cnf_lstats
, -1, ENC_NA
);
3814 if (status
== HOMEPLUG_AV_LNK_STATS_STATUS_SUCCESS
)
3816 switch (direction
) {
3817 case HOMEPLUG_AV_LNK_STATS_DIR_TX
:
3818 dissect_homeplug_av_lnk_stats_tx(cursor
);
3820 case HOMEPLUG_AV_LNK_STATS_DIR_RX
:
3821 dissect_homeplug_av_lnk_stats_rx(cursor
);
3823 case HOMEPLUG_AV_LNK_STATS_DIR_TX_RX
:
3824 dissect_homeplug_av_lnk_stats_tx(cursor
);
3825 dissect_homeplug_av_lnk_stats_rx(cursor
);
3830 ptvcursor_pop_subtree(cursor
);
3834 dissect_homeplug_av_sniffer_req(ptvcursor_t
*cursor
)
3838 if (!ptvcursor_tree(cursor
))
3841 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_sniffer_req
, -1, ENC_NA
);
3843 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_sniffer_req
);
3845 ptvcursor_add(cursor
, hf_homeplug_av_sniffer_req_ctrl
, 1, ENC_BIG_ENDIAN
);
3846 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 4, ENC_NA
);
3848 ptvcursor_pop_subtree(cursor
);
3852 dissect_homeplug_av_sniffer_cnf(ptvcursor_t
*cursor
)
3856 if (!ptvcursor_tree(cursor
))
3859 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_sniffer_cnf
, -1, ENC_NA
);
3861 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_sniffer_cnf
);
3863 ptvcursor_add(cursor
, hf_homeplug_av_sniffer_cnf_status
, 1, ENC_BIG_ENDIAN
);
3864 ptvcursor_add(cursor
, hf_homeplug_av_sniffer_cnf_state
, 1, ENC_BIG_ENDIAN
);
3865 ptvcursor_add(cursor
, hf_homeplug_av_sniffer_cnf_da
, 6, ENC_NA
);
3867 ptvcursor_pop_subtree(cursor
);
3871 dissect_homeplug_av_sniffer_ind(ptvcursor_t
*cursor
)
3874 proto_item
*it_data
;
3880 if (!ptvcursor_tree(cursor
))
3883 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_sniffer_ind
, -1, ENC_NA
);
3885 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_sniffer_ind
);
3887 ptvcursor_add(cursor
, hf_homeplug_av_sniffer_ind_type
, 1, ENC_BIG_ENDIAN
);
3889 it_data
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_sniffer_ind_data
, -1, ENC_NA
);
3891 ptvcursor_push_subtree(cursor
, it_data
, ett_homeplug_av_sniffer_ind_data
);
3893 ptvcursor_add(cursor
, hf_homeplug_av_sniffer_data_dir
, 1, ENC_BIG_ENDIAN
);
3894 ptvcursor_add(cursor
, hf_homeplug_av_sniffer_data_systime
, 8, ENC_LITTLE_ENDIAN
);
3895 ptvcursor_add(cursor
, hf_homeplug_av_sniffer_data_bc_time
, 4, ENC_LITTLE_ENDIAN
);
3897 offset
= ptvcursor_current_offset(cursor
);
3898 tvb
= ptvcursor_tvbuff(cursor
);
3900 del_type
= tvb_get_uint8(tvb
, offset
);
3902 /* bitmask - we only want 3 bits of del_type */
3903 uint8_t bitmask
= 0x07;
3905 del_type
&= bitmask
;
3907 static int * const frame_control_fields
[] = {
3908 &hf_homeplug_av_fc_del_type
,
3909 &hf_homeplug_av_fc_access
,
3910 &hf_homeplug_av_fc_snid
,
3914 proto_tree_add_bitmask(ptvcursor_tree(cursor
), tvb
, offset
, hf_homeplug_av_fc
,
3915 ett_homeplug_av_fc
, frame_control_fields
, ENC_BIG_ENDIAN
);
3916 ptvcursor_advance(cursor
, 1);
3920 case HOMEPLUG_AV_DEL_TYPE_BCN
:
3921 dissect_homeplug_av_beacon(cursor
);
3923 case HOMEPLUG_AV_DEL_TYPE_SOF
:
3924 dissect_homeplug_av_start_of_frame(cursor
);
3926 case HOMEPLUG_AV_DEL_TYPE_SACK
:
3927 dissect_homeplug_av_sack(cursor
);
3929 case HOMEPLUG_AV_DEL_TYPE_RTS
:
3930 dissect_homeplug_av_rtscts(cursor
);
3932 case HOMEPLUG_AV_DEL_TYPE_SOUND
:
3933 dissect_homeplug_av_sound(cursor
);
3935 case HOMEPLUG_AV_DEL_TYPE_RSOF
:
3936 dissect_homeplug_av_rsof(cursor
);
3942 ptvcursor_pop_subtree(cursor
);
3944 ptvcursor_pop_subtree(cursor
);
3948 dissect_homeplug_av_nw_info_cnf(ptvcursor_t
*cursor
, uint8_t homeplug_av_mmver
)
3955 if (!ptvcursor_tree(cursor
))
3958 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_nw_info_cnf
, -1, ENC_NA
);
3960 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_nw_info_cnf
);
3962 if (homeplug_av_mmver
== HOMEPLUG_AV_MMVER_1_1
)
3963 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 5, ENC_NA
);
3965 num_avlns
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),
3966 ptvcursor_current_offset(cursor
));
3967 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_num_avlns
, 1, ENC_BIG_ENDIAN
);
3970 dissect_homeplug_av_nw_info_net(cursor
, true, homeplug_av_mmver
);
3971 num_stas
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),
3972 ptvcursor_current_offset(cursor
));
3973 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_num_stas
, 1, ENC_BIG_ENDIAN
);
3975 if (homeplug_av_mmver
== HOMEPLUG_AV_MMVER_1_1
)
3976 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 5, ENC_NA
);
3978 for (sta
= 0; sta
< num_stas
; sta
++) {
3979 dissect_homeplug_av_nw_info_sta(cursor
, true, homeplug_av_mmver
);
3983 ptvcursor_pop_subtree(cursor
);
3987 dissect_homeplug_av_cp_rpt_req(ptvcursor_t
*cursor
)
3991 if (!ptvcursor_tree(cursor
))
3994 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cp_rpt_req
, -1, ENC_NA
);
3996 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cp_rpt_req
);
3998 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_req_session_id
, 2, ENC_LITTLE_ENDIAN
);
3999 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_req_clr
, 1, ENC_BIG_ENDIAN
);
4001 ptvcursor_pop_subtree(cursor
);
4005 dissect_homeplug_av_cp_rpt_ind(ptvcursor_t
*cursor
)
4009 if (!ptvcursor_tree(cursor
))
4012 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cp_rpt_ind
, -1, ENC_NA
);
4014 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cp_rpt_ind
);
4016 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_status
, 1, ENC_LITTLE_ENDIAN
);
4017 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_major_ver
, 1, ENC_BIG_ENDIAN
);
4018 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_minor_ver
, 1, ENC_BIG_ENDIAN
);
4019 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 14, ENC_NA
);
4020 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_session_id
, 2, ENC_LITTLE_ENDIAN
);
4021 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_total_size
, 4, ENC_LITTLE_ENDIAN
);
4022 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_blk_offset
, 4, ENC_LITTLE_ENDIAN
);
4023 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_byte_index
, 4, ENC_LITTLE_ENDIAN
);
4024 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_num_parts
, 1, ENC_BIG_ENDIAN
);
4025 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_curr_part
, 1, ENC_BIG_ENDIAN
);
4026 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_data_len
, 2, ENC_LITTLE_ENDIAN
);
4027 ptvcursor_add(cursor
, hf_homeplug_av_cp_rpt_ind_data_ofs
, 1, ENC_LITTLE_ENDIAN
);
4028 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cp_rpt_ind_data
, -1, ENC_NA
);
4030 ptvcursor_pop_subtree(cursor
);
4034 dissect_homeplug_av_fr_lbk_req(ptvcursor_t
*cursor
)
4038 if (!ptvcursor_tree(cursor
))
4041 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fr_lbk_req
, -1, ENC_NA
);
4043 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_fr_lbk_req
);
4045 ptvcursor_add(cursor
, hf_homeplug_av_fr_lbk_duration
, 1, ENC_BIG_ENDIAN
);
4046 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
4047 ptvcursor_add(cursor
, hf_homeplug_av_fr_lbk_len
, 2, ENC_BIG_ENDIAN
);
4048 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fr_lbk_req_data
, -1, ENC_NA
);
4050 ptvcursor_pop_subtree(cursor
);
4054 dissect_homeplug_av_fr_lbk_cnf(ptvcursor_t
*cursor
)
4058 if (!ptvcursor_tree(cursor
))
4061 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_fr_lbk_cnf
, -1, ENC_NA
);
4063 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_fr_lbk_cnf
);
4065 ptvcursor_add(cursor
, hf_homeplug_av_fr_lbk_cnf_status
, 1, ENC_BIG_ENDIAN
);
4066 ptvcursor_add(cursor
, hf_homeplug_av_fr_lbk_duration
, 1, ENC_BIG_ENDIAN
);
4067 ptvcursor_add(cursor
, hf_homeplug_av_fr_lbk_len
, 2, ENC_BIG_ENDIAN
);
4069 ptvcursor_pop_subtree(cursor
);
4073 dissect_homeplug_av_lbk_stat_cnf(ptvcursor_t
*cursor
)
4077 if (!ptvcursor_tree(cursor
))
4080 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_lbk_stat_cnf
, -1, ENC_NA
);
4082 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_lbk_stat_cnf
);
4084 ptvcursor_add(cursor
, hf_homeplug_av_lbk_stat_cnf_status
, 1, ENC_BIG_ENDIAN
);
4085 ptvcursor_add(cursor
, hf_homeplug_av_lbk_stat_cnf_lbk_stat
, 1, ENC_BIG_ENDIAN
);
4087 ptvcursor_pop_subtree(cursor
);
4091 dissect_homeplug_av_set_key_req(ptvcursor_t
*cursor
)
4095 if (!ptvcursor_tree(cursor
))
4098 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_set_key_req
, -1, ENC_NA
);
4100 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_set_key_req
);
4102 ptvcursor_add(cursor
, hf_homeplug_av_set_key_req_eks
, 1, ENC_BIG_ENDIAN
);
4103 ptvcursor_add(cursor
, hf_homeplug_av_set_key_req_nmk
, 16, ENC_NA
);
4104 ptvcursor_add(cursor
, hf_homeplug_av_nw_info_peks
, 1, ENC_BIG_ENDIAN
);
4105 ptvcursor_add(cursor
, hf_homeplug_av_set_key_req_rda
, 6, ENC_NA
);
4106 ptvcursor_add(cursor
, hf_homeplug_av_set_key_req_dak
, 16, ENC_NA
);
4108 ptvcursor_pop_subtree(cursor
);
4112 dissect_homeplug_av_set_key_cnf(ptvcursor_t
*cursor
)
4116 if (!ptvcursor_tree(cursor
))
4119 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_set_key_cnf
, -1, ENC_NA
);
4121 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_set_key_cnf
);
4123 ptvcursor_add(cursor
, hf_homeplug_av_set_key_cnf_status
, 1, ENC_BIG_ENDIAN
);
4125 ptvcursor_pop_subtree(cursor
);
4129 dissect_homeplug_av_mfg_string_cnf(ptvcursor_t
*cursor
)
4133 if (!ptvcursor_tree(cursor
))
4136 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_mfg_string_cnf
, -1, ENC_NA
);
4138 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_mfg_string_cnf
);
4140 ptvcursor_add(cursor
, hf_homeplug_av_mfg_string_cnf_status
, 1, ENC_BIG_ENDIAN
);
4141 ptvcursor_add(cursor
, hf_homeplug_av_mfg_string_cnf_len
, 1, ENC_BIG_ENDIAN
);
4142 ptvcursor_add(cursor
, hf_homeplug_av_mfg_string_cnf_string
, 64, ENC_ASCII
);
4144 ptvcursor_pop_subtree(cursor
);
4148 dissect_homeplug_av_cblock_hdr(ptvcursor_t
*cursor
)
4152 if (!ptvcursor_tree(cursor
))
4155 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cblock_hdr
, -1, ENC_NA
);
4157 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cblock_hdr
);
4159 ptvcursor_add(cursor
, hf_homeplug_av_cblock_hdr_ver
, 4, ENC_LITTLE_ENDIAN
);
4160 ptvcursor_add(cursor
, hf_homeplug_av_cblock_img_rom_addr
, 4, ENC_LITTLE_ENDIAN
);
4161 ptvcursor_add(cursor
, hf_homeplug_av_cblock_img_addr
, 4, ENC_LITTLE_ENDIAN
);
4162 ptvcursor_add(cursor
, hf_homeplug_av_cblock_img_len
, 4, ENC_LITTLE_ENDIAN
);
4163 ptvcursor_add(cursor
, hf_homeplug_av_cblock_img_chksum
, 4, ENC_LITTLE_ENDIAN
);
4164 ptvcursor_add(cursor
, hf_homeplug_av_cblock_entry_point
, 4, ENC_LITTLE_ENDIAN
);
4165 ptvcursor_add(cursor
, hf_homeplug_av_cblock_hdr_minor
, 1, ENC_NA
);
4166 ptvcursor_add(cursor
, hf_homeplug_av_cblock_hdr_img_type
, 1, ENC_NA
);
4167 ptvcursor_add(cursor
, hf_homeplug_av_cblock_hdr_ignore_mask
, 2, ENC_LITTLE_ENDIAN
);
4168 ptvcursor_add(cursor
, hf_homeplug_av_cblock_hdr_module_id
, 4, ENC_LITTLE_ENDIAN
);
4169 ptvcursor_add(cursor
, hf_homeplug_av_cblock_hdr_module_subid
, 4, ENC_LITTLE_ENDIAN
);
4170 ptvcursor_add(cursor
, hf_homeplug_av_cblock_next_hdr
, 4, ENC_LITTLE_ENDIAN
);
4171 ptvcursor_add(cursor
, hf_homeplug_av_cblock_hdr_chksum
, 4, ENC_LITTLE_ENDIAN
);
4173 ptvcursor_pop_subtree(cursor
);
4177 dissect_homeplug_av_cblock(ptvcursor_t
*cursor
)
4181 if (!ptvcursor_tree(cursor
))
4184 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_cblock
, -1, ENC_NA
);
4186 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_cblock
);
4188 ptvcursor_add(cursor
, hf_homeplug_av_cblock_sdram_size
, 4, ENC_LITTLE_ENDIAN
);
4189 ptvcursor_add(cursor
, hf_homeplug_av_cblock_sdram_conf
, 4, ENC_LITTLE_ENDIAN
);
4190 ptvcursor_add(cursor
, hf_homeplug_av_cblock_sdram_tim0
, 4, ENC_LITTLE_ENDIAN
);
4191 ptvcursor_add(cursor
, hf_homeplug_av_cblock_sdram_tim1
, 4, ENC_LITTLE_ENDIAN
);
4192 ptvcursor_add(cursor
, hf_homeplug_av_cblock_sdram_cntrl
, 4, ENC_LITTLE_ENDIAN
);
4193 ptvcursor_add(cursor
, hf_homeplug_av_cblock_sdram_refresh
, 4, ENC_LITTLE_ENDIAN
);
4194 ptvcursor_add(cursor
, hf_homeplug_av_cblock_mac_clock
, 4, ENC_LITTLE_ENDIAN
);
4195 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 4, ENC_NA
);
4197 ptvcursor_pop_subtree(cursor
);
4201 dissect_homeplug_av_rd_cblock_cnf(ptvcursor_t
*cursor
)
4205 if (!ptvcursor_tree(cursor
))
4208 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_rd_cblock_cnf
, -1, ENC_NA
);
4210 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_rd_cblock_cnf
);
4212 ptvcursor_add(cursor
, hf_homeplug_av_rd_cblock_cnf_status
, 1, ENC_BIG_ENDIAN
);
4213 ptvcursor_add(cursor
, hf_homeplug_av_rd_cblock_cnf_len
, 1, ENC_BIG_ENDIAN
);
4214 dissect_homeplug_av_cblock_hdr(cursor
);
4215 dissect_homeplug_av_cblock(cursor
);
4217 ptvcursor_pop_subtree(cursor
);
4221 dissect_homeplug_av_set_sdram_req(ptvcursor_t
*cursor
)
4225 if (!ptvcursor_tree(cursor
))
4228 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_set_sdram_req
, -1, ENC_NA
);
4230 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_set_sdram_req
);
4232 dissect_homeplug_av_cblock(cursor
);
4233 ptvcursor_add(cursor
, hf_homeplug_av_set_sdram_req_chksum
, 4, ENC_LITTLE_ENDIAN
);
4235 ptvcursor_pop_subtree(cursor
);
4239 dissect_homeplug_av_set_sdram_cnf(ptvcursor_t
*cursor
)
4243 if (!ptvcursor_tree(cursor
))
4246 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_set_sdram_cnf
, -1, ENC_NA
);
4248 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_set_sdram_cnf
);
4250 ptvcursor_add(cursor
, hf_homeplug_av_set_sdram_cnf_status
, 1, ENC_BIG_ENDIAN
);
4252 ptvcursor_pop_subtree(cursor
);
4256 dissect_homeplug_av_host_action_ind(ptvcursor_t
*cursor
)
4260 if (!ptvcursor_tree(cursor
))
4263 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_host_action_ind
, -1, ENC_NA
);
4265 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_host_action_ind
);
4267 ptvcursor_add(cursor
, hf_homeplug_av_host_action_ind_act
, 1, ENC_BIG_ENDIAN
);
4269 ptvcursor_pop_subtree(cursor
);
4273 dissect_homeplug_av_host_action_rsp(ptvcursor_t
*cursor
)
4277 if (!ptvcursor_tree(cursor
))
4280 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_host_action_rsp
, -1, ENC_NA
);
4282 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_host_action_rsp
);
4284 ptvcursor_add(cursor
, hf_homeplug_av_host_action_rsp_sts
, 1, ENC_BIG_ENDIAN
);
4286 ptvcursor_pop_subtree(cursor
);
4290 dissect_homeplug_av_op_attr_req(ptvcursor_t
*cursor
)
4294 if (!ptvcursor_tree(cursor
))
4297 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_op_attr_req
, -1, ENC_NA
);
4299 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_op_attr_req
);
4301 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_cookie
, 4, ENC_LITTLE_ENDIAN
);
4302 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_rep_type
, 1, ENC_BIG_ENDIAN
);
4304 ptvcursor_pop_subtree(cursor
);
4308 dissect_homeplug_av_op_attr_bin_report(ptvcursor_t
*cursor
)
4312 if (!ptvcursor_tree(cursor
))
4315 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_op_attr_cnf_data
, -1, ENC_NA
);
4317 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_op_attr_data
);
4319 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_hw
, 16, ENC_ASCII
);
4320 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw
, 16, ENC_ASCII
);
4321 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw_major
, 4, ENC_LITTLE_ENDIAN
);
4322 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw_minor
, 4, ENC_LITTLE_ENDIAN
);
4323 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw_sub
, 4, ENC_LITTLE_ENDIAN
);
4324 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw_num
, 4, ENC_LITTLE_ENDIAN
);
4325 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 4, ENC_NA
);
4326 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw_date
, 8, ENC_ASCII
);
4327 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw_rel
, 12, ENC_ASCII
);
4328 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw_sdram_type
, 1, ENC_NA
);
4329 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
4330 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_op_attr_data_sw_linefreq
, 1, ENC_NA
);
4331 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw_zerocross
, 1, ENC_NA
);
4332 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw_sdram_size
, 4, ENC_LITTLE_ENDIAN
);
4333 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_data_sw_auth_mode
, 1, ENC_NA
);
4335 ptvcursor_pop_subtree(cursor
);
4339 dissect_homeplug_av_op_attr_cnf(ptvcursor_t
*cursor
)
4343 if (!ptvcursor_tree(cursor
))
4346 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_op_attr_cnf
, -1, ENC_NA
);
4348 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_op_attr_cnf
);
4350 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_cnf_status
, 2, ENC_LITTLE_ENDIAN
);
4351 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_cookie
, 4, ENC_LITTLE_ENDIAN
);
4352 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_rep_type
, 1, ENC_BIG_ENDIAN
);
4353 ptvcursor_add(cursor
, hf_homeplug_av_op_attr_cnf_size
, 2, ENC_LITTLE_ENDIAN
);
4354 dissect_homeplug_av_op_attr_bin_report(cursor
);
4356 ptvcursor_pop_subtree(cursor
);
4360 dissect_homeplug_av_get_enet_phy_req(ptvcursor_t
*cursor
)
4364 if (!ptvcursor_tree(cursor
))
4367 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_enet_phy_req
, -1, ENC_NA
);
4369 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_enet_phy_req
);
4371 ptvcursor_add(cursor
, hf_homeplug_av_enet_phy_req_mcontrol
, 1, ENC_BIG_ENDIAN
);
4372 ptvcursor_add(cursor
, hf_homeplug_av_enet_phy_req_addcaps
, 1, ENC_BIG_ENDIAN
);
4373 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 3, ENC_NA
);
4375 ptvcursor_pop_subtree(cursor
);
4379 dissect_homeplug_av_get_enet_phy_cnf(ptvcursor_t
*cursor
)
4383 if (!ptvcursor_tree(cursor
))
4386 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_enet_phy_cnf
, -1, ENC_NA
);
4388 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_enet_phy_cnf
);
4390 ptvcursor_add(cursor
, hf_homeplug_av_enet_phy_cnf_status
, 1, ENC_BIG_ENDIAN
);
4391 ptvcursor_add(cursor
, hf_homeplug_av_enet_phy_cnf_speed
, 1, ENC_BIG_ENDIAN
);
4392 ptvcursor_add(cursor
, hf_homeplug_av_enet_phy_cnf_duplex
, 1, ENC_BIG_ENDIAN
);
4394 ptvcursor_pop_subtree(cursor
);
4398 dissect_homeplug_av_tone_map_tx_req(ptvcursor_t
*cursor
, uint8_t homeplug_av_mmver
)
4402 if (!ptvcursor_tree(cursor
))
4405 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_tone_map_tx_req
, -1, ENC_NA
);
4406 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_tone_map_tx_req
);
4408 if (homeplug_av_mmver
== HOMEPLUG_AV_MMVER_1_1
)
4410 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 4, ENC_NA
);
4411 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_req_mac
, 6, ENC_NA
);
4412 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_req_slot
, 1, ENC_BIG_ENDIAN
);
4413 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_req_coupling
, 1, ENC_LITTLE_ENDIAN
);
4417 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_req_mac
, 6, ENC_NA
);
4418 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_req_slot
, 1, ENC_BIG_ENDIAN
);
4421 ptvcursor_pop_subtree(cursor
);
4425 dissect_homeplug_av_tone_map_rx_req(ptvcursor_t
*cursor
, uint8_t homeplug_av_mmver
)
4429 if (!ptvcursor_tree(cursor
))
4432 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_tone_map_rx_req
, -1, ENC_NA
);
4433 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_tone_map_rx_req
);
4435 if (homeplug_av_mmver
== HOMEPLUG_AV_MMVER_1_1
)
4437 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 4, ENC_NA
);
4438 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_req_mac
, 6, ENC_NA
);
4439 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_req_slot
, 1, ENC_BIG_ENDIAN
);
4440 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_req_coupling
, 1, ENC_LITTLE_ENDIAN
);
4444 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_req_mac
, 6, ENC_NA
);
4445 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_req_slot
, 1, ENC_BIG_ENDIAN
);
4448 ptvcursor_pop_subtree(cursor
);
4452 dissect_homeplug_av_tone_map_carrier(ptvcursor_t
*cursor
, uint16_t num_carriers
)
4454 proto_item
*it
, *ittm
;
4455 uint8_t hilo
, hi_bits
, lo_bits
, hi_snr
, lo_snr
;
4456 uint16_t num_carrier_bytes
, cb
, cid
;
4457 uint16_t num_act_carriers
=0, total_bits
=0, total_snr
=0;
4459 static const uint8_t map_carrier2modbits
[] = { 0, 1, 2, 3, 4, 6, 8, 10, 12, 0, 0, 0, 0, 0, 0, 0 }; /* Carrier-Nibble to #Modulated-Bits Mapping */
4460 static const uint8_t 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 */
4462 if (!ptvcursor_tree(cursor
))
4464 num_carrier_bytes
= num_carriers
/ 2;
4466 /* check if number of carriers is odd */
4467 if (num_carriers
& 1)
4468 num_carrier_bytes
+= 1;
4470 ittm
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_tone_map_carriers
, num_carrier_bytes
, ENC_NA
);
4471 ptvcursor_push_subtree(cursor
, ittm
, ett_homeplug_av_tone_map_carriers
);
4473 for (cb
= 0; cb
< num_carrier_bytes
; cb
++)
4475 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_tone_map_carrier
, 1, ENC_NA
);
4477 proto_item_append_text(it
, " (Carrier #%d/#%d)", cid
, cid
+1 );
4479 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_tone_map_carrier
);
4481 hilo
= tvb_get_uint8(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
4482 lo_bits
= map_carrier2modbits
[ (hilo
& 0x0f) ];
4483 hi_bits
= map_carrier2modbits
[ (hilo
& 0xf0) >> 4 ];
4484 if(lo_bits
) num_act_carriers
++;
4485 if(hi_bits
) num_act_carriers
++;
4486 lo_snr
= map_carrier2modbitsSnr
[ (hilo
& 0x0f) ];
4487 hi_snr
= map_carrier2modbitsSnr
[ (hilo
& 0xf0) >> 4 ];
4489 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_tone_map_carrier_lo
, 1, ENC_BIG_ENDIAN
);
4490 proto_item_prepend_text(it
, "Carrier #%d -> %u bits@SNR %udB: ", cid
, lo_bits
, lo_snr
);
4491 it
= ptvcursor_add(cursor
, hf_homeplug_av_tone_map_carrier_hi
, 1, ENC_BIG_ENDIAN
);
4492 proto_item_prepend_text(it
, "Carrier #%d -> %u bits@SNR %udB: ", cid
+1, hi_bits
, hi_snr
);
4494 ptvcursor_pop_subtree(cursor
);
4495 total_bits
+= (hi_bits
+lo_bits
);
4496 total_snr
+= (hi_snr
+lo_snr
);
4499 if (num_act_carriers
)
4501 /* Append to TM-Subtree: total modulated bits, number of active carriers, Average #Bits/Carrier, Average SNR/Carrier */
4502 proto_item_append_text(ittm
, " (Total #ModulatedBits=%d bit, Active #Carriers=%d, Average #Bits/Carrier=%.2f bit), Average SNR/Carrier=%.2f dB)",
4503 total_bits
, num_act_carriers
, (float) total_bits
/num_act_carriers
, (float) total_snr
/num_act_carriers
);
4505 ptvcursor_pop_subtree(cursor
);
4509 dissect_homeplug_av_tone_map_tx_cnf(ptvcursor_t
*cursor
, uint8_t homeplug_av_mmver
)
4512 uint16_t num_act_carriers
;
4514 if (!ptvcursor_tree(cursor
))
4517 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_tone_map_tx_cnf
, -1, ENC_NA
);
4518 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_tone_map_tx_cnf
);
4520 if (homeplug_av_mmver
== HOMEPLUG_AV_MMVER_1_1
)
4522 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_cnf_status
, 2, ENC_LITTLE_ENDIAN
);
4523 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_cnf_len
, 2, ENC_LITTLE_ENDIAN
);
4524 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 2, ENC_NA
);
4525 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_cnf_mac
, 6, ENC_NA
);
4526 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_cnf_slot
, 2, ENC_LITTLE_ENDIAN
);
4527 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_cnf_num_tms
, 2, ENC_LITTLE_ENDIAN
);
4529 num_act_carriers
= tvb_get_letohs(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
4530 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_cnf_num_act
, 2, ENC_LITTLE_ENDIAN
);
4531 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 4, ENC_NA
);
4533 if (num_act_carriers
)
4535 dissect_homeplug_av_tone_map_carrier(cursor
, num_act_carriers
);
4540 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_cnf_status
, 1, ENC_LITTLE_ENDIAN
);
4541 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_cnf_slot
, 1, ENC_LITTLE_ENDIAN
);
4542 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_cnf_num_tms
, 1, ENC_LITTLE_ENDIAN
);
4544 num_act_carriers
= tvb_get_letohs(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
4545 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_tx_cnf_num_act
, 2, ENC_LITTLE_ENDIAN
);
4547 if (num_act_carriers
)
4549 dissect_homeplug_av_tone_map_carrier(cursor
, num_act_carriers
);
4553 ptvcursor_pop_subtree(cursor
);
4557 dissect_homeplug_av_tone_map_rx_cnf(ptvcursor_t
*cursor
, uint8_t homeplug_av_mmver
)
4560 uint16_t num_act_carriers
;
4562 if (!ptvcursor_tree(cursor
))
4565 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_tone_map_rx_cnf
, -1, ENC_NA
);
4566 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_tone_map_rx_cnf
);
4568 if (homeplug_av_mmver
== HOMEPLUG_AV_MMVER_1_1
)
4570 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_status
, 1, ENC_LITTLE_ENDIAN
);
4571 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
4572 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_len
, 2, ENC_LITTLE_ENDIAN
);
4573 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_subver
, 1, ENC_LITTLE_ENDIAN
);
4574 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
4575 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_mac
, 6, ENC_NA
);
4576 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_slot
, 1, ENC_LITTLE_ENDIAN
);
4577 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_coupling
, 1, ENC_LITTLE_ENDIAN
);
4578 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_num_tms
, 1, ENC_LITTLE_ENDIAN
);
4579 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
4581 num_act_carriers
= tvb_get_letohs(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
4582 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_num_act
, 2, ENC_LITTLE_ENDIAN
);
4584 if (num_act_carriers
)
4586 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 4, ENC_NA
);
4587 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_gil
, 1, ENC_LITTLE_ENDIAN
);
4588 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
4589 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_agc
, 1, ENC_LITTLE_ENDIAN
);
4590 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, 1, ENC_NA
);
4592 dissect_homeplug_av_tone_map_carrier(cursor
, num_act_carriers
);
4597 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_status
, 1, ENC_LITTLE_ENDIAN
);
4598 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_slot
, 1, ENC_LITTLE_ENDIAN
);
4599 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_num_tms
, 1, ENC_LITTLE_ENDIAN
);
4601 num_act_carriers
= tvb_get_letohs(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
4602 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_num_act
, 2, ENC_LITTLE_ENDIAN
);
4604 if (num_act_carriers
)
4606 dissect_homeplug_av_tone_map_carrier(cursor
, num_act_carriers
);
4608 if (num_act_carriers
> HOMEPLUG_AV_TONE_MAP_MAX_NUM_CARRIERS_A
)
4609 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, (HOMEPLUG_AV_TONE_MAP_MAX_NUM_CARRIERS_B
-num_act_carriers
) >>1 , ENC_NA
);
4611 ptvcursor_add(cursor
, hf_homeplug_av_reserved
, (HOMEPLUG_AV_TONE_MAP_MAX_NUM_CARRIERS_A
-num_act_carriers
) >>1 , ENC_NA
);
4613 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_gil
, 1, ENC_LITTLE_ENDIAN
);
4614 ptvcursor_add(cursor
, hf_homeplug_av_tone_map_rx_cnf_agc
, 1, ENC_LITTLE_ENDIAN
);
4618 ptvcursor_pop_subtree(cursor
);
4623 dissect_homeplug_av_cc_assoc_req(ptvcursor_t
*cursor
) {
4625 if (!ptvcursor_tree(cursor
))
4628 ptvcursor_add(cursor
, hf_homeplug_av_cc_assoc_reqtype
, 1, ENC_NA
);
4629 ptvcursor_add(cursor
, hf_homeplug_av_cc_assoc_nid
, 7, ENC_NA
);
4630 ptvcursor_add(cursor
, hf_homeplug_av_cc_assoc_cco_cap
, 1, ENC_NA
);
4631 ptvcursor_add(cursor
, hf_homeplug_av_cc_assoc_proxy_net_cap
, 1, ENC_NA
);
4635 dissect_homeplug_av_cc_assoc_cnf(ptvcursor_t
*cursor
) {
4637 if (!ptvcursor_tree(cursor
))
4640 ptvcursor_add(cursor
, hf_homeplug_av_cc_assoc_result
, 1, ENC_NA
);
4641 ptvcursor_add(cursor
, hf_homeplug_av_cc_assoc_nid
, 7, ENC_NA
);
4642 ptvcursor_add(cursor
, hf_homeplug_av_cc_assoc_snid
, 1, ENC_NA
);
4643 ptvcursor_add(cursor
, hf_homeplug_av_cc_assoc_tei
, 1, ENC_NA
);
4644 ptvcursor_add(cursor
, hf_homeplug_av_cc_assoc_lease_time
, 2, ENC_LITTLE_ENDIAN
);
4648 dissect_homeplug_av_cc_set_tei_map_ind(ptvcursor_t
*cursor
) {
4649 uint8_t numberOfSTA
= 0;
4652 if (!ptvcursor_tree(cursor
))
4655 ptvcursor_add(cursor
, hf_homeplug_av_cc_set_tei_map_ind_mode
, 1, ENC_NA
);
4657 numberOfSTA
= tvb_get_uint8( ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
4658 ptvcursor_add(cursor
, hf_homeplug_av_cc_set_tei_map_ind_num
, 1, ENC_NA
);
4660 for ( iter
= 0; iter
< numberOfSTA
; ++iter
) {
4661 ptvcursor_add(cursor
, hf_homeplug_av_cc_set_tei_map_ind_tei
, 1, ENC_NA
);
4662 ptvcursor_add(cursor
, hf_homeplug_av_cc_set_tei_map_ind_mac
, 6, ENC_NA
);
4663 ptvcursor_add(cursor
, hf_homeplug_av_cc_set_tei_map_ind_status
, 1, ENC_NA
);
4668 dissect_homeplug_av_cm_unassociated_sta_ind(ptvcursor_t
*cursor
) {
4670 if (!ptvcursor_tree(cursor
))
4673 ptvcursor_add(cursor
, hf_homeplug_av_cm_unassoc_sta_nid
, 7, ENC_NA
);
4674 ptvcursor_add(cursor
, hf_homeplug_av_cm_unassoc_sta_cco_cap
, 1, ENC_NA
);
4677 /* HPAV/GP dissect functions */
4679 dissect_homeplug_av_gp_cm_slac_parm_req(ptvcursor_t
*cursor
) {
4681 uint8_t sectype
,cipher_size
;
4684 if (!ptvcursor_tree(cursor
))
4687 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_parm_apptype
, 1, ENC_NA
);
4688 sectype
= tvb_get_uint8(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
4689 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_parm_sectype
, 1, ENC_NA
);
4690 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_parm_runid
, 8, ENC_NA
);
4691 if (sectype
== HOMEPLUG_AV_GP_SECURITY_TYPE_PUBLIC_KEY
) {
4692 cipher_size
= tvb_get_uint8(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
4693 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_parm_cipher_size
, 1, ENC_NA
);
4694 for (Counter
= 0; Counter
< cipher_size
; ++Counter
) {
4695 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_parm_cipher
, 2, ENC_LITTLE_ENDIAN
);
4701 dissect_homeplug_av_gp_cm_slac_parm_cnf(ptvcursor_t
*cursor
) {
4705 if (!ptvcursor_tree(cursor
))
4708 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_parm_sound_target
, 6, ENC_NA
);
4709 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_parm_sound_count
, 1, ENC_NA
);
4710 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_parm_time_out
, 1, ENC_NA
);
4711 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_parm_resptype
, 1, ENC_NA
);
4712 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_parm_forwarding_sta
, 6, ENC_NA
);
4713 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_parm_apptype
, 1, ENC_NA
);
4714 sectype
= tvb_get_uint8(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
4715 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_parm_sectype
, 1, ENC_NA
);
4716 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_parm_runid
, 8, ENC_NA
);
4717 if (sectype
== HOMEPLUG_AV_GP_SECURITY_TYPE_PUBLIC_KEY
) {
4718 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_parm_cipher
, 2, ENC_LITTLE_ENDIAN
);
4723 dissect_homeplug_av_gp_cm_atten_profile_ind(ptvcursor_t
*cursor
) {
4728 if (!ptvcursor_tree(cursor
))
4731 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_profile_ind_pev_mac
, 6, ENC_NA
);
4732 group_size
= tvb_get_uint8(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
4733 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_profile_ind_num_groups
, 1, ENC_NA
);
4735 ptvcursor_advance(cursor
, 1);
4736 for (Counter
= 0; Counter
< group_size
; ++Counter
) {
4737 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_profile_ind_aag
, 1, ENC_NA
);
4742 dissect_homeplug_av_gp_cm_atten_char_ind(ptvcursor_t
*cursor
, packet_info
*pinfo
) {
4744 uint8_t sectype
, numgroups
, val
;
4745 uint16_t Counter_groups
;
4751 if (!ptvcursor_tree(cursor
)) {
4752 ptvcursor_advance(cursor
, 1);
4753 sectype
= tvb_get_uint8(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
4754 ptvcursor_advance(cursor
, 1);
4755 if (sectype
!= HOMEPLUG_AV_GP_SECURITY_TYPE_PUBLIC_KEY
) {
4756 ptvcursor_advance(cursor
, 6+8+17+17+1);
4757 numgroups
= tvb_get_uint8(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
4758 ptvcursor_advance(cursor
, 1);
4759 for (Counter_groups
= 0; Counter_groups
< numgroups
; ++Counter_groups
) {
4760 val
= tvb_get_uint8(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
4762 ptvcursor_advance(cursor
,1);
4765 col_append_fstr(pinfo
->cinfo
, COL_INFO
, " (Groups = %d, Avg. Attenuation = %.2f dB)", numgroups
, avg
);
4770 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_apptype
, 1, ENC_NA
);
4771 sectype
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
));
4773 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_sectype
, 1, ENC_NA
);
4775 if (sectype
== HOMEPLUG_AV_GP_SECURITY_TYPE_PUBLIC_KEY
) {
4776 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_cms_data
, -1, ENC_NA
);
4778 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_source_mac
, 6, ENC_NA
);
4779 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_runid
, 8, ENC_NA
);
4780 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_source_id
, 17, ENC_NA
);
4781 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_resp_id
, 17, ENC_NA
);
4783 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_numsounds
, 1, ENC_NA
);
4785 numgroups
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
));
4787 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_gp_cm_atten_char_profile
, numgroups
+1 , ENC_NA
);
4789 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_gp_cm_atten_char_profile
);
4791 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_numgroups
, 1, ENC_NA
);
4792 for (Counter_groups
= 0; Counter_groups
< numgroups
; ++Counter_groups
) {
4793 val
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
));
4794 proto_tree_add_uint_format( ptvcursor_tree(cursor
),
4795 hf_homeplug_av_gp_cm_atten_char_aag
,
4796 ptvcursor_tvbuff(cursor
),
4797 ptvcursor_current_offset(cursor
), 1, val
,
4798 HOMEPLUG_AV_GP_CM_ATTEN_CHAR_AAG_FORMAT
, Counter_groups
+ 1, val
);
4799 ptvcursor_advance(cursor
, 1);
4802 ptvcursor_pop_subtree(cursor
);
4808 dissect_homeplug_av_gp_cm_atten_char_rsp(ptvcursor_t
*cursor
) {
4812 if (!ptvcursor_tree(cursor
))
4815 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_apptype
, 1, ENC_NA
);
4816 sectype
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
));
4818 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_sectype
, 1, ENC_NA
);
4820 if (sectype
== HOMEPLUG_AV_GP_SECURITY_TYPE_PUBLIC_KEY
) {
4821 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_cms_data
, -1, ENC_NA
);
4823 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_source_mac
, 6, ENC_NA
);
4824 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_runid
, 8, ENC_NA
);
4825 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_source_id
, 17, ENC_NA
);
4826 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_resp_id
, 17, ENC_NA
);
4827 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_result
, 1, ENC_NA
);
4832 dissect_homeplug_av_gp_cm_start_atten_char_ind(ptvcursor_t
*cursor
) {
4836 if (!ptvcursor_tree(cursor
))
4839 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_apptype
, 1, ENC_NA
);
4840 sectype
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
));
4842 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_sectype
, 1, ENC_NA
);
4844 if (sectype
== HOMEPLUG_AV_GP_SECURITY_TYPE_PUBLIC_KEY
) {
4845 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_cms_data
, -1, ENC_NA
);
4847 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_start_atten_char_numsounds
, 1, ENC_NA
);
4848 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_start_atten_char_time_out
, 1, ENC_NA
);
4849 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_start_atten_char_resptype
, 1, ENC_NA
);
4850 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_start_atten_char_forwarding_sta
, 6, ENC_NA
);
4851 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_start_atten_char_runid
, 8, ENC_NA
);
4856 dissect_homeplug_av_gp_cm_mnbc_sound_ind(ptvcursor_t
*cursor
) {
4858 uint8_t apptype
,sectype
;
4860 if (!ptvcursor_tree(cursor
))
4863 apptype
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
));
4864 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_mnbc_sound_apptype
, 1, ENC_NA
);
4866 sectype
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
));
4867 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_mnbc_sound_sectype
, 1, ENC_NA
);
4869 if (sectype
== HOMEPLUG_AV_GP_SECURITY_TYPE_PUBLIC_KEY
) {
4870 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_cms_data
, -1, ENC_NA
);
4873 case HOMEPLUG_AV_GP_APPTYPE_PEV_EVSE_ASSOC
:
4874 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_mnbc_sound_sender_id
, 17, ENC_NA
);
4875 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_mnbc_sound_countdown
, 1, ENC_NA
);
4876 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_mnbc_sound_runid
, 8, ENC_NA
);
4877 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_mnbc_sound_rsvd
, 8, ENC_NA
);
4878 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_mnbc_sound_rnd
, 16, ENC_NA
);
4885 dissect_homeplug_av_gp_cm_validate_req(ptvcursor_t
*cursor
) {
4889 if (!ptvcursor_tree(cursor
))
4892 signaltype
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
));
4893 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_validate_signaltype
, 1, ENC_NA
);
4894 switch (signaltype
) {
4895 case HOMEPLUG_AV_GP_SIGNAL_TYPE_PEV_S2_TOGGLES
:
4896 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_validate_timer
, 1, ENC_NA
);
4897 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_validate_result
, 1, ENC_NA
);
4903 dissect_homeplug_av_gp_cm_validate_cnf(ptvcursor_t
*cursor
) {
4907 if (!ptvcursor_tree(cursor
))
4910 signaltype
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
));
4911 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_validate_signaltype
, 1, ENC_NA
);
4912 switch (signaltype
) {
4913 case HOMEPLUG_AV_GP_SIGNAL_TYPE_PEV_S2_TOGGLES
:
4914 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_validate_togglenum
, 1, ENC_NA
);
4915 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_validate_result
, 1, ENC_NA
);
4921 dissect_homeplug_av_gp_cm_slac_match_req(ptvcursor_t
*cursor
) {
4927 if (!ptvcursor_tree(cursor
))
4930 /* apptype = tvb_get_uint8(ptvcursor_tvbuff(cursor),ptvcursor_current_offset(cursor)); */
4931 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_apptype
, 1, ENC_NA
);
4933 sectype
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
));
4934 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_sectype
, 1, ENC_NA
);
4936 /* length = tvb_get_uint16(ptvcursor_tvbuff(cursor),ptvcursor_current_offset(cursor), ENC_LITTLE_ENDIAN); */
4937 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_length
, 2, ENC_LITTLE_ENDIAN
);
4939 if (sectype
== HOMEPLUG_AV_GP_SECURITY_TYPE_PUBLIC_KEY
) {
4940 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_cms_data
, -1, ENC_NA
);
4942 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_pev_id
, 17, ENC_NA
);
4943 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_pev_mac
, 6, ENC_NA
);
4944 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_evse_id
, 17, ENC_NA
);
4945 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_evse_mac
, 6, ENC_NA
);
4946 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_runid
, 8, ENC_NA
);
4947 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_rsvd
, 8, ENC_NA
);
4952 dissect_homeplug_av_gp_cm_slac_match_cnf(ptvcursor_t
*cursor
) {
4958 if (!ptvcursor_tree(cursor
))
4961 //apptype = tvb_get_uint8(ptvcursor_tvbuff(cursor),ptvcursor_current_offset(cursor));
4962 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_apptype
, 1, ENC_NA
);
4964 sectype
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
));
4965 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_sectype
, 1, ENC_NA
);
4967 //length = tvb_get_uint16(ptvcursor_tvbuff(cursor),ptvcursor_current_offset(cursor), ENC_LITTLE_ENDIAN);
4968 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_length
, 2, ENC_LITTLE_ENDIAN
);
4970 if (sectype
== HOMEPLUG_AV_GP_SECURITY_TYPE_PUBLIC_KEY
) {
4971 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_atten_char_cms_data
, -1, ENC_NA
);
4973 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_pev_id
, 17, ENC_NA
);
4974 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_pev_mac
, 6, ENC_NA
);
4975 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_evse_id
, 17, ENC_NA
);
4976 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_evse_mac
, 6, ENC_NA
);
4977 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_runid
, 8, ENC_NA
);
4978 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_rsvd
, 8, ENC_NA
);
4979 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_nid
, 7, ENC_NA
);
4980 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_rsvd
,1, ENC_NA
);
4981 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_match_nmk
,16, ENC_NA
);
4985 dissect_homeplug_av_gp_cm_slac_user_data(ptvcursor_t
*cursor
) {
4987 uint16_t Type
, Length
,TypeLen
;
4990 if (!ptvcursor_tree(cursor
))
4993 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_user_data_broadcast_tlv_type
, 3, ENC_LITTLE_ENDIAN
);
4996 /* Get Length and Type from TLV Header */
4997 TypeLen
= tvb_get_uint16(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
),ENC_LITTLE_ENDIAN
);
4998 Length
= TypeLen
& HOMEPLUG_AV_GP_CM_SLAC_USER_DATA_TLV_LENGTH_MASK
;
4999 Type
= TypeLen
& HOMEPLUG_AV_GP_CM_SLAC_USER_DATA_TLV_TYPE_MASK
;
5000 /* If type and length is null_type - don't add anything and exit */
5003 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_gp_cm_slac_user_data_tlv
, HOMEPLUG_AV_GP_CM_SLAC_USER_DATA_TLV_HEADER_SIZE
, ENC_LITTLE_ENDIAN
);
5004 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_gp_cm_slac_user_data_tlv
);
5006 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_gp_cm_slac_user_data_tlv_type
, HOMEPLUG_AV_GP_CM_SLAC_USER_DATA_TLV_TYPE_MASK
, ENC_LITTLE_ENDIAN
);
5007 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_user_data_tlv_length
, HOMEPLUG_AV_GP_CM_SLAC_USER_DATA_TLV_LENGTH_MASK
, ENC_LITTLE_ENDIAN
);
5008 if (Type
== HOMEPLUG_AV_GP_CM_SLAC_USER_DATA_TLV_TYPE_VENDOR_RESERVED
) {
5009 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_user_data_tlv_oui
, 3, ENC_LITTLE_ENDIAN
);
5010 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_user_data_tlv_subtype
, 1, ENC_NA
);
5011 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_user_data_tlv_info_str
, Length
- 3 - 1, ENC_NA
);
5013 ptvcursor_add(cursor
, hf_homeplug_av_gp_cm_slac_user_data_tlv_str_bytes
, Length
, ENC_NA
);
5016 ptvcursor_pop_subtree(cursor
);
5021 /* End of HPAV/GP dissect functions */
5023 /* ST/IoTecha dissect functions */
5027 dissect_homeplug_av_st_iotecha_header(ptvcursor_t
*cursor
) {
5031 if (!ptvcursor_tree(cursor
)) {
5032 ptvcursor_advance(cursor
, 5);
5035 /* if we saved vendor subtree */
5037 /* Save current position */
5038 tree
= ptvcursor_tree(cursor
);
5039 /* Go back to vendor subtree */
5040 ptvcursor_set_subtree(cursor
, ti_vendor
, ett_homeplug_av_public
);
5042 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_header_mmever
, 1, ENC_NA
);
5043 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_header_rsvd
, 3, ENC_NA
);
5044 /* Extending length of tree item */
5045 proto_tree_set_appendix(ti_vendor
, ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
) - 4, 4);
5046 /* Now back to current position */
5047 ptvcursor_set_tree(cursor
,tree
);
5049 /* else - just add fields as is */
5050 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_header_mmever
, 1, ENC_NA
);
5051 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_header_rsvd
, 3, ENC_NA
);
5053 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_header_mver
, 1, ENC_NA
);
5057 dissect_homeplug_av_st_iotecha_status_standard(ptvcursor_t
*cursor
) {
5059 if (!ptvcursor_tree(cursor
))
5062 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_status_byte
, 1, ENC_NA
);
5065 /* Specific messages */
5068 dissect_homeplug_av_st_iotecha_stp_discover_tlv(ptvcursor_t
*cursor
) {
5070 uint16_t Type
, Length
,TypeLen
;
5073 if (!ptvcursor_tree(cursor
))
5077 /* Get Length and Type from TLV Header */
5078 TypeLen
= tvb_get_uint16(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
),ENC_LITTLE_ENDIAN
);
5079 Length
= TypeLen
& HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_LENGTH_MASK
;
5080 Type
= TypeLen
& HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_MASK
;
5081 /* If type is null_type - don't add anything and exit */
5082 if (Type
== HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_NULL
)
5084 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_st_iotecha_stp_discover_tlv
, HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_HEADER_SIZE
, ENC_LITTLE_ENDIAN
);
5085 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_st_iotecha_type_length_value
);
5087 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_st_iotecha_stp_discover_tlv_type
, HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_HEADER_SIZE
, ENC_LITTLE_ENDIAN
);
5088 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_stp_discover_tlv_length
, HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_HEADER_SIZE
, ENC_LITTLE_ENDIAN
);
5089 if (Type
== HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_DEVICE_TYPE
) {
5090 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_stp_discover_tlv_value_bytes
, Length
, ENC_NA
);
5092 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_stp_discover_tlv_value_string
, Length
, ENC_ASCII
);
5095 ptvcursor_pop_subtree(cursor
);
5100 dissect_homeplug_av_st_iotecha_stp_get_bss_tlv(ptvcursor_t
*cursor
, uint8_t count
) {
5103 uint16_t Counter
, Length
;
5106 if (!ptvcursor_tree(cursor
))
5109 for (Counter
= 0; Counter
< count
; ++Counter
) {
5110 Type
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
));
5111 if (Type
== HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_BEGIN_BSS
) {
5112 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_st_iotecha_bss_entry
, 0, ENC_NA
);
5113 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_st_iotecha_bss_entry
);
5115 while (Type
!= HOMEPLUG_AV_ST_IOTECHA_STP_GET_BSS_TYPE_END_BSS
) {
5116 Type
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
));
5117 it
= ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_bss_type
, 1, ENC_NA
);
5118 Length
= tvb_get_uint16(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
), ENC_LITTLE_ENDIAN
);
5119 /* If no data - skip fields */
5121 proto_item_append_text(it
," Length: %d",Length
);
5122 ptvcursor_advance(cursor
, 2);
5125 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_bss_value_bytes
, Length
, ENC_NA
);
5130 ptvcursor_advance(cursor
, 2);
5134 ptvcursor_pop_subtree(cursor
);
5140 dissect_homeplug_av_st_iotecha_stp_auth_set_nmk_req(ptvcursor_t
*cursor
) {
5142 if (!ptvcursor_tree(cursor
))
5145 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_auth_nmk
, 16, ENC_NA
);
5149 dissect_homeplug_av_st_iotecha_stp_set_maxgain_req(ptvcursor_t
*cursor
) {
5151 if (!ptvcursor_tree(cursor
))
5154 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_gain_ask
, 1, ENC_NA
);
5158 dissect_homeplug_av_st_iotecha_stp_set_maxgain_cnf(ptvcursor_t
*cursor
) {
5160 if (!ptvcursor_tree(cursor
))
5163 dissect_homeplug_av_st_iotecha_status_standard(cursor
);
5164 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_gain_new
, 1, ENC_NA
);
5165 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_gain_prev
, 1, ENC_NA
);
5169 dissect_homeplug_av_st_iotecha_linkstatus(ptvcursor_t
*cursor
) {
5171 if (!ptvcursor_tree(cursor
))
5173 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_linkstatus_status
, 1, ENC_NA
);
5174 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_linkstatus_devmode
, 1, ENC_NA
);
5179 dissect_homeplug_av_st_iotecha_discover(ptvcursor_t
*cursor
) {
5181 if (!ptvcursor_tree(cursor
))
5184 dissect_homeplug_av_st_iotecha_stp_discover_tlv(cursor
);
5188 dissect_homeplug_av_st_iotecha_stp_get_tei_list_cnf(ptvcursor_t
*cursor
) {
5193 if (!ptvcursor_tree(cursor
))
5196 TeiCount
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
));
5197 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_tei_count
, 1, ENC_NA
);
5198 for (Counter
= 0; Counter
< TeiCount
; ++Counter
) {
5199 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_tei
, 1, ENC_NA
);
5204 dissect_homeplug_av_st_iotecha_stp_get_tei_snapshot_req(ptvcursor_t
*cursor
) {
5206 if (!ptvcursor_tree(cursor
))
5209 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_tei
, 1, ENC_NA
);
5213 dissect_homeplug_av_st_iotecha_stp_get_tei_snapshot_cnf(ptvcursor_t
*cursor
) {
5218 if (!ptvcursor_tree(cursor
))
5221 AddrCount
= tvb_get_uint8(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
));
5222 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_tei_snap_addr_count
, 1, ENC_NA
);
5223 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_tei_snap_tei
, 1, ENC_NA
);
5224 for (Counter
= 0; Counter
< AddrCount
; ++Counter
) {
5225 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mac_address
, 6, ENC_NA
);
5226 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_tei_snap_mac_address_flag
, 2, ENC_LITTLE_ENDIAN
);
5231 dissect_homeplug_av_st_iotecha_stp_get_bss_list_cnf(ptvcursor_t
*cursor
) {
5235 if (!ptvcursor_tree(cursor
))
5238 Count
= tvb_get_uint8( ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
5239 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_bss_list_count
, 1, ENC_NA
);
5240 dissect_homeplug_av_st_iotecha_stp_get_bss_tlv(cursor
, Count
);
5244 dissect_homeplug_av_st_iotecha_stp_get_chanqual_report_req(ptvcursor_t
*cursor
) {
5246 if (!ptvcursor_tree(cursor
))
5249 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_chanqual_req_type
, 1, ENC_NA
);
5250 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mac_address
, 6, ENC_NA
);
5254 dissect_homeplug_av_st_iotecha_stp_get_chanqual_report_cnf(ptvcursor_t
*cursor
) {
5256 if (!ptvcursor_tree(cursor
))
5259 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_chanqual_substatus
, 1, ENC_NA
);
5260 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mac_address
, 6, ENC_NA
);
5264 dissect_homeplug_av_st_iotecha_stp_get_chanqual_report_ind(ptvcursor_t
*cursor
) {
5267 uint8_t tmi_count
, int_count
;
5270 if (!ptvcursor_tree(cursor
))
5273 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mac_address
, 6, ENC_NA
);
5274 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_chanqual_mac_local
, 6, ENC_NA
);
5275 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_chanqual_mac_remote
, 6, ENC_NA
);
5276 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_chanqual_source
, 1, ENC_NA
);
5277 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_chanqual_response_type
, 1, ENC_NA
);
5279 tmi_count
= tvb_get_uint8( ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
5280 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_chanqual_tmi_count
, 1, ENC_NA
);
5281 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_chanqual_tmi
, tmi_count
, ENC_NA
);
5283 int_count
= tvb_get_uint8( ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
5284 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_chanqual_int_count
, 1, ENC_NA
);
5286 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_st_iotecha_chanqual_int
,
5287 int_count
*3, ENC_NA
);
5288 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_st_iotecha_chanqual_int
);
5290 for (Counter
= 0; Counter
< int_count
; ++Counter
) {
5291 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_chanqual_int_et
, 2, ENC_LITTLE_ENDIAN
);
5292 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_chanqual_int_tmi
, 1, ENC_NA
);
5295 ptvcursor_pop_subtree(cursor
);
5297 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_chanqual_tmi_attached
, 1, ENC_NA
);
5299 ptvcursor_advance(cursor
,1);
5301 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_chanqual_fec_type
, 1, ENC_NA
);
5303 ptvcursor_advance(cursor
,1);
5305 it
= ptvcursor_add_no_advance(cursor
, hf_homeplug_av_st_iotecha_chanqual_cbld
, -1, ENC_NA
);
5306 ptvcursor_push_subtree(cursor
, it
, ett_homeplug_av_st_iotecha_chanqual_cbld
);
5308 for (Counter
= 0; Counter
< HOMEPLUG_AV_ST_IOTECHA_CHANQUAL_CBLD_DATA_COUNT
; ++Counter
) {
5309 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_st_iotecha_chanqual_cbld_data_low
, 1, ENC_NA
);
5310 ptvcursor_add_no_advance(cursor
, hf_homeplug_av_st_iotecha_chanqual_cbld_data_high
, 1, ENC_NA
);
5311 ptvcursor_advance(cursor
, 1);
5314 ptvcursor_pop_subtree(cursor
);
5319 dissect_homeplug_av_st_iotecha_stp_mfct_update_stage_req(ptvcursor_t
*cursor
) {
5323 if (!ptvcursor_tree(cursor
))
5326 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mfct_crc
, 2, ENC_NA
);
5327 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mfct_total_length
, 2, ENC_LITTLE_ENDIAN
);
5328 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mfct_offset
, 2, ENC_LITTLE_ENDIAN
);
5330 Length
= tvb_get_uint16(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
),ENC_LITTLE_ENDIAN
);
5331 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mfct_length
, 2, ENC_LITTLE_ENDIAN
);
5332 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mfct_data
, Length
, ENC_NA
);
5336 dissect_homeplug_av_st_iotecha_stp_mfct_update_stage_cnf(ptvcursor_t
*cursor
) {
5338 if (!ptvcursor_tree(cursor
))
5341 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mfct_crc
, 2, ENC_NA
);
5342 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mfct_timeout
, 4, ENC_LITTLE_ENDIAN
);
5343 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mfct_offset
, 2, ENC_LITTLE_ENDIAN
);
5344 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mfct_result
, 1, ENC_NA
);
5348 dissect_homeplug_av_st_iotecha_stp_mfct_update_finish_req(ptvcursor_t
*cursor
) {
5350 if (!ptvcursor_tree(cursor
))
5353 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mfct_request_type
, 1, ENC_NA
);
5354 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mfct_reboot
, 1, ENC_NA
);
5358 dissect_homeplug_av_st_iotecha_stp_mfct_get_item_req(ptvcursor_t
*cursor
) {
5362 if (!ptvcursor_tree(cursor
))
5365 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mfct_item_offset
, 4, ENC_LITTLE_ENDIAN
);
5366 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mfct_item_total_length
, 4, ENC_LITTLE_ENDIAN
);
5367 name_size
= tvb_strsize(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
));
5368 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mfct_name
, name_size
-1, ENC_ASCII
);
5369 /* Skip terminator */
5370 ptvcursor_advance(cursor
, 1);
5374 dissect_homeplug_av_st_iotecha_stp_mfct_get_item_cnf(ptvcursor_t
*cursor
) {
5378 if (!ptvcursor_tree(cursor
))
5381 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mfct_item_offset
, 4, ENC_LITTLE_ENDIAN
);
5382 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mfct_item_total_length
, 4, ENC_LITTLE_ENDIAN
);
5383 name_size
= tvb_strsize(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
));
5384 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mfct_name
, name_size
- 1, ENC_ASCII
);
5385 /* Skip terminator */
5386 ptvcursor_advance(cursor
,1);
5387 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mfct_value
, -1, ENC_NA
);
5391 dissect_homeplug_av_st_iotecha_stp_mfct_get_keylist_cnf(ptvcursor_t
*cursor
) {
5395 if (!ptvcursor_tree(cursor
))
5398 while (tvb_reported_length_remaining(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
)) > 1 )
5400 if ((tvb_get_uint8(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
)) == '\0')
5401 && (tvb_get_uint8(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
) + 1) == '\0'))
5403 name_size
= tvb_strsize(ptvcursor_tvbuff(cursor
),ptvcursor_current_offset(cursor
));
5404 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_mfct_name
, name_size
- 1, ENC_ASCII
);
5405 /* Skip terminator */
5406 ptvcursor_advance(cursor
,1);
5411 dissect_homeplug_av_st_iotecha_stp_fup_req(ptvcursor_t
*cursor
) {
5413 if (!ptvcursor_tree(cursor
))
5416 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_stp_fup_mac_da
, 6, ENC_NA
);
5417 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_stp_fup_mac_sa
, 6, ENC_NA
);
5418 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_stp_fup_mtype
, 1, ENC_NA
);
5422 dissect_homeplug_av_st_iotecha_stp_cpstate_ind(ptvcursor_t
*cursor
, packet_info
*pinfo
) {
5428 cp_state
= tvb_get_uint8(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
5429 pwm_duty
= tvb_get_uint8(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
)+1);
5430 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "CP State Change: %s, %d%%", val_to_str_const(cp_state
, homeplug_av_st_iotecha_stp_cpstate_state_vals
, "Unknown"), pwm_duty
);
5432 if (!ptvcursor_tree(cursor
))
5435 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_cpstate_state
, 1, ENC_NA
);
5436 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_cpstate_pwm_duty
, 1, ENC_NA
);
5437 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_cpstate_pwm_freq
, 2, ENC_LITTLE_ENDIAN
);
5438 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_cpstate_voltage
, 2, ENC_LITTLE_ENDIAN
);
5439 bitmask
= tvb_get_uint8(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
));
5441 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_cpstate_adc_bitmask
, 1, ENC_NA
);
5443 ptvcursor_advance(cursor
, 1);
5447 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_cpstate_adc_voltage_1
, 2, ENC_LITTLE_ENDIAN
);
5449 ptvcursor_advance(cursor
, 2);
5452 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_cpstate_adc_voltage_2
, 2, ENC_LITTLE_ENDIAN
);
5454 ptvcursor_advance(cursor
, 2);
5457 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_cpstate_adc_voltage_3
, 2, ENC_LITTLE_ENDIAN
);
5459 ptvcursor_advance(cursor
, 2);
5464 dissect_homeplug_av_st_iotecha_stp_user_message_ind(ptvcursor_t
*cursor
, packet_info
*pinfo
) {
5469 ptvcursor_advance(cursor
, 4); // not used fields
5470 ptvcursor_advance(cursor
, 4); // not used fields
5472 null_offset
= tvb_find_uint8(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
) + 1, -1, 0);
5474 if (null_offset
> -1) {
5475 col_append_fstr(pinfo
->cinfo
, COL_INFO
, ": %s",
5476 tvb_get_stringz_enc(pinfo
->pool
, ptvcursor_tvbuff(cursor
),
5477 ptvcursor_current_offset(cursor
),
5481 if (!ptvcursor_tree(cursor
))
5484 if (null_offset
> -1) {
5485 ptvcursor_add(cursor
,
5486 hf_homeplug_av_st_iotecha_user_message_info
,
5487 null_offset
- ptvcursor_current_offset(cursor
),
5491 null_offset
= tvb_find_uint8(ptvcursor_tvbuff(cursor
), ptvcursor_current_offset(cursor
) + 1, -1, 0);
5493 if (null_offset
> -1) {
5494 ptvcursor_add(cursor
,
5495 hf_homeplug_av_st_iotecha_user_message_details
,
5496 null_offset
- ptvcursor_current_offset(cursor
),
5503 dissect_homeplug_av_st_iotecha_stp_test_chan_atten_start_rx_req(ptvcursor_t
*cursor
) {
5505 if (!ptvcursor_tree(cursor
))
5508 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_test_type
, 1, ENC_NA
);
5509 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_num_sound
, 1, ENC_NA
);
5510 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_data_ind_addr
, 6, ENC_NA
);
5511 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_agc_lock
, 1, ENC_NA
);
5512 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_db_agc_val
, 1, ENC_NA
);
5516 dissect_homeplug_av_st_iotecha_stp_test_chan_atten_start_rx_cnf(ptvcursor_t
*cursor
) {
5517 if (!ptvcursor_tree(cursor
))
5520 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_test_status
, 1, ENC_NA
);
5524 dissect_homeplug_av_st_iotecha_stp_test_chan_atten_start_tx_req(ptvcursor_t
*cursor
) {
5525 if (!ptvcursor_tree(cursor
))
5528 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_test_type
, 1, ENC_NA
);
5529 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_num_sound
, 1, ENC_NA
);
5530 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_data_ind_addr
, 6, ENC_NA
);
5531 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_suppress_data
, 1, ENC_NA
);
5535 dissect_homeplug_av_st_iotecha_stp_test_chan_atten_start_tx_cnf(ptvcursor_t
*cursor
) {
5536 if (!ptvcursor_tree(cursor
))
5539 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_test_status
, 1, ENC_NA
);
5543 dissect_homeplug_av_st_iotecha_stp_test_chan_atten_data_ind(ptvcursor_t
*cursor
) {
5544 if (!ptvcursor_tree(cursor
))
5547 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_sound_remain
, 1, ENC_NA
);
5548 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_ntb_time
, 4, ENC_NA
);
5549 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_db_agc_val
, 1, ENC_NA
);
5550 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_rsvd1
, 3, ENC_NA
);
5551 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_rsvd2
, 4, ENC_NA
);
5552 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_num_segments
, 1, ENC_NA
);
5553 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_segment
, 1, ENC_NA
);
5554 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_num_chan
, 2, ENC_NA
);
5555 ptvcursor_add(cursor
, hf_homeplug_av_st_iotecha_chan_start
, 2, ENC_NA
);
5557 /* End of ST/IoTecha dissect functions */
5561 dissect_homeplug_av_mme_general(ptvcursor_t
*cursor
,
5562 uint8_t homeplug_av_mmver
,
5563 uint16_t homeplug_av_mmtype
,
5564 packet_info
*pinfo
) {
5565 (void)homeplug_av_mmver
;
5567 switch ((homeplug_av_mmetypes_general_type
)homeplug_av_mmtype
)
5569 case HOMEPLUG_AV_MMTYPE_GENERAL_CC_DISCOVER_LIST_CNF
:
5570 dissect_homeplug_av_cc_disc_list_cnf(cursor
);
5572 case HOMEPLUG_AV_MMTYPE_GENERAL_CM_ENCRYPTED_PAYLOAD_IND
:
5573 dissect_homeplug_av_cm_enc_pld_ind(cursor
);
5575 case HOMEPLUG_AV_MMTYPE_GENERAL_CM_ENCRYPTED_PAYLOAD_RSP
:
5576 dissect_homeplug_av_cm_enc_pld_rsp(cursor
);
5578 case HOMEPLUG_AV_MMTYPE_GENERAL_CM_SET_KEY_REQ
:
5579 dissect_homeplug_av_cm_set_key_req(cursor
);
5581 case HOMEPLUG_AV_MMTYPE_GENERAL_CM_SET_KEY_CNF
:
5582 dissect_homeplug_av_cm_set_key_cnf(cursor
);
5584 case HOMEPLUG_AV_MMTYPE_GENERAL_CM_GET_KEY_REQ
:
5585 dissect_homeplug_av_cm_get_key_req(cursor
);
5587 case HOMEPLUG_AV_MMTYPE_GENERAL_CM_GET_KEY_CNF
:
5588 dissect_homeplug_av_cm_get_key_cnf(cursor
);
5590 case HOMEPLUG_AV_MMTYPE_GENERAL_CM_BRG_INFO_CNF
:
5591 dissect_homeplug_av_get_brg_infos_cnf(cursor
);
5593 case HOMEPLUG_AV_MMTYPE_GENERAL_CM_NW_INFO_CNF
:
5594 dissect_homeplug_av_nw_infos_cnf(cursor
);
5596 case HOMEPLUG_AV_MMTYPE_GENERAL_CM_NW_STATS_CNF
:
5597 dissect_homeplug_av_nw_stats_cnf(cursor
);
5599 case HOMEPLUG_AV_MMTYPE_GENERAL_CC_ASSOC_REQ
:
5600 dissect_homeplug_av_cc_assoc_req(cursor
);
5602 case HOMEPLUG_AV_MMTYPE_GENERAL_CC_ASSOC_CNF
:
5603 dissect_homeplug_av_cc_assoc_cnf(cursor
);
5605 case HOMEPLUG_AV_MMTYPE_GENERAL_CM_UNASSOCIATED_STA_IND
:
5606 dissect_homeplug_av_cm_unassociated_sta_ind(cursor
);
5608 case HOMEPLUG_AV_MMTYPE_GENERAL_CC_SET_TEI_MAP_IND
:
5609 dissect_homeplug_av_cc_set_tei_map_ind(cursor
);
5612 case HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_SLAC_PARM_REQ
:
5613 dissect_homeplug_av_gp_cm_slac_parm_req(cursor
);
5615 case HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_SLAC_PARM_CNF
:
5616 dissect_homeplug_av_gp_cm_slac_parm_cnf(cursor
);
5618 case HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_ATTEN_PROFILE_IND
:
5619 dissect_homeplug_av_gp_cm_atten_profile_ind(cursor
);
5621 case HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_ATTEN_CHAR_IND
:
5622 dissect_homeplug_av_gp_cm_atten_char_ind(cursor
, pinfo
);
5624 case HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_ATTEN_CHAR_RSP
:
5625 dissect_homeplug_av_gp_cm_atten_char_rsp(cursor
);
5627 case HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_START_ATTEN_CHAR_IND
:
5628 dissect_homeplug_av_gp_cm_start_atten_char_ind(cursor
);
5630 case HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_MNBC_SOUND_IND
:
5631 dissect_homeplug_av_gp_cm_mnbc_sound_ind(cursor
);
5633 case HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_VALIDATE_REQ
:
5634 dissect_homeplug_av_gp_cm_validate_req(cursor
);
5636 case HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_VALIDATE_CNF
:
5637 dissect_homeplug_av_gp_cm_validate_cnf(cursor
);
5639 case HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_SLAC_MATCH_REQ
:
5640 dissect_homeplug_av_gp_cm_slac_match_req(cursor
);
5642 case HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_SLAC_MATCH_CNF
:
5643 dissect_homeplug_av_gp_cm_slac_match_cnf(cursor
);
5645 case HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_SLAC_USER_DATA_REQ
:
5646 case HOMEPLUG_AV_GP_MMTYPE_GENERAL_CM_SLAC_USER_DATA_CNF
:
5647 dissect_homeplug_av_gp_cm_slac_user_data(cursor
);
5655 dissect_homeplug_av_mme_qualcomm(ptvcursor_t
*cursor
, uint8_t homeplug_av_mmver
, uint16_t homeplug_av_mmtype
) {
5656 switch ((homeplug_av_mmetypes_qualcomm_type
)homeplug_av_mmtype
) {
5657 case HOMEPLUG_AV_MMTYPE_QUALCOMM_GET_SW_CNF
:
5658 dissect_homeplug_av_get_sw_cnf(cursor
);
5660 case HOMEPLUG_AV_MMTYPE_QUALCOMM_WR_MEM_REQ
:
5661 dissect_homeplug_av_wr_mem_req(cursor
);
5663 case HOMEPLUG_AV_MMTYPE_QUALCOMM_WR_MEM_CNF
:
5664 dissect_homeplug_av_wr_mem_cnf(cursor
);
5666 case HOMEPLUG_AV_MMTYPE_QUALCOMM_RD_MEM_REQ
:
5667 dissect_homeplug_av_rd_mem_req(cursor
);
5669 case HOMEPLUG_AV_MMTYPE_QUALCOMM_RD_MEM_CNF
:
5670 dissect_homeplug_av_rd_mem_cnf(cursor
);
5672 case HOMEPLUG_AV_MMTYPE_QUALCOMM_ST_MAC_REQ
:
5673 dissect_homeplug_av_st_mac_req(cursor
);
5675 case HOMEPLUG_AV_MMTYPE_QUALCOMM_ST_MAC_CNF
:
5676 dissect_homeplug_av_st_mac_cnf(cursor
);
5678 case HOMEPLUG_AV_MMTYPE_QUALCOMM_GET_NVM_CNF
:
5679 dissect_homeplug_av_get_nvm_cnf(cursor
);
5681 case HOMEPLUG_AV_MMTYPE_QUALCOMM_RS_DEV_CNF
:
5682 dissect_homeplug_av_rs_dev_cnf(cursor
);
5684 case HOMEPLUG_AV_MMTYPE_QUALCOMM_WR_MOD_REQ
:
5685 dissect_homeplug_av_wr_mod_req(cursor
);
5687 case HOMEPLUG_AV_MMTYPE_QUALCOMM_WR_MOD_CNF
:
5688 dissect_homeplug_av_wr_mod_cnf(cursor
);
5690 case HOMEPLUG_AV_MMTYPE_QUALCOMM_WR_MOD_IND
:
5691 dissect_homeplug_av_wr_mod_ind(cursor
);
5693 case HOMEPLUG_AV_MMTYPE_QUALCOMM_RD_MOD_REQ
:
5694 dissect_homeplug_av_rd_mod_req(cursor
);
5696 case HOMEPLUG_AV_MMTYPE_QUALCOMM_RD_MOD_CNF
:
5697 dissect_homeplug_av_rd_mod_cnf(cursor
);
5699 case HOMEPLUG_AV_MMTYPE_QUALCOMM_NVM_MOD_REQ
:
5700 dissect_homeplug_av_mod_nvm_req(cursor
);
5702 case HOMEPLUG_AV_MMTYPE_QUALCOMM_NVM_MOD_CNF
:
5703 dissect_homeplug_av_mod_nvm_cnf(cursor
);
5705 case HOMEPLUG_AV_MMTYPE_QUALCOMM_WD_RPT_REQ
:
5706 dissect_homeplug_av_wd_rpt_req(cursor
);
5708 case HOMEPLUG_AV_MMTYPE_QUALCOMM_WD_RPT_IND
:
5709 dissect_homeplug_av_wd_rpt_ind(cursor
);
5711 case HOMEPLUG_AV_MMTYPE_QUALCOMM_LNK_STATS_REQ
:
5712 dissect_homeplug_av_lnk_stats_req(cursor
);
5714 case HOMEPLUG_AV_MMTYPE_QUALCOMM_LNK_STATS_CNF
:
5715 dissect_homeplug_av_lnk_stats_cnf(cursor
);
5717 case HOMEPLUG_AV_MMTYPE_QUALCOMM_SNIFFER_REQ
:
5718 dissect_homeplug_av_sniffer_req(cursor
);
5720 case HOMEPLUG_AV_MMTYPE_QUALCOMM_SNIFFER_CNF
:
5721 dissect_homeplug_av_sniffer_cnf(cursor
);
5723 case HOMEPLUG_AV_MMTYPE_QUALCOMM_SNIFFER_IND
:
5724 dissect_homeplug_av_sniffer_ind(cursor
);
5726 case HOMEPLUG_AV_MMTYPE_QUALCOMM_NW_INFO_CNF
:
5727 dissect_homeplug_av_nw_info_cnf(cursor
, homeplug_av_mmver
);
5729 case HOMEPLUG_AV_MMTYPE_QUALCOMM_CP_RPT_REQ
:
5730 dissect_homeplug_av_cp_rpt_req(cursor
);
5732 case HOMEPLUG_AV_MMTYPE_QUALCOMM_CP_RPT_IND
:
5733 dissect_homeplug_av_cp_rpt_ind(cursor
);
5735 case HOMEPLUG_AV_MMTYPE_QUALCOMM_FR_LBK_REQ
:
5736 dissect_homeplug_av_fr_lbk_req(cursor
);
5738 case HOMEPLUG_AV_MMTYPE_QUALCOMM_FR_LBK_CNF
:
5739 dissect_homeplug_av_fr_lbk_cnf(cursor
);
5741 case HOMEPLUG_AV_MMTYPE_QUALCOMM_LBK_STAT_CNF
:
5742 dissect_homeplug_av_lbk_stat_cnf(cursor
);
5744 case HOMEPLUG_AV_MMTYPE_QUALCOMM_SET_KEY_REQ
:
5745 dissect_homeplug_av_set_key_req(cursor
);
5747 case HOMEPLUG_AV_MMTYPE_QUALCOMM_SET_KEY_CNF
:
5748 dissect_homeplug_av_set_key_cnf(cursor
);
5750 case HOMEPLUG_AV_MMTYPE_QUALCOMM_MFG_STRING_CNF
:
5751 dissect_homeplug_av_mfg_string_cnf(cursor
);
5753 case HOMEPLUG_AV_MMTYPE_QUALCOMM_RD_CBLOCK_CNF
:
5754 dissect_homeplug_av_rd_cblock_cnf(cursor
);
5756 case HOMEPLUG_AV_MMTYPE_QUALCOMM_SET_SDRAM_REQ
:
5757 dissect_homeplug_av_set_sdram_req(cursor
);
5759 case HOMEPLUG_AV_MMTYPE_QUALCOMM_SET_SDRAM_CNF
:
5760 dissect_homeplug_av_set_sdram_cnf(cursor
);
5762 case HOMEPLUG_AV_MMTYPE_QUALCOMM_HOST_ACTION_IND
:
5763 dissect_homeplug_av_host_action_ind(cursor
);
5765 case HOMEPLUG_AV_MMTYPE_QUALCOMM_HOST_ACTION_RSP
:
5766 dissect_homeplug_av_host_action_rsp(cursor
);
5768 case HOMEPLUG_AV_MMTYPE_QUALCOMM_OP_ATTR_REQ
:
5769 dissect_homeplug_av_op_attr_req(cursor
);
5771 case HOMEPLUG_AV_MMTYPE_QUALCOMM_OP_ATTR_CNF
:
5772 dissect_homeplug_av_op_attr_cnf(cursor
);
5774 case HOMEPLUG_AV_MMTYPE_QUALCOMM_GET_ENET_PHY_REQ
:
5775 dissect_homeplug_av_get_enet_phy_req(cursor
);
5777 case HOMEPLUG_AV_MMTYPE_QUALCOMM_GET_ENET_PHY_CNF
:
5778 dissect_homeplug_av_get_enet_phy_cnf(cursor
);
5780 case HOMEPLUG_AV_MMTYPE_QUALCOMM_TONE_MAP_RX_REQ
:
5781 dissect_homeplug_av_tone_map_rx_req(cursor
, homeplug_av_mmver
);
5783 case HOMEPLUG_AV_MMTYPE_QUALCOMM_TONE_MAP_RX_CNF
:
5784 dissect_homeplug_av_tone_map_rx_cnf(cursor
, homeplug_av_mmver
);
5786 case HOMEPLUG_AV_MMTYPE_QUALCOMM_TONE_MAP_TX_REQ
:
5787 dissect_homeplug_av_tone_map_tx_req(cursor
, homeplug_av_mmver
);
5789 case HOMEPLUG_AV_MMTYPE_QUALCOMM_TONE_MAP_TX_CNF
:
5790 dissect_homeplug_av_tone_map_tx_cnf(cursor
, homeplug_av_mmver
);
5798 dissect_homeplug_av_mme_st_iotecha(ptvcursor_t
*cursor
,
5799 uint8_t homeplug_av_mmver
,
5800 uint16_t homeplug_av_mmtype
,
5801 packet_info
*pinfo
) {
5802 (void)homeplug_av_mmver
;
5803 /* Parse head of the message */
5804 dissect_homeplug_av_st_iotecha_header(cursor
);
5805 /* Parse the rest */
5806 switch ((homeplug_av_mmetypes_st_iotecha_type
)homeplug_av_mmtype
) {
5807 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_AUTH_SET_NMK_REQ
:
5808 dissect_homeplug_av_st_iotecha_stp_auth_set_nmk_req(cursor
);
5810 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_TEST_CHAN_ATTEN_START_RX_REQ
:
5811 dissect_homeplug_av_st_iotecha_stp_test_chan_atten_start_rx_req(cursor
);
5813 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_TEST_CHAN_ATTEN_START_TX_REQ
:
5814 dissect_homeplug_av_st_iotecha_stp_test_chan_atten_start_tx_req(cursor
);
5816 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_TEST_CHAN_ATTEN_START_RX_CNF
:
5817 dissect_homeplug_av_st_iotecha_stp_test_chan_atten_start_rx_cnf(cursor
);
5819 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_TEST_CHAN_ATTEN_START_TX_CNF
:
5820 dissect_homeplug_av_st_iotecha_stp_test_chan_atten_start_tx_cnf(cursor
);
5822 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_TEST_CHAN_ATTEN_DATA_IND
:
5823 dissect_homeplug_av_st_iotecha_stp_test_chan_atten_data_ind(cursor
);
5825 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_AUTH_SET_NMK_CNF
:
5827 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_UPDATE_FINISH_CNF
:
5828 /* General message with status byte */
5829 dissect_homeplug_av_st_iotecha_status_standard(cursor
);
5831 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_LINK_STATUS_IND
:
5832 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_LINK_STATUS_CNF
:
5833 dissect_homeplug_av_st_iotecha_linkstatus(cursor
);
5835 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_DISCOVER_CNF
:
5836 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_DISCOVER_LOCAL_CNF
:
5837 dissect_homeplug_av_st_iotecha_discover(cursor
);
5839 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_SET_MAXGAIN_REQ
:
5840 dissect_homeplug_av_st_iotecha_stp_set_maxgain_req(cursor
);
5842 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_SET_MAXGAIN_CNF
:
5843 dissect_homeplug_av_st_iotecha_stp_set_maxgain_cnf(cursor
);
5845 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_GET_TEI_LIST_CNF
:
5846 dissect_homeplug_av_st_iotecha_stp_get_tei_list_cnf(cursor
);
5848 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_GET_TEI_SNAPSHOT_REQ
:
5849 dissect_homeplug_av_st_iotecha_stp_get_tei_snapshot_req(cursor
);
5851 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_GET_TEI_SNAPSHOT_CNF
:
5852 dissect_homeplug_av_st_iotecha_stp_get_tei_snapshot_cnf(cursor
);
5854 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_GET_BSS_LIST_CNF
:
5855 dissect_homeplug_av_st_iotecha_stp_get_bss_list_cnf(cursor
);
5857 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_CHANQUAL_REPORT_REQ
:
5858 dissect_homeplug_av_st_iotecha_stp_get_chanqual_report_req(cursor
);
5860 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_CHANQUAL_REPORT_CNF
:
5861 dissect_homeplug_av_st_iotecha_stp_get_chanqual_report_cnf(cursor
);
5863 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_CHANQUAL_REPORT_IND
:
5864 dissect_homeplug_av_st_iotecha_stp_get_chanqual_report_ind(cursor
);
5866 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_UPDATE_STAGE_REQ
:
5867 dissect_homeplug_av_st_iotecha_stp_mfct_update_stage_req(cursor
);
5869 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_UPDATE_STAGE_CNF
:
5870 dissect_homeplug_av_st_iotecha_stp_mfct_update_stage_cnf(cursor
);
5872 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_UPDATE_FINISH_REQ
:
5873 dissect_homeplug_av_st_iotecha_stp_mfct_update_finish_req(cursor
);
5875 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_GET_ITEM_REQ
:
5876 dissect_homeplug_av_st_iotecha_stp_mfct_get_item_req(cursor
);
5878 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_GET_ITEM_CNF
:
5879 dissect_homeplug_av_st_iotecha_stp_mfct_get_item_cnf(cursor
);
5881 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_GET_KEYLIST_CNF
:
5882 dissect_homeplug_av_st_iotecha_stp_mfct_get_keylist_cnf(cursor
);
5884 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_FUP_REQ
:
5885 dissect_homeplug_av_st_iotecha_stp_fup_req(cursor
);
5887 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_CPSTATE_IND
:
5888 dissect_homeplug_av_st_iotecha_stp_cpstate_ind(cursor
, pinfo
);
5890 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_USER_MESSAGE_IND
:
5891 dissect_homeplug_av_st_iotecha_stp_user_message_ind(cursor
, pinfo
);
5893 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_GET_BSS_LIST_REQ
:
5894 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_GET_TEI_LIST_REQ
:
5895 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_LINK_STATUS_REQ
:
5896 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_DISCOVER_LOCAL_REQ
:
5897 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_DISCOVER_REQ
:
5898 case HOMEPLUG_AV_MMTYPE_ST_IOTECHA_STP_MFCT_GET_KEYLIST_REQ
:
5899 /* Requests only with header go here */
5907 dissect_homeplug_av_mme(ptvcursor_t
*cursor
,
5908 uint8_t homeplug_av_mmver
,
5909 uint16_t homeplug_av_mmtype
,
5910 uint32_t homeplug_av_oui
,
5913 if (!homeplug_av_oui
) {
5914 dissect_homeplug_av_mme_general(cursor
, homeplug_av_mmver
, homeplug_av_mmtype
, pinfo
);
5916 switch (homeplug_av_oui
) {
5917 case HOMEPLUG_AV_OUI_QCA
:
5918 dissect_homeplug_av_mme_qualcomm(cursor
, homeplug_av_mmver
, homeplug_av_mmtype
);
5920 case HOMEPLUG_AV_OUI_ST_IOTECHA
:
5921 dissect_homeplug_av_mme_st_iotecha(cursor
, homeplug_av_mmver
, homeplug_av_mmtype
, pinfo
);
5928 info_column_filler_initial(uint8_t homeplug_av_mmver
,
5929 uint16_t homeplug_av_mmtype
,
5930 uint32_t homeplug_av_oui
,
5931 packet_info
*pinfo
) {
5932 (void)homeplug_av_mmver
;
5934 /* if packet is vendor specific - display vendor OUI */
5935 if (homeplug_av_oui
) {
5936 col_append_sep_str(pinfo
->cinfo
, COL_INFO
, ", ",
5937 val_to_str(homeplug_av_oui
, homeplug_av_vendors_oui_vals
, "OUI:0x%x"));
5940 /* Info depends on type and oui */
5941 switch (homeplug_av_oui
)
5943 case HOMEPLUG_AV_OUI_ST_IOTECHA
:
5944 col_append_sep_str(pinfo
->cinfo
, COL_INFO
, ", ",
5945 val_to_str_ext(homeplug_av_mmtype
,
5946 &homeplug_av_mmtype_st_iotecha_vals_ext
,
5949 case HOMEPLUG_AV_OUI_QCA
:
5950 col_append_sep_str(pinfo
->cinfo
, COL_INFO
, ", ",
5951 val_to_str_ext(homeplug_av_mmtype
,
5952 &homeplug_av_mmtype_qualcomm_vals_ext
,
5956 case HOMEPLUG_AV_OUI_NONE
:
5957 /* if oui is unknown, trying to describe as general MME */
5958 col_append_sep_str(pinfo
->cinfo
, COL_INFO
, ", ",
5959 val_to_str_ext(homeplug_av_mmtype
,
5960 &homeplug_av_mmtype_general_vals_ext
,
5970 dissect_homeplug_av(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
5973 proto_tree
*homeplug_av_tree
;
5974 ptvcursor_t
*cursor
;
5975 uint8_t homeplug_av_mmver
;
5976 uint16_t homeplug_av_mmtype
;
5977 uint32_t homeplug_av_oui
;
5979 homeplug_av_oui
= 0;
5982 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "HomePlug AV");
5983 col_clear(pinfo
->cinfo
, COL_INFO
);
5985 ti
= proto_tree_add_item(tree
, proto_homeplug_av
, tvb
, 0, -1, ENC_NA
);
5986 homeplug_av_tree
= proto_item_add_subtree(ti
, ett_homeplug_av
);
5988 cursor
= ptvcursor_new(pinfo
->pool
, homeplug_av_tree
, tvb
, 0);
5990 /* Check if we have enough data to process the header */
5991 if (check_tvb_length(cursor
, HOMEPLUG_AV_MMHDR_LEN
) != TVB_LEN_SHORTEST
) {
5993 dissect_homeplug_av_mmhdr(cursor
, &homeplug_av_mmver
, &homeplug_av_mmtype
, &homeplug_av_oui
);
5995 info_column_filler_initial(homeplug_av_mmver
, homeplug_av_mmtype
, homeplug_av_oui
, pinfo
);
5997 dissect_homeplug_av_mme(cursor
, homeplug_av_mmver
, homeplug_av_mmtype
, homeplug_av_oui
, pinfo
);
6002 ptvcursor_free(cursor
);
6003 return tvb_captured_length(tvb
);
6007 proto_register_homeplug_av(void)
6009 static hf_register_info hf
[] = {
6010 { &hf_homeplug_av_reserved
,
6011 { "Reserved", "homeplug_av.reserved",
6012 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6015 { &hf_homeplug_av_mmhdr
,
6016 { "MAC Management Header", "homeplug_av.mmhdr",
6017 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6019 { &hf_homeplug_av_mmhdr_mmver
,
6020 { "Version", "homeplug_av.mmhdr.mmver",
6021 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_mmver_vals
), HOMEPLUG_AV_MMVER_MASK
, NULL
, HFILL
}
6023 { &hf_homeplug_av_mmhdr_mmtype_general
,
6024 { "Type", "homeplug_av.mmhdr.mmtype",
6025 FT_UINT16
, BASE_HEX
| BASE_EXT_STRING
, &homeplug_av_mmtype_general_vals_ext
, 0x0, NULL
, HFILL
}
6027 { &hf_homeplug_av_mmhdr_mmtype_qualcomm
,
6028 { "Type", "homeplug_av.mmhdr.mmtype.qualcomm",
6029 FT_UINT16
, BASE_HEX
| BASE_EXT_STRING
, &homeplug_av_mmtype_qualcomm_vals_ext
, 0x0, NULL
, HFILL
}
6031 { &hf_homeplug_av_mmhdr_mmtype_st
,
6032 { "Type", "homeplug_av.mmhdr.mmtype.st",
6033 FT_UINT16
, BASE_HEX
| BASE_EXT_STRING
, &homeplug_av_mmtype_st_iotecha_vals_ext
, 0x0, NULL
, HFILL
}
6035 { &hf_homeplug_av_mmhdr_mmtype_lsb
,
6036 { "LSB", "homeplug_av.mmhdr.mmtype.lsb",
6037 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_mmtype_lsb_vals
), HOMEPLUG_AV_MMTYPE_LSB_MASK
, NULL
, HFILL
}
6039 { &hf_homeplug_av_mmhdr_mmtype_msb
,
6040 { "MSB", "homeplug_av.mmhdr.mmtype.msb",
6041 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_mmtype_msb_vals
), HOMEPLUG_AV_MMTYPE_MSB_MASK
, "Reserved", HFILL
},
6043 { &hf_homeplug_av_mmhdr_fmi
,
6044 { "Fragmentation Info", "homeplug_av.mmhdr.fmi",
6045 FT_UINT16
, BASE_HEX
, NULL
, 0x0, "Reserved", HFILL
},
6048 { &hf_homeplug_av_public
,
6049 { "Public MME", "homeplug_av.public",
6050 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6052 { &hf_homeplug_av_public_frag_count
,
6053 { "Fragment count", "homeplug_av.public.frag_count",
6054 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_PUBLIC_FRAG_COUNT_MASK
, NULL
, HFILL
}
6056 { &hf_homeplug_av_public_frag_index
,
6057 { "Fragment index", "homeplug_av.public.frag_index",
6058 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_PUBLIC_FRAG_INDEX_MASK
, NULL
, HFILL
}
6060 { &hf_homeplug_av_public_frag_seqnum
,
6061 { "Fragment Sequence number", "homeplug_av.public.frag_seqnum",
6062 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6064 /* Frame control fields */
6065 { &hf_homeplug_av_fc
,
6066 { "Frame Control", "homeplug_av.fc",
6067 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6069 { &hf_homeplug_av_fc_del_type
,
6070 { "Delimiter type", "homeplug_av.fc.del_type",
6071 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_fc_del_type_vals
), HOMEPLUG_AV_DEL_TYPE_MASK
, NULL
, HFILL
}
6073 { &hf_homeplug_av_fc_access
,
6074 { "Access network", "homeplug_av.fc.access",
6075 FT_UINT8
, BASE_HEX
, VALS(homeplug_nw_info_access_vals
), HOMEPLUG_AV_NW_INFO_ACCESS_MASK
, NULL
, HFILL
}
6077 { &hf_homeplug_av_fc_snid
,
6078 { "Short network ID", "homeplug_av.fc.snid",
6079 FT_UINT8
, BASE_HEX
, NULL
, HOMEPLUG_AV_SNID_MASK
, NULL
, HFILL
}
6081 { &hf_homeplug_av_fc_fccs_av
,
6082 { "Frame control check sequence", "homeplug_av.fc.fccs_av",
6083 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6085 /* Common MPDU variant fields */
6086 { &hf_homeplug_av_dtei
,
6087 { "Destination Terminal Equipment Identifier", "homeplug_av.dtei",
6088 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6090 { &hf_homeplug_av_stei
,
6091 { "Source Terminal Equipment Identifier", "homeplug_av.stei",
6092 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6094 { &hf_homeplug_av_lid
,
6095 { "Link ID", "homeplug_av.lid",
6096 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6098 { &hf_homeplug_av_cfs
,
6099 { "Contention free session", "homeplug_av.cfs",
6100 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_CFS_MASK
, NULL
, HFILL
}
6102 { &hf_homeplug_av_bdf
,
6103 { "Beacon detect flag", "homeplug_av.bdf",
6104 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_BDF_MASK
, NULL
, HFILL
}
6106 { &hf_homeplug_av_hp10df
,
6107 { "Homeplug AV version 1.0", "homeplug_av.hp10df",
6108 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_HP10DF_MASK
, NULL
, HFILL
}
6110 { &hf_homeplug_av_hp11df
,
6111 { "Homeplug AV version 1.1", "homeplug_av.hp11df",
6112 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_HP11DF_MASK
, NULL
, HFILL
}
6114 { &hf_homeplug_av_svn
,
6115 { "Sack version number", "homeplug_av.svn",
6116 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_SVN_MASK
, NULL
, HFILL
}
6118 { &hf_homeplug_av_rrtf
,
6119 { "Request reverse transmission flag", "homeplug_av.rrtf",
6120 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_RRTF_MASK
, NULL
, HFILL
}
6122 { &hf_homeplug_av_fl_av
,
6123 { "Frame length", "homeplug_av.fl_av",
6124 FT_UINT16
, BASE_DEC
, NULL
, HOMEPLUG_AV_FL_AV_MASK
, NULL
, HFILL
}
6126 { &hf_homeplug_av_ppb
,
6127 { "Pending PHY blocks", "homeplug_av.ppb",
6128 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6130 { &hf_homeplug_av_mfs_rsp_data
,
6131 { "Data MAC Frame Stream Response", "homeplug_av.sack.mfs_rsp_data",
6132 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_RSP_DATA_MASK
<< 4, NULL
, HFILL
}
6134 { &hf_homeplug_av_mfs_rsp_mgmt
,
6135 { "Management MAC Frame Stream Response", "homeplug_av.sack.mfs_rsp_mgmt",
6136 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_RSP_MGMT_MASK
<< 4, NULL
, HFILL
}
6139 { &hf_homeplug_av_sof
,
6140 { "Start of Frame Variant Fields", "homeplug_av.sof",
6141 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6143 { &hf_homeplug_av_sof_peks
,
6144 { "Payload Encryption Key Select", "homeplug_av.sof.peks",
6145 FT_UINT8
, BASE_HEX
| BASE_EXT_STRING
, &homeplug_av_peks_vals_ext
, HOMEPLUG_AV_SOF_PEKS_MASK
, NULL
, HFILL
}
6147 { &hf_homeplug_av_sof_ble
,
6148 { "Bit loading estimate", "homeplug_av.sof.ble",
6149 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6151 { &hf_homeplug_av_sof_pbsz
,
6152 { "PHY block size", "homeplug_av.sof.pbsz",
6153 FT_BOOLEAN
, 8, TFS(&homeplug_av_phy_block_size_vals
), HOMEPLUG_AV_PBSZ_MASK
, NULL
, HFILL
}
6155 { &hf_homeplug_av_sof_num_sym
,
6156 { "Number of symbols", "homeplug_av.sof.num_sym",
6157 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_NUM_SYM_MASK
, NULL
, HFILL
}
6159 { &hf_homeplug_av_sof_tmi_av
,
6160 { "Tonemap index", "homeplug_av.sof.tmi_av",
6161 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_TMI_AV_MASK
, NULL
, HFILL
}
6163 { &hf_homeplug_av_sof_mpdu_cnt
,
6164 { "MPDU count", "homeplug_av.sof.mpdu_cnt",
6165 FT_UINT16
, BASE_DEC
, NULL
, HOMEPLUG_AV_SOF_MPDU_CNT_MASK
, NULL
, HFILL
}
6167 { &hf_homeplug_av_sof_burst_cnt
,
6168 { "Burst count", "homeplug_av.sof.burst_cnt",
6169 FT_UINT16
, BASE_DEC
, NULL
, HOMEPLUG_AV_BURST_CNT_MASK
, NULL
, HFILL
}
6171 { &hf_homeplug_av_sof_bbf
,
6172 { "Bidirectional Burst", "homeplug_av.sof.bbf",
6173 FT_BOOLEAN
, 8, TFS(&homeplug_av_bbf_vals
), HOMEPLUG_AV_BBF_MASK
, NULL
, HFILL
}
6175 { &hf_homeplug_av_sof_mrtfl
,
6176 { "Max Reverse Transmission Frame Length", "homeplug_av.sof.mrtfl",
6177 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_MRTLF_MASK
, NULL
, HFILL
}
6179 { &hf_homeplug_av_sof_dccpcf
,
6180 { "Different CP PHY clock", "homeplug_av.sof.dccpcf",
6181 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_DCCPCF_MASK
, NULL
, HFILL
}
6183 { &hf_homeplug_av_sof_mcf
,
6184 { "Multicast", "homeplug_av.sof.mcf",
6185 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_MCF_MASK
, NULL
, HFILL
}
6187 { &hf_homeplug_av_sof_mnbf
,
6188 { "Multinetwork broadcast", "homeplug_av.sof.mnbf",
6189 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_MNBF_MASK
, NULL
, HFILL
}
6191 { &hf_homeplug_av_sof_rsr
,
6192 { "Request SACK retransmission", "homeplug_av.sof.rsr",
6193 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_RSR_MASK
, NULL
, HFILL
}
6195 { &hf_homeplug_av_sof_clst
,
6196 { "Convergence layer SAP type", "homeplug_av.sof.clst",
6197 FT_BOOLEAN
, 8, TFS(&homeplug_av_clst_vals
), HOMEPLUG_AV_CLST_MASK
, NULL
, HFILL
}
6199 { &hf_homeplug_av_sof_mfs_cmd_mgmt
,
6200 { "Management MAC Frame Stream Command", "homeplug_av.sof.mfs_cmd_mgmt",
6201 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_MFS_MGMT_MASK
, NULL
, HFILL
}
6203 { &hf_homeplug_av_sof_mfs_cmd_data
,
6204 { "Data MAC Frame Stream Command", "homeplug_av.sof.mfs_data_mgmt",
6205 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_MFS_DATA_MASK
, NULL
, HFILL
}
6207 { &hf_homeplug_av_sof_mfs_rsp_mgmt
,
6208 { "Management MAC Frame Stream Response", "homeplug_av.sof.mfs_rsp_mgmt",
6209 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_SOF_RSP_MGMT_MASK
, NULL
, HFILL
}
6211 { &hf_homeplug_av_sof_mfs_rsp_data
,
6212 { "Data MAC Frame Stream Response", "homeplug_av.sof.mfs_rsp_data",
6213 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_SOF_RSP_DATA_MASK
, NULL
, HFILL
}
6215 { &hf_homeplug_av_sof_bm_sack
,
6216 { "Bit Map SACK", "homeplug_av.sof.bm_sack",
6217 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_BM_SACK_MASK
, NULL
, HFILL
}
6219 /* Selective Acknowledgement */
6220 { &hf_homeplug_av_sack
,
6221 { "Selective Acknowledgment Variant Fields", "homeplug_av.sack",
6222 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6224 /* Request to Send/Clear to Send */
6225 { &hf_homeplug_av_rtscts
,
6226 { "Request to Send/Clear to Send Variant Fields", "homeplug_av.rtscts",
6227 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6229 { &hf_homeplug_av_rtscts_rtsf
,
6230 { "RTS Flag", "homeplug_av.rtscts.rtsf",
6231 FT_BOOLEAN
, 8, TFS(&homeplug_av_rtsf_vals
), HOMEPLUG_AV_RTSF_MASK
, NULL
, HFILL
}
6233 { &hf_homeplug_av_rtscts_igf
,
6234 { "Immediate Grant Flag", "homeplug_av.rtscts.igf",
6235 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_IGF_MASK
, NULL
, HFILL
}
6237 { &hf_homeplug_av_rtscts_mnbf
,
6238 { "Multinetwork Broadcast Flag", "homeplug_av.rtscts.mnbf",
6239 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_RTSCTS_MNBF_MASK
, NULL
, HFILL
}
6241 { &hf_homeplug_av_rtscts_mcf
,
6242 { "Multicast Flag", "homeplug_av.rtscts.mcf",
6243 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_RTSCTS_MCF_MASK
, NULL
, HFILL
}
6245 { &hf_homeplug_av_rtscts_dur
,
6246 { "Duration", "homeplug_av.rtscts.dur",
6247 FT_UINT16
, BASE_DEC
, NULL
, HOMEPLUG_AV_DUR_MASK
, NULL
, HFILL
}
6250 { &hf_homeplug_av_sound
,
6251 { "Sound Variant Fields", "homeplug_av.sound",
6252 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6254 { &hf_homeplug_av_sound_pbsz
,
6255 { "PHY Block Size", "homeplug_av.sound.pbsz",
6256 FT_BOOLEAN
, 8, TFS(&homeplug_av_phy_block_size_vals
), HOMEPLUG_AV_SOUND_PBSZ_MASK
, NULL
, HFILL
}
6258 { &hf_homeplug_av_sound_bdf
,
6259 { "Beacon Detect Flag", "homeplug_av.sound.bdf",
6260 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_SOUND_BDF_MASK
, NULL
, HFILL
}
6262 { &hf_homeplug_av_sound_saf
,
6263 { "Sound ACK Flag", "homeplug_av.sound.saf",
6264 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_SAF_MASK
, NULL
, HFILL
}
6266 { &hf_homeplug_av_sound_scf
,
6267 { "Sound Complete Flag", "homeplug_av.sound.scf",
6268 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_SCF_MASK
, NULL
, HFILL
}
6270 { &hf_homeplug_av_sound_req_tm
,
6271 { "Max Tone Maps Requested", "homeplug_av.sound.req_tm",
6272 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_REQ_TM_MASK
, NULL
, HFILL
}
6274 { &hf_homeplug_av_sound_mpdu_cnt
,
6275 { "MPDU Count", "homeplug_av.sound.mpdu_cnt",
6276 FT_UINT16
, BASE_DEC
, NULL
, HOMEPLUG_AV_SOUND_MPDU_CNT_MASK
, NULL
, HFILL
}
6278 { &hf_homeplug_av_sound_src
,
6279 { "Sound Reason Code", "homeplug_av.sound.src",
6280 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6282 { &hf_homeplug_av_sound_add_req_tm
,
6283 { "Additional Tone Maps Requested", "homeplug_av.sound.add_req_tm",
6284 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_ADD_REQ_TM_MASK
, NULL
, HFILL
}
6286 { &hf_homeplug_av_sound_max_pb_sym
,
6287 { "Max PBs per Symbol", "homeplug_av.sound.max_pb_sym",
6288 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_MAX_PB_SYM_MASK
, NULL
, HFILL
}
6290 { &hf_homeplug_av_sound_ecsf
,
6291 { "Extended Carriers Support Flag", "homeplug_av.sound.ecsf",
6292 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_ECSF_MASK
, NULL
, HFILL
}
6294 { &hf_homeplug_av_sound_ecuf
,
6295 { "Extended Carriers Used Flag", "homeplug_av.sound.hf_homeplug_av_sound_ecuf",
6296 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_ECUF_MASK
, NULL
, HFILL
}
6298 { &hf_homeplug_av_sound_ems
,
6299 { "Extended Modulation Support", "homeplug_av.sound.ems",
6300 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_ems_vals
), HOMEPLUG_AV_EMS_MASK
, NULL
, HFILL
}
6302 { &hf_homeplug_av_sound_esgisf
,
6303 { "Extended Smaller Guard Interval Support Flag", "homeplug_av.sound.esgisf",
6304 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_ESGISF_MASK
, NULL
, HFILL
}
6306 { &hf_homeplug_av_sound_elgisf
,
6307 { "Extended Larger Guard Interval Support Flag", "homeplug_av.sound.elgisf",
6308 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_ELGISF_MASK
, NULL
, HFILL
}
6310 { &hf_homeplug_av_sound_efrs
,
6311 { "Extended FEC Rate Support", "homeplug_av.sound.efrs",
6312 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_efrs_vals
), HOMEPLUG_AV_EFRS_MASK
, NULL
, HFILL
}
6314 /* Reverse Start of Frame */
6315 { &hf_homeplug_av_rsof
,
6316 { "Reverse Start of Frame Variant Fields", "homeplug_av.rsof",
6317 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6319 { &hf_homeplug_av_rsof_fl
,
6320 { "Reverse SOF Frame Length", "homeplug_av.rsof.fl",
6321 FT_UINT16
, BASE_DEC
, NULL
, HOMEPLUG_AV_RSOF_FL_MASK
, NULL
, HFILL
}
6323 { &hf_homeplug_av_rsof_tmi
,
6324 { "Tone Map Index", "homeplug_av.rsof.tmi",
6325 FT_UINT16
, BASE_DEC
, NULL
, HOMEPLUG_AV_RSOF_TMI_MASK
, NULL
, HFILL
}
6327 { &hf_homeplug_av_rsof_pbsz
,
6328 { "PHY Block Size", "homeplug_av.rsof.pbsz",
6329 FT_BOOLEAN
, 16, TFS(&homeplug_av_phy_block_size_vals
), HOMEPLUG_AV_RSOF_PBSZ_MASK
, NULL
, HFILL
}
6331 { &hf_homeplug_av_rsof_num_sym
,
6332 { "Number of Symbols", "homeplug_av.rsof.num_sym",
6333 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_RSOF_NUM_SYM_MASK
, NULL
, HFILL
}
6335 { &hf_homeplug_av_rsof_mfs_cmd_mgmt
,
6336 { "Management MAC Frame Stream Command", "homeplug_av.rsof.mfs_cmd_mgmt",
6337 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_MFS_MGMT_MASK
, NULL
, HFILL
}
6339 { &hf_homeplug_av_rsof_mfs_cmd_data
,
6340 { "Data MAC Frame Stream Command", "homeplug_av.rsof.mfs_cmd_data",
6341 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_MFS_DATA_MASK
, NULL
, HFILL
}
6344 { &hf_homeplug_av_bcn
,
6345 { "Beacon Variant Fields", "homeplug_av.bcn",
6346 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6348 { &hf_homeplug_av_bcn_bts
,
6349 { "Beacon timestamp", "homeplug_av.bcn.bts",
6350 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6352 { &hf_homeplug_av_bcn_bto_0
,
6353 { "Beacon transmission offset 0", "homeplug_av.bcn.bto_0",
6354 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6356 { &hf_homeplug_av_bcn_bto_1
,
6357 { "Beacon transmission offset 1", "homeplug_av.bcn.bto_1",
6358 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6360 { &hf_homeplug_av_bcn_bto_2
,
6361 { "Beacon transmission offset 2", "homeplug_av.bcn.bto_2",
6362 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6364 { &hf_homeplug_av_bcn_bto_3
,
6365 { "Beacon transmission offset 3", "homeplug_av.bcn.bto_3",
6366 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6368 { &hf_homeplug_av_bcn_payload
,
6369 { "Beacon MPDU payload", "homeplug_av.bcn.payload",
6370 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6372 { &hf_homeplug_av_bcn_nid
,
6373 { "Network ID", "homeplug_av.bcn.nid",
6374 FT_UINT56
, BASE_HEX
, NULL
, HOMEPLUG_AV_BCN_NID_MASK
, NULL
, HFILL
}
6376 { &hf_homeplug_av_bcn_hm
,
6377 { "Hybrid Mode", "homeplug_av.bcn.hm",
6378 FT_UINT56
, BASE_HEX
| BASE_VAL64_STRING
, VALS64(homeplug_av_bcn_hm_vals
), HOMEPLUG_AV_HM_MASK
, NULL
, HFILL
}
6380 { &hf_homeplug_av_bcn_stei
,
6381 { "Source Terminal Equipment ID", "homeplug_av.bcn.stei",
6382 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6384 { &hf_homeplug_av_bcn_type
,
6385 { "Beacon type", "homeplug_av.bcn.type",
6386 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_bcn_type_vals
), HOMEPLUG_AV_BCN_TYPE_MASK
, NULL
, HFILL
}
6388 { &hf_homeplug_av_bcn_ncnr
,
6389 { "Non-coordinating networks reported", "homeplug_av.bcn.ncnr",
6390 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_NCNR_MASK
, NULL
, HFILL
}
6392 { &hf_homeplug_av_bcn_npsm
,
6393 { "Network Power Save Mode", "homeplug_av.bcn.npsm",
6394 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_NPSM_MASK
, NULL
, HFILL
}
6396 { &hf_homeplug_av_bcn_num_slots
,
6397 { "Number of Beacon Slots", "homeplug_av.bcn.num_slots",
6398 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_bcn_slot_vals
), HOMEPLUG_AV_NUM_SLOTS_MASK
, NULL
, HFILL
}
6400 { &hf_homeplug_av_bcn_slot_use
,
6401 { "Beacon Slot Usage (bitmapped)", "homeplug_av.bcn.slot_usage",
6402 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6404 { &hf_homeplug_av_bcn_slot_id
,
6405 { "Beacon Slot ID", "homeplug_av.bcn.slot_id",
6406 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_bcn_slot_vals
), HOMEPLUG_AV_SLOT_ID_MASK
, NULL
, HFILL
}
6408 { &hf_homeplug_av_bcn_aclss
,
6409 { "AC Line Synchronization Status", "homeplug_av.bcn.aclss",
6410 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_ACLSS_MASK
, NULL
, HFILL
}
6412 { &hf_homeplug_av_bcn_hoip
,
6413 { "Hand-Off in progress", "homeplug_av.bcn.hoip",
6414 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_HOIP_MASK
, NULL
, HFILL
}
6416 { &hf_homeplug_av_bcn_rtsbf
,
6417 { "RTS Broadcast Flag", "homeplug_av.bcn.rtsbf",
6418 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_RTSBF_MASK
, NULL
, HFILL
}
6420 { &hf_homeplug_av_bcn_nm
,
6421 { "Network Mode", "homeplug_av.bcn.nm",
6422 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_bcn_nm_vals
), HOMEPLUG_AV_NM_MASK
, NULL
, HFILL
}
6424 { &hf_homeplug_av_bcn_cco_cap
,
6425 { "CCo Capabilities", "homeplug_av.bcn.cco_cap",
6426 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_bcn_cco_cap_vals
), HOMEPLUG_AV_CCO_CAP_MASK
, NULL
, HFILL
}
6428 { &hf_homeplug_av_bcn_rsf
,
6429 { "Reusable SNID?", "homeplug_av.bcn.rsf",
6430 FT_BOOLEAN
, 8, NULL
, HOMEPLUG_AV_RSF_MASK
, NULL
, HFILL
}
6432 { &hf_homeplug_av_bcn_plevel
,
6433 { "Proxy level", "homeplug_av.bcn.plevel",
6434 FT_UINT8
, BASE_DEC
, NULL
, HOMEPLUG_AV_PLEVEL_MASK
, NULL
, HFILL
}
6436 { &hf_homeplug_av_bcn_bentries
,
6437 { "Beacon entries and padding", "homeplug_av.bcn.bentries",
6438 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6440 { &hf_homeplug_av_bcn_bpcs
,
6441 { "Beacon payload check sequence", "homeplug_av.bcn.bpcs",
6442 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6444 /* Central Coordination Discovery List Confirmation */
6445 { &hf_homeplug_av_cc_disc_list_cnf
,
6446 { "Central Coordination Discovery List Confirmation", "homeplug_av.cc_disc_list_cnf",
6447 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6449 /* Station informations */
6450 { &hf_homeplug_av_cc_disc_list_sta_cnt
,
6451 { "Station count", "homeplug_av.cc_disc_list_cnf.sta_cnt",
6452 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6454 { &hf_homeplug_av_cc_sta_info
,
6455 { "Station information", "homeplug_av.cc_disc_list_cnf.sta_info",
6456 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6458 { &hf_homeplug_av_cc_sta_info_mac
,
6459 { "MAC address", "homeplug_av.cc_disc_list_cnf.sta_info.mac",
6460 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6462 { &hf_homeplug_av_cc_sta_info_tei
,
6463 { "Terminal Equipment Identifier", "homeplug_av.cc_disc_list_cnf.sta_info.tei",
6464 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6466 { &hf_homeplug_av_cc_sta_info_same_net
,
6467 { "Network type", "homeplug_av.cc_disc_list_cnf.sta_info.same_net",
6468 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_cc_sta_net_type_vals
), HOMEPLUG_AV_CC_STA_NET_MASK
, NULL
, HFILL
}
6470 { &hf_homeplug_av_cc_sta_info_sig_level
,
6471 { "Signal level", "homeplug_av.cc_disc_list_cnf.sta_info.sig_level",
6472 FT_UINT8
, BASE_HEX
| BASE_EXT_STRING
, &homeplug_av_sig_level_vals_ext
, 0x00, "Reserved", HFILL
}
6474 { &hf_homeplug_av_cc_sta_info_avg_ble
,
6475 { "Average BLE", "homeplug_av.cc_disc_list_cnf.sta_info.avg_ble",
6476 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6479 { &hf_homeplug_av_cc_disc_list_net_cnt
,
6480 { "Network count", "homeplug_av.cc_disc_list_cnf.net_cnt",
6481 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6483 { &hf_homeplug_av_cc_net_info
,
6484 { "Network information", "homeplug_av.cc_disc_list_cnf.net_info",
6485 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6487 { &hf_homeplug_av_cc_net_info_hyb_mode
,
6488 { "Hybrid mode", "homeplug_av.cc_disc_list_cnf.net_info.hyb_mode",
6489 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6491 { &hf_homeplug_av_cc_net_info_bcn_slots
,
6492 { "Beacon slots", "homeplug_av.cc_disc_list_cnf.net_info.bcn_slots",
6493 FT_UINT8
, BASE_DEC
, NULL
, 0x08, "Reserved", HFILL
}
6495 { &hf_homeplug_av_cc_net_info_cco_sts
,
6496 { "Coordinating status", "homeplug_av.cc_disc_list_cnf.net_info.cco_status",
6497 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_cco_status_vals
), HOMEPLUG_AV_CCO_STATUS_MASK
, NULL
, HFILL
}
6499 { &hf_homeplug_av_cc_net_info_bcn_ofs
,
6500 { "Beacon offset", "homeplug_av.cc_disc_list_cnf.net_info.bcn_ofs",
6501 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6503 /* Shared encrypted related fields */
6504 { &hf_homeplug_av_nw_info_peks
,
6505 { "Payload Encryption Key Select", "homeplug_av.nw_info.peks",
6506 FT_UINT8
, BASE_HEX
| BASE_EXT_STRING
, &homeplug_av_peks_vals_ext
, HOMEPLUG_AV_PEKS_MASK
, NULL
, HFILL
}
6508 { &hf_homeplug_av_nw_info_pid
,
6509 { "Protocol ID", "homeplug_av.nw_info.pid",
6510 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_pid_vals
), HOMEPLUG_AV_PID_MASK
, "Reserved", HFILL
}
6512 { &hf_homeplug_av_nw_info_prn
,
6513 { "Protocol run number", "homeplug_av.nw_info.prn",
6514 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6516 { &hf_homeplug_av_nw_info_pmn
,
6517 { "Protocol message number", "homeplug_av.nw_info.pmn",
6518 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6520 { &hf_homeplug_av_nw_info_my_nonce
,
6521 { "My nonce", "homeplug_av.nw_info.my_nonce",
6522 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6524 { &hf_homeplug_av_nw_info_your_nonce
,
6525 { "Your nonce", "homeplug_av.nw_info.your_nonce",
6526 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6528 { &hf_homeplug_av_nw_info_cco_cap
,
6529 { "CCo capabilities", "homeplug_av.nw_info.cco_cap",
6530 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_nw_info_role_vals
), HOMEPLUG_AV_NW_INFO_ROLE_MASK
, NULL
, HFILL
}
6532 { &hf_homeplug_av_nw_info_key_type
,
6533 { "Key type", "homeplug_av.nw_info.key_type",
6534 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_key_type_vals
), HOMEPLUG_AV_KEY_TYPE_MASK
, NULL
, HFILL
}
6536 /* Encrypted Payload Indicate */
6537 { &hf_homeplug_av_cm_enc_pld_ind
,
6538 { "Encrypted Payload Indicate", "homeplug_av.cm_enc_pld_ind",
6539 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6541 { &hf_homeplug_av_cm_enc_pld_ind_avlns
,
6542 { "AVLN status", "homeplug_av.cm_enc_pld_ind.avlns",
6543 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_avln_status_vals
), HOMEPLUG_AV_AVLN_STATUS_MASK
, "Reserved", HFILL
}
6545 { &hf_homeplug_av_cm_enc_pld_ind_iv
,
6546 { "Initialization vector", "homeplug_av.cm_enc_pld_ind.iv",
6547 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6549 { &hf_homeplug_av_cm_enc_pld_ind_uuid
,
6550 { "UUID", "homeplug_av.cm_enc_pld_ind.uuid",
6551 FT_GUID
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6553 { &hf_homeplug_av_cm_enc_pld_ind_len
,
6554 { "Length", "homeplug_av.cm_enc_pld_ind.len",
6555 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6557 { &hf_homeplug_av_cm_enc_pld_ind_pld
,
6558 { "Encrypted payload", "homeplug_av.cm_enc_pld_ind.pld",
6559 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6561 /* Encrypted Payload Response */
6562 { &hf_homeplug_av_cm_enc_pld_rsp
,
6563 { "Encrypted Payload Response", "homeplug_av.cm_enc_pld_rsp",
6564 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6566 { &hf_homeplug_av_cm_enc_pld_rsp_result
,
6567 { "Result", "homeplug_av.cm_enc_pld_rsp.result",
6568 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_generic_status_vals
), HOMEPLUG_AV_GEN_STATUS_MASK
, NULL
, HFILL
}
6570 /* Set Key Request */
6571 { &hf_homeplug_av_cm_set_key_req
,
6572 { "Set Key Request", "homeplug_av.cm_set_key_req",
6573 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6575 { &hf_homeplug_av_cm_set_key_req_nw_key
,
6576 { "New Key", "homeplug_av.cm_set_key_req.nw_key",
6577 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6579 /* Set Key Confirmation */
6580 { &hf_homeplug_av_cm_set_key_cnf
,
6581 { "Set Key Confirmation", "homeplug_av.cm_set_key_cnf",
6582 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6584 { &hf_homeplug_av_cm_set_key_cnf_result
,
6585 { "Result", "homeplug_av.cm_set_key_cnf.result",
6586 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_generic_status_vals
), HOMEPLUG_AV_GEN_STATUS_MASK
, NULL
, HFILL
}
6588 /* Get Key Request */
6589 { &hf_homeplug_av_cm_get_key_req
,
6590 { "Get Key request", "homeplug_av.cm_get_key_req",
6591 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6593 { &hf_homeplug_av_cm_get_key_req_type
,
6594 { "Request type", "homeplug_av.cm_get_key_req.type",
6595 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_req_type_vals
), HOMEPLUG_AV_REQ_TYPE_MASK
, "Reserved", HFILL
}
6597 { &hf_homeplug_av_cm_get_key_req_has_key
,
6598 { "Hash key", "homeplug_av.cm_get_key_req.hash_key",
6599 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6601 /* Get Key Confirmation */
6602 { &hf_homeplug_av_cm_get_key_cnf
,
6603 { "Get Key Confirmation", "homeplug_av.cm_get_key_cnf",
6604 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6606 { &hf_homeplug_av_cm_get_key_cnf_result
,
6607 { "Result", "homeplug_av.cm_get_key_cnf.result",
6608 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_key_result_vals
), HOMEPLUG_AV_KEY_RESULT_MASK
, NULL
, HFILL
}
6610 { &hf_homeplug_av_cm_get_key_cnf_rtype
,
6611 { "Requested key type", "homeplug_av.cm_get_key_cnf.rtype",
6612 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_key_type_vals
), HOMEPLUG_AV_KEY_TYPE_MASK
, NULL
, HFILL
}
6614 { &hf_homeplug_av_cm_get_key_cnf_key
,
6615 { "Encryption/Hash key", "homeplug_av.cm_get_key_cnf.key",
6616 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6618 /* Get Bridge Informations Confirmation */
6619 { &hf_homeplug_av_brg_infos_cnf
,
6620 { "Get Bridge Informations Confirmation", "homeplug_av.brg_infos_cnf",
6621 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6623 { &hf_homeplug_av_brg_infos_cnf_brd
,
6624 { "Bridging", "homeplug_av.brg_infos_cnf.brd",
6625 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6627 { &hf_homeplug_av_brg_infos_cnf_btei
,
6628 { "Bridge Terminal Equipment Identifier", "homeplug_av.brg_infos_cnf.btei",
6629 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6631 { &hf_homeplug_av_brg_infos_cnf_num_stas
,
6632 { "Number of stations", "homeplug_av.brg_infos_cnf.num_stas",
6633 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6635 { &hf_homeplug_av_brg_infos_cnf_mac
,
6636 { "Bridged Destination Address", "homeplug_av.brg_infos_cnf.mac",
6637 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6639 /* Get Network Informations Confirmation */
6640 { &hf_homeplug_av_cm_nw_infos_cnf
,
6641 { "Get Network Informations Confirmation", "homeplug_av.nw_infos_cnf",
6642 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6644 /* Get Network Statistics Confirmation */
6645 { &hf_homeplug_av_nw_stats_cnf
,
6646 { "Get Network Statistics Confirmation", "homeplug_av.nw_stats_cnf",
6647 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6649 /* Vendor Specific */
6650 { &hf_homeplug_av_vendor
,
6651 { "Vendor MME", "homeplug_av.vendor",
6652 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6654 { &hf_homeplug_av_vendor_oui
,
6655 { "OUI", "homeplug_av.vendor.oui",
6656 FT_UINT24
, BASE_HEX
, VALS(homeplug_av_vendors_oui_vals
), 0x0, NULL
, HFILL
}
6658 /* Get Device/SW Version */
6659 { &hf_homeplug_av_get_sw_cnf
,
6660 { "Get Device/SW Version", "homeplug_av.get_sw_cnf",
6661 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6663 { &hf_homeplug_av_get_sw_cnf_status
,
6664 { "Status", "homeplug_av.get_sw_cnf.status",
6665 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6667 { &hf_homeplug_av_get_sw_cnf_dev_id
,
6668 { "Device ID", "homeplug_av.get_sw_cnf.dev_id",
6669 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_dev_id_vals
), HOMEPLUG_AV_DEV_ID_MASK
, NULL
, HFILL
}
6671 { &hf_homeplug_av_get_sw_cnf_ver_len
,
6672 { "Version length", "homeplug_av.get_sw_cnf.ver_len",
6673 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6675 { &hf_homeplug_av_get_sw_cnf_ver_str
,
6676 { "Version", "homeplug_av.get_sw_cnf.ver_str",
6677 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6679 { &hf_homeplug_av_get_sw_cnf_upg
,
6680 { "Upgradable", "homeplug_av.get_sw_cnf.upg",
6681 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6683 /* Write MAC Memory Request */
6684 { &hf_homeplug_av_wr_mem_req
,
6685 { "Write MAC Memory Request", "homeplug_av.wr_mem_req",
6686 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6688 { &hf_homeplug_av_mem_addr
,
6689 { "Address", "homeplug_av.mem.addr",
6690 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6692 { &hf_homeplug_av_mem_len_32bits
,
6693 { "Length", "homeplug_av.mem.len_32bits",
6694 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6696 /* Write MAC Memory Confirmation */
6697 { &hf_homeplug_av_wr_mem_cnf
,
6698 { "Write MAC Memory Confirmation", "homeplug_av.wr_mem_cnf",
6699 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6701 /* Read MAC Memory Request */
6702 { &hf_homeplug_av_rd_mem_req
,
6703 { "Read MAC Memory Request", "homeplug_av.rd_mem_req",
6704 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6706 { &hf_homeplug_av_rd_mem_cnf
,
6707 { "Read MAC Memory Confirmation", "homeplug_av.rd_mem_cnf",
6708 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6710 /* Start MAC Request */
6711 { &hf_homeplug_av_st_mac_req
,
6712 { "Start MAC Request", "homeplug_av.st_mac_req",
6713 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6715 { &hf_homeplug_av_st_mac_req_img_load
,
6716 { "Image Load Starting Address", "homeplug_av.st_mac_req.img_load",
6717 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6719 { &hf_homeplug_av_st_mac_req_img_len
,
6720 { "Image Length", "homeplug_av.st_mac_req.img_len",
6721 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6723 { &hf_homeplug_av_st_mac_req_img_chksum
,
6724 { "Image Checksum", "homeplug_av.st_mac_req.img_chksum",
6725 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6727 { &hf_homeplug_av_st_mac_req_img_start
,
6728 { "Image Starting Address", "homeplug_av.st_mac_req.img_start",
6729 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6731 /* Start MAC Confirmation */
6732 { &hf_homeplug_av_st_mac_cnf
,
6733 { "Start MAC Confirmation", "homeplug_av.st_mac_cnf",
6734 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6736 { &hf_homeplug_av_st_mac_cnf_status
,
6737 { "Module ID", "homeplug_av.st_mac_cnf.status",
6738 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_st_mac_status_vals
), 0x0, NULL
, HFILL
}
6740 /* Get NVM Parameters Confirmation */
6741 { &hf_homeplug_av_get_nvm_cnf
,
6742 { "Get NVM Parameters Confirmation", "homeplug_av.get_nvm_cnf",
6743 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6745 { &hf_homeplug_av_get_nvm_cnf_status
,
6746 { "Status", "homeplug_av.get_nvm_cnf.status",
6747 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_get_nvm_status_vals
), 0x0, NULL
, HFILL
}
6749 { &hf_homeplug_av_get_nvm_cnf_nvm_type
,
6750 { "NVM Type", "homeplug_av.get_nvm_cnf.nvm_type",
6751 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6753 { &hf_homeplug_av_get_nvm_cnf_nvm_page
,
6754 { "NVM Page Size", "homeplug_av.get_nvm_cnf.nvm_page",
6755 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6757 { &hf_homeplug_av_get_nvm_cnf_nvm_block
,
6758 { "NVM Block Size", "homeplug_av.get_nvm_cnf.nvm_block",
6759 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6761 { &hf_homeplug_av_get_nvm_cnf_nvm_size
,
6762 { "NVM Memory Size", "homeplug_av.get_nvm_cnf.nvm_size",
6763 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6765 /* Reset Device Confirmation */
6766 { &hf_homeplug_av_rs_dev_cnf
,
6767 { "Reset Device Confirmation", "homeplug_av.rs_dev_cnf",
6768 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6770 { &hf_homeplug_av_rs_dev_cnf_status
,
6771 { "Status", "homeplug_av.rs_dev_cnf.status",
6772 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_rs_dev_status_vals
), 0x0, NULL
, HFILL
}
6774 /* Shared memory related fields */
6775 { &hf_homeplug_av_mem_len_16bits
,
6776 { "Length", "homeplug_av.mem.len_16bits",
6777 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6779 { &hf_homeplug_av_mem_offset
,
6780 { "Offset", "homeplug_av.mem.offset",
6781 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6783 { &hf_homeplug_av_mem_checksum
,
6784 { "Checksum", "homeplug_av.mem.checksum",
6785 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6787 { &hf_homeplug_av_mem_data
,
6788 { "Data", "homeplug_av.mem.data",
6789 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6791 { &hf_homeplug_av_mem_status
,
6792 { "Status", "homeplug_av.mem.status",
6793 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_wr_rd_mem_status_vals
), 0x0, NULL
, HFILL
}
6795 /* Write Module Data Request */
6796 { &hf_homeplug_av_wr_mod_req
,
6797 { "Write Module Data Request", "homeplug_av.wr_mod_req",
6798 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6800 /* Write Module Data Confirmation */
6801 { &hf_homeplug_av_wr_mod_cnf
,
6802 { "Write Module Data Confirmation", "homeplug_av.wr_mod_cnf",
6803 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6805 { &hf_homeplug_av_wr_mod_cnf_status
,
6806 { "Status", "homeplug_av.wr_mod_cnf.status",
6807 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_wr_rd_mod_cnf_status_vals
), 0x0, NULL
, HFILL
}
6809 /* Write Module Data Indicate */
6810 { &hf_homeplug_av_wr_mod_ind
,
6811 { "Write Module Data Indicate", "homeplug_av.wr_mod_ind",
6812 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6814 { &hf_homeplug_av_wr_mod_ind_status
,
6815 { "Status", "homeplug_av.wr_mod_ind.status",
6816 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_wr_mod_ind_status_vals
), 0x0, NULL
, HFILL
}
6818 /* Read Module Data Request */
6819 { &hf_homeplug_av_rd_mod_req
,
6820 { "Read Module Data Request", "homeplug_av.rd_mod_req",
6821 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6823 /* Read Module Data Confirmation */
6824 { &hf_homeplug_av_rd_mod_cnf
,
6825 { "Read Module Data Confirmation", "homeplug_av.rd_mod_cnf",
6826 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6828 { &hf_homeplug_av_rd_mod_cnf_status
,
6829 { "Status", "homeplug_av.rd_mod_cnf.status",
6830 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_wr_rd_mod_cnf_status_vals
), 0x0, NULL
, HFILL
}
6832 { &hf_homeplug_av_mac_module_id
,
6833 { "Module ID", "homeplug_av.module_id",
6834 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_mac_module_id_vals
), 0x0, NULL
, HFILL
}
6836 /* Write Module Data to NVM Request */
6837 { &hf_homeplug_av_mod_nvm_req
,
6838 { "Write Module Data to NVM Request", "homeplug_av.mod_nvm_req",
6839 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6841 /* Write Module Data to NVM Confirmation */
6842 { &hf_homeplug_av_mod_nvm_cnf
,
6843 { "Write Module Data to NVM Confirmation", "homeplug_av.mod_nvm_cnf",
6844 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6846 { &hf_homeplug_av_mod_nvm_cnf_status
,
6847 { "Status", "homeplug_av.mod_nvm_cnf.status",
6848 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_mod_nvm_status_vals
), 0x0, NULL
, HFILL
}
6850 /* Get Watchdog Report Request */
6851 { &hf_homeplug_av_wd_rpt_req
,
6852 { "Get Watchdog Report Request", "homeplug_av.wd_rpt_req",
6853 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6855 { &hf_homeplug_av_wd_rpt_req_session_id
,
6856 { "Session ID", "homeplug_av.wd_rpt_req.session_id",
6857 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6859 { &hf_homeplug_av_wd_rpt_req_clr
,
6860 { "Clear flag", "homeplug_av.wd_rpt_req.clr",
6861 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_rpt_clr_vals
), HOMEPLUG_AV_RPT_CLR_MASK
, "Unknown", HFILL
}
6863 /* Get Watchdog Report Indicate */
6864 { &hf_homeplug_av_wd_rpt_ind
,
6865 { "Get Watchdog Report Indicate", "homeplug_av.wd_rpt_ind",
6866 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6868 { &hf_homeplug_av_wd_rpt_ind_status
,
6869 { "Status", "homeplug_av.wd_rpt_ind.status",
6870 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_generic_status_vals
), HOMEPLUG_AV_GEN_STATUS_MASK
, "Unknown", HFILL
}
6872 { &hf_homeplug_av_wd_rpt_ind_session_id
,
6873 { "Session ID", "homeplug_av.wd_rpt_ind.session_id",
6874 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6876 { &hf_homeplug_av_wd_rpt_ind_num_parts
,
6877 { "Number of parts", "homeplug_av.wd_rpt_ind.num_parts",
6878 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6880 { &hf_homeplug_av_wd_rpt_ind_curr_part
,
6881 { "Current Part", "homeplug_av.wd_rpt_ind.curr_part",
6882 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6884 { &hf_homeplug_av_wd_rpt_ind_rdata_len
,
6885 { "Report Data Length", "homeplug_av.wd_rpt_ind.rdata_len",
6886 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6888 { &hf_homeplug_av_wd_rpt_ind_rdata_ofs
,
6889 { "Report Data Offset", "homeplug_av.wd_rpt_ind.rdata_offset",
6890 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6892 { &hf_homeplug_av_wd_rpt_ind_rdata
,
6893 { "Report Data", "homeplug_av.wd_rpt_ind.rdata",
6894 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6896 /* Link Statistics Request */
6897 { &hf_homeplug_av_lnk_stats_req
,
6898 { "Link Statistics Request", "homeplug_av.lnk_stats_req",
6899 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6901 { &hf_homeplug_av_lnk_stats_req_mcontrol
,
6902 { "Control", "homeplug_av.lnk_stats_req.mcontrol",
6903 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_lnk_stats_mctrl_vals
), HOMEPLUG_AV_LNK_STATS_MCTL_MASK
, "Unknown", HFILL
}
6905 { &hf_homeplug_av_lnk_stats_req_dir
,
6906 { "Direction", "homeplug_av.lnk_stats_req.dir",
6907 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_lnk_stats_dir_vals
), HOMEPLUG_AV_LNK_STATS_DIR_MASK
, "Unknown", HFILL
}
6909 { &hf_homeplug_av_lnk_stats_req_lid
,
6910 { "Link ID", "homeplug_av.lnk_stats_req.lid",
6911 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_lnk_stats_lid_vals
), 0x0, NULL
, HFILL
}
6913 { &hf_homeplug_av_lnk_stats_req_macaddr
,
6914 { "Peer Node", "homeplug_av.lnk_stats_req.macaddr",
6915 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6917 /* Link Statistics Confirmation */
6918 { &hf_homeplug_av_lnk_stats_cnf
,
6919 { "Link Statistics Confirmation", "homeplug_av.lnk_stats_cnf",
6920 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6922 { &hf_homeplug_av_lnk_stats_cnf_status
,
6923 { "Status", "homeplug_av.lnk_stats_cnf.status",
6924 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_lnk_status_vals
), 0x0, NULL
, HFILL
}
6926 { &hf_homeplug_av_lnk_stats_cnf_dir
,
6927 { "Direction", "homeplug_av.lnk_stats_cnf.dir",
6928 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_lnk_stats_dir_vals
), HOMEPLUG_AV_LNK_STATS_DIR_MASK
, "Unknown", HFILL
}
6930 { &hf_homeplug_av_lnk_stats_cnf_lid
,
6931 { "Link ID", "homeplug_av.lnk_stats_cnf.lid",
6932 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_lnk_stats_lid_vals
), 0x0, NULL
, HFILL
}
6934 { &hf_homeplug_av_lnk_stats_cnf_tei
,
6935 { "TEI", "homeplug_av.lnk_stats_cnf.tei",
6936 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
6938 { &hf_homeplug_av_lnk_stats_cnf_lstats
,
6939 { "Link statistics", "homeplug_av.lnk_stats_cnf.lstats",
6940 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6942 /* Link statistics members */
6943 { &hf_homeplug_av_lnk_stats_tx
,
6944 { "Tx link statistics", "homeplug_av.lnk_stats.tx",
6945 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6947 { &hf_homeplug_av_lnk_stats_tx_mpdu_ack
,
6948 { "Number of MPDUs Transmitted and Acknowledged", "homeplug_av.lnk_stats.tx.mpdu_ack",
6949 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6951 { &hf_homeplug_av_lnk_stats_tx_mpdu_col
,
6952 { "Number of MPDUs Transmitted and Collided", "homeplug_av.lnk_stats.tx.mpdu_col",
6953 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6955 { &hf_homeplug_av_lnk_stats_tx_mpdu_fai
,
6956 { "Number of MPDUs Transmitted and Failed", "homeplug_av.lnk_stats.tx.mpdu_fail",
6957 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6959 { &hf_homeplug_av_lnk_stats_tx_pbs_pass
,
6960 { "Number of PB Transmitted Successfully", "homeplug_av.lnk_stats.tx.pbs_pass",
6961 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6963 { &hf_homeplug_av_lnk_stats_tx_pbs_fail
,
6964 { "Number of PB Transmitted Unsuccessfully", "homeplug_av.lnk_stats.tx.pbs_fail",
6965 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6967 { &hf_homeplug_av_lnk_stats_rx
,
6968 { "Rx link statistics", "homeplug_av.lnk_stats.rx",
6969 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
6971 { &hf_homeplug_av_lnk_stats_rx_mpdu_ack
,
6972 { "Number of MPDUs Received and Acknowledged", "homeplug_av.lnk_stats.rx.mdpu_ack",
6973 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6975 { &hf_homeplug_av_lnk_stats_rx_mpdu_fai
,
6976 { "Number of MPDUs Received and Failed", "homeplug_av.lnk_stats.rx.mdpu_fail",
6977 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6979 { &hf_homeplug_av_lnk_stats_rx_pbs_pass
,
6980 { "Number of PB Received Successfully", "homeplug_av.lnk_stats.rx.pbs_pass",
6981 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6983 { &hf_homeplug_av_lnk_stats_rx_pbs_fail
,
6984 { "Number of PB Received Unsuccessfully", "homeplug_av.lnk_stats.rx.pbs_fail",
6985 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6987 { &hf_homeplug_av_lnk_stats_rx_tb_pass
,
6988 { "Sum of Turbo Bit Error over successfully received PBs", "homeplug_av.lnk_stats.rx.tb_pass",
6989 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6991 { &hf_homeplug_av_lnk_stats_rx_tb_fail
,
6992 { "Sum of Turbo Bit Error over unsuccessfully received PBs", "homeplug_av.lnk_stats.rx.tb_fail",
6993 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6995 { &hf_homeplug_av_lnk_stats_rx_num_int
,
6996 { "Number of Tone Map Intervals", "homeplug_av.lnk_stats.rx.num_int",
6997 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
6999 { &hf_homeplug_av_rx_inv_stats
,
7000 { "Rx Interval Statistics", "homeplug_av.lnk_stats.rx.inv",
7001 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7003 { &hf_homeplug_av_rx_inv_phy_rate
,
7004 { "Rx Phy Rate for Tone Map Interval 0", "homeplug_av.lnk_stats.rx.inv.phy_rate",
7005 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7007 { &hf_homeplug_av_rx_inv_pbs_pass
,
7008 { "Number of PB Received Successfully", "homeplug_av.lnk_stats.rx.inv.pbs_pass",
7009 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7011 { &hf_homeplug_av_rx_inv_pbs_fail
,
7012 { "Number of PB Received Unsuccessfully", "homeplug_av.lnk_stats.rx.inv.pbs_fail",
7013 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7015 { &hf_homeplug_av_rx_inv_tb_pass
,
7016 { "Sum of the Turbo Bit Error over all PBs received successfully", "homeplug_av.lnk_stats.rx.inv.tb_pass",
7017 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7019 { &hf_homeplug_av_rx_inv_tb_fail
,
7020 { "Sum of the Turbo Bit Error over all PBs received unsuccessfully", "homeplug_av.lnk_stats.rx.inv.tb_fail",
7021 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7023 /* Sniffer Request */
7024 { &hf_homeplug_av_sniffer_req
,
7025 { "Sniffer Request", "homeplug_av.sniffer_req",
7026 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7028 { &hf_homeplug_av_sniffer_req_ctrl
,
7029 { "Sniffer Control", "homeplug_av.sniffer_req.ctrl",
7030 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_sniffer_ctrl_vals
), HOMEPLUG_AV_SNIFFER_CTRL_MASK
, NULL
, HFILL
}
7032 /* Sniffer Confirmation */
7033 { &hf_homeplug_av_sniffer_cnf
,
7034 { "Sniffer Confirmation", "homeplug_av.sniffer_cnf",
7035 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7037 { &hf_homeplug_av_sniffer_cnf_status
,
7038 { "Status", "homeplug_av.sniffer_cnf.status",
7039 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_sniffer_status_vals
), 0x0, NULL
, HFILL
}
7041 { &hf_homeplug_av_sniffer_cnf_state
,
7042 { "State", "homeplug_av.sniffer_cnf.state",
7043 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7045 { &hf_homeplug_av_sniffer_cnf_da
,
7046 { "Destination address", "homeplug_av.sniffer_cnf.da",
7047 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7049 /* Sniffer Indicate */
7050 { &hf_homeplug_av_sniffer_ind
,
7051 { "Sniffer Indicate", "homeplug_av.sniffer_ind",
7052 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7054 { &hf_homeplug_av_sniffer_ind_type
,
7055 { "Sniffer Type", "homeplug_av.sniffer_ind.type",
7056 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_sniffer_type_vals
), 0x0, NULL
, HFILL
}
7058 { &hf_homeplug_av_sniffer_ind_data
,
7059 { "Sniffer Data", "homeplug_av.sniffer_ind.data",
7060 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7062 { &hf_homeplug_av_sniffer_data_dir
,
7063 { "Direction", "homeplug_av.sniffer_ind.data.dir",
7064 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_lnk_stats_dir_vals
), HOMEPLUG_AV_LNK_STATS_DIR_MASK
, NULL
, HFILL
}
7066 { &hf_homeplug_av_sniffer_data_systime
,
7067 { "System time", "homeplug_av.sniffer_ind.data.systime",
7068 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7070 { &hf_homeplug_av_sniffer_data_bc_time
,
7071 { "Beacon time", "homeplug_av.sniffer_ind.data.bc_time",
7072 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7074 /* Network Info Confirmation */
7075 { &hf_homeplug_av_nw_info_cnf
,
7076 { "Network Info Confirmation", "homeplug_av.nw_info_cnf",
7077 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7079 { &hf_homeplug_av_nw_info_net_info
,
7080 { "Networks informations", "homeplug_av.nw_info_cnf.net_info",
7081 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7083 { &hf_homeplug_av_nw_info_num_avlns
,
7084 { "Number of AV Logical Networks", "homeplug_av.nw_info.num_avlns",
7085 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7087 { &hf_homeplug_av_nw_info_nid
,
7088 { "Network ID", "homeplug_av.nw_info.nid",
7089 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7091 { &hf_homeplug_av_nw_info_snid
,
7092 { "Short Network ID", "homeplug_av.nw_info.snid",
7093 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7095 { &hf_homeplug_av_nw_info_tei
,
7096 { "Terminal Equipment Identifier", "homeplug_av.nw_info.tei",
7097 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7099 { &hf_homeplug_av_nw_info_sta_role
,
7100 { "Station Role", "homeplug_av.nw_info.sta_role",
7101 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_nw_info_role_vals
), HOMEPLUG_AV_NW_INFO_ROLE_MASK
, "Reserved", HFILL
}
7103 { &hf_homeplug_av_nw_info_cco_mac
,
7104 { "CCo MAC Address", "homeplug_av.nw_info_cnf.cco_mac",
7105 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7107 { &hf_homeplug_av_nw_info_cco_tei
,
7108 { "CCo Terminal Equipment Identifier", "homeplug_av.nw_info_cnf.cco_tei",
7109 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7111 { &hf_homeplug_av_nw_info_num_stas
,
7112 { "Number of AV Stations", "homeplug_av.nw_info_cnf.num_stas",
7113 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7115 { &hf_homeplug_av_nw_info_access
,
7116 { "Access network", "homeplug_av.nw_info_cnf.access",
7117 FT_UINT8
, BASE_HEX
, VALS(homeplug_nw_info_access_vals
), HOMEPLUG_AV_NW_INFO_NID_MASK
, "Reserved", HFILL
}
7119 { &hf_homeplug_av_nw_info_num_coord
,
7120 { "Number of neighbor networks coordinating", "homeplug_av.nw_info_cnf.num_coord",
7121 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7123 /* Network Info per station */
7124 { &hf_homeplug_av_nw_info_sta_info
,
7125 { "Stations Informations", "homeplug_av.nw_info_cnf.sta_info",
7126 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7128 { &hf_homeplug_av_nw_info_sta_da
,
7129 { "Station MAC Address", "homeplug_av.nw_info_cnf.sta_info.da",
7130 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7132 { &hf_homeplug_av_nw_info_sta_tei
,
7133 { "Station Terminal Equipment Identifier", "homeplug_av.nw_info_cnf.sta_indo.tei",
7134 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7136 { &hf_homeplug_av_nw_info_sta_bda
,
7137 { "MAC Address of first Node Bridged by Station", "homeplug_av.nw_info_cnf.sta_indo.bda",
7138 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7140 { &hf_homeplug_av10_nw_info_sta_phy_dr_tx
,
7141 { "Average PHY Tx data Rate (Mbits/sec)", "homeplug_av.nw_info_cnf.sta_indo.phy_dr_tx",
7142 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7144 { &hf_homeplug_av10_nw_info_sta_phy_dr_rx
,
7145 { "Average PHY Rx data Rate (Mbits/sec)", "homeplug_av.nw_info_cnf.sta_indo.phy_dr_rx",
7146 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7148 { &hf_homeplug_av11_nw_info_sta_phy_dr_tx
,
7149 { "Average PHY Tx data Rate (Mbits/sec)", "homeplug_av.nw_info_cnf.sta_indo.phy_dr_tx",
7150 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7152 { &hf_homeplug_av11_nw_info_sta_phy_dr_rx
,
7153 { "Average PHY Rx data Rate (Mbits/sec)", "homeplug_av.nw_info_cnf.sta_indo.phy_dr_rx",
7154 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7156 { &hf_homeplug_av11_nw_info_sta_cpling_tx
,
7157 { "PHY Tx Coupling", "homeplug_av.nw_info_cnf.sta_info.phy_coupling_tx",
7158 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_coupling_vals
), HOMEPLUG_AV_COUPLING_MASK
, "Unknown", HFILL
}
7160 { &hf_homeplug_av11_nw_info_sta_cpling_rx
,
7161 { "PHY Rx Coupling", "homeplug_av.nw_info_cnf.sta_info.phy_coupling_rx",
7162 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_coupling_vals
), HOMEPLUG_AV_COUPLING_MASK
<< 4, "Unknown", HFILL
}
7164 /* Check Points Request */
7165 { &hf_homeplug_av_cp_rpt_req
,
7166 { "Check Points Request", "homeplug_av.cp_rpt_req",
7167 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7169 { &hf_homeplug_av_cp_rpt_req_session_id
,
7170 { "Session ID", "homeplug_av.cp_rpt_req.session_id",
7171 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7173 { &hf_homeplug_av_cp_rpt_req_clr
,
7174 { "Clear flag", "homeplug_av.cp_rpt_req.clr",
7175 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_rpt_clr_vals
), HOMEPLUG_AV_RPT_CLR_MASK
, "Unknown", HFILL
}
7177 /* Check Points Confirmation */
7178 { &hf_homeplug_av_cp_rpt_ind
,
7179 { "Check Points Confirmation", "homeplug_av.cp_rpt_ind",
7180 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7182 { &hf_homeplug_av_cp_rpt_ind_status
,
7183 { "Status", "homeplug_av.cp_rpt_ind.status",
7184 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_generic_status_vals
), HOMEPLUG_AV_GEN_STATUS_MASK
, "Unknown", HFILL
}
7186 { &hf_homeplug_av_cp_rpt_ind_major_ver
,
7187 { "Major version", "homeplug_av.cp_rpt_ind.major_ver",
7188 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7190 { &hf_homeplug_av_cp_rpt_ind_minor_ver
,
7191 { "Minor version", "homeplug_av.cp_rpt_ind.minor_ver",
7192 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7194 { &hf_homeplug_av_cp_rpt_ind_session_id
,
7195 { "Session ID", "homeplug_av.cp_rpt_ind.session_id",
7196 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7198 { &hf_homeplug_av_cp_rpt_ind_total_size
,
7199 { "Total size", "homeplug_av.cp_rpt_ind.total_size",
7200 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7202 { &hf_homeplug_av_cp_rpt_ind_blk_offset
,
7203 { "Offset", "homeplug_av.cp_rpt_ind.blk_offset",
7204 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7206 { &hf_homeplug_av_cp_rpt_ind_byte_index
,
7207 { "Byte Index", "homeplug_av.cp_rpt_ind.byte_index",
7208 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7210 { &hf_homeplug_av_cp_rpt_ind_num_parts
,
7211 { "Number of parts", "homeplug_av.cp_rpt_ind.num_parts",
7212 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7214 { &hf_homeplug_av_cp_rpt_ind_curr_part
,
7215 { "Current part", "homeplug_av.cp_rpt_ind.curr_part",
7216 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7218 { &hf_homeplug_av_cp_rpt_ind_data_len
,
7219 { "Data length", "homeplug_av.cp_rpt_ind.data_len",
7220 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7222 { &hf_homeplug_av_cp_rpt_ind_data_ofs
,
7223 { "Data offset", "homeplug_av.cp_rpt_ind.data_ofs",
7224 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7226 { &hf_homeplug_av_cp_rpt_ind_data
,
7227 { "Report Data", "homeplug_av.cp_rpt_ind.data",
7228 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7230 /* Loopback Request */
7231 { &hf_homeplug_av_fr_lbk_req
,
7232 { "Loopback Request", "homeplug_av.fr_lbk.req",
7233 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7235 { &hf_homeplug_av_fr_lbk_duration
,
7236 { "Duration", "homeplug_av.lbk.duration",
7237 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7239 { &hf_homeplug_av_fr_lbk_len
,
7240 { "Length", "homeplug_av.lbk.len",
7241 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7243 { &hf_homeplug_av_fr_lbk_req_data
,
7244 { "Data", "homeplug_av.fr_lbj_req.data",
7245 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7247 /* Loopback Confirmation */
7248 { &hf_homeplug_av_fr_lbk_cnf
,
7249 { "Loopback Confirmation", "homeplug_av.fr_lbk_cnf",
7250 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7252 { &hf_homeplug_av_fr_lbk_cnf_status
,
7253 { "Status", "homeplug_av.fr_lbk_cnf.status",
7254 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_generic_status_vals
), HOMEPLUG_AV_GEN_STATUS_MASK
, "Unknown", HFILL
}
7256 { &hf_homeplug_av_lbk_stat_cnf
,
7257 { "Loopback Status Confirmation", "homeplug_av.lnk_stat_cnf",
7258 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7260 { &hf_homeplug_av_lbk_stat_cnf_status
,
7261 { "Status", "homeplug_av.lnk_stat_cnf.status",
7262 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_generic_status_vals
), HOMEPLUG_AV_GEN_STATUS_MASK
, NULL
, HFILL
}
7264 { &hf_homeplug_av_lbk_stat_cnf_lbk_stat
,
7265 { "Loopback Status", "homeplug_av.lnk_stat_cnf.lbk_stat",
7266 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_lbk_status_vals
), HOMEPLUG_AV_LBK_STATUS_MASK
, NULL
, HFILL
}
7268 /* Set Encryption Key Request */
7269 { &hf_homeplug_av_set_key_req
,
7270 { "Set Encryption Key Request", "homeplug_av.set_key_req",
7271 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7273 { &hf_homeplug_av_set_key_req_eks
,
7274 { "EKS", "homeplug_av.set_key_req.eks",
7275 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_set_key_peks_vals
), 0x0, NULL
, HFILL
}
7277 { &hf_homeplug_av_set_key_req_nmk
,
7278 { "NMK", "homeplug_av.set_key_req.nmk",
7279 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7281 { &hf_homeplug_av_set_key_req_rda
,
7282 { "Destination Address", "homeplug_av.set_key_req.rda",
7283 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7285 { &hf_homeplug_av_set_key_req_dak
,
7286 { "DAK", "homeplug_av.set_key_req.dak",
7287 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7289 /* Set Encryption Key Confirmation */
7290 { &hf_homeplug_av_set_key_cnf
,
7291 { "Set Encryption Key Confirmation", "homeplug_av.set_key_cnf",
7292 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7294 { &hf_homeplug_av_set_key_cnf_status
,
7295 { "Status", "homeplug_av.set_key_cnf.status",
7296 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_set_key_status_vals
), 0x0, NULL
, HFILL
}
7298 /* Get Manufacturer String Confirmation */
7299 { &hf_homeplug_av_mfg_string_cnf
,
7300 { "Get Manufacturer String Confirmation", "homeplug_av.mfg_string_cnf",
7301 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7303 { &hf_homeplug_av_mfg_string_cnf_status
,
7304 { "Status", "homeplug_av.mfg_string_cnf.status",
7305 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_generic_status_vals
), HOMEPLUG_AV_GEN_STATUS_MASK
, NULL
, HFILL
}
7307 { &hf_homeplug_av_mfg_string_cnf_len
,
7308 { "Length", "homeplug_av.mfg_string_cnf.len",
7309 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7311 { &hf_homeplug_av_mfg_string_cnf_string
,
7312 { "Manufacturing String", "homeplug_av.mfg_string_cnf.string",
7313 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7315 /* Read Configuration Block Confirmation */
7316 { &hf_homeplug_av_rd_cblock_cnf
,
7317 { "Read Configuration Block Confirmation", "homeplug_av.rd_block_cnf",
7318 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7320 { &hf_homeplug_av_rd_cblock_cnf_status
,
7321 { "Status", "homeplug_av.rd_block_cnf.status",
7322 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_cblock_status_vals
), 0x0, NULL
, HFILL
}
7324 { &hf_homeplug_av_rd_cblock_cnf_len
,
7325 { "Length", "homeplug_av.rd_block_cnf.len",
7326 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7328 /* Configuration Block Header */
7329 { &hf_homeplug_av_cblock_hdr
,
7330 { "Configuration Block Header", "homeplug_av.cblock_hdr",
7331 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7333 { &hf_homeplug_av_cblock_hdr_ver
,
7334 { "Header Version Number", "homeplug_av.cblock_hdr.ver",
7335 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7337 { &hf_homeplug_av_cblock_img_rom_addr
,
7338 { "Image address in NVM", "homeplug_av.cblock_hdr.img_rom_addr",
7339 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7341 { &hf_homeplug_av_cblock_img_addr
,
7342 { "Image address in SDRAM", "homeplug_av.cblock_hdr.img_addr",
7343 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7345 { &hf_homeplug_av_cblock_img_len
,
7346 { "Image length", "homeplug_av.cblock_hdr.img_len",
7347 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7349 { &hf_homeplug_av_cblock_img_chksum
,
7350 { "Image Checksum", "homeplug_av.cblock_hdr.img_chksum",
7351 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7353 { &hf_homeplug_av_cblock_entry_point
,
7354 { "Entry Point", "homeplug_av.cblock_hdr.entry_point",
7355 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7357 { &hf_homeplug_av_cblock_hdr_minor
,
7358 { "Header minor version", "homeplug_av.cblock_hdr.minor",
7359 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7361 { &hf_homeplug_av_cblock_hdr_img_type
,
7362 { "Header image type", "homeplug_av.cblock_hdr.img_type",
7363 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_nvm_img_type_vals
), HOMEPLUG_AV_NVM_IMG_TYPE_MASK
, NULL
, HFILL
}
7365 { &hf_homeplug_av_cblock_hdr_ignore_mask
,
7366 { "Header ignore mask", "homeplug_av.cblock_hdr.ignore_mask",
7367 FT_UINT16
, BASE_HEX
, VALS(homeplug_av_nvm_ignore_mask_vals
), HOMEPLUG_AV_NVM_IGNORE_MASK_MASK
, NULL
, HFILL
}
7369 { &hf_homeplug_av_cblock_hdr_module_id
,
7370 { "Header module ID", "homeplug_av.cblock_hdr.module_id",
7371 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7373 { &hf_homeplug_av_cblock_hdr_module_subid
,
7374 { "Header module sub ID", "homeplug_av.cblock_hdr.module_subid",
7375 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7377 { &hf_homeplug_av_cblock_next_hdr
,
7378 { "Address of next header in NVM", "homeplug_av.cblock_hdr.next_hdr",
7379 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7381 { &hf_homeplug_av_cblock_hdr_chksum
,
7382 { "Header checksum", "homeplug_av.cblock_hdr.hdr_chksum",
7383 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7385 /* Configuration Block */
7386 { &hf_homeplug_av_cblock
,
7387 { "Configuration Block", "homeplug_av.cblock",
7388 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7390 { &hf_homeplug_av_cblock_sdram_size
,
7391 { "SDRAM size", "homeplug_av.cblock.sdram_size",
7392 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7394 { &hf_homeplug_av_cblock_sdram_conf
,
7395 { "SDRAM Configuration Register", "homeplug_av.cblock.sdram_conf",
7396 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7398 { &hf_homeplug_av_cblock_sdram_tim0
,
7399 { "SDRAM Timing Register 0", "homeplug_av.cblock.sdram_tim0",
7400 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7402 { &hf_homeplug_av_cblock_sdram_tim1
,
7403 { "SDRAM Timing Register 1", "homeplug_av.cblock.sdram_tim1",
7404 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7406 { &hf_homeplug_av_cblock_sdram_cntrl
,
7407 { "SDRAM Control Register", "homeplug_av.cblock.sdram_cntrl",
7408 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7410 { &hf_homeplug_av_cblock_sdram_refresh
,
7411 { "SDRAM Refresh Register", "homeplug_av.cblock.sdram_refresh",
7412 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7414 { &hf_homeplug_av_cblock_mac_clock
,
7415 { "MAC Clock Register", "homeplug_av.cblock.mac_clock",
7416 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7418 /* Set SDRAM Configuration Request */
7419 { &hf_homeplug_av_set_sdram_req
,
7420 { "Set SDRAM Configuration Request", "homeplug_av.set_sdram_req",
7421 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7423 { &hf_homeplug_av_set_sdram_req_chksum
,
7424 { "Checksum", "homeplug_av.set_sdram_req.chksum",
7425 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7427 /* Set SDRAM Configuration Confirmation */
7428 { &hf_homeplug_av_set_sdram_cnf
,
7429 { "Set SDRAM Configuration Confirmation", "homeplug_av.set_sdram_cnf",
7430 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7432 { &hf_homeplug_av_set_sdram_cnf_status
,
7433 { "Status", "homeplug_av.set_sdram_cnf.status",
7434 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_cblock_status_vals
), 0x0, NULL
, HFILL
}
7436 /* Embedded Host Action Required Indicate */
7437 { &hf_homeplug_av_host_action_ind
,
7438 { "Embedded Host Action Required Indicate", "homeplug_av.host_action_ind",
7439 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7441 { &hf_homeplug_av_host_action_ind_act
,
7442 { "Action required", "homeplug_av.host_action_ind.action",
7443 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_host_action_vals
), 0x0, NULL
, HFILL
}
7445 /* Embedded Host Action Required Response */
7446 { &hf_homeplug_av_host_action_rsp
,
7447 { "Embedded Host Action Required Response", "homeplug_av.host_action_rsp",
7448 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7450 { &hf_homeplug_av_host_action_rsp_sts
,
7451 { "Status", "homeplug_av.host_action_rsp.status",
7452 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_generic_status_vals
), HOMEPLUG_AV_GEN_STATUS_MASK
, NULL
, HFILL
}
7454 /* Get Device Attributes Request */
7455 { &hf_homeplug_av_op_attr_req
,
7456 { "Get Device Attributes Request", "homeplug_av.op_attr_req",
7457 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7459 { &hf_homeplug_av_op_attr_cookie
,
7460 { "Cookie", "homeplug_av.op_attr.cookie",
7461 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7463 { &hf_homeplug_av_op_attr_rep_type
,
7464 { "Report Type", "homeplug_av.op_attr.rep_type",
7465 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_op_attr_report_vals
), 0x0, NULL
, HFILL
}
7467 /* Get Device Attributes Confirmation */
7468 { &hf_homeplug_av_op_attr_cnf
,
7469 { "Get Device Attributes Confirmation", "homeplug_av.op_attr_cnf",
7470 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7472 { &hf_homeplug_av_op_attr_cnf_status
,
7473 { "Status", "homeplug_av.op_attr_cnf.status",
7474 FT_UINT16
, BASE_HEX
, VALS(homeplug_av_generic_status_vals
), HOMEPLUG_AV_GEN_STATUS_MASK
, NULL
, HFILL
}
7476 { &hf_homeplug_av_op_attr_cnf_size
,
7477 { "Size", "homeplug_av.op_attr_cnf.size",
7478 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7480 { &hf_homeplug_av_op_attr_cnf_data
,
7481 { "Data", "homeplug_av.op_attr_cnf.data",
7482 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7484 /* Device Attributes binary report */
7485 { &hf_homeplug_av_op_attr_data_hw
,
7486 { "Hardware platform", "homeplug_av.op_attr_cnf.data.hw",
7487 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7489 { &hf_homeplug_av_op_attr_data_sw
,
7490 { "Software platform", "homeplug_av.op_attr_cnf.data.sw",
7491 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7493 { &hf_homeplug_av_op_attr_data_sw_major
,
7494 { "Major version", "homeplug_av.op_attr_cnf.data.sw_major",
7495 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7497 { &hf_homeplug_av_op_attr_data_sw_minor
,
7498 { "Minor version", "homeplug_av.op_attr_cnf.data.sw_minor",
7499 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7501 { &hf_homeplug_av_op_attr_data_sw_sub
,
7502 { "Software/PIB version", "homeplug_av.op_attr_cnf.data.sw_sub",
7503 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7505 { &hf_homeplug_av_op_attr_data_sw_num
,
7506 { "Software build number", "homeplug_av.op_attr_cnf.data.sw_sub",
7507 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7509 { &hf_homeplug_av_op_attr_data_sw_date
,
7510 { "Build date", "homeplug_av.op_attr_cnf.data.sw_date",
7511 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7513 { &hf_homeplug_av_op_attr_data_sw_rel
,
7514 { "Release type", "homeplug_av.op_attr_cnf.data.sw_rel",
7515 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7517 { &hf_homeplug_av_op_attr_data_sw_sdram_type
,
7518 { "SDRAM type", "homeplug_av.op_attr_cnf.data.sw_sdram_type",
7519 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7521 { &hf_homeplug_av_op_attr_data_sw_linefreq
,
7522 { "Line frequency (Hz)", "homeplug_av.op_attr_cnf.data.sw_linefreq",
7523 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_linefreq_vals
), HOMEPLUG_AV_LINEFREQ_MASK
, "Unknown", HFILL
}
7525 { &hf_homeplug_av_op_attr_data_sw_zerocross
,
7526 { "Zero-crossing", "homeplug_av.op_attr_cnf.data.sw_zerocross",
7527 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_zerocrossing_vals
), HOMEPLUG_AV_ZEROCROSS_MASK
<< 2, "Unknown", HFILL
}
7529 { &hf_homeplug_av_op_attr_data_sw_sdram_size
,
7530 { "SDRAM size (Mbytes)", "homeplug_av.op_attr_cnf.data.sw_sdram_size",
7531 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7533 { &hf_homeplug_av_op_attr_data_sw_auth_mode
,
7534 { "Authorization mode", "homeplug_av.op_attr_cnf.data.sw_auth_mode",
7535 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7537 /* Get Ethernet PHY Settings Request */
7538 { &hf_homeplug_av_enet_phy_req
,
7539 { "Get Ethernet PHY Settings Request", "homeplug_av.enet_phy_req",
7540 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7542 { &hf_homeplug_av_enet_phy_req_mcontrol
,
7543 { "Message Control", "homeplug_av.enet_phy_req.mcontrol",
7544 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_enet_phy_mcontrol_vals
), HOMEPLUG_AV_ENET_PHY_MCONTROL_MASK
, "Unknown", HFILL
}
7546 { &hf_homeplug_av_enet_phy_req_addcaps
,
7547 { "Advertisement Capabilities", "homeplug_av.enet_phy_req.addcaps",
7548 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7550 /* Get Ethernet PHY Settings Confirmation */
7551 { &hf_homeplug_av_enet_phy_cnf
,
7552 { "Get Ethernet PHY Settings Confirmation", "homeplug_av.enet_phy_cnf",
7553 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7555 { &hf_homeplug_av_enet_phy_cnf_status
,
7556 { "Status", "homeplug_av.enet_phy_cnf.status",
7557 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_generic_status_vals
), HOMEPLUG_AV_GEN_STATUS_MASK
, NULL
, HFILL
}
7559 { &hf_homeplug_av_enet_phy_cnf_speed
,
7560 { "Speed", "homeplug_av.enet_phy.speed",
7561 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_enet_phy_speed_vals
), HOMEPLUG_AV_ENET_PHY_SPEED_MASK
, NULL
, HFILL
},
7563 { &hf_homeplug_av_enet_phy_cnf_duplex
,
7564 { "Duplex", "homeplug_av.enet_phy.duplex",
7565 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_enet_phy_duplex_vals
), HOMEPLUG_AV_ENET_PHY_DUPLEX_MASK
, NULL
, HFILL
},
7567 /* Tone Map Tx Characteristics Request */
7568 { &hf_homeplug_av_tone_map_tx_req
,
7569 { "Tone Map Tx Characteristics Request", "homeplug_av.tone_map_tx_req",
7570 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7572 { &hf_homeplug_av_tone_map_tx_req_mac
,
7573 { "Peer address", "homeplug_av.tone_map_tx_req.mac",
7574 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7576 { &hf_homeplug_av_tone_map_tx_req_slot
,
7577 { "Tone Map slot", "homeplug_av.tone_map_tx_req.slot",
7578 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7580 { &hf_homeplug_av_tone_map_tx_req_coupling
,
7581 { "Coupling", "homeplug_av.tone_map_tx_req.coupling",
7582 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_coupling_vals
), HOMEPLUG_AV_COUPLING_MASK
, NULL
, HFILL
}
7584 /* Tone Map Rx Characteristics Request */
7585 { &hf_homeplug_av_tone_map_rx_req
,
7586 { "Tone Map Rx Characteristics Request", "homeplug_av.tone_map_rx_req",
7587 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7589 { &hf_homeplug_av_tone_map_rx_req_mac
,
7590 { "Peer address", "homeplug_av.tone_map_rx_req.mac",
7591 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7593 { &hf_homeplug_av_tone_map_rx_req_slot
,
7594 { "Tone Map slot", "homeplug_av.tone_map_rx_req.slot",
7595 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7597 { &hf_homeplug_av_tone_map_rx_req_coupling
,
7598 { "Coupling", "homeplug_av.tone_map_rx_req.coupling",
7599 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_coupling_vals
), HOMEPLUG_AV_COUPLING_MASK
, NULL
, HFILL
}
7601 /* Tone Map Tx Characteristics Confirmation */
7602 { &hf_homeplug_av_tone_map_tx_cnf
,
7603 { "Tone Map Tx Characteristics Confirmation", "homeplug_av.tone_map_tx_cnf",
7604 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7606 { &hf_homeplug_av_tone_map_tx_cnf_status
,
7607 { "Status", "homeplug_av.tone_map_tx_cnf.status",
7608 FT_UINT16
, BASE_HEX
, VALS(homeplug_av_tone_map_status_vals
), 0x0, NULL
, HFILL
}
7610 { &hf_homeplug_av_tone_map_tx_cnf_len
,
7611 { "Length", "homeplug_av.tone_map_tx_cnf.len",
7612 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7614 { &hf_homeplug_av_tone_map_tx_cnf_mac
,
7615 { "Peer address", "homeplug_av.tone_map_tx_cnf.mac",
7616 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7618 { &hf_homeplug_av_tone_map_tx_cnf_slot
,
7619 { "Slot", "homeplug_av.tone_map_tx_cnf.slot",
7620 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7622 { &hf_homeplug_av_tone_map_tx_cnf_num_tms
,
7623 { "Number of Tone Maps in use", "homeplug_av.tone_map_tx_cnf.num_tms",
7624 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7626 { &hf_homeplug_av_tone_map_tx_cnf_num_act
,
7627 { "Tone map number of active carriers", "homeplug_av.tone_map_tx_cnf.num_act",
7628 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7630 /* Tone Map Rx Characteristics Confirmation */
7631 { &hf_homeplug_av_tone_map_rx_cnf
,
7632 { "Tone Map Rx Characteristics Confirmation", "homeplug_av.tone_map_rx_cnf",
7633 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7635 { &hf_homeplug_av_tone_map_rx_cnf_status
,
7636 { "Status", "homeplug_av.tone_map_rx_cnf.status",
7637 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_tone_map_status_vals
), 0x0, NULL
, HFILL
}
7639 { &hf_homeplug_av_tone_map_rx_cnf_len
,
7640 { "Length", "homeplug_av.tone_map_rx_cnf.len",
7641 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7643 { &hf_homeplug_av_tone_map_rx_cnf_subver
,
7644 { "MME Subversion", "homeplug_av.tone_map_rx_cnf.mmesubversion",
7645 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7647 { &hf_homeplug_av_tone_map_rx_cnf_mac
,
7648 { "Peer address", "homeplug_av.tone_map_rx_cnf.mac",
7649 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7651 { &hf_homeplug_av_tone_map_rx_cnf_slot
,
7652 { "Slot", "homeplug_av.tone_map_rx_cnf.slot",
7653 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7655 { &hf_homeplug_av_tone_map_rx_cnf_coupling
,
7656 { "Coupling", "homeplug_av.tone_map_rx_cnf.coupling",
7657 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_coupling_vals
), HOMEPLUG_AV_COUPLING_MASK
, NULL
, HFILL
}
7659 { &hf_homeplug_av_tone_map_rx_cnf_num_tms
,
7660 { "Number of Tone Maps in use", "homeplug_av.tone_map_rx_cnf.num_tms",
7661 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7663 { &hf_homeplug_av_tone_map_rx_cnf_num_act
,
7664 { "Tone map number of active carriers", "homeplug_av.tone_map_rx_cnf.num_act",
7665 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7667 { &hf_homeplug_av_tone_map_rx_cnf_agc
,
7668 { "Automatic Gain Control (AGC)", "homeplug_av.tone_map_rx_cnf.agc",
7669 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7671 { &hf_homeplug_av_tone_map_rx_cnf_gil
,
7672 { "Guard Interval Length (GIL)", "homeplug_av.tone_map_rx_cnf.gil",
7673 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7675 /* Tone Map Carrier informations */
7676 { &hf_homeplug_av_tone_map_carriers
,
7677 { "Tone Map carriers", "homeplug_av.tone_map_cnf.carriers",
7678 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7680 { &hf_homeplug_av_tone_map_carrier
,
7681 { "Modulation per carrier", "homeplug_av.tone_map_cnf.carrier",
7682 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7684 { &hf_homeplug_av_tone_map_carrier_lo
,
7685 { "Modulation (Low carrier)", "homeplug_av.tone_map_cnf.carrier.lo",
7686 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_tone_map_vals
), HOMEPLUG_AV_TONE_MAP_MASK
, NULL
, HFILL
}
7688 { &hf_homeplug_av_tone_map_carrier_hi
,
7689 { "Modulation (High carrier)", "homeplug_av.tone_map_cnf.carrier.hi",
7690 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_tone_map_vals
), HOMEPLUG_AV_TONE_MAP_MASK
<< 4, NULL
, HFILL
}
7693 { &hf_homeplug_av_cc_assoc_reqtype
,
7694 { "Request Type", "homeplug_av.cc_assoc.reqtype",
7695 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_cc_assoc_reqtype_vals
), 0x0, NULL
, HFILL
}
7697 { &hf_homeplug_av_cc_assoc_nid
,
7698 { "Network ID", "homeplug_av.cc_assoc.nid",
7699 FT_BYTES
, SEP_COLON
, NULL
, 0x0, NULL
, HFILL
}
7701 { &hf_homeplug_av_cc_assoc_cco_cap
,
7702 { "CCo Capability", "homeplug_av.cc_assoc.cco_cap",
7703 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_avln_status_vals
), HOMEPLUG_AV_AVLN_STATUS_MASK
, NULL
, HFILL
}
7705 { &hf_homeplug_av_cc_assoc_proxy_net_cap
,
7706 { "Proxy Network Capability", "homeplug_av.cc_assoc.proxy_cap",
7707 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_cc_assoc_proxy_net_cap_vals
), 0x0, NULL
, HFILL
}
7709 { &hf_homeplug_av_cc_assoc_result
,
7710 { "Result", "homeplug_av.cc_assoc.result",
7711 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_cc_assoc_result_vals
), 0x0, NULL
, HFILL
}
7713 { &hf_homeplug_av_cc_assoc_snid
,
7714 { "Short Network ID", "homeplug_av.cc_assoc.snid",
7715 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7717 { &hf_homeplug_av_cc_assoc_tei
,
7718 { "TEI", "homeplug_av.cc_assoc.tei",
7719 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7721 { &hf_homeplug_av_cc_assoc_lease_time
,
7722 { "Lease time (min)", "homeplug_av.cc_assoc.lease_time",
7723 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7725 /* CM_UNASSOCIATED_STA_IND */
7726 { &hf_homeplug_av_cm_unassoc_sta_nid
,
7727 { "Network ID", "homeplug_av.cm_unassoc_sta.nid",
7728 FT_BYTES
, SEP_COLON
, NULL
, 0x0, NULL
, HFILL
}
7730 { &hf_homeplug_av_cm_unassoc_sta_cco_cap
,
7731 { "CCo Capability", "homeplug_av.cm_unassoc_sta.cco_cap",
7732 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_avln_status_vals
), HOMEPLUG_AV_AVLN_STATUS_MASK
, NULL
, HFILL
}
7734 /* CC_SET_TEI_MAP_IND */
7735 { &hf_homeplug_av_cc_set_tei_map_ind_mode
,
7736 { "Mode", "homeplug_av.cc_set_tei_map_ind.mode",
7737 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_cc_set_tei_map_ind_mode_vals
), 0x0, NULL
, HFILL
}
7739 { &hf_homeplug_av_cc_set_tei_map_ind_num
,
7740 { "Number of entries", "homeplug_av.cc_set_tei_map_ind.num",
7741 FT_UINT8
, BASE_DEC_HEX
, NULL
, 0x0, NULL
, HFILL
}
7743 { &hf_homeplug_av_cc_set_tei_map_ind_tei
,
7744 { "TEI", "homeplug_av.cc_set_tei_map_ind.tei",
7745 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7747 { &hf_homeplug_av_cc_set_tei_map_ind_mac
,
7748 { "MAC Address", "homeplug_av.cc_set_tei_map_ind.mac",
7749 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7751 { &hf_homeplug_av_cc_set_tei_map_ind_status
,
7752 { "Status", "homeplug_av.cc_set_tei_map_ind.status",
7753 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_cc_set_tei_map_ind_status_vals
), 0x0, NULL
, HFILL
}
7756 /* CM_SLAC_PARM.* */
7757 { &hf_homeplug_av_gp_cm_slac_parm_apptype
,
7758 { "Application type", "homeplug_av.gp.cm_slac_parm.apptype",
7759 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7761 { &hf_homeplug_av_gp_cm_slac_parm_sectype
,
7762 { "Security in M-Sound Message", "homeplug_av.gp.cm_slac_parm.sectype",
7763 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_gp_cm_slac_parm_sectype_vals
), 0x0, NULL
, HFILL
}
7765 { &hf_homeplug_av_gp_cm_slac_parm_runid
,
7766 { "Run ID", "homeplug_av.gp.cm_slac_parm.runid",
7767 FT_BYTES
, SEP_COLON
, NULL
, 0x0, NULL
, HFILL
}
7769 { &hf_homeplug_av_gp_cm_slac_parm_cipher_size
,
7770 { "Cipher Suite Set Size", "homeplug_av.gp.cm_slac_parm.cipher_size",
7771 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7773 { &hf_homeplug_av_gp_cm_slac_parm_cipher
,
7774 { "Cipher Suite", "homeplug_av.gp.cm_slac_parm.cipher",
7775 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7777 { &hf_homeplug_av_gp_cm_slac_parm_sound_target
,
7778 { "M-Sound Target", "homeplug_av.gp.cm_slac_parm.sound_target",
7779 FT_BYTES
, SEP_COLON
, NULL
, 0x0, NULL
, HFILL
}
7781 { &hf_homeplug_av_gp_cm_slac_parm_sound_count
,
7782 { "M-Sound Count", "homeplug_av.gp.cm_slac_parm.sound_count",
7783 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7785 { &hf_homeplug_av_gp_cm_slac_parm_time_out
,
7786 { "M-Sound MPDU Time Out (N*100 msec)", "homeplug_av.gp.cm_slac_parm.time_out",
7787 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7789 { &hf_homeplug_av_gp_cm_slac_parm_resptype
,
7790 { "Response type", "homeplug_av.gp.cm_slac_parm.resptype",
7791 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_gp_cm_slac_parm_resptype_vals
), 0x0, NULL
, HFILL
}
7793 { &hf_homeplug_av_gp_cm_slac_parm_forwarding_sta
,
7794 { "Forwarded to MAC", "homeplug_av.gp.cm_slac_parm.forwarding_sta",
7795 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7797 /* CM_ATTEN_PROFILE_IND */
7798 { &hf_homeplug_av_gp_cm_atten_profile_ind_pev_mac
,
7799 { "PEV MAC Address", "homeplug_av.gp.cm_atten_profile_ind.pev_mac",
7800 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7802 { &hf_homeplug_av_gp_cm_atten_profile_ind_num_groups
,
7803 { "Number of Groups", "homeplug_av.gp.cm_atten_profile_ind.groups_count",
7804 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7806 { &hf_homeplug_av_gp_cm_atten_profile_ind_aag
,
7807 { "Average Attenuation of group (dB)", "homeplug_av.gp.cm_atten_profile_ind.aag",
7808 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7811 { &hf_homeplug_av_gp_cm_atten_char_result
,
7812 { "Result", "homeplug_av.gp.cm_atten_char.result",
7813 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_generic_status_vals
), 0x0, NULL
, HFILL
}
7815 { &hf_homeplug_av_gp_cm_atten_char_apptype
,
7816 { "Application type", "homeplug_av.gp.cm_atten_char.apptype",
7817 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7819 { &hf_homeplug_av_gp_cm_atten_char_sectype
,
7820 { "Security", "homeplug_av.gp.cm_atten_char.sectype",
7821 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_gp_cm_slac_parm_sectype_vals
), 0x0, NULL
, HFILL
}
7823 { &hf_homeplug_av_gp_cm_atten_char_source_mac
,
7824 { "Source MAC", "homeplug_av.gp.cm_atten_char.source_mac",
7825 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7827 { &hf_homeplug_av_gp_cm_atten_char_runid
,
7828 { "Run ID", "homeplug_av.gp.cm_atten_char.runid",
7829 FT_BYTES
, SEP_COLON
, NULL
, 0x0, NULL
, HFILL
}
7831 { &hf_homeplug_av_gp_cm_atten_char_source_id
,
7832 { "Source ID", "homeplug_av.gp.cm_atten_char.source_id",
7833 FT_BYTES
, SEP_COLON
, NULL
, 0x0, NULL
, HFILL
}
7835 { &hf_homeplug_av_gp_cm_atten_char_resp_id
,
7836 { "Response ID", "homeplug_av.gp.cm_atten_char.resp_id",
7837 FT_BYTES
, SEP_COLON
, NULL
, 0x0, NULL
, HFILL
}
7839 { &hf_homeplug_av_gp_cm_atten_char_numgroups
,
7840 { "Number of Groups", "homeplug_av.gp.cm_atten_char.groups_count",
7841 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7843 { &hf_homeplug_av_gp_cm_atten_char_numsounds
,
7844 { "Number of Sounds", "homeplug_av.gp.cm_atten_char.sounds_count",
7845 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7847 { &hf_homeplug_av_gp_cm_atten_char_aag
,
7848 { "Average Attenuation of group (dB)", "homeplug_av.gp.cm_atten_char.aag",
7849 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7851 { &hf_homeplug_av_gp_cm_atten_char_profile
,
7852 { "Signal level attenuation profile", "homeplug_av.gp.cm_atten_char.profile",
7853 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7855 { &hf_homeplug_av_gp_cm_atten_char_cms_data
,
7856 { "CMS Data", "homeplug_av.gp.cm_atten_char.cms_data",
7857 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7859 /* CM_START_ATTEN_CHAR */
7860 { &hf_homeplug_av_gp_cm_start_atten_char_time_out
,
7861 { "M-Sound MPDU Time Out (N*100 msec)", "homeplug_av.gp.cm_start_atten_char.time_out",
7862 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7864 { &hf_homeplug_av_gp_cm_start_atten_char_resptype
,
7865 { "Response type", "homeplug_av.gp.cm_start_atten_char.resptype",
7866 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_gp_cm_slac_parm_resptype_vals
), 0x0, NULL
, HFILL
}
7868 { &hf_homeplug_av_gp_cm_start_atten_char_forwarding_sta
,
7869 { "Forwarded to MAC", "homeplug_av.gp.cm_start_atten_char.sound_forwarding_sta",
7870 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7872 { &hf_homeplug_av_gp_cm_start_atten_char_runid
,
7873 { "Run ID", "homeplug_av.gp.cm_start_atten_char.runid",
7874 FT_BYTES
, SEP_COLON
, NULL
, 0x0, NULL
, HFILL
}
7876 { &hf_homeplug_av_gp_cm_start_atten_char_numsounds
,
7877 { "Number of Sounds", "homeplug_av.gp.cm_start_atten_char.sounds_count",
7878 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7881 { &hf_homeplug_av_gp_cm_mnbc_sound_apptype
,
7882 { "Application type", "homeplug_av.gp.cm_mnbc_sound.apptype",
7883 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7885 { &hf_homeplug_av_gp_cm_mnbc_sound_sectype
,
7886 { "Security", "homeplug_av.gp.cm_mnbc_sound.sectype",
7887 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_gp_cm_slac_parm_sectype_vals
), 0x0, NULL
, HFILL
}
7889 { &hf_homeplug_av_gp_cm_mnbc_sound_sender_id
,
7890 { "Sender ID", "homeplug_av.gp.cm_mnbc_sound.sender_id",
7891 FT_BYTES
, SEP_COLON
, NULL
, 0x0, NULL
, HFILL
}
7893 { &hf_homeplug_av_gp_cm_mnbc_sound_countdown
,
7894 { "Remaining Number of Sounds", "homeplug_av.gp.cm_mnbc_sound.countdown",
7895 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7897 { &hf_homeplug_av_gp_cm_mnbc_sound_runid
,
7898 { "Run ID", "homeplug_av.gp.cm_mnbc_sound.runid",
7899 FT_BYTES
, SEP_COLON
, NULL
, 0x0, NULL
, HFILL
}
7901 { &hf_homeplug_av_gp_cm_mnbc_sound_rsvd
,
7902 { "Reserved", "homeplug_av.gp.cm_mnbc_sound.reserved",
7903 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7905 { &hf_homeplug_av_gp_cm_mnbc_sound_rnd
,
7906 { "Random number", "homeplug_av.gp.cm_mnbc_sound.rnd",
7907 FT_BYTES
, SEP_SPACE
, NULL
, 0x0, NULL
, HFILL
}
7910 { &hf_homeplug_av_gp_cm_validate_signaltype
,
7911 { "Signal type", "homeplug_av.gp.cm_validate.signaltype",
7912 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_gp_cm_validate_signaltype_vals
), 0x0, NULL
, HFILL
}
7914 { &hf_homeplug_av_gp_cm_validate_timer
,
7915 { "Timer (N*100 ms)", "homeplug_av.gp.cm_validate.timer",
7916 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7918 { &hf_homeplug_av_gp_cm_validate_result
,
7919 { "Result", "homeplug_av.gp.cm_validate.result",
7920 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_gp_cm_validate_result_vals
), 0x0, NULL
, HFILL
}
7922 { &hf_homeplug_av_gp_cm_validate_togglenum
,
7923 { "Number of detected toggles", "homeplug_av.gp.cm_validate.togglenum",
7924 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
7927 { &hf_homeplug_av_gp_cm_slac_match_apptype
,
7928 { "Application type", "homeplug_av.gp.cm_slac_match.apptype",
7929 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7931 { &hf_homeplug_av_gp_cm_slac_match_sectype
,
7932 { "Security", "homeplug_av.gp.cm_slac_match.sectype",
7933 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_gp_cm_slac_parm_sectype_vals
), 0x0, NULL
, HFILL
}
7935 { &hf_homeplug_av_gp_cm_slac_match_length
,
7936 { "Length", "homeplug_av.gp.cm_slac_match.length",
7937 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
7939 { &hf_homeplug_av_gp_cm_slac_match_pev_id
,
7940 { "PEV ID", "homeplug_av.gp.cm_slac_match.pev_id",
7941 FT_BYTES
, SEP_COLON
, NULL
, 0x0, NULL
, HFILL
}
7943 { &hf_homeplug_av_gp_cm_slac_match_pev_mac
,
7944 { "PEV MAC", "homeplug_av.gp.cm_slac_match.pev_mac",
7945 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7947 { &hf_homeplug_av_gp_cm_slac_match_evse_id
,
7948 { "EVSE ID", "homeplug_av.gp.cm_slac_match.evse_id",
7949 FT_BYTES
, SEP_COLON
, NULL
, 0x0, NULL
, HFILL
}
7951 { &hf_homeplug_av_gp_cm_slac_match_evse_mac
,
7952 { "EVSE MAC", "homeplug_av.gp.cm_slac_match.evse_mac",
7953 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7955 { &hf_homeplug_av_gp_cm_slac_match_runid
,
7956 { "Run ID", "homeplug_av.gp.cm_slac_match.runid",
7957 FT_BYTES
, SEP_COLON
, NULL
, 0x0, NULL
, HFILL
}
7959 { &hf_homeplug_av_gp_cm_slac_match_rsvd
,
7960 { "Reserved", "homeplug_av.gp.cm_slac_match.rsvd",
7961 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7963 { &hf_homeplug_av_gp_cm_slac_match_nid
,
7964 { "Network ID", "homeplug_av.gp.cm_slac_match.nid",
7965 FT_BYTES
, SEP_COLON
, NULL
, 0x0, NULL
, HFILL
}
7967 { &hf_homeplug_av_gp_cm_slac_match_nmk
,
7968 { "Network Membership Key (NMK)", "homeplug_av.gp.cm_slac_match.nmk",
7969 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
7971 /* CM_SLAC_USER_DATA */
7972 { &hf_homeplug_av_gp_cm_slac_user_data_broadcast_tlv_type
,
7973 { "Broadcast TLV", "homeplug_av.gp.cm_slac_user_data.broadcast",
7974 FT_UINT24
, BASE_HEX
, VALS(homeplug_av_gp_cm_slac_user_data_broadcast_vals
), HOMEPLUG_AV_GP_CM_SLAC_USER_DATA_BROADCAST_MASK
, NULL
, HFILL
}
7976 { &hf_homeplug_av_gp_cm_slac_user_data_tlv
,
7977 { "TLV", "homeplug_av.gp.cm_slac_user_data.tlv",
7978 FT_UINT16
, BASE_HEX
, NULL
, HOMEPLUG_AV_GP_CM_SLAC_USER_DATA_TLV_TYPE_MASK
, NULL
, HFILL
}
7980 { &hf_homeplug_av_gp_cm_slac_user_data_tlv_type
,
7981 { "Type", "homeplug_av.gp.cm_slac_user_data.tlv.type",
7982 FT_UINT16
, BASE_HEX
, VALS(homeplug_av_gp_cm_slac_user_data_tlv_types_vals
), HOMEPLUG_AV_GP_CM_SLAC_USER_DATA_TLV_TYPE_MASK
, NULL
, HFILL
}
7984 { &hf_homeplug_av_gp_cm_slac_user_data_tlv_length
,
7985 { "Length", "homeplug_av.gp.cm_slac_user_data.tlv.length",
7986 FT_UINT16
, BASE_HEX
, NULL
, HOMEPLUG_AV_GP_CM_SLAC_USER_DATA_TLV_LENGTH_MASK
, NULL
, HFILL
}
7988 { &hf_homeplug_av_gp_cm_slac_user_data_tlv_str_bytes
,
7989 { "Data", "homeplug_av.gp.cm_slac_user_data.tlv.str",
7990 FT_BYTES
, SEP_SPACE
, NULL
, 0x0, NULL
, HFILL
}
7992 { &hf_homeplug_av_gp_cm_slac_user_data_tlv_oui
,
7993 { "OUI", "homeplug_av.gp.cm_slac_user_data.tlv.oui",
7994 FT_UINT24
, BASE_HEX
, VALS(homeplug_av_vendors_oui_vals
), 0x0, NULL
, HFILL
}
7996 { &hf_homeplug_av_gp_cm_slac_user_data_tlv_subtype
,
7997 { "Subtype", "homeplug_av.gp.cm_slac_user_data.tlv.subtype",
7998 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8000 { &hf_homeplug_av_gp_cm_slac_user_data_tlv_info_str
,
8001 { "Data", "homeplug_av.gp.cm_slac_user_data.tlv.info_str",
8002 FT_BYTES
, SEP_SPACE
, NULL
, 0x0, NULL
, HFILL
}
8004 /* ST/IoTecha specific fields */
8005 { &hf_homeplug_av_st_iotecha_header_rsvd
,
8006 { "Reserved", "homeplug_av.st_iotecha.rsvd",
8007 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8009 { &hf_homeplug_av_st_iotecha_header_mmever
,
8010 { "MME version", "homeplug_av.st_iotecha.mmever",
8011 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8013 { &hf_homeplug_av_st_iotecha_header_mver
,
8014 { "Message version", "homeplug_av.st_iotecha.mver",
8015 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8017 { &hf_homeplug_av_st_iotecha_auth_nmk
,
8018 { "NMK", "homeplug_av.st_iotecha.auth.nmk",
8019 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8021 { &hf_homeplug_av_st_iotecha_status_byte
,
8022 { "Status", "homeplug_av.st_iotecha.auth.status",
8023 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_generic_status_vals
), 0x0, NULL
, HFILL
}
8025 { &hf_homeplug_av_st_iotecha_linkstatus_status
,
8026 { "Link status", "homeplug_av.st_iotecha.linkstatus.status",
8027 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_st_iotecha_linkstatus_status_vals
), 0x0, NULL
, HFILL
}
8029 { &hf_homeplug_av_st_iotecha_linkstatus_devmode
,
8030 { "DevMode", "homeplug_av.st_iotecha.linkstatus.devmode",
8031 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_st_iotecha_linkstatus_devmode_vals
), 0x0, NULL
, HFILL
}
8033 { &hf_homeplug_av_st_iotecha_stp_discover_tlv
,
8034 { "ST/IoTecha TLV", "homeplug_av.st_iotecha.stp_discover.tlv",
8035 FT_UINT16
, BASE_HEX
, VALS(homeplug_av_st_iotecha_stp_discover_tlv_type_vals
), HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_MASK
, NULL
, HFILL
}
8037 { &hf_homeplug_av_st_iotecha_stp_discover_tlv_type
,
8038 { "Type", "homeplug_av.st_iotecha.stp_discover.tlv.type",
8039 FT_UINT16
, BASE_HEX
, VALS(homeplug_av_st_iotecha_stp_discover_tlv_type_vals
), HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_TYPE_MASK
, NULL
, HFILL
}
8041 { &hf_homeplug_av_st_iotecha_stp_discover_tlv_length
,
8042 { "Length", "homeplug_av.st_iotecha.stp_discover.tlv.length",
8043 FT_UINT16
, BASE_DEC
, NULL
, HOMEPLUG_AV_ST_IOTECHA_STP_DISCOVER_TLV_LENGTH_MASK
, NULL
, HFILL
}
8045 { &hf_homeplug_av_st_iotecha_stp_discover_tlv_value_bytes
,
8046 { "Value", "homeplug_av.st_iotecha.stp_discover.tlv.value",
8047 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8049 { &hf_homeplug_av_st_iotecha_stp_discover_tlv_value_string
,
8050 { "Value", "homeplug_av.st_iotecha.stp_discover.tlv.value_string",
8051 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8053 { &hf_homeplug_av_st_iotecha_gain_ask
,
8054 { "Requested Max Gain", "homeplug_av.st_iotecha.gainmax.ask",
8055 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8057 { &hf_homeplug_av_st_iotecha_gain_new
,
8058 { "New (Current) Max Gain", "homeplug_av.st_iotecha.gainmax.new",
8059 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8061 { &hf_homeplug_av_st_iotecha_gain_prev
,
8062 { "Previous Max Gain", "homeplug_av.st_iotecha.gainmax.prev",
8063 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8065 { &hf_homeplug_av_st_iotecha_tei_count
,
8066 { "Count of TEI", "homeplug_av.st_iotecha.tei.count",
8067 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8069 { &hf_homeplug_av_st_iotecha_tei
,
8070 { "TEI", "homeplug_av.st_iotecha.tei",
8071 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8073 { &hf_homeplug_av_st_iotecha_tei_snap_addr_count
,
8074 { "Number of remote address entities", "homeplug_av.st_iotecha.tei.snapshot.count",
8075 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8077 { &hf_homeplug_av_st_iotecha_tei_snap_tei
,
8078 { "Associated TEI", "homeplug_av.st_iotecha.tei.snapshot.tei",
8079 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8081 { &hf_homeplug_av_st_iotecha_mac_address
,
8082 { "MAC Address", "homeplug_av.st_iotecha.macaddress",
8083 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8085 { &hf_homeplug_av_st_iotecha_tei_snap_mac_address_flag
,
8086 { "Flags", "homeplug_av.st_iotecha.tei.snapshot.flags",
8087 FT_UINT16
, BASE_HEX
, VALS(homeplug_av_st_iotecha_mac_address_flag_vals
), 0x0F, NULL
, HFILL
}
8089 { &hf_homeplug_av_st_iotecha_bss_list_count
,
8090 { "BSS Entries Count", "homeplug_av.st_iotecha.bss.count",
8091 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8093 { &hf_homeplug_av_st_iotecha_bss_entry
,
8094 { "BSS Entry", "homeplug_av.st_iotecha.bss.entry",
8095 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8097 { &hf_homeplug_av_st_iotecha_bss_type
,
8098 { "Type", "homeplug_av.st_iotecha.bss.entry.type",
8099 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_st_iotecha_stp_get_bss_tlv_type_vals
), 0x0, NULL
, HFILL
}
8101 { &hf_homeplug_av_st_iotecha_bss_value_bytes
,
8102 { "Value", "homeplug_av.st_iotecha.bss.entry.value",
8103 FT_BYTES
, SEP_COLON
| BASE_ALLOW_ZERO
, NULL
, 0x0, NULL
, HFILL
}
8105 { &hf_homeplug_av_st_iotecha_chanqual_req_type
,
8106 { "Request Type", "homeplug_av.st_iotecha.chanqual.reqtype",
8107 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_st_iotecha_chanqual_reqtype_vals
), 0x0, NULL
, HFILL
}
8109 { &hf_homeplug_av_st_iotecha_chanqual_substatus
,
8110 { "Subscription Status", "homeplug_av.st_iotecha.chanqual.substatus",
8111 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_st_iotecha_chanqual_substatus_vals
), 0x0, NULL
, HFILL
}
8113 { &hf_homeplug_av_st_iotecha_chanqual_mac_local
,
8114 { "MAC of local node", "homeplug_av.st_iotecha.chanqual.mac.local",
8115 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8117 { &hf_homeplug_av_st_iotecha_chanqual_mac_remote
,
8118 { "MAC of remote node", "homeplug_av.st_iotecha.chanqual.mac.remote",
8119 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8121 { &hf_homeplug_av_st_iotecha_chanqual_source
,
8122 { "Source of this report", "homeplug_av.st_iotecha.chanqual.source",
8123 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_st_iotecha_chanqual_tei_source_vals
), 0x0, NULL
, HFILL
}
8125 { &hf_homeplug_av_st_iotecha_chanqual_response_type
,
8126 { "Response Type", "homeplug_av.st_iotecha.chanqual.responsetype",
8127 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_st_iotecha_chanqual_responsetype_vals
), 0x0, NULL
, HFILL
}
8129 { &hf_homeplug_av_st_iotecha_chanqual_tmi_count
,
8130 { "Size of TMI List", "homeplug_av.st_iotecha.chanqual.tmi.count",
8131 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8133 { &hf_homeplug_av_st_iotecha_chanqual_tmi
,
8134 { "TMI List", "homeplug_av.st_iotecha.chanqual.chanqual.tmi",
8135 FT_BYTES
, SEP_SPACE
, NULL
, 0x0, NULL
, HFILL
}
8137 { &hf_homeplug_av_st_iotecha_chanqual_int
,
8138 { "Intervals List", "homeplug_av.st_iotecha.int",
8139 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8141 { &hf_homeplug_av_st_iotecha_chanqual_int_count
,
8142 { "Size of Interval List", "homeplug_av.st_iotecha.chanqual.int.count",
8143 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8145 { &hf_homeplug_av_st_iotecha_chanqual_int_et
,
8146 { "End Time of interval", "homeplug_av.st_iotecha.chanqual.int.et",
8147 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8149 { &hf_homeplug_av_st_iotecha_chanqual_int_tmi
,
8150 { "Interval", "homeplug_av.st_iotecha.chanqual.int.tmi",
8151 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_st_iotecha_chanqual_tmi_vals
), 0x0, NULL
, HFILL
}
8153 { &hf_homeplug_av_st_iotecha_chanqual_tmi_attached
,
8154 { "TMI of the attached Tone Map", "homeplug_av.st_iotecha.chanqual.tmi_attached",
8155 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8157 { &hf_homeplug_av_st_iotecha_chanqual_fec_type
,
8158 { "FEC Type/Code Rate", "homeplug_av.st_iotecha.chanqual.fec",
8159 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8161 { &hf_homeplug_av_st_iotecha_chanqual_cbld
,
8162 { "Carrier Bid Loading Data Nibbles", "homeplug_av.st_iotecha.chanqual.cbld",
8163 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8165 { &hf_homeplug_av_st_iotecha_chanqual_cbld_data_low
,
8166 { "CBLD Low", "homeplug_av.st_iotecha.chanqual.cbld.data.low",
8167 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_st_iotecha_chanqual_cbld_data_vals
), HOMEPLUG_AV_ST_IOTECHA_CHANQUAL_CBLD_DATA_MASK_LOW
, NULL
, HFILL
}
8169 { &hf_homeplug_av_st_iotecha_chanqual_cbld_data_high
,
8170 { "CBLD High", "homeplug_av.st_iotecha.chanqual.cbld.data.high",
8171 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_st_iotecha_chanqual_cbld_data_vals
), HOMEPLUG_AV_ST_IOTECHA_CHANQUAL_CBLD_DATA_MASK_HIGH
, NULL
, HFILL
}
8173 { &hf_homeplug_av_st_iotecha_mfct_crc
,
8174 { "CRC plus last CRC", "homeplug_av.st_iotecha.mfct.crc",
8175 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8177 { &hf_homeplug_av_st_iotecha_mfct_total_length
,
8178 { "Total length", "homeplug_av.st_iotecha.mfct.total_length",
8179 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8181 { &hf_homeplug_av_st_iotecha_mfct_offset
,
8182 { "Offset", "homeplug_av.st_iotecha.mfct.offset",
8183 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8185 { &hf_homeplug_av_st_iotecha_mfct_length
,
8186 { "Length", "homeplug_av.st_iotecha.mfct.length",
8187 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8189 { &hf_homeplug_av_st_iotecha_mfct_data
,
8190 { "Update Data", "homeplug_av.st_iotecha.mfct.data",
8191 FT_BYTES
, SEP_SPACE
, NULL
, 0x0, NULL
, HFILL
}
8193 { &hf_homeplug_av_st_iotecha_mfct_timeout
,
8194 { "Time duration before abort", "homeplug_av.st_iotecha.mfct.timeout",
8195 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8197 { &hf_homeplug_av_st_iotecha_mfct_request_type
,
8198 { "Request Type", "homeplug_av.st_iotecha.mfct.request_type",
8199 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_st_iotecha_mfct_request_type_vals
), 0x0, NULL
, HFILL
}
8201 { &hf_homeplug_av_st_iotecha_mfct_result
,
8202 { "Result", "homeplug_av.st_iotecha.mfct.result",
8203 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_st_iotecha_mfct_result_vals
), 0x0, NULL
, HFILL
}
8205 { &hf_homeplug_av_st_iotecha_mfct_reboot
,
8206 { "Reboot when complete", "homeplug_av.st_iotecha.mfct.reboot",
8207 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8209 { &hf_homeplug_av_st_iotecha_mfct_name
,
8210 { "Parameter name", "homeplug_av.st_iotecha.mfct.name",
8211 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8213 { &hf_homeplug_av_st_iotecha_mfct_value
,
8214 { "Value", "homeplug_av.st_iotecha.mfct.value",
8215 FT_BYTES
, SEP_SPACE
, NULL
, 0x0, NULL
, HFILL
}
8217 { &hf_homeplug_av_st_iotecha_mfct_item_offset
,
8218 { "Offset", "homeplug_av.st_iotecha.mfct.item.offset",
8219 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8221 { &hf_homeplug_av_st_iotecha_mfct_item_total_length
,
8222 { "Total length", "homeplug_av.st_iotecha.mfct.item.total_length",
8223 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8225 { &hf_homeplug_av_st_iotecha_stp_fup_mac_da
,
8226 { "MAC DA", "homeplug_av.st_iotecha.stp_fup.mac_da",
8227 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8229 { &hf_homeplug_av_st_iotecha_stp_fup_mac_sa
,
8230 { "MAC SA", "homeplug_av.st_iotecha.stp_fup.mac_sa",
8231 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8233 { &hf_homeplug_av_st_iotecha_stp_fup_mtype
,
8234 { "Message Type", "homeplug_av.st_iotecha.stp_fup.mtype",
8235 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_st_iotecha_stp_fwup_mtype_vals
), 0x0, NULL
, HFILL
}
8237 { &hf_homeplug_av_st_iotecha_cpstate_state
,
8238 { "CP State", "homeplug_av.st_iotecha.cpstate.state",
8239 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_st_iotecha_stp_cpstate_state_vals
), 0x0, NULL
, HFILL
}
8241 { &hf_homeplug_av_st_iotecha_cpstate_pwm_duty
,
8242 { "PWM Duty Cycle", "homeplug_av.st_iotecha.cpstate.pwm_duty",
8243 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8245 { &hf_homeplug_av_st_iotecha_cpstate_pwm_freq
,
8246 { "PWM Frequency", "homeplug_av.st_iotecha.cpstate.pwm_freq",
8247 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8249 { &hf_homeplug_av_st_iotecha_cpstate_voltage
,
8250 { "CP Voltage", "homeplug_av.st_iotecha.cpstate.cp_voltage",
8251 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8253 { &hf_homeplug_av_st_iotecha_cpstate_adc_bitmask
,
8254 { "ADC Channels", "homeplug_av.st_iotecha.cpstate.adc_bitmask",
8255 FT_UINT8
, BASE_CUSTOM
, CF_FUNC(adc_bitmask_base
), 0x0, NULL
, HFILL
}
8257 { &hf_homeplug_av_st_iotecha_cpstate_adc_voltage_1
,
8258 { "ADC Channel 1 (mV)", "homeplug_av.st_iotecha.cpstate.adc_channel_1",
8259 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8261 { &hf_homeplug_av_st_iotecha_cpstate_adc_voltage_2
,
8262 { "ADC Channel 2 (mV)", "homeplug_av.st_iotecha.cpstate.adc_channel_2",
8263 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8265 { &hf_homeplug_av_st_iotecha_cpstate_adc_voltage_3
,
8266 { "ADC Channel 3 (mV)", "homeplug_av.st_iotecha.cpstate.adc_channel_3",
8267 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8269 { &hf_homeplug_av_st_iotecha_user_message_info
,
8270 { "Message", "homeplug_av.st_iotecha.user_message",
8271 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8273 { &hf_homeplug_av_st_iotecha_user_message_details
,
8274 { "Details", "homeplug_av.st_iotecha.user_message_details",
8275 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8277 { &hf_homeplug_av_st_iotecha_test_type
,
8278 { "Test Type", "homeplug_av.st_iotecha.test_type",
8279 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_st_iotecha_test_type_vals
), 0x0, NULL
, HFILL
}
8281 { &hf_homeplug_av_st_iotecha_num_sound
,
8282 { "Number of soundings", "homeplug_av.st_iotecha.num_sound",
8283 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8285 { &hf_homeplug_av_st_iotecha_data_ind_addr
,
8286 { "MAC addr", "homeplug_av.st_iotecha.data_ind_addr",
8287 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8289 { &hf_homeplug_av_st_iotecha_agc_lock
,
8290 { "AgcLock", "homeplug_av.st_iotecha.agc_lock",
8291 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_st_iotecha_agc_lock_vals
), 0x0, NULL
, HFILL
}
8293 { &hf_homeplug_av_st_iotecha_db_agc_val
,
8294 { "DbAgcVal", "homeplug_av.st_iotecha.db_agc_val",
8295 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8297 { &hf_homeplug_av_st_iotecha_test_status
,
8298 { "Status", "homeplug_av.st_iotecha.test_status",
8299 FT_UINT8
, BASE_HEX
, VALS(homeplug_av_st_iotecha_test_status_vals
), 0x0, NULL
, HFILL
}
8301 { &hf_homeplug_av_st_iotecha_suppress_data
,
8302 { "Suppress data", "homeplug_av.st_iotecha.suppress_data",
8303 FT_UINT8
, BASE_DEC
, VALS(homeplug_av_st_iotecha_suppress_data_vals
), 0x0, NULL
, HFILL
}
8305 { &hf_homeplug_av_st_iotecha_sound_remain
,
8306 { "Counter of sound remain", "homeplug_av.st_iotecha.sound_remain",
8307 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8309 { &hf_homeplug_av_st_iotecha_ntb_time
,
8310 { "NTB time", "homeplug_av.st_iotecha.ntb_time",
8311 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8313 { &hf_homeplug_av_st_iotecha_rsvd1
,
8314 { "Reserved", "homeplug_av.st_iotecha.rsvd1",
8315 FT_UINT24
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8317 { &hf_homeplug_av_st_iotecha_rsvd2
,
8318 { "Reserved", "homeplug_av.st_iotecha.rsvd2",
8319 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8321 { &hf_homeplug_av_st_iotecha_num_segments
,
8322 { "Number of msg segments", "homeplug_av.st_iotecha.num_segments",
8323 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8325 { &hf_homeplug_av_st_iotecha_segment
,
8326 { "Index of curr segment", "homeplug_av.st_iotecha.segment",
8327 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8329 { &hf_homeplug_av_st_iotecha_num_chan
,
8330 { "Number of channels", "homeplug_av.st_iotecha.num_chan",
8331 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8333 { &hf_homeplug_av_st_iotecha_chan_start
,
8334 { "Carrier map index of ChanData", "homeplug_av.st_iotecha.chan_start",
8335 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8337 /* End of ST/IoTecha specific fields */
8340 static int *ett
[] = {
8342 &ett_homeplug_av_mmhdr
,
8343 &ett_homeplug_av_mmtype
,
8344 &ett_homeplug_av_fmi
,
8345 &ett_homeplug_av_vendor
,
8346 &ett_homeplug_av_public
,
8348 &ett_homeplug_av_fc
,
8349 &ett_homeplug_av_sof
,
8350 &ett_homeplug_av_rtscts
,
8351 &ett_homeplug_av_sack
,
8352 &ett_homeplug_av_sound
,
8353 &ett_homeplug_av_rsof
,
8354 &ett_homeplug_av_bcn
,
8355 &ett_homeplug_av_bcn_payload
,
8356 &ett_homeplug_av_cc_disc_list_cnf
,
8357 &ett_homeplug_av_cc_sta_info
,
8358 &ett_homeplug_av_cc_net_info
,
8359 &ett_homeplug_av_cm_enc_pld_ind
,
8360 &ett_homeplug_av_cm_enc_pld_rsp
,
8361 &ett_homeplug_av_cm_set_key_req
,
8362 &ett_homeplug_av_cm_set_key_cnf
,
8363 &ett_homeplug_av_cm_get_key_req
,
8364 &ett_homeplug_av_cm_get_key_cnf
,
8365 &ett_homeplug_av_brg_infos_cnf
,
8366 &ett_homeplug_av_cm_nw_infos_cnf
,
8367 &ett_homeplug_av_nw_stats_cnf
,
8369 &ett_homeplug_av_get_sw_cnf
,
8370 &ett_homeplug_av_wr_mem_req
,
8371 &ett_homeplug_av_wr_mem_cnf
,
8372 &ett_homeplug_av_rd_mem_req
,
8373 &ett_homeplug_av_st_mac_req
,
8374 &ett_homeplug_av_st_mac_cnf
,
8375 &ett_homeplug_av_rd_mem_cnf
,
8376 &ett_homeplug_av_get_nvm_cnf
,
8377 &ett_homeplug_av_rs_dev_cnf
,
8378 &ett_homeplug_av_wr_mod_req
,
8379 &ett_homeplug_av_wr_mod_cnf
,
8380 &ett_homeplug_av_wr_mod_ind
,
8381 &ett_homeplug_av_rd_mod_req
,
8382 &ett_homeplug_av_rd_mod_cnf
,
8383 &ett_homeplug_av_mod_nvm_req
,
8384 &ett_homeplug_av_mod_nvm_cnf
,
8385 &ett_homeplug_av_wd_rpt_req
,
8386 &ett_homeplug_av_wd_rpt_ind
,
8387 &ett_homeplug_av_lnk_stats_req
,
8388 &ett_homeplug_av_lnk_stats_cnf
,
8389 &ett_homeplug_av_lnk_stats_tx
,
8390 &ett_homeplug_av_lnk_stats_rx
,
8391 &ett_homeplug_av_lnk_stats_rx_inv
,
8392 &ett_homeplug_av_sniffer_req
,
8393 &ett_homeplug_av_sniffer_cnf
,
8394 &ett_homeplug_av_sniffer_ind
,
8395 &ett_homeplug_av_sniffer_ind_data
,
8396 &ett_homeplug_av_nw_info_cnf
,
8397 &ett_homeplug_av_nw_info_sta_info
,
8398 &ett_homeplug_av_nw_info_net_info
,
8399 &ett_homeplug_av_cp_rpt_req
,
8400 &ett_homeplug_av_cp_rpt_ind
,
8401 &ett_homeplug_av_fr_lbk_req
,
8402 &ett_homeplug_av_fr_lbk_cnf
,
8403 &ett_homeplug_av_lbk_stat_cnf
,
8404 &ett_homeplug_av_set_key_req
,
8405 &ett_homeplug_av_set_key_cnf
,
8406 &ett_homeplug_av_mfg_string_cnf
,
8407 &ett_homeplug_av_rd_cblock_cnf
,
8408 &ett_homeplug_av_cblock_hdr
,
8409 &ett_homeplug_av_cblock
,
8410 &ett_homeplug_av_set_sdram_req
,
8411 &ett_homeplug_av_set_sdram_cnf
,
8412 &ett_homeplug_av_host_action_ind
,
8413 &ett_homeplug_av_host_action_rsp
,
8414 &ett_homeplug_av_op_attr_req
,
8415 &ett_homeplug_av_op_attr_cnf
,
8416 &ett_homeplug_av_op_attr_data
,
8417 &ett_homeplug_av_enet_phy_req
,
8418 &ett_homeplug_av_enet_phy_cnf
,
8419 &ett_homeplug_av_tone_map_tx_req
,
8420 &ett_homeplug_av_tone_map_rx_req
,
8421 &ett_homeplug_av_tone_map_tx_cnf
,
8422 &ett_homeplug_av_tone_map_rx_cnf
,
8423 &ett_homeplug_av_tone_map_carriers
,
8424 &ett_homeplug_av_tone_map_carrier
,
8426 &ett_homeplug_av_gp_cm_atten_char_profile
,
8427 &ett_homeplug_av_gp_cm_slac_user_data_tlv
,
8428 /* ST/IoTecha subtrees */
8429 &ett_homeplug_av_st_iotecha_header
,
8430 &ett_homeplug_av_st_iotecha_type_length_value
,
8431 &ett_homeplug_av_st_iotecha_chanqual_int
,
8432 &ett_homeplug_av_st_iotecha_chanqual_cbld
,
8433 &ett_homeplug_av_st_iotecha_bss_entry
8437 proto_homeplug_av
= proto_register_protocol("HomePlug AV protocol", "HomePlug AV", "homeplug-av");
8439 proto_register_field_array(proto_homeplug_av
, hf
, array_length(hf
));
8441 proto_register_subtree_array(ett
, array_length(ett
));
8443 homeplug_av_handle
= register_dissector("homeplug-av", dissect_homeplug_av
, proto_homeplug_av
);
8447 proto_reg_handoff_homeplug_av(void)
8449 dissector_add_uint("ethertype", ETHERTYPE_HOMEPLUG_AV
, homeplug_av_handle
);
8456 * c-file-style: "bsd"
8459 * indent-tabs-mode: nil
8462 * ex: set shiftwidth=4 tabstop=8 expandtab:
8463 * :indentSize=4:tabSize=8:noTabs=true: