1 /* packet-ipmi-transport.c
2 * Sub-dissectors for IPMI messages (netFn=Transport)
3 * Copyright 2007-2008, Alexey Neyman, Pigeon Point Systems <avn@pigeonpoint.com>
4 * Copyright 2015, Dmitry Bazhenov, Pigeon Point Systems <dima_b@pigeonpoint.com>
6 * Wireshark - Network traffic analyzer
7 * By Gerald Combs <gerald@wireshark.org>
8 * Copyright 1998 Gerald Combs
10 * SPDX-License-Identifier: GPL-2.0-or-later
15 #include <epan/packet.h>
17 #include <wsutil/array.h>
18 #include "packet-ipmi.h"
20 void proto_register_ipmi_transport(void);
22 static int ett_ipmi_trn_lan00_byte1
;
23 static int ett_ipmi_trn_lan01_byte1
;
24 static int ett_ipmi_trn_lan02_byte1
;
25 static int ett_ipmi_trn_lan02_byte2
;
26 static int ett_ipmi_trn_lan02_byte3
;
27 static int ett_ipmi_trn_lan02_byte4
;
28 static int ett_ipmi_trn_lan02_byte5
;
29 static int ett_ipmi_trn_lan04_byte1
;
30 static int ett_ipmi_trn_lan07_byte2
;
31 static int ett_ipmi_trn_lan07_byte3
;
32 static int ett_ipmi_trn_lan10_byte1
;
33 static int ett_ipmi_trn_lan17_byte1
;
34 static int ett_ipmi_trn_lan18_byte1
;
35 static int ett_ipmi_trn_lan18_byte2
;
36 static int ett_ipmi_trn_lan18_byte4
;
37 static int ett_ipmi_trn_lan19_byte1
;
38 static int ett_ipmi_trn_lan19_byte2
;
39 static int ett_ipmi_trn_lan19_byte3
;
40 static int ett_ipmi_trn_lan20_byte12
;
41 static int ett_ipmi_trn_lan21_byte1
;
42 static int ett_ipmi_trn_lan22_byte1
;
43 static int ett_ipmi_trn_lan24_byte1
;
44 static int ett_ipmi_trn_lan24_byte2
;
45 static int ett_ipmi_trn_lan24_byte3
;
46 static int ett_ipmi_trn_lan24_byte4
;
47 static int ett_ipmi_trn_lan24_byte5
;
48 static int ett_ipmi_trn_lan24_byte6
;
49 static int ett_ipmi_trn_lan24_byte7
;
50 static int ett_ipmi_trn_lan24_byte8
;
51 static int ett_ipmi_trn_lan25_byte1
;
52 static int ett_ipmi_trn_lan25_byte2
;
53 static int ett_ipmi_trn_lan25_byte34
;
54 static int ett_ipmi_trn_lan50_byte1
;
55 static int ett_ipmi_trn_lan55_byte3
;
56 static int ett_ipmi_trn_lan56_byte2
;
57 static int ett_ipmi_trn_lan64_byte1
;
58 static int ett_ipmi_trn_serial03_byte1
;
59 static int ett_ipmi_trn_serial04_byte1
;
60 static int ett_ipmi_trn_serial05_byte1
;
61 static int ett_ipmi_trn_serial05_byte2
;
62 static int ett_ipmi_trn_serial06_byte1
;
63 static int ett_ipmi_trn_serial07_byte1
;
64 static int ett_ipmi_trn_serial07_byte2
;
65 static int ett_ipmi_trn_serial08_byte1
;
66 static int ett_ipmi_trn_serial08_byte2
;
67 static int ett_ipmi_trn_serial09_byte1
;
68 static int ett_ipmi_trn_serial09_byte2
;
69 static int ett_ipmi_trn_serial16_byte1
;
70 static int ett_ipmi_trn_serial17_byte1
;
71 static int ett_ipmi_trn_serial17_byte2
;
72 static int ett_ipmi_trn_serial17_byte4
;
73 static int ett_ipmi_trn_serial17_byte5
;
74 static int ett_ipmi_trn_serial19_byte1
;
75 static int ett_ipmi_trn_serial19_byte2
;
76 static int ett_ipmi_trn_serial19_byte3
;
77 static int ett_ipmi_trn_serial20_byte1
;
78 static int ett_ipmi_trn_serial21_byte1
;
79 static int ett_ipmi_trn_serial22_byte1
;
80 static int ett_ipmi_trn_serial23_byte1
;
81 static int ett_ipmi_trn_serial24_byte1
;
82 static int ett_ipmi_trn_serial25_byte2
;
83 static int ett_ipmi_trn_serial28_byte1
;
84 static int ett_ipmi_trn_serial28_byte2
;
85 static int ett_ipmi_trn_serial28_byte10
;
86 static int ett_ipmi_trn_serial28_byte11
;
87 static int ett_ipmi_trn_serial28_byte12
;
88 static int ett_ipmi_trn_serial28_byte13
;
89 static int ett_ipmi_trn_serial28_byte14
;
90 static int ett_ipmi_trn_serial29_byte1
;
91 static int ett_ipmi_trn_serial29_byte2
;
92 static int ett_ipmi_trn_serial30_byte1
;
93 static int ett_ipmi_trn_serial30_byte2
;
94 static int ett_ipmi_trn_serial30_byte3
;
95 static int ett_ipmi_trn_serial33_byte1
;
96 static int ett_ipmi_trn_serial37_byte1
;
97 static int ett_ipmi_trn_serial43_byte1
;
98 static int ett_ipmi_trn_serial50_byte1
;
99 static int ett_ipmi_trn_serial51_byte2
;
100 static int ett_ipmi_trn_serial51_byte3
;
101 static int ett_ipmi_trn_01_byte1
;
102 static int ett_ipmi_trn_02_byte1
;
103 static int ett_ipmi_trn_02_rev
;
104 static int ett_ipmi_trn_03_rq_byte1
;
105 static int ett_ipmi_trn_03_rq_byte2
;
106 static int ett_ipmi_trn_03_rs_byte1
;
107 static int ett_ipmi_trn_04_byte1
;
108 static int ett_ipmi_trn_04_byte2
;
109 static int ett_ipmi_trn_10_byte1
;
110 static int ett_ipmi_trn_11_byte1
;
111 static int ett_ipmi_trn_11_rev
;
112 static int ett_ipmi_trn_12_rq_byte1
;
113 static int ett_ipmi_trn_12_rq_byte2
;
114 static int ett_ipmi_trn_12_rs_byte1
;
115 static int ett_ipmi_trn_13_byte1
;
116 static int ett_ipmi_trn_14_byte1
;
117 static int ett_ipmi_trn_15_byte1
;
118 static int ett_ipmi_trn_16_byte1
;
119 static int ett_ipmi_trn_17_byte1
;
120 static int ett_ipmi_trn_17_byte2
;
121 static int ett_ipmi_trn_18_byte1
;
122 static int ett_ipmi_trn_19_byte1
;
123 static int ett_ipmi_trn_19_byte2
;
124 static int ett_ipmi_trn_XX_usercap
;
125 static int ett_ipmi_trn_XX_cbcp
;
126 static int ett_ipmi_trn_1a_byte1
;
127 static int ett_ipmi_trn_1a_byte2
;
128 static int ett_ipmi_trn_1b_byte1
;
129 static int ett_ipmi_trn_1b_byte2
;
130 static int ett_ipmi_trn_parameter
;
132 static int hf_ipmi_trn_lan00_sip
;
134 static int hf_ipmi_trn_lanXX_oem
;
135 static int hf_ipmi_trn_lanXX_passwd
;
136 static int hf_ipmi_trn_lanXX_md5
;
137 static int hf_ipmi_trn_lanXX_md2
;
138 static int hf_ipmi_trn_lanXX_none
;
140 static int hf_ipmi_trn_lan03_ip
;
142 static int hf_ipmi_trn_lan04_ipsrc
;
144 static int hf_ipmi_trn_lan05_ether
;
146 static int hf_ipmi_trn_lan06_subnet
;
148 static int hf_ipmi_trn_lan07_ttl
;
149 static int hf_ipmi_trn_lan07_flags
;
150 static int hf_ipmi_trn_lan07_precedence
;
151 static int hf_ipmi_trn_lan07_tos
;
153 static int hf_ipmi_trn_lan08_rmcp_port
;
155 static int hf_ipmi_trn_lan09_rmcp_port
;
157 static int hf_ipmi_trn_lan10_responses
;
158 static int hf_ipmi_trn_lan10_gratuitous
;
160 static int hf_ipmi_trn_lan11_arp_interval
;
162 static int hf_ipmi_trn_lan12_def_gw_ip
;
164 static int hf_ipmi_trn_lan13_def_gw_mac
;
166 static int hf_ipmi_trn_lan14_bkp_gw_ip
;
168 static int hf_ipmi_trn_lan15_bkp_gw_mac
;
170 static int hf_ipmi_trn_lan16_comm_string
;
172 static int hf_ipmi_trn_lan17_num_dst
;
174 static int hf_ipmi_trn_lan18_dst_selector
;
175 static int hf_ipmi_trn_lan18_ack
;
176 static int hf_ipmi_trn_lan18_dst_type
;
177 static int hf_ipmi_trn_lan18_tout
;
178 static int hf_ipmi_trn_lan18_retries
;
180 static int hf_ipmi_trn_lan19_dst_selector
;
181 static int hf_ipmi_trn_lan19_addr_format
;
182 static int hf_ipmi_trn_lan19_address
;
183 static int hf_ipmi_trn_lan19_gw_sel
;
184 static int hf_ipmi_trn_lan19_ip
;
185 static int hf_ipmi_trn_lan19_mac
;
187 static int hf_ipmi_trn_lan20_vlan_id_enable
;
188 static int hf_ipmi_trn_lan20_vlan_id
;
190 static int hf_ipmi_trn_lan21_vlan_prio
;
192 static int hf_ipmi_trn_lan22_num_cs_entries
;
194 static int hf_ipmi_trn_lan23_cs_entry
;
196 static int hf_ipmi_trn_lan24_priv1
;
197 static int hf_ipmi_trn_lan24_priv2
;
199 static int hf_ipmi_trn_lan25_dst_selector
;
200 static int hf_ipmi_trn_lan25_addr_format
;
201 static int hf_ipmi_trn_lan25_address
;
202 static int hf_ipmi_trn_lan25_uprio
;
203 static int hf_ipmi_trn_lan25_cfi
;
204 static int hf_ipmi_trn_lan25_vlan_id
;
206 static int hf_ipmi_trn_lan26_gen_event
;
207 static int hf_ipmi_trn_lan26_thresh_number
;
208 static int hf_ipmi_trn_lan26_reset_interval
;
209 static int hf_ipmi_trn_lan26_lock_interval
;
211 static int hf_ipmi_trn_lan50_ipv6_only
;
212 static int hf_ipmi_trn_lan50_both_ipv4_ipv6
;
213 static int hf_ipmi_trn_lan50_ipv6_alerting
;
215 static int hf_ipmi_trn_lan51_enables
;
217 static int hf_ipmi_trn_lan52_traffic_class
;
219 static int hf_ipmi_trn_lanXX_hop_limit
;
221 static int hf_ipmi_trn_lan54_flow_label
;
223 static int hf_ipmi_trn_lan55_static_addr_max
;
224 static int hf_ipmi_trn_lan55_dynamic_addr_max
;
225 static int hf_ipmi_trn_lan55_dhcpv6_support
;
226 static int hf_ipmi_trn_lan55_slaac_support
;
228 static int hf_ipmi_trn_lanXX_addr_selector
;
229 static int hf_ipmi_trn_lanXX_addr_type
;
230 static int hf_ipmi_trn_lanXX_addr_enable
;
231 static int hf_ipmi_trn_lanXX_addr
;
232 static int hf_ipmi_trn_lanXX_prefix_len
;
233 static int hf_ipmi_trn_lanXX_addr_status
;
235 static int hf_ipmi_trn_lanXX_max_duid_blocks
;
237 static int hf_ipmi_trn_lanXX_duid_selector
;
238 static int hf_ipmi_trn_lanXX_block_selector
;
239 static int hf_ipmi_trn_lanXX_duid
;
241 static int hf_ipmi_trn_lanXX_timing_support
;
243 static int hf_ipmi_trn_lanXX_iface_selector
;
244 static int hf_ipmi_trn_lan63_sol_max_delay
;
245 static int hf_ipmi_trn_lan63_sol_timeout
;
246 static int hf_ipmi_trn_lan63_sol_max_rt
;
247 static int hf_ipmi_trn_lan63_req_timeout
;
248 static int hf_ipmi_trn_lan63_req_max_rt
;
249 static int hf_ipmi_trn_lan63_req_max_rc
;
250 static int hf_ipmi_trn_lan63_cnf_max_delay
;
251 static int hf_ipmi_trn_lan63_cnf_timeout
;
252 static int hf_ipmi_trn_lan63_cnf_max_rt
;
253 static int hf_ipmi_trn_lan63_cnf_max_rd
;
254 static int hf_ipmi_trn_lan63_ren_timeout
;
255 static int hf_ipmi_trn_lan63_ren_max_rt
;
256 static int hf_ipmi_trn_lan63_reb_timeout
;
257 static int hf_ipmi_trn_lan63_reb_max_rt
;
258 static int hf_ipmi_trn_lan63_inf_max_delay
;
259 static int hf_ipmi_trn_lan63_inf_timeout
;
260 static int hf_ipmi_trn_lan63_inf_max_rt
;
261 static int hf_ipmi_trn_lan63_rel_timeout
;
262 static int hf_ipmi_trn_lan63_rel_max_rc
;
263 static int hf_ipmi_trn_lan63_dec_timeout
;
264 static int hf_ipmi_trn_lan63_dec_max_rc
;
265 static int hf_ipmi_trn_lan63_hop_count_limit
;
267 static int hf_ipmi_trn_lan64_static_cfg
;
268 static int hf_ipmi_trn_lan64_dynamic_cfg
;
270 static int hf_ipmi_trn_lanXX_router_selector
;
271 static int hf_ipmi_trn_lanXX_router_mac
;
272 static int hf_ipmi_trn_lanXX_router_prefix
;
274 static int hf_ipmi_trn_lan73_num_dynamic_sets
;
276 static int hf_ipmi_trn_lan80_max_rtr_solicitation_delay
;
277 static int hf_ipmi_trn_lan80_rtr_solicitation_interval
;
278 static int hf_ipmi_trn_lan80_max_rtr_solicitations
;
279 static int hf_ipmi_trn_lan80_dup_addr_detect_transmits
;
280 static int hf_ipmi_trn_lan80_max_multicast_solicit
;
281 static int hf_ipmi_trn_lan80_max_unicast_solicit
;
282 static int hf_ipmi_trn_lan80_max_anycast_delay_time
;
283 static int hf_ipmi_trn_lan80_max_neighbor_advertisement
;
284 static int hf_ipmi_trn_lan80_reachable_time
;
285 static int hf_ipmi_trn_lan80_retrans_timer
;
286 static int hf_ipmi_trn_lan80_delay_first_probe_time
;
287 static int hf_ipmi_trn_lan80_max_random_factor
;
288 static int hf_ipmi_trn_lan80_min_random_factor
;
290 static int hf_ipmi_trn_serial03_connmode
;
291 static int hf_ipmi_trn_serial03_terminal
;
292 static int hf_ipmi_trn_serial03_ppp
;
293 static int hf_ipmi_trn_serial03_basic
;
295 static int hf_ipmi_trn_serial04_timeout
;
297 static int hf_ipmi_trn_serial05_cbcp_callback
;
298 static int hf_ipmi_trn_serial05_ipmi_callback
;
299 static int hf_ipmi_trn_serial05_cb_list
;
300 static int hf_ipmi_trn_serial05_cb_user
;
301 static int hf_ipmi_trn_serial05_cb_prespec
;
302 static int hf_ipmi_trn_serial05_no_cb
;
303 static int hf_ipmi_trn_serial05_cb_dest1
;
304 static int hf_ipmi_trn_serial05_cb_dest2
;
305 static int hf_ipmi_trn_serial05_cb_dest3
;
307 static int hf_ipmi_trn_serial06_inactivity
;
308 static int hf_ipmi_trn_serial06_dcd
;
310 static int hf_ipmi_trn_serial07_flowctl
;
311 static int hf_ipmi_trn_serial07_dtrhangup
;
312 static int hf_ipmi_trn_serial07_bitrate
;
314 static int hf_ipmi_trn_serial08_esc_powerup
;
315 static int hf_ipmi_trn_serial08_esc_reset
;
316 static int hf_ipmi_trn_serial08_switch_authcap
;
317 static int hf_ipmi_trn_serial08_switch_rmcp
;
318 static int hf_ipmi_trn_serial08_esc_switch1
;
319 static int hf_ipmi_trn_serial08_esc_switch2
;
320 static int hf_ipmi_trn_serial08_switch_dcdloss
;
321 static int hf_ipmi_trn_serial08_sharing
;
322 static int hf_ipmi_trn_serial08_ping_callback
;
323 static int hf_ipmi_trn_serial08_ping_direct
;
324 static int hf_ipmi_trn_serial08_ping_retry
;
326 static int hf_ipmi_trn_serial09_ring_duration
;
327 static int hf_ipmi_trn_serial09_ring_dead
;
329 static int hf_ipmi_trn_serial10_set_sel
;
330 static int hf_ipmi_trn_serial10_init_str
;
331 static int hf_ipmi_trn_serial11_esc_seq
;
332 static int hf_ipmi_trn_serial12_hangup_seq
;
333 static int hf_ipmi_trn_serial13_dial_cmd
;
334 static int hf_ipmi_trn_serial14_page_blackout
;
335 static int hf_ipmi_trn_serial15_comm_string
;
337 static int hf_ipmi_trn_serial16_ndest
;
339 static int hf_ipmi_trn_serial17_dest_sel
;
340 static int hf_ipmi_trn_serial17_ack
;
341 static int hf_ipmi_trn_serial17_dest_type
;
342 /* static int hf_ipmi_trn_serial17_ack_timeout; */
343 static int hf_ipmi_trn_serial17_alert_retries
;
344 static int hf_ipmi_trn_serial17_call_retries
;
345 static int hf_ipmi_trn_serial17_alert_ack_timeout
;
346 static int hf_ipmi_trn_serial17_dialstr_sel
;
347 static int hf_ipmi_trn_serial17_tap_sel
;
348 static int hf_ipmi_trn_serial17_ipaddr_sel
;
349 static int hf_ipmi_trn_serial17_ppp_sel
;
350 static int hf_ipmi_trn_serial17_unknown
;
352 static int hf_ipmi_trn_serial18_call_retry
;
354 static int hf_ipmi_trn_serial19_destsel
;
355 static int hf_ipmi_trn_serial19_flowctl
;
356 static int hf_ipmi_trn_serial19_dtrhangup
;
357 static int hf_ipmi_trn_serial19_stopbits
;
358 static int hf_ipmi_trn_serial19_charsize
;
359 static int hf_ipmi_trn_serial19_parity
;
360 static int hf_ipmi_trn_serial19_bitrate
;
362 static int hf_ipmi_trn_serial20_num_dial_strings
;
363 static int hf_ipmi_trn_serial21_dialsel
;
364 static int hf_ipmi_trn_serial21_blockno
;
365 static int hf_ipmi_trn_serial21_dialstr
;
366 static int hf_ipmi_trn_serial22_num_ipaddrs
;
367 static int hf_ipmi_trn_serial23_destsel
;
368 static int hf_ipmi_trn_serial23_ipaddr
;
369 static int hf_ipmi_trn_serial24_num_tap_accounts
;
370 static int hf_ipmi_trn_serial25_tap_acct
;
371 static int hf_ipmi_trn_serial25_dialstr_sel
;
372 static int hf_ipmi_trn_serial25_tapsrv_sel
;
373 static int hf_ipmi_trn_serial26_tap_acct
;
374 static int hf_ipmi_trn_serial26_tap_passwd
;
375 static int hf_ipmi_trn_serial27_tap_acct
;
376 static int hf_ipmi_trn_serial27_tap_pager_id
;
378 static int hf_ipmi_trn_serial28_tapsrv_sel
;
379 static int hf_ipmi_trn_serial28_confirm
;
380 static int hf_ipmi_trn_serial28_srvtype
;
381 static int hf_ipmi_trn_serial28_ctrl_esc
;
382 static int hf_ipmi_trn_serial28_t2
;
383 static int hf_ipmi_trn_serial28_t1
;
384 static int hf_ipmi_trn_serial28_t4
;
385 static int hf_ipmi_trn_serial28_t3
;
386 static int hf_ipmi_trn_serial28_t6
;
387 static int hf_ipmi_trn_serial28_t5
;
388 static int hf_ipmi_trn_serial28_n2
;
389 static int hf_ipmi_trn_serial28_n1
;
390 static int hf_ipmi_trn_serial28_n4
;
391 static int hf_ipmi_trn_serial28_n3
;
393 static int hf_ipmi_trn_serial29_op
;
394 static int hf_ipmi_trn_serial29_lineedit
;
395 static int hf_ipmi_trn_serial29_deletectl
;
396 static int hf_ipmi_trn_serial29_echo
;
397 static int hf_ipmi_trn_serial29_handshake
;
398 static int hf_ipmi_trn_serial29_o_newline
;
399 static int hf_ipmi_trn_serial29_i_newline
;
400 static int hf_ipmi_trn_serial30_snooping
;
401 static int hf_ipmi_trn_serial30_snoopctl
;
402 static int hf_ipmi_trn_serial30_negot_ctl
;
403 static int hf_ipmi_trn_serial30_use_xmit_accm
;
404 static int hf_ipmi_trn_serial30_xmit_addr_comp
;
405 static int hf_ipmi_trn_serial30_xmit_proto_comp
;
406 static int hf_ipmi_trn_serial30_ipaddr
;
407 static int hf_ipmi_trn_serial30_accm
;
408 static int hf_ipmi_trn_serial30_addr_comp
;
409 static int hf_ipmi_trn_serial30_proto_comp
;
410 static int hf_ipmi_trn_serial31_port
;
411 static int hf_ipmi_trn_serial32_port
;
412 static int hf_ipmi_trn_serial33_auth_proto
;
413 static int hf_ipmi_trn_serial34_chap_name
;
415 static int hf_ipmi_trn_serial35_recv_accm
;
416 static int hf_ipmi_trn_serial35_xmit_accm
;
417 static int hf_ipmi_trn_serial36_snoop_accm
;
418 static int hf_ipmi_trn_serial37_num_ppp
;
419 static int hf_ipmi_trn_serial38_acct_sel
;
420 static int hf_ipmi_trn_serial38_dialstr_sel
;
421 static int hf_ipmi_trn_serial39_acct_sel
;
422 static int hf_ipmi_trn_serial39_ipaddr
;
423 static int hf_ipmi_trn_serial40_acct_sel
;
424 static int hf_ipmi_trn_serial40_username
;
425 static int hf_ipmi_trn_serial41_acct_sel
;
426 static int hf_ipmi_trn_serial41_userdomain
;
427 static int hf_ipmi_trn_serial42_acct_sel
;
428 static int hf_ipmi_trn_serial42_userpass
;
429 static int hf_ipmi_trn_serial43_acct_sel
;
430 static int hf_ipmi_trn_serial43_auth_proto
;
431 static int hf_ipmi_trn_serial44_acct_sel
;
432 static int hf_ipmi_trn_serial44_hold_time
;
434 static int hf_ipmi_trn_serial45_src_ipaddr
;
435 static int hf_ipmi_trn_serial45_dst_ipaddr
;
436 static int hf_ipmi_trn_serial46_tx_bufsize
;
437 static int hf_ipmi_trn_serial47_rx_bufsize
;
438 static int hf_ipmi_trn_serial48_ipaddr
;
439 static int hf_ipmi_trn_serial49_blockno
;
440 static int hf_ipmi_trn_serial49_dialstr
;
441 static int hf_ipmi_trn_serial50_115200
;
442 static int hf_ipmi_trn_serial50_57600
;
443 static int hf_ipmi_trn_serial50_38400
;
444 static int hf_ipmi_trn_serial50_19200
;
445 static int hf_ipmi_trn_serial50_9600
;
447 static int hf_ipmi_trn_serial51_port_assoc_sel
;
448 static int hf_ipmi_trn_serial51_ipmi_channel
;
449 static int hf_ipmi_trn_serial51_conn_num
;
450 static int hf_ipmi_trn_serial51_ipmi_sharing
;
451 static int hf_ipmi_trn_serial51_ipmi_sol
;
452 static int hf_ipmi_trn_serial51_chan_num
;
453 static int hf_ipmi_trn_serial52_port_assoc_sel
;
454 static int hf_ipmi_trn_serial52_conn_name
;
455 static int hf_ipmi_trn_serial53_port_assoc_sel
;
456 static int hf_ipmi_trn_serial53_chan_name
;
458 static int hf_ipmi_trn_01_chan
;
459 static int hf_ipmi_trn_01_param
;
460 static int hf_ipmi_trn_01_param_data
;
462 static int hf_ipmi_trn_02_getrev
;
463 static int hf_ipmi_trn_02_chan
;
464 static int hf_ipmi_trn_02_param
;
465 static int hf_ipmi_trn_02_set
;
466 static int hf_ipmi_trn_02_block
;
467 static int hf_ipmi_trn_02_rev_present
;
468 static int hf_ipmi_trn_02_rev_compat
;
469 static int hf_ipmi_trn_02_param_data
;
471 static int hf_ipmi_trn_03_chan
;
472 static int hf_ipmi_trn_03_arp_resp
;
473 static int hf_ipmi_trn_03_gratuitous_arp
;
474 static int hf_ipmi_trn_03_status_arp_resp
;
475 static int hf_ipmi_trn_03_status_gratuitous_arp
;
477 static int hf_ipmi_trn_04_chan
;
478 static int hf_ipmi_trn_04_clear
;
479 static int hf_ipmi_trn_04_rx_ippkts
;
480 static int hf_ipmi_trn_04_rx_iphdr_err
;
481 static int hf_ipmi_trn_04_rx_ipaddr_err
;
482 static int hf_ipmi_trn_04_rx_ippkts_frag
;
483 static int hf_ipmi_trn_04_tx_ippkts
;
484 static int hf_ipmi_trn_04_rx_udppkts
;
485 static int hf_ipmi_trn_04_rx_validrmcp
;
486 static int hf_ipmi_trn_04_rx_udpproxy
;
487 static int hf_ipmi_trn_04_dr_udpproxy
;
489 static int hf_ipmi_trn_10_chan
;
490 static int hf_ipmi_trn_10_param
;
491 static int hf_ipmi_trn_10_param_data
;
493 static int hf_ipmi_trn_11_getrev
;
494 static int hf_ipmi_trn_11_chan
;
495 static int hf_ipmi_trn_11_param
;
496 static int hf_ipmi_trn_11_set
;
497 static int hf_ipmi_trn_11_block
;
498 static int hf_ipmi_trn_11_rev_present
;
499 static int hf_ipmi_trn_11_rev_compat
;
500 static int hf_ipmi_trn_11_param_data
;
502 static int hf_ipmi_trn_12_chan
;
503 static int hf_ipmi_trn_12_mux_setting
;
504 static int hf_ipmi_trn_12_sw_to_sys
;
505 static int hf_ipmi_trn_12_sw_to_bmc
;
506 static int hf_ipmi_trn_12_alert
;
507 static int hf_ipmi_trn_12_msg
;
508 static int hf_ipmi_trn_12_req
;
509 static int hf_ipmi_trn_12_mux_state
;
511 static int hf_ipmi_trn_13_chan
;
512 static int hf_ipmi_trn_13_code1
;
513 static int hf_ipmi_trn_13_code2
;
514 static int hf_ipmi_trn_13_code3
;
515 static int hf_ipmi_trn_13_code4
;
516 static int hf_ipmi_trn_13_code5
;
518 static int hf_ipmi_trn_14_chan
;
519 static int hf_ipmi_trn_14_block
;
520 static int hf_ipmi_trn_14_data
;
522 static int hf_ipmi_trn_15_chan
;
523 static int hf_ipmi_trn_15_block
;
524 static int hf_ipmi_trn_15_data
;
526 static int hf_ipmi_trn_16_chan
;
527 static int hf_ipmi_trn_16_src_port
;
528 static int hf_ipmi_trn_16_dst_port
;
529 static int hf_ipmi_trn_16_src_addr
;
530 static int hf_ipmi_trn_16_dst_addr
;
531 static int hf_ipmi_trn_16_bytes
;
533 static int hf_ipmi_trn_17_chan
;
534 static int hf_ipmi_trn_17_clear
;
535 static int hf_ipmi_trn_17_block_num
;
536 static int hf_ipmi_trn_17_size
;
537 static int hf_ipmi_trn_17_data
;
539 static int hf_ipmi_trn_18_state
;
540 static int hf_ipmi_trn_18_ipmi_ver
;
542 static int hf_ipmi_trn_19_chan
;
543 static int hf_ipmi_trn_19_dest_sel
;
545 static int hf_ipmi_trn_XX_cap_cbcp
;
546 static int hf_ipmi_trn_XX_cap_ipmi
;
547 static int hf_ipmi_trn_XX_cbcp_from_list
;
548 static int hf_ipmi_trn_XX_cbcp_user
;
549 static int hf_ipmi_trn_XX_cbcp_prespec
;
550 static int hf_ipmi_trn_XX_cbcp_nocb
;
551 static int hf_ipmi_trn_XX_dst1
;
552 static int hf_ipmi_trn_XX_dst2
;
553 static int hf_ipmi_trn_XX_dst3
;
555 static int hf_ipmi_trn_1a_user
;
556 static int hf_ipmi_trn_1a_chan
;
558 static int hf_ipmi_trn_1b_user
;
559 static int hf_ipmi_trn_1b_chan
;
561 static expert_field ei_ipmi_trn_02_request_param_rev
;
562 static expert_field ei_ipmi_trn_02_request_param_data
;
563 static expert_field ei_ipmi_trn_11_request_param_rev
;
564 static expert_field ei_ipmi_trn_11_request_param_data
;
566 static const value_string lan00_sip_vals
[] = {
567 { 0x00, "Set complete" },
568 { 0x01, "Set in progress" },
569 { 0x02, "Commit write" },
570 { 0x03, "Reserved" },
574 static const value_string lan04_ipsrc_vals
[] = {
575 { 0x00, "Unspecified" },
576 { 0x01, "Static address (manually configured)" },
577 { 0x02, "Address obtained by BMC running DHCP" },
578 { 0x03, "Address loaded by BIOS or system software" },
579 { 0x04, "Address obtained by BMC running other address assignment protocol" },
583 static const struct true_false_string lan18_ack_tfs
= {
584 "Acknowledged", "Unacknowledged"
587 static const value_string lan18_dst_type_vals
[] = {
588 { 0x00, "PET Trap destination" },
594 static const value_string lan19_af_vals
[] = {
595 { 0x00, "IPv4 Address followed by Ethernet/802.3 MAC Address" },
596 { 0x01, "IPv6 Address" },
600 static const struct true_false_string lan19_gw_sel_tfs
= {
601 "Use backup gateway", "Use default gateway"
604 static const struct true_false_string lan20_enable_tfs
= {
605 "Enabled", "Disabled"
608 static const value_string lan24_priv_vals
[] = {
609 { 0x00, "Unspecified" },
610 { 0x01, "Callback" },
612 { 0x03, "Operator" },
613 { 0x04, "Administrator" },
618 static const value_string lan25_af_vals
[] = {
619 { 0x00, "VLAN ID not used" },
620 { 0x01, "802.1q VLAN TAG" },
624 static const value_string lan51_enables
[] = {
625 { 0, "IPv6 addressing disabled" },
626 { 1, "Enable IPv6 addressing only. IPv5 addressing is disabled" },
627 { 2, "Enable IPv6 and IPv4 addressing simultaneously" },
631 static const value_string lanXX_addr_type
[] = {
638 static const value_string lanXX_addr_status
[] = {
639 { 0, "Active (in-use)" },
648 static const value_string lanXX_timing_support
[] = {
649 { 0, "Not supported" },
651 { 2, "Per interface" },
655 static const value_string serialXX_flowctl_vals
[] = {
656 { 0x00, "No flow control" },
657 { 0x01, "RTS/CTS flow control" },
658 { 0x02, "XON/XOFF flow control" },
659 { 0x03, "Reserved" },
663 static const value_string serialXX_bitrate_vals
[] = {
664 { 0x06, "9600 bps" },
665 { 0x07, "19.2 kbps" },
666 { 0x08, "38.4 kbps" },
667 { 0x09, "57.6 kbps" },
668 { 0x0A, "115.2 kbps" },
672 static const struct true_false_string serial03_connmode_tfs
= {
673 "Direct Connect", "Modem Connect"
676 static const value_string serial17_dest_type_vals
[] = {
677 { 0x00, "Dial Page" },
678 { 0x01, "TAP Page" },
679 { 0x02, "PPP Alert" },
680 { 0x03, "Basic Mode Callback" },
681 { 0x04, "PPP Mode Callback" },
687 static const struct true_false_string serial19_stopbits_tfs
= {
688 "2 stop bits", "1 stop bit"
691 static const struct true_false_string serial19_charsize_tfs
= {
695 static const value_string serial19_parity_vals
[] = {
702 static const value_string serial28_confirm_vals
[] = {
703 { 0x00, "ACK received after end-of-transaction only" },
704 { 0x01, "Code 211 and ACK received after ETX" },
705 { 0x02, "Code 211 or 213, and ACK received after ETX" },
709 static const value_string serial29_op_vals
[] = {
710 { 0x00, "Set volatile settings" },
711 { 0x01, "Set non-volatile settings" },
712 { 0x02, "Restore default" },
716 static const value_string serial29_delete_vals
[] = {
718 { 0x01, "<bksp><sp><bksp>" },
722 static const value_string serial29_o_nl_vals
[] = {
724 { 0x01, "<CR><LF>" },
727 { 0x04, "<LF><CR>" },
732 static const value_string serial29_i_nl_vals
[] = {
738 static const value_string serial30_snoopctl_vals
[] = {
739 { 0x00, "BMC uses Transmit ACCM" },
740 { 0x01, "BMC uses Snoop ACCM" },
744 static const value_string serial30_negoctl_vals
[] = {
745 { 0x00, "On initial connection and mux switch" },
746 { 0x01, "On initial connection" },
751 static const struct true_false_string serial30_filter_tfs
= {
752 "Using Transmit ACCM", "Assuming all control chars escaped"
755 static const value_string serial30_ipaddr_val
[] = {
756 { 0x00, "Request IP Address" },
757 { 0x01, "Request Fixed IP Address" },
758 { 0x02, "No Negotiation" },
762 static const value_string serialXX_proto_vals
[] = {
766 { 0x03, "MS-CHAP v1, Windows NT" },
767 { 0x04, "MS-CHAP v1, Lan Manager" },
768 { 0x05, "MS-CHAP v2" },
772 static const struct true_false_string tfs_03_suspend
= {
773 "Suspend", "Do not suspend"
776 static const struct true_false_string tfs_03_arp_status
= {
777 "Occurring", "Suspended"
780 static const struct true_false_string tfs_04_clear
= {
781 "Clear", "Do not clear"
784 static const value_string vals_12_mux
[] = {
785 { 0x00, "Get present status" },
786 { 0x01, "Request switch to system" },
787 { 0x02, "Request switch to BMC" },
788 { 0x03, "Force switch to system" },
789 { 0x04, "Force switch to BMC" },
790 { 0x05, "Block requests to switch to system" },
791 { 0x06, "Allow requests to switch to system" },
792 { 0x07, "Block requests to switch to BMC" },
793 { 0x08, "Allow requests to switch to BMC" },
797 static const struct true_false_string tfs_12_blocked
= {
801 static const struct true_false_string tfs_12_req
= {
802 "accepted/forced", "rejected"
805 static const struct true_false_string tfs_12_mux_state
= {
809 static const value_string vals_18_state
[] = {
810 { 0x00, "No session active" },
811 { 0x01, "Session active (mux switched to BMC)" },
812 { 0x02, "Switching mux to system" },
816 static int * const lanXX_authtypes_byte
[] = { &hf_ipmi_trn_lanXX_oem
, &hf_ipmi_trn_lanXX_passwd
, &hf_ipmi_trn_lanXX_md5
,
817 &hf_ipmi_trn_lanXX_md2
, &hf_ipmi_trn_lanXX_none
, NULL
};
820 lan_serial_00(tvbuff_t
*tvb
, proto_tree
*tree
)
822 static int * const byte1
[] = { &hf_ipmi_trn_lan00_sip
, NULL
};
824 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_lan00_byte1
,
825 byte1
, ENC_LITTLE_ENDIAN
, 0);
829 lan_serial_01(tvbuff_t
*tvb
, proto_tree
*tree
)
831 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, "Authentication types supported: ",
832 "No authentication types supported for this channel", ett_ipmi_trn_lan01_byte1
,
833 lanXX_authtypes_byte
, ENC_LITTLE_ENDIAN
, 0);
837 lan_serial_02(tvbuff_t
*tvb
, proto_tree
*tree
)
839 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, "Authentication types for Callback level: ",
840 "No authentication types enabled", ett_ipmi_trn_lan02_byte1
,
841 lanXX_authtypes_byte
, ENC_LITTLE_ENDIAN
, 0);
842 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, "Authentication types for User level: ",
843 "No authentication types enabled", ett_ipmi_trn_lan02_byte2
,
844 lanXX_authtypes_byte
, ENC_LITTLE_ENDIAN
, 0);
845 proto_tree_add_bitmask_text(tree
, tvb
, 2, 1, "Authentication types for Operator level: ",
846 "No authentication types enabled", ett_ipmi_trn_lan02_byte3
,
847 lanXX_authtypes_byte
, ENC_LITTLE_ENDIAN
, 0);
848 proto_tree_add_bitmask_text(tree
, tvb
, 3, 1, "Authentication types for Administrator level: ",
849 "No authentication types enabled", ett_ipmi_trn_lan02_byte4
,
850 lanXX_authtypes_byte
, ENC_LITTLE_ENDIAN
, 0);
851 proto_tree_add_bitmask_text(tree
, tvb
, 4, 1, "Authentication types for OEM level: ",
852 "No authentication types enabled", ett_ipmi_trn_lan02_byte5
,
853 lanXX_authtypes_byte
, ENC_LITTLE_ENDIAN
, 0);
857 lan_03(tvbuff_t
*tvb
, proto_tree
*tree
)
859 proto_tree_add_item(tree
, hf_ipmi_trn_lan03_ip
, tvb
, 0, 4, ENC_BIG_ENDIAN
);
863 lan_04(tvbuff_t
*tvb
, proto_tree
*tree
)
865 static int * const byte1
[] = { &hf_ipmi_trn_lan04_ipsrc
, NULL
};
867 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_lan04_byte1
,
868 byte1
, ENC_LITTLE_ENDIAN
, 0);
872 lan_05(tvbuff_t
*tvb
, proto_tree
*tree
)
874 proto_tree_add_item(tree
, hf_ipmi_trn_lan05_ether
, tvb
, 0, 6, ENC_NA
);
878 lan_06(tvbuff_t
*tvb
, proto_tree
*tree
)
880 proto_tree_add_item(tree
, hf_ipmi_trn_lan06_subnet
, tvb
, 0, 4, ENC_BIG_ENDIAN
);
884 lan_07(tvbuff_t
*tvb
, proto_tree
*tree
)
886 static int * const byte2
[] = { &hf_ipmi_trn_lan07_flags
, NULL
};
887 static int * const byte3
[] = { &hf_ipmi_trn_lan07_precedence
, &hf_ipmi_trn_lan07_tos
, NULL
};
889 proto_tree_add_item(tree
, hf_ipmi_trn_lan07_ttl
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
890 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
, ett_ipmi_trn_lan07_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
891 proto_tree_add_bitmask_text(tree
, tvb
, 2, 1, NULL
, NULL
, ett_ipmi_trn_lan07_byte3
, byte3
, ENC_LITTLE_ENDIAN
, 0);
895 lan_08(tvbuff_t
*tvb
, proto_tree
*tree
)
897 proto_tree_add_item(tree
, hf_ipmi_trn_lan08_rmcp_port
, tvb
, 0, 2, ENC_LITTLE_ENDIAN
);
901 lan_09(tvbuff_t
*tvb
, proto_tree
*tree
)
903 proto_tree_add_item(tree
, hf_ipmi_trn_lan09_rmcp_port
, tvb
, 0, 2, ENC_LITTLE_ENDIAN
);
907 lan_10(tvbuff_t
*tvb
, proto_tree
*tree
)
909 static int * const byte1
[] = { &hf_ipmi_trn_lan10_responses
, &hf_ipmi_trn_lan10_gratuitous
, NULL
};
911 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_lan10_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
915 lan_11(tvbuff_t
*tvb
, proto_tree
*tree
)
917 proto_tree_add_item(tree
, hf_ipmi_trn_lan11_arp_interval
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
921 lan_12(tvbuff_t
*tvb
, proto_tree
*tree
)
923 proto_tree_add_item(tree
, hf_ipmi_trn_lan12_def_gw_ip
, tvb
, 0, 4, ENC_BIG_ENDIAN
);
927 lan_13(tvbuff_t
*tvb
, proto_tree
*tree
)
929 proto_tree_add_item(tree
, hf_ipmi_trn_lan13_def_gw_mac
, tvb
, 0, 6, ENC_NA
);
933 lan_14(tvbuff_t
*tvb
, proto_tree
*tree
)
935 proto_tree_add_item(tree
, hf_ipmi_trn_lan14_bkp_gw_ip
, tvb
, 0, 4, ENC_BIG_ENDIAN
);
939 lan_15(tvbuff_t
*tvb
, proto_tree
*tree
)
941 proto_tree_add_item(tree
, hf_ipmi_trn_lan15_bkp_gw_mac
, tvb
, 0, 6, ENC_NA
);
945 lan_16(tvbuff_t
*tvb
, proto_tree
*tree
)
947 proto_tree_add_item(tree
, hf_ipmi_trn_lan16_comm_string
, tvb
, 0, 18, ENC_ASCII
);
951 lan_17(tvbuff_t
*tvb
, proto_tree
*tree
)
953 static int * const byte1
[] = { &hf_ipmi_trn_lan17_num_dst
, NULL
};
955 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_lan17_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
959 lan_18(tvbuff_t
*tvb
, proto_tree
*tree
)
961 static int * const byte1
[] = { &hf_ipmi_trn_lan18_dst_selector
, NULL
};
962 static int * const byte2
[] = { &hf_ipmi_trn_lan18_ack
, &hf_ipmi_trn_lan18_dst_type
, NULL
};
963 static int * const byte4
[] = { &hf_ipmi_trn_lan18_retries
, NULL
};
965 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_lan18_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
966 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
, ett_ipmi_trn_lan18_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
967 proto_tree_add_item(tree
, hf_ipmi_trn_lan18_tout
, tvb
, 2, 1, ENC_LITTLE_ENDIAN
);
968 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
, ett_ipmi_trn_lan18_byte4
, byte4
, ENC_LITTLE_ENDIAN
, 0);
972 lan_19(tvbuff_t
*tvb
, proto_tree
*tree
)
974 static int * const byte1
[] = { &hf_ipmi_trn_lan19_dst_selector
, NULL
};
975 static int * const byte2
[] = { &hf_ipmi_trn_lan19_addr_format
, NULL
};
976 static int * const byte3
[] = { &hf_ipmi_trn_lan19_gw_sel
, NULL
};
979 v
= tvb_get_uint8(tvb
, 1) >> 4;
980 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_lan19_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
981 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
, ett_ipmi_trn_lan19_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
984 proto_tree_add_bitmask_text(tree
, tvb
, 2, 1, NULL
, NULL
, ett_ipmi_trn_lan19_byte3
, byte3
, ENC_LITTLE_ENDIAN
, 0);
985 proto_tree_add_item(tree
, hf_ipmi_trn_lan19_ip
, tvb
, 3, 4, ENC_BIG_ENDIAN
);
986 proto_tree_add_item(tree
, hf_ipmi_trn_lan19_mac
, tvb
, 7, 6, ENC_NA
);
989 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_addr
, tvb
, 2, 16, ENC_NA
);
993 proto_tree_add_item(tree
, hf_ipmi_trn_lan19_address
, tvb
, 2, -1, ENC_NA
);
997 lan_20(tvbuff_t
*tvb
, proto_tree
*tree
)
999 static int * const byte12
[] = { &hf_ipmi_trn_lan20_vlan_id_enable
, &hf_ipmi_trn_lan20_vlan_id
, NULL
};
1001 proto_tree_add_bitmask_text(tree
, tvb
, 0, 2, NULL
, NULL
, ett_ipmi_trn_lan20_byte12
, byte12
, ENC_LITTLE_ENDIAN
, 0);
1005 lan_21(tvbuff_t
*tvb
, proto_tree
*tree
)
1007 static int * const byte1
[] = { &hf_ipmi_trn_lan21_vlan_prio
, NULL
};
1009 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_lan21_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1013 lan_22(tvbuff_t
*tvb
, proto_tree
*tree
)
1015 static int * const byte1
[] = { &hf_ipmi_trn_lan22_num_cs_entries
, NULL
};
1017 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_lan22_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1021 lan_23(tvbuff_t
*tvb
, proto_tree
*tree
)
1026 for (i
= 0; i
< 16; i
++) {
1027 v
= tvb_get_uint8(tvb
, i
+ 1);
1028 proto_tree_add_uint_format(tree
, hf_ipmi_trn_lan23_cs_entry
, tvb
, i
+ 1, 1,
1029 v
, "Cipher Suite ID entry %c: %u", 'A' + i
, v
);
1034 lan_24(tvbuff_t
*tvb
, proto_tree
*tree
)
1036 static int * const ett
[] = { &ett_ipmi_trn_lan24_byte1
, &ett_ipmi_trn_lan24_byte2
, &ett_ipmi_trn_lan24_byte3
,
1037 &ett_ipmi_trn_lan24_byte4
, &ett_ipmi_trn_lan24_byte5
, &ett_ipmi_trn_lan24_byte6
, &ett_ipmi_trn_lan24_byte7
,
1038 &ett_ipmi_trn_lan24_byte8
};
1043 for (i
= 0; i
< 8; i
++) {
1044 v
= tvb_get_uint8(tvb
, i
+ 1);
1047 s_tree
= proto_tree_add_subtree_format(tree
, tvb
, i
+ 1, 1,
1048 *ett
[i
], NULL
, "Cipher Suite #%d: %s (0x%02x), Cipher Suite #%d: %s (0x%02x)",
1049 i
* 2 + 1, val_to_str_const(v1
, lan24_priv_vals
, "Reserved"), v1
,
1050 i
* 2 + 2, val_to_str_const(v2
, lan24_priv_vals
, "Reserved"), v2
);
1051 proto_tree_add_uint_format_value(s_tree
, hf_ipmi_trn_lan24_priv1
, tvb
, i
+ 1, 1,
1052 v2
<< 4, " #%d: %s (0x%02x)", i
* 2 + 2, val_to_str_const(v2
, lan24_priv_vals
, "Reserved"), v2
);
1053 proto_tree_add_uint_format_value(s_tree
, hf_ipmi_trn_lan24_priv2
, tvb
, i
+ 1, 1,
1054 v1
, " #%d: %s (0x%02x)", i
* 2 + 1, val_to_str_const(v1
, lan24_priv_vals
, "Reserved"), v1
);
1059 lan_25(tvbuff_t
*tvb
, proto_tree
*tree
)
1061 static int * const byte1
[] = { &hf_ipmi_trn_lan25_dst_selector
, NULL
};
1062 static int * const byte2
[] = { &hf_ipmi_trn_lan25_addr_format
, NULL
};
1063 static int * const byte34
[] = { &hf_ipmi_trn_lan25_uprio
, &hf_ipmi_trn_lan25_cfi
, &hf_ipmi_trn_lan25_vlan_id
, NULL
};
1066 v
= tvb_get_uint8(tvb
, 1) >> 4;
1067 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_lan25_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1068 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
, ett_ipmi_trn_lan25_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1073 proto_tree_add_bitmask_text(tree
, tvb
, 2, 2, NULL
, NULL
, ett_ipmi_trn_lan25_byte34
,
1074 byte34
, ENC_LITTLE_ENDIAN
, 0);
1077 proto_tree_add_item(tree
, hf_ipmi_trn_lan25_address
, tvb
, 2, -1, ENC_LITTLE_ENDIAN
);
1083 lan_26(tvbuff_t
*tvb
, proto_tree
*tree
)
1085 proto_tree_add_item(tree
, hf_ipmi_trn_lan26_gen_event
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1086 proto_tree_add_item(tree
, hf_ipmi_trn_lan26_thresh_number
, tvb
, 1, 1, ENC_LITTLE_ENDIAN
);
1087 proto_tree_add_item(tree
, hf_ipmi_trn_lan26_reset_interval
, tvb
, 2, 2, ENC_LITTLE_ENDIAN
);
1088 proto_tree_add_item(tree
, hf_ipmi_trn_lan26_lock_interval
, tvb
, 4, 2, ENC_LITTLE_ENDIAN
);
1092 lan_50(tvbuff_t
*tvb
, proto_tree
*tree
)
1094 static int * const byte1
[] = { &hf_ipmi_trn_lan50_ipv6_only
,
1095 &hf_ipmi_trn_lan50_both_ipv4_ipv6
,
1096 &hf_ipmi_trn_lan50_ipv6_alerting
, NULL
};
1097 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, "Data 1", NULL
, ett_ipmi_trn_lan50_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1101 lan_51(tvbuff_t
*tvb
, proto_tree
*tree
)
1103 proto_tree_add_item(tree
, hf_ipmi_trn_lan51_enables
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1107 lan_52(tvbuff_t
*tvb
, proto_tree
*tree
)
1109 proto_tree_add_item(tree
, hf_ipmi_trn_lan52_traffic_class
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1113 lan_53_78(tvbuff_t
*tvb
, proto_tree
*tree
)
1115 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_hop_limit
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1119 lan_54(tvbuff_t
*tvb
, proto_tree
*tree
)
1121 proto_tree_add_item(tree
, hf_ipmi_trn_lan54_flow_label
, tvb
, 0, 3, ENC_BIG_ENDIAN
);
1125 lan_55(tvbuff_t
*tvb
, proto_tree
*tree
)
1127 static int * const byte3
[] = { &hf_ipmi_trn_lan55_dhcpv6_support
,
1128 &hf_ipmi_trn_lan55_slaac_support
, NULL
};
1129 proto_tree_add_item(tree
, hf_ipmi_trn_lan55_static_addr_max
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1130 proto_tree_add_item(tree
, hf_ipmi_trn_lan55_dynamic_addr_max
, tvb
, 1, 1, ENC_LITTLE_ENDIAN
);
1131 proto_tree_add_bitmask_text(tree
, tvb
, 2, 1, NULL
, NULL
, ett_ipmi_trn_lan55_byte3
, byte3
, ENC_LITTLE_ENDIAN
, 0);
1135 lan_56(tvbuff_t
*tvb
, proto_tree
*tree
)
1137 static int * const byte2
[] = { &hf_ipmi_trn_lanXX_addr_type
,
1138 &hf_ipmi_trn_lanXX_addr_enable
, NULL
};
1139 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_addr_selector
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1140 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
, ett_ipmi_trn_lan56_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1141 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_addr
, tvb
, 2, 16, ENC_NA
);
1142 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_prefix_len
, tvb
, 18, 1, ENC_LITTLE_ENDIAN
);
1143 if (tvb_captured_length(tvb
) > 19) {
1144 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_addr_status
, tvb
, 19, 1, ENC_LITTLE_ENDIAN
);
1149 lan_57_60(tvbuff_t
*tvb
, proto_tree
*tree
)
1151 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_max_duid_blocks
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1155 lan_58_61(tvbuff_t
*tvb
, proto_tree
*tree
)
1157 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_duid_selector
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1158 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_block_selector
, tvb
, 1, 1, ENC_LITTLE_ENDIAN
);
1159 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_duid
, tvb
, 2, -1, ENC_NA
);
1163 lan_59(tvbuff_t
*tvb
, proto_tree
*tree
)
1165 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_addr_selector
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1166 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_addr_type
, tvb
, 1, 1, ENC_LITTLE_ENDIAN
);
1167 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_addr
, tvb
, 2, 16, ENC_NA
);
1168 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_prefix_len
, tvb
, 18, 1, ENC_LITTLE_ENDIAN
);
1169 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_addr_status
, tvb
, 19, 1, ENC_LITTLE_ENDIAN
);
1173 lan_62_79(tvbuff_t
*tvb
, proto_tree
*tree
)
1175 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_timing_support
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1179 lan_63(tvbuff_t
*tvb
, proto_tree
*tree
)
1183 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_iface_selector
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1184 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_block_selector
, tvb
, 1, 1, ENC_LITTLE_ENDIAN
);
1186 v
= tvb_get_uint8(tvb
, 1);
1188 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_sol_max_delay
, tvb
, 2, 1, ENC_LITTLE_ENDIAN
);
1189 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_sol_timeout
, tvb
, 3, 1, ENC_LITTLE_ENDIAN
);
1190 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_sol_max_rt
, tvb
, 4, 1, ENC_LITTLE_ENDIAN
);
1191 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_req_timeout
, tvb
, 5, 1, ENC_LITTLE_ENDIAN
);
1192 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_req_max_rt
, tvb
, 6, 1, ENC_LITTLE_ENDIAN
);
1193 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_req_max_rc
, tvb
, 7, 1, ENC_LITTLE_ENDIAN
);
1194 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_cnf_max_delay
, tvb
, 8, 1, ENC_LITTLE_ENDIAN
);
1195 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_cnf_timeout
, tvb
, 9, 1, ENC_LITTLE_ENDIAN
);
1196 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_cnf_max_rt
, tvb
, 10, 1, ENC_LITTLE_ENDIAN
);
1197 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_cnf_max_rd
, tvb
, 11, 1, ENC_LITTLE_ENDIAN
);
1198 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_ren_timeout
, tvb
, 12, 1, ENC_LITTLE_ENDIAN
);
1199 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_ren_max_rt
, tvb
, 13, 1, ENC_LITTLE_ENDIAN
);
1200 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_reb_timeout
, tvb
, 14, 1, ENC_LITTLE_ENDIAN
);
1201 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_reb_max_rt
, tvb
, 15, 1, ENC_LITTLE_ENDIAN
);
1202 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_inf_max_delay
, tvb
, 16, 1, ENC_LITTLE_ENDIAN
);
1203 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_inf_timeout
, tvb
, 17, 1, ENC_LITTLE_ENDIAN
);
1204 } else if (v
== 1) {
1205 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_inf_max_rt
, tvb
, 2, 1, ENC_LITTLE_ENDIAN
);
1206 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_rel_timeout
, tvb
, 3, 1, ENC_LITTLE_ENDIAN
);
1207 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_rel_max_rc
, tvb
, 4, 1, ENC_LITTLE_ENDIAN
);
1208 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_dec_timeout
, tvb
, 5, 1, ENC_LITTLE_ENDIAN
);
1209 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_dec_max_rc
, tvb
, 6, 1, ENC_LITTLE_ENDIAN
);
1210 proto_tree_add_item(tree
, hf_ipmi_trn_lan63_hop_count_limit
, tvb
, 7, 1, ENC_LITTLE_ENDIAN
);
1211 proto_tree_add_item(tree
, hf_ipmi_trn_01_param_data
, tvb
, 8, -1, ENC_NA
);
1213 proto_tree_add_item(tree
, hf_ipmi_trn_01_param_data
, tvb
, 2, -1, ENC_NA
);
1218 lan_64(tvbuff_t
*tvb
, proto_tree
*tree
)
1220 static int * const byte1
[] = { &hf_ipmi_trn_lan64_static_cfg
,
1221 &hf_ipmi_trn_lan64_dynamic_cfg
, NULL
};
1222 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_lan64_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1226 lan_65_69(tvbuff_t
*tvb
, proto_tree
*tree
)
1228 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_addr
, tvb
, 0, 16, ENC_NA
);
1232 lan_66_70(tvbuff_t
*tvb
, proto_tree
*tree
)
1234 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_router_mac
, tvb
, 0, 6, ENC_NA
);
1238 lan_67_71(tvbuff_t
*tvb
, proto_tree
*tree
)
1240 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_prefix_len
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1244 lan_68_72(tvbuff_t
*tvb
, proto_tree
*tree
)
1246 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_router_prefix
, tvb
, 0, 16, ENC_NA
);
1250 lan_73(tvbuff_t
*tvb
, proto_tree
*tree
)
1252 proto_tree_add_item(tree
, hf_ipmi_trn_lan73_num_dynamic_sets
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1256 lan_74(tvbuff_t
*tvb
, proto_tree
*tree
)
1258 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_router_selector
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1259 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_addr
, tvb
, 1, 16, ENC_NA
);
1263 lan_75(tvbuff_t
*tvb
, proto_tree
*tree
)
1265 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_router_selector
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1266 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_router_mac
, tvb
, 1, 6, ENC_NA
);
1270 lan_76(tvbuff_t
*tvb
, proto_tree
*tree
)
1272 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_router_selector
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1273 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_prefix_len
, tvb
, 1, 1, ENC_LITTLE_ENDIAN
);
1277 lan_77(tvbuff_t
*tvb
, proto_tree
*tree
)
1279 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_router_selector
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1280 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_router_prefix
, tvb
, 1, 16, ENC_NA
);
1284 lan_80(tvbuff_t
*tvb
, proto_tree
*tree
)
1288 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_iface_selector
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1289 proto_tree_add_item(tree
, hf_ipmi_trn_lanXX_block_selector
, tvb
, 1, 1, ENC_LITTLE_ENDIAN
);
1291 v
= tvb_get_uint8(tvb
, 1);
1293 proto_tree_add_item(tree
, hf_ipmi_trn_lan80_max_rtr_solicitation_delay
, tvb
, 2, 1, ENC_LITTLE_ENDIAN
);
1294 proto_tree_add_item(tree
, hf_ipmi_trn_lan80_rtr_solicitation_interval
, tvb
, 3, 1, ENC_LITTLE_ENDIAN
);
1295 proto_tree_add_item(tree
, hf_ipmi_trn_lan80_max_rtr_solicitations
, tvb
, 4, 1, ENC_LITTLE_ENDIAN
);
1296 proto_tree_add_item(tree
, hf_ipmi_trn_lan80_dup_addr_detect_transmits
, tvb
, 5, 1, ENC_LITTLE_ENDIAN
);
1297 proto_tree_add_item(tree
, hf_ipmi_trn_lan80_max_multicast_solicit
, tvb
, 6, 1, ENC_LITTLE_ENDIAN
);
1298 proto_tree_add_item(tree
, hf_ipmi_trn_lan80_max_unicast_solicit
, tvb
, 7, 1, ENC_LITTLE_ENDIAN
);
1299 proto_tree_add_item(tree
, hf_ipmi_trn_lan80_max_anycast_delay_time
, tvb
, 8, 1, ENC_LITTLE_ENDIAN
);
1300 proto_tree_add_item(tree
, hf_ipmi_trn_lan80_max_neighbor_advertisement
, tvb
, 9, 1, ENC_LITTLE_ENDIAN
);
1301 proto_tree_add_item(tree
, hf_ipmi_trn_lan80_reachable_time
, tvb
, 10, 1, ENC_LITTLE_ENDIAN
);
1302 proto_tree_add_item(tree
, hf_ipmi_trn_lan80_retrans_timer
, tvb
, 11, 1, ENC_LITTLE_ENDIAN
);
1303 proto_tree_add_item(tree
, hf_ipmi_trn_lan80_delay_first_probe_time
, tvb
, 12, 1, ENC_LITTLE_ENDIAN
);
1304 proto_tree_add_item(tree
, hf_ipmi_trn_lan80_max_random_factor
, tvb
, 13, 1, ENC_LITTLE_ENDIAN
);
1305 proto_tree_add_item(tree
, hf_ipmi_trn_lan80_min_random_factor
, tvb
, 14, 1, ENC_LITTLE_ENDIAN
);
1306 proto_tree_add_item(tree
, hf_ipmi_trn_01_param_data
, tvb
, 15, -1, ENC_NA
);
1308 proto_tree_add_item(tree
, hf_ipmi_trn_01_param_data
, tvb
, 2, -1, ENC_NA
);
1313 void (*intrp
)(tvbuff_t
*tvb
, proto_tree
*tree
);
1316 { lan_serial_00
, "Set In Progress" },
1317 { lan_serial_01
, "Authentication Type Support" },
1318 { lan_serial_02
, "Authentication Type Enables" },
1319 { lan_03
, "IP Address" },
1320 { lan_04
, "IP Address Source" },
1321 { lan_05
, "MAC Address" },
1322 { lan_06
, "Subnet Mask" },
1323 { lan_07
, "IPv4 Header Parameters" },
1324 { lan_08
, "Primary RMCP Port Number" },
1325 { lan_09
, "Secondary RMCP Port Number" },
1326 { lan_10
, "BMC-generated ARP Control" },
1327 { lan_11
, "Gratuitous ARP Interval" },
1328 { lan_12
, "Default Gateway Address" },
1329 { lan_13
, "Default Gateway MAC Address" },
1330 { lan_14
, "Backup Gateway Address" },
1331 { lan_15
, "Backup Gateway MAC Address" },
1332 { lan_16
, "Community String" },
1333 { lan_17
, "Number of Destinations" },
1334 { lan_18
, "Destination Type" },
1335 { lan_19
, "Destination Addresses" },
1336 { lan_20
, "VLAN ID (802.1q)" },
1337 { lan_21
, "VLAN Priority (802.1q)" },
1338 { lan_22
, "Cipher Suite Entry Support (RMCP+)" },
1339 { lan_23
, "Cipher Suite Entries (RMCP+)" },
1340 { lan_24
, "Cipher Suite Privilege Levels (RMCP+)" },
1341 { lan_25
, "Destination Address VLAN TAGs" },
1342 { lan_26
, "Bad Password Threshold" },
1343 { NULL
, "Reserved" },
1344 { NULL
, "Reserved" },
1345 { NULL
, "Reserved" },
1346 { NULL
, "Reserved" },
1347 { NULL
, "Reserved" },
1348 { NULL
, "Reserved" },
1349 { NULL
, "Reserved" },
1350 { NULL
, "Reserved" },
1351 { NULL
, "Reserved" },
1352 { NULL
, "Reserved" },
1353 { NULL
, "Reserved" },
1354 { NULL
, "Reserved" },
1355 { NULL
, "Reserved" },
1356 { NULL
, "Reserved" },
1357 { NULL
, "Reserved" },
1358 { NULL
, "Reserved" },
1359 { NULL
, "Reserved" },
1360 { NULL
, "Reserved" },
1361 { NULL
, "Reserved" },
1362 { NULL
, "Reserved" },
1363 { NULL
, "Reserved" },
1364 { NULL
, "Reserved" },
1365 { NULL
, "Reserved" },
1366 { lan_50
, "IPv6/IPv4 Support" },
1367 { lan_51
, "IPv6/IPv4 Addressing enables" },
1368 { lan_52
, "IPv6 Header Static Traffic Class" },
1369 { lan_53_78
, "IPv6 Header Static Hop Limit" },
1370 { lan_54
, "IPv6 Header Flow Label" },
1371 { lan_55
, "IPv6 Status" },
1372 { lan_56
, "IPv6 Static Addresses" },
1373 { lan_57_60
, "IPv6 DHCPv6 Static DUID storage length" },
1374 { lan_58_61
, "IPv6 DHCPv6 Static DUIDs" },
1375 { lan_59
, "IPv6 Dynamic Addresses" },
1376 { lan_57_60
, "IPv6 DHCPv6 Dynamic DUID storage length" },
1377 { lan_58_61
, "IPv6 DHCPv6 Dynamic DUIDs" },
1378 { lan_62_79
, "IPv6 DHCPv6 Timing Configuration Support" },
1379 { lan_63
, "IPv6 DHCPv6 Timing Configuration" },
1380 { lan_64
, "IPv6 Router Address Configuration Control" },
1381 { lan_65_69
, "IPv6 Static Router 1 IP Address" },
1382 { lan_66_70
, "IPv6 Static Router 1 MAC Address" },
1383 { lan_67_71
, "IPv6 Static Router 1 Prefix Length" },
1384 { lan_68_72
, "IPv6 Static Router 1 Prefix Value" },
1385 { lan_65_69
, "IPv6 Static Router 2 IP Address" },
1386 { lan_66_70
, "IPv6 Static Router 2 MAC Address" },
1387 { lan_67_71
, "IPv6 Static Router 2 Prefix Length" },
1388 { lan_68_72
, "IPv6 Static Router 2 Prefix Value" },
1389 { lan_73
, "Number of Dynamic Router Info Sets" },
1390 { lan_74
, "IPv6 Dynamic Router Info IP Address" },
1391 { lan_75
, "IPv6 Dynamic Router Info MAC Address" },
1392 { lan_76
, "IPv6 Dynamic Router Info Prefix Length" },
1393 { lan_77
, "IPv6 Dynamic Router Info Prefix Value" },
1394 { lan_53_78
, "IPv6 Dynamic Router Received Hop Limit" },
1395 { lan_62_79
, "IPv6 NDISC/SLAAC Timing Configuration Support" },
1396 { lan_80
, "IPv6 NDISC/SLAAC Timing Configuration" },
1399 /* Set LAN Configuration Parameters
1402 rq01(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1404 static int * const byte1
[] = { &hf_ipmi_trn_01_chan
, NULL
};
1409 pno
= tvb_get_uint8(tvb
, 1);
1410 if (pno
< array_length(lan_options
)) {
1411 desc
= lan_options
[pno
].name
;
1412 } else if (pno
>= 0xC0) {
1418 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_01_byte1
,
1419 byte1
, ENC_LITTLE_ENDIAN
, 0);
1420 proto_tree_add_uint_format_value(tree
, hf_ipmi_trn_01_param
, tvb
, 1, 1,
1421 pno
, "%s (0x%02x)", desc
, pno
);
1422 if (pno
< array_length(lan_options
) && lan_options
[pno
].intrp
) {
1423 next
= tvb_new_subset_remaining(tvb
, 2);
1424 lan_options
[pno
].intrp(next
, tree
);
1426 proto_tree_add_item(tree
, hf_ipmi_trn_01_param_data
, tvb
, 2, -1, ENC_NA
);
1430 static const value_string cc01
[] = {
1431 { 0x80, "Parameter not supported" },
1432 { 0x81, "Attempt to set the 'set in progress' value (in parameter #0) when not in the 'set complete' state" },
1433 { 0x82, "Attempt to write read-only parameter" },
1437 /* Get LAN Configuration Parameters
1440 rq02(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1442 static int * const byte1
[] = { &hf_ipmi_trn_02_getrev
, &hf_ipmi_trn_02_chan
, NULL
};
1446 pno
= tvb_get_uint8(tvb
, 1);
1448 ipmi_set_data(pinfo
, 0, pno
);
1449 ipmi_set_data(pinfo
, 1, tvb_get_uint8(tvb
, 0) & 0x80);
1455 if (pno
< array_length(lan_options
)) {
1456 desc
= lan_options
[pno
].name
;
1457 } else if (pno
>= 0xC0) {
1463 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1464 ett_ipmi_trn_02_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1465 proto_tree_add_uint_format_value(tree
, hf_ipmi_trn_02_param
, tvb
, 1, 1,
1466 pno
, "%s (0x%02x)", desc
, pno
);
1467 proto_tree_add_item(tree
, hf_ipmi_trn_02_set
, tvb
, 2, 1, ENC_LITTLE_ENDIAN
);
1468 proto_tree_add_item(tree
, hf_ipmi_trn_02_block
, tvb
, 3, 1, ENC_LITTLE_ENDIAN
);
1472 rs02(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1474 static int * const byte1
[] = { &hf_ipmi_trn_02_rev_present
, &hf_ipmi_trn_02_rev_compat
, NULL
};
1476 proto_tree
*subtree
;
1481 ti
= proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1482 ett_ipmi_trn_02_rev
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1484 if (!ipmi_get_data(pinfo
, 0, &pno
) || !ipmi_get_data(pinfo
, 1, &req
)) {
1485 /* No request found - cannot parse further */
1486 if (tvb_captured_length(tvb
) > 1) {
1487 proto_tree_add_item(tree
, hf_ipmi_trn_02_param_data
, tvb
, 1, -1, ENC_NA
);
1492 if ((req
& 0x80) && tvb_captured_length(tvb
) > 1) {
1493 expert_add_info(pinfo
, ti
, &ei_ipmi_trn_02_request_param_rev
);
1494 } else if (!(req
& 0x80) && tvb_captured_length(tvb
) == 1) {
1495 expert_add_info(pinfo
, ti
, &ei_ipmi_trn_02_request_param_data
);
1498 if (pno
< array_length(lan_options
)) {
1499 desc
= lan_options
[pno
].name
;
1500 } else if (pno
>= 0xC0) {
1506 subtree
= proto_tree_add_subtree_format(tree
, tvb
, 0, 0, ett_ipmi_trn_parameter
, NULL
, "Parameter: %s", desc
);
1508 if (tvb_captured_length(tvb
) > 1) {
1509 if (pno
< array_length(lan_options
) && lan_options
[pno
].intrp
) {
1510 next
= tvb_new_subset_remaining(tvb
, 1);
1511 lan_options
[pno
].intrp(next
, subtree
);
1513 proto_tree_add_item(subtree
, hf_ipmi_trn_02_param_data
, tvb
, 1, -1, ENC_NA
);
1518 static const value_string cc02
[] = {
1519 { 0x80, "Parameter not supported" },
1520 { 0x83, "Attempt to read write-only parameter" },
1525 rq03(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1527 static int * const byte1
[] = { &hf_ipmi_trn_03_chan
, NULL
};
1528 static int * const byte2
[] = { &hf_ipmi_trn_03_arp_resp
, &hf_ipmi_trn_03_gratuitous_arp
, NULL
};
1530 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1531 ett_ipmi_trn_03_rq_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1532 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1533 ett_ipmi_trn_03_rq_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1537 rs03(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1539 static int * const byte1
[] = { &hf_ipmi_trn_03_status_arp_resp
,
1540 &hf_ipmi_trn_03_status_gratuitous_arp
, NULL
};
1542 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1543 ett_ipmi_trn_03_rs_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1547 rq04(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1549 static int * const byte1
[] = { &hf_ipmi_trn_04_chan
, NULL
};
1550 static int * const byte2
[] = { &hf_ipmi_trn_04_clear
, NULL
};
1552 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1553 ett_ipmi_trn_04_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1554 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1555 ett_ipmi_trn_04_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1559 rs04(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1561 proto_tree_add_item(tree
, hf_ipmi_trn_04_rx_ippkts
, tvb
, 0, 2, ENC_LITTLE_ENDIAN
);
1562 proto_tree_add_item(tree
, hf_ipmi_trn_04_rx_iphdr_err
, tvb
, 2, 2, ENC_LITTLE_ENDIAN
);
1563 proto_tree_add_item(tree
, hf_ipmi_trn_04_rx_ipaddr_err
, tvb
, 4, 2, ENC_LITTLE_ENDIAN
);
1564 proto_tree_add_item(tree
, hf_ipmi_trn_04_rx_ippkts_frag
, tvb
, 6, 2, ENC_LITTLE_ENDIAN
);
1565 proto_tree_add_item(tree
, hf_ipmi_trn_04_tx_ippkts
, tvb
, 8, 2, ENC_LITTLE_ENDIAN
);
1566 proto_tree_add_item(tree
, hf_ipmi_trn_04_rx_udppkts
, tvb
, 10, 2, ENC_LITTLE_ENDIAN
);
1567 proto_tree_add_item(tree
, hf_ipmi_trn_04_rx_validrmcp
, tvb
, 12, 2, ENC_LITTLE_ENDIAN
);
1568 proto_tree_add_item(tree
, hf_ipmi_trn_04_rx_udpproxy
, tvb
, 14, 2, ENC_LITTLE_ENDIAN
);
1569 proto_tree_add_item(tree
, hf_ipmi_trn_04_dr_udpproxy
, tvb
, 16, 2, ENC_LITTLE_ENDIAN
);
1573 serial_03(tvbuff_t
*tvb
, proto_tree
*tree
)
1575 static int * const byte1
[] = { &hf_ipmi_trn_serial03_connmode
, &hf_ipmi_trn_serial03_terminal
,
1576 &hf_ipmi_trn_serial03_ppp
, &hf_ipmi_trn_serial03_basic
, NULL
};
1578 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1579 ett_ipmi_trn_serial03_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1583 serial04_timeout_fmt(char *s
, uint32_t v
)
1586 snprintf(s
, ITEM_LABEL_LENGTH
, "%d sec", 30 * v
);
1589 snprintf(s
, ITEM_LABEL_LENGTH
, "Does not timeout");
1594 serial_04(tvbuff_t
*tvb
, proto_tree
*tree
)
1596 static int * const byte1
[] = { &hf_ipmi_trn_serial04_timeout
, NULL
};
1598 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1599 ett_ipmi_trn_serial04_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1603 serial_05(tvbuff_t
*tvb
, proto_tree
*tree
)
1605 static int * const byte1
[] = { &hf_ipmi_trn_serial05_cbcp_callback
,
1606 &hf_ipmi_trn_serial05_ipmi_callback
, NULL
};
1607 static int * const byte2
[] = { &hf_ipmi_trn_serial05_cb_list
, &hf_ipmi_trn_serial05_cb_user
,
1608 &hf_ipmi_trn_serial05_cb_prespec
, &hf_ipmi_trn_serial05_no_cb
, NULL
};
1610 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, "Callback capabilities: ", "None",
1611 ett_ipmi_trn_serial05_byte1
, byte1
, ENC_LITTLE_ENDIAN
, BMT_NO_TFS
);
1612 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, "CBCP negotiation options: ", "None",
1613 ett_ipmi_trn_serial05_byte2
, byte2
, ENC_LITTLE_ENDIAN
, BMT_NO_TFS
);
1614 proto_tree_add_item(tree
, hf_ipmi_trn_serial05_cb_dest1
, tvb
, 2, 1, ENC_LITTLE_ENDIAN
);
1615 proto_tree_add_item(tree
, hf_ipmi_trn_serial05_cb_dest2
, tvb
, 3, 1, ENC_LITTLE_ENDIAN
);
1616 proto_tree_add_item(tree
, hf_ipmi_trn_serial05_cb_dest3
, tvb
, 4, 1, ENC_LITTLE_ENDIAN
);
1620 serial_06(tvbuff_t
*tvb
, proto_tree
*tree
)
1622 static int * const byte1
[] = { &hf_ipmi_trn_serial06_inactivity
,
1623 &hf_ipmi_trn_serial06_dcd
, NULL
};
1625 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1626 ett_ipmi_trn_serial06_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1630 serial_07(tvbuff_t
*tvb
, proto_tree
*tree
)
1632 static int * const byte1
[] = { &hf_ipmi_trn_serial07_flowctl
, &hf_ipmi_trn_serial07_dtrhangup
, NULL
};
1633 static int * const byte2
[] = { &hf_ipmi_trn_serial07_bitrate
, NULL
};
1635 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1636 ett_ipmi_trn_serial07_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1637 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1638 ett_ipmi_trn_serial07_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1642 serial_08(tvbuff_t
*tvb
, proto_tree
*tree
)
1644 static int * const byte1
[] = { &hf_ipmi_trn_serial08_esc_powerup
,
1645 &hf_ipmi_trn_serial08_esc_reset
, &hf_ipmi_trn_serial08_switch_authcap
,
1646 &hf_ipmi_trn_serial08_switch_rmcp
, &hf_ipmi_trn_serial08_esc_switch1
,
1647 &hf_ipmi_trn_serial08_esc_switch2
, &hf_ipmi_trn_serial08_switch_dcdloss
, NULL
};
1648 static int * const byte2
[] = { &hf_ipmi_trn_serial08_sharing
,
1649 &hf_ipmi_trn_serial08_ping_callback
, &hf_ipmi_trn_serial08_ping_direct
,
1650 &hf_ipmi_trn_serial08_ping_retry
, NULL
};
1652 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, "Switch/escape settings", NULL
,
1653 ett_ipmi_trn_serial08_byte1
, byte1
, ENC_LITTLE_ENDIAN
, BMT_NO_APPEND
);
1654 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, "Sharing/ping settings", NULL
,
1655 ett_ipmi_trn_serial08_byte2
, byte2
, ENC_LITTLE_ENDIAN
, BMT_NO_APPEND
);
1659 serial_09(tvbuff_t
*tvb
, proto_tree
*tree
)
1661 static int * const byte1
[] = { &hf_ipmi_trn_serial09_ring_duration
, NULL
};
1662 static int * const byte2
[] = { &hf_ipmi_trn_serial09_ring_dead
, NULL
};
1664 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1665 ett_ipmi_trn_serial09_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1666 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1667 ett_ipmi_trn_serial09_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1671 serial_10(tvbuff_t
*tvb
, proto_tree
*tree
)
1673 proto_tree_add_item(tree
, hf_ipmi_trn_serial10_set_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1674 proto_tree_add_item(tree
, hf_ipmi_trn_serial10_init_str
, tvb
, 1, -1, ENC_ASCII
);
1678 serial_11(tvbuff_t
*tvb
, proto_tree
*tree
)
1680 proto_tree_add_item(tree
, hf_ipmi_trn_serial11_esc_seq
, tvb
, 0, 5, ENC_ASCII
);
1684 serial_12(tvbuff_t
*tvb
, proto_tree
*tree
)
1686 proto_tree_add_item(tree
, hf_ipmi_trn_serial12_hangup_seq
, tvb
, 0, 8, ENC_ASCII
);
1690 serial_13(tvbuff_t
*tvb
, proto_tree
*tree
)
1692 proto_tree_add_item(tree
, hf_ipmi_trn_serial13_dial_cmd
, tvb
, 0, 8, ENC_ASCII
);
1696 serial_14(tvbuff_t
*tvb
, proto_tree
*tree
)
1698 proto_tree_add_item(tree
, hf_ipmi_trn_serial14_page_blackout
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1702 serial_15(tvbuff_t
*tvb
, proto_tree
*tree
)
1704 proto_tree_add_item(tree
, hf_ipmi_trn_serial15_comm_string
, tvb
, 0, 18, ENC_ASCII
);
1708 serial_16(tvbuff_t
*tvb
, proto_tree
*tree
)
1710 static int * const byte1
[] = { &hf_ipmi_trn_serial16_ndest
, NULL
};
1712 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1713 ett_ipmi_trn_serial16_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1717 serial_17(tvbuff_t
*tvb
, proto_tree
*tree
)
1719 static int * const byte1
[] = { &hf_ipmi_trn_serial17_dest_sel
, NULL
};
1720 static int * const byte2
[] = { &hf_ipmi_trn_serial17_ack
, &hf_ipmi_trn_serial17_dest_type
, NULL
};
1721 static int * const byte4
[] = { &hf_ipmi_trn_serial17_alert_retries
, &hf_ipmi_trn_serial17_call_retries
, NULL
};
1722 int * byte5
[3] = { NULL
, NULL
, NULL
};
1725 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1726 ett_ipmi_trn_serial17_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1727 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1728 ett_ipmi_trn_serial17_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1729 proto_tree_add_item(tree
, hf_ipmi_trn_serial17_alert_ack_timeout
, tvb
, 2, 1, ENC_LITTLE_ENDIAN
);
1730 proto_tree_add_bitmask_text(tree
, tvb
, 3, 1, NULL
, NULL
,
1731 ett_ipmi_trn_serial17_byte4
, byte4
, ENC_LITTLE_ENDIAN
, 0);
1733 v
= tvb_get_uint8(tvb
, 1) & 0x0f;
1735 case 0: /* Dial Page */
1736 case 3: /* Basic Mode Callback */
1737 byte5
[0] = &hf_ipmi_trn_serial17_dialstr_sel
;
1739 case 1: /* TAP Page */
1740 byte5
[0] = &hf_ipmi_trn_serial17_tap_sel
;
1742 case 2: /* PPP Alert */
1743 case 4: /* PPP Callback */
1744 byte5
[0] = &hf_ipmi_trn_serial17_ipaddr_sel
;
1745 byte5
[1] = &hf_ipmi_trn_serial17_ppp_sel
;
1748 proto_tree_add_item(tree
, hf_ipmi_trn_serial17_unknown
, tvb
, 4, 1, ENC_LITTLE_ENDIAN
);
1751 proto_tree_add_bitmask_text(tree
, tvb
, 4, 1, NULL
, NULL
,
1752 ett_ipmi_trn_serial17_byte5
, byte5
, ENC_LITTLE_ENDIAN
, 0);
1756 serial_18(tvbuff_t
*tvb
, proto_tree
*tree
)
1758 proto_tree_add_item(tree
, hf_ipmi_trn_serial18_call_retry
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1762 serial_19(tvbuff_t
*tvb
, proto_tree
*tree
)
1764 static int * const byte1
[] = { &hf_ipmi_trn_serial19_destsel
, NULL
};
1765 static int * const byte2
[] = { &hf_ipmi_trn_serial19_flowctl
, &hf_ipmi_trn_serial19_dtrhangup
,
1766 &hf_ipmi_trn_serial19_stopbits
, &hf_ipmi_trn_serial19_charsize
, &hf_ipmi_trn_serial19_parity
, NULL
};
1767 static int * const byte3
[] = { &hf_ipmi_trn_serial19_bitrate
, NULL
};
1769 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1770 ett_ipmi_trn_serial19_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1771 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1772 ett_ipmi_trn_serial19_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1773 proto_tree_add_bitmask_text(tree
, tvb
, 2, 1, NULL
, NULL
,
1774 ett_ipmi_trn_serial19_byte3
, byte3
, ENC_LITTLE_ENDIAN
, 0);
1778 serial_20(tvbuff_t
*tvb
, proto_tree
*tree
)
1780 static int * const byte1
[] = { &hf_ipmi_trn_serial20_num_dial_strings
, NULL
};
1782 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1783 ett_ipmi_trn_serial20_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1787 serial_21(tvbuff_t
*tvb
, proto_tree
*tree
)
1789 static int * const byte1
[] = { &hf_ipmi_trn_serial21_dialsel
, NULL
};
1791 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1792 ett_ipmi_trn_serial21_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1793 proto_tree_add_item(tree
, hf_ipmi_trn_serial21_blockno
, tvb
, 1, 1, ENC_LITTLE_ENDIAN
);
1794 proto_tree_add_item(tree
, hf_ipmi_trn_serial21_dialstr
, tvb
, 2, 1, ENC_ASCII
);
1798 serial_22(tvbuff_t
*tvb
, proto_tree
*tree
)
1800 static int * const byte1
[] = { &hf_ipmi_trn_serial22_num_ipaddrs
, NULL
};
1802 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1803 ett_ipmi_trn_serial22_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1807 serial_23(tvbuff_t
*tvb
, proto_tree
*tree
)
1809 static int * const byte1
[] = { &hf_ipmi_trn_serial23_destsel
, NULL
};
1811 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1812 ett_ipmi_trn_serial23_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1813 proto_tree_add_item(tree
, hf_ipmi_trn_serial23_ipaddr
, tvb
, 1, 4, ENC_BIG_ENDIAN
);
1817 serial_24(tvbuff_t
*tvb
, proto_tree
*tree
)
1819 static int * const byte1
[] = { &hf_ipmi_trn_serial24_num_tap_accounts
, NULL
};
1821 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1822 ett_ipmi_trn_serial24_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1826 serial_25(tvbuff_t
*tvb
, proto_tree
*tree
)
1828 static int * const byte2
[] = { &hf_ipmi_trn_serial25_dialstr_sel
, &hf_ipmi_trn_serial25_tapsrv_sel
, NULL
};
1830 proto_tree_add_item(tree
, hf_ipmi_trn_serial25_tap_acct
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1831 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1832 ett_ipmi_trn_serial25_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1836 serial_26(tvbuff_t
*tvb
, proto_tree
*tree
)
1838 proto_tree_add_item(tree
, hf_ipmi_trn_serial26_tap_acct
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1839 proto_tree_add_item(tree
, hf_ipmi_trn_serial26_tap_passwd
, tvb
, 1, 6, ENC_ASCII
);
1843 serial_27(tvbuff_t
*tvb
, proto_tree
*tree
)
1845 proto_tree_add_item(tree
, hf_ipmi_trn_serial27_tap_acct
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1846 proto_tree_add_item(tree
, hf_ipmi_trn_serial27_tap_pager_id
, tvb
, 1, 16, ENC_ASCII
);
1850 serial_28(tvbuff_t
*tvb
, proto_tree
*tree
)
1852 static int * const byte1
[] = { &hf_ipmi_trn_serial28_tapsrv_sel
, NULL
};
1853 static int * const byte2
[] = { &hf_ipmi_trn_serial28_confirm
, NULL
};
1854 static int * const byte10
[] = { &hf_ipmi_trn_serial28_t2
, &hf_ipmi_trn_serial28_t1
, NULL
};
1855 static int * const byte11
[] = { &hf_ipmi_trn_serial28_t4
, &hf_ipmi_trn_serial28_t3
, NULL
};
1856 static int * const byte12
[] = { &hf_ipmi_trn_serial28_t6
, &hf_ipmi_trn_serial28_t5
, NULL
};
1857 static int * const byte13
[] = { &hf_ipmi_trn_serial28_n2
, &hf_ipmi_trn_serial28_n1
, NULL
};
1858 static int * const byte14
[] = { &hf_ipmi_trn_serial28_n4
, &hf_ipmi_trn_serial28_n3
, NULL
};
1860 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1861 ett_ipmi_trn_serial28_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1862 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1863 ett_ipmi_trn_serial28_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1864 proto_tree_add_item(tree
, hf_ipmi_trn_serial28_srvtype
, tvb
, 2, 3, ENC_ASCII
);
1865 proto_tree_add_item(tree
, hf_ipmi_trn_serial28_ctrl_esc
, tvb
, 5, 4, ENC_LITTLE_ENDIAN
);
1866 proto_tree_add_bitmask_text(tree
, tvb
, 9, 1, NULL
, NULL
,
1867 ett_ipmi_trn_serial28_byte10
, byte10
, ENC_LITTLE_ENDIAN
, 0);
1868 proto_tree_add_bitmask_text(tree
, tvb
, 10, 1, NULL
, NULL
,
1869 ett_ipmi_trn_serial28_byte11
, byte11
, ENC_LITTLE_ENDIAN
, 0);
1870 proto_tree_add_bitmask_text(tree
, tvb
, 11, 1, NULL
, NULL
,
1871 ett_ipmi_trn_serial28_byte12
, byte12
, ENC_LITTLE_ENDIAN
, 0);
1872 proto_tree_add_bitmask_text(tree
, tvb
, 12, 1, NULL
, NULL
,
1873 ett_ipmi_trn_serial28_byte13
, byte13
, ENC_LITTLE_ENDIAN
, 0);
1874 proto_tree_add_bitmask_text(tree
, tvb
, 13, 1, NULL
, NULL
,
1875 ett_ipmi_trn_serial28_byte14
, byte14
, ENC_LITTLE_ENDIAN
, 0);
1879 serial_29(tvbuff_t
*tvb
, proto_tree
*tree
)
1881 static int * const byte1
[] = { &hf_ipmi_trn_serial29_op
, &hf_ipmi_trn_serial29_lineedit
,
1882 &hf_ipmi_trn_serial29_deletectl
, &hf_ipmi_trn_serial29_echo
, &hf_ipmi_trn_serial29_handshake
, NULL
};
1883 static int * const byte2
[] = { &hf_ipmi_trn_serial29_o_newline
, &hf_ipmi_trn_serial29_i_newline
, NULL
};
1885 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1886 ett_ipmi_trn_serial29_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1887 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1888 ett_ipmi_trn_serial29_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1892 serial_30(tvbuff_t
*tvb
, proto_tree
*tree
)
1894 static int * const byte1
[] = { &hf_ipmi_trn_serial30_snooping
, &hf_ipmi_trn_serial30_snoopctl
, NULL
};
1895 static int * const byte2
[] = { &hf_ipmi_trn_serial30_negot_ctl
, &hf_ipmi_trn_serial30_use_xmit_accm
,
1896 &hf_ipmi_trn_serial30_xmit_addr_comp
, &hf_ipmi_trn_serial30_xmit_proto_comp
, NULL
};
1897 static int * const byte3
[] = { &hf_ipmi_trn_serial30_ipaddr
, &hf_ipmi_trn_serial30_accm
,
1898 &hf_ipmi_trn_serial30_addr_comp
, &hf_ipmi_trn_serial30_proto_comp
, NULL
};
1900 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1901 ett_ipmi_trn_serial30_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1902 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1903 ett_ipmi_trn_serial30_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1904 proto_tree_add_bitmask_text(tree
, tvb
, 2, 1, NULL
, NULL
,
1905 ett_ipmi_trn_serial30_byte3
, byte3
, ENC_LITTLE_ENDIAN
, 0);
1909 serial_31(tvbuff_t
*tvb
, proto_tree
*tree
)
1911 proto_tree_add_item(tree
, hf_ipmi_trn_serial31_port
, tvb
, 0, 2, ENC_LITTLE_ENDIAN
);
1915 serial_32(tvbuff_t
*tvb
, proto_tree
*tree
)
1917 proto_tree_add_item(tree
, hf_ipmi_trn_serial32_port
, tvb
, 0, 2, ENC_LITTLE_ENDIAN
);
1921 serial_33(tvbuff_t
*tvb
, proto_tree
*tree
)
1923 static int * const byte1
[] = { &hf_ipmi_trn_serial33_auth_proto
, NULL
};
1925 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1926 ett_ipmi_trn_serial33_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1930 serial_34(tvbuff_t
*tvb
, proto_tree
*tree
)
1932 proto_tree_add_item(tree
, hf_ipmi_trn_serial34_chap_name
, tvb
, 0, 16, ENC_ASCII
);
1936 serial_35(tvbuff_t
*tvb
, proto_tree
*tree
)
1938 proto_tree_add_item(tree
, hf_ipmi_trn_serial35_recv_accm
, tvb
, 0, 4, ENC_BIG_ENDIAN
);
1939 proto_tree_add_item(tree
, hf_ipmi_trn_serial35_xmit_accm
, tvb
, 4, 4, ENC_BIG_ENDIAN
);
1943 serial_36(tvbuff_t
*tvb
, proto_tree
*tree
)
1945 proto_tree_add_item(tree
, hf_ipmi_trn_serial36_snoop_accm
, tvb
, 0, 4, ENC_BIG_ENDIAN
);
1949 serial_37(tvbuff_t
*tvb
, proto_tree
*tree
)
1951 static int * const byte1
[] = { &hf_ipmi_trn_serial37_num_ppp
, NULL
};
1953 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1954 ett_ipmi_trn_serial37_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1958 serial_38(tvbuff_t
*tvb
, proto_tree
*tree
)
1960 proto_tree_add_item(tree
, hf_ipmi_trn_serial38_acct_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1961 proto_tree_add_item(tree
, hf_ipmi_trn_serial38_dialstr_sel
, tvb
, 1, 1, ENC_LITTLE_ENDIAN
);
1965 serial_39(tvbuff_t
*tvb
, proto_tree
*tree
)
1967 proto_tree_add_item(tree
, hf_ipmi_trn_serial39_acct_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1968 proto_tree_add_item(tree
, hf_ipmi_trn_serial39_ipaddr
, tvb
, 1, 4, ENC_BIG_ENDIAN
);
1972 serial_40(tvbuff_t
*tvb
, proto_tree
*tree
)
1976 proto_tree_add_item(tree
, hf_ipmi_trn_serial40_acct_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1977 slen
= tvb_captured_length(tvb
) - 1;
1981 proto_tree_add_item(tree
, hf_ipmi_trn_serial40_username
, tvb
, 1, slen
, ENC_ASCII
);
1985 serial_41(tvbuff_t
*tvb
, proto_tree
*tree
)
1989 proto_tree_add_item(tree
, hf_ipmi_trn_serial41_acct_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1990 slen
= tvb_captured_length(tvb
) - 1;
1994 proto_tree_add_item(tree
, hf_ipmi_trn_serial41_userdomain
, tvb
, 1, slen
, ENC_ASCII
);
1998 serial_42(tvbuff_t
*tvb
, proto_tree
*tree
)
2002 proto_tree_add_item(tree
, hf_ipmi_trn_serial42_acct_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
2003 slen
= tvb_captured_length(tvb
) - 1;
2007 proto_tree_add_item(tree
, hf_ipmi_trn_serial42_userpass
, tvb
, 1, slen
, ENC_ASCII
);
2011 serial_43(tvbuff_t
*tvb
, proto_tree
*tree
)
2013 static int * const byte1
[] = { &hf_ipmi_trn_serial43_auth_proto
, NULL
};
2015 proto_tree_add_item(tree
, hf_ipmi_trn_serial43_acct_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
2016 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
2017 ett_ipmi_trn_serial43_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
2021 serial_44(tvbuff_t
*tvb
, proto_tree
*tree
)
2023 proto_tree_add_item(tree
, hf_ipmi_trn_serial44_acct_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
2024 proto_tree_add_item(tree
, hf_ipmi_trn_serial44_hold_time
, tvb
, 1, 1, ENC_LITTLE_ENDIAN
);
2028 serial_45(tvbuff_t
*tvb
, proto_tree
*tree
)
2030 proto_tree_add_item(tree
, hf_ipmi_trn_serial45_src_ipaddr
, tvb
, 0, 4, ENC_BIG_ENDIAN
);
2031 proto_tree_add_item(tree
, hf_ipmi_trn_serial45_dst_ipaddr
, tvb
, 4, 4, ENC_BIG_ENDIAN
);
2035 serial_46(tvbuff_t
*tvb
, proto_tree
*tree
)
2037 proto_tree_add_item(tree
, hf_ipmi_trn_serial46_tx_bufsize
, tvb
, 0, 2, ENC_LITTLE_ENDIAN
);
2041 serial_47(tvbuff_t
*tvb
, proto_tree
*tree
)
2043 proto_tree_add_item(tree
, hf_ipmi_trn_serial47_rx_bufsize
, tvb
, 0, 2, ENC_LITTLE_ENDIAN
);
2047 serial_48(tvbuff_t
*tvb
, proto_tree
*tree
)
2049 proto_tree_add_item(tree
, hf_ipmi_trn_serial48_ipaddr
, tvb
, 0, 4, ENC_BIG_ENDIAN
);
2053 serial_49(tvbuff_t
*tvb
, proto_tree
*tree
)
2057 proto_tree_add_item(tree
, hf_ipmi_trn_serial49_blockno
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
2058 slen
= tvb_captured_length(tvb
) - 1;
2062 proto_tree_add_item(tree
, hf_ipmi_trn_serial49_dialstr
, tvb
, 1, slen
, ENC_ASCII
);
2066 serial_50(tvbuff_t
*tvb
, proto_tree
*tree
)
2068 static int * const byte1
[] = { &hf_ipmi_trn_serial50_115200
, &hf_ipmi_trn_serial50_57600
,
2069 &hf_ipmi_trn_serial50_38400
, &hf_ipmi_trn_serial50_19200
, &hf_ipmi_trn_serial50_9600
, NULL
};
2071 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, "Bit rate support: ", "None",
2072 ett_ipmi_trn_serial50_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
2076 serial_51(tvbuff_t
*tvb
, proto_tree
*tree
)
2078 static int * const byte2
[] = { &hf_ipmi_trn_serial51_ipmi_channel
, &hf_ipmi_trn_serial51_conn_num
, NULL
};
2079 static int * const byte3
[] = { &hf_ipmi_trn_serial51_ipmi_sharing
,
2080 &hf_ipmi_trn_serial51_ipmi_sol
, &hf_ipmi_trn_serial51_chan_num
, NULL
};
2082 proto_tree_add_item(tree
, hf_ipmi_trn_serial51_port_assoc_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
2083 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
2084 ett_ipmi_trn_serial51_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
2085 proto_tree_add_bitmask_text(tree
, tvb
, 2, 1, NULL
, NULL
,
2086 ett_ipmi_trn_serial51_byte3
, byte3
, ENC_LITTLE_ENDIAN
, 0);
2090 serial_52(tvbuff_t
*tvb
, proto_tree
*tree
)
2092 proto_tree_add_item(tree
, hf_ipmi_trn_serial52_port_assoc_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
2093 proto_tree_add_item(tree
, hf_ipmi_trn_serial52_conn_name
, tvb
, 1, 16, ENC_NA
);
2097 serial_53(tvbuff_t
*tvb
, proto_tree
*tree
)
2099 proto_tree_add_item(tree
, hf_ipmi_trn_serial53_port_assoc_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
2100 proto_tree_add_item(tree
, hf_ipmi_trn_serial53_chan_name
, tvb
, 1, 16, ENC_NA
);
2104 void (*intrp
)(tvbuff_t
*tvb
, proto_tree
*tree
);
2106 } serial_options
[] = {
2107 { lan_serial_00
, "Set In Progress" },
2108 { lan_serial_01
, "Authentication Type Support" },
2109 { lan_serial_02
, "Authentication Type Enables" },
2110 { serial_03
, "Connection Mode" },
2111 { serial_04
, "Session Inactivity Timeout" },
2112 { serial_05
, "Channel Callback Control" },
2113 { serial_06
, "Session Termination" },
2114 { serial_07
, "IPMI Messaging Comm Settings" },
2115 { serial_08
, "Mux Switch Control" },
2116 { serial_09
, "Modem Ring Time" },
2117 { serial_10
, "Modem Init String" },
2118 { serial_11
, "Modem Escape Sequence" },
2119 { serial_12
, "Modem Hang-up Sequence" },
2120 { serial_13
, "Modem Dial Command" },
2121 { serial_14
, "Page Blackout Interval" },
2122 { serial_15
, "Community String" },
2123 { serial_16
, "Number of Alert Destinations" },
2124 { serial_17
, "Destination Info" },
2125 { serial_18
, "Call Retry Interval" },
2126 { serial_19
, "Destination Comm Settings" },
2127 { serial_20
, "Number of Dial Strings" },
2128 { serial_21
, "Destination Dial Strings" },
2129 { serial_22
, "Number of Alert Destination IP Addresses" },
2130 { serial_23
, "Destination IP Addresses" },
2131 { serial_24
, "Number of TAP Accounts" },
2132 { serial_25
, "TAP Account" },
2133 { serial_26
, "TAP Passwords" },
2134 { serial_27
, "TAP Pager ID Strings" },
2135 { serial_28
, "TAP Service Settings" },
2136 { serial_29
, "Terminal Mode Configuration" },
2137 { serial_30
, "PPP Protocol Options" },
2138 { serial_31
, "PPP Primary RMCP Port" },
2139 { serial_32
, "PPP Secondary RMCP Port" },
2140 { serial_33
, "PPP Link Authentication" },
2141 { serial_34
, "CHAP Name" },
2142 { serial_35
, "PPP ACCM" },
2143 { serial_36
, "PPP Snoop ACCM" },
2144 { serial_37
, "Number of PPP Accounts" },
2145 { serial_38
, "PPP Account Dial String Selector" },
2146 { serial_39
, "PPP Account IP Addresses" },
2147 { serial_40
, "PPP Account User Names" },
2148 { serial_41
, "PPP Account User Domains" },
2149 { serial_42
, "PPP Account User Passwords" },
2150 { serial_43
, "PPP Account Authentication Settings" },
2151 { serial_44
, "PPP Account Connection Hold Times" },
2152 { serial_45
, "PPP UDP Proxy IP Header" },
2153 { serial_46
, "PPP UDP Proxy Transmit Buffer Size" },
2154 { serial_47
, "PPP UDP Proxy Receive Buffer Size" },
2155 { serial_48
, "PPP Remote Console IP Address" },
2156 { serial_49
, "System Phone Number" },
2157 { serial_50
, "Bitrate Support" },
2158 { serial_51
, "System Serial Port Association" },
2159 { serial_52
, "System Connector Names" },
2160 { serial_53
, "System Serial Channel Names" }
2163 /* Set Serial/Modem Configuration Parameters
2166 rq10(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2168 static int * const byte1
[] = { &hf_ipmi_trn_10_chan
, NULL
};
2173 pno
= tvb_get_uint8(tvb
, 1);
2174 if (pno
< array_length(serial_options
)) {
2175 desc
= serial_options
[pno
].name
;
2176 } else if (pno
>= 0xC0) {
2182 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_10_byte1
,
2183 byte1
, ENC_LITTLE_ENDIAN
, 0);
2184 proto_tree_add_uint_format_value(tree
, hf_ipmi_trn_10_param
, tvb
, 1, 1,
2185 pno
, "%s (0x%02x)", desc
, pno
);
2186 if (pno
< array_length(serial_options
)) {
2187 next
= tvb_new_subset_remaining(tvb
, 2);
2188 serial_options
[pno
].intrp(next
, tree
);
2190 proto_tree_add_item(tree
, hf_ipmi_trn_10_param_data
, tvb
, 2, -1, ENC_NA
);
2194 static const value_string cc10
[] = {
2195 { 0x80, "Parameter not supported" },
2196 { 0x81, "Attempt to set the 'set in progress' value (in parameter #0) when not in the 'set complete' state" },
2197 { 0x82, "Attempt to write read-only parameter" },
2198 { 0x83, "Attempt to read write-only parameter" },
2202 /* Get LAN Configuration Parameters
2205 rq11(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2207 static int * const byte1
[] = { &hf_ipmi_trn_11_getrev
, &hf_ipmi_trn_11_chan
, NULL
};
2211 pno
= tvb_get_uint8(tvb
, 1);
2213 ipmi_set_data(pinfo
, 0, pno
);
2214 ipmi_set_data(pinfo
, 1, tvb_get_uint8(tvb
, 0));
2220 if (pno
< array_length(serial_options
)) {
2221 desc
= serial_options
[pno
].name
;
2222 } else if (pno
>= 0xC0) {
2228 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
2229 ett_ipmi_trn_11_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
2230 proto_tree_add_uint_format_value(tree
, hf_ipmi_trn_11_param
, tvb
, 1, 1,
2231 pno
, "%s (0x%02x)", desc
, pno
);
2232 proto_tree_add_item(tree
, hf_ipmi_trn_11_set
, tvb
, 2, 1, ENC_LITTLE_ENDIAN
);
2233 proto_tree_add_item(tree
, hf_ipmi_trn_11_block
, tvb
, 2, 1, ENC_LITTLE_ENDIAN
);
2237 rs11(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2239 static int * const byte1
[] = { &hf_ipmi_trn_11_rev_present
, &hf_ipmi_trn_11_rev_compat
, NULL
};
2241 proto_tree
*subtree
;
2246 ti
= proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
2247 ett_ipmi_trn_11_rev
, byte1
, ENC_LITTLE_ENDIAN
, 0);
2249 if (!ipmi_get_data(pinfo
, 0, &pno
) || !ipmi_get_data(pinfo
, 1, &req
)) {
2250 /* No request found - cannot parse further */
2251 if (tvb_captured_length(tvb
) > 1) {
2252 proto_tree_add_item(tree
, hf_ipmi_trn_11_param_data
, tvb
, 1, -1, ENC_NA
);
2257 if (pno
< array_length(serial_options
)) {
2258 desc
= serial_options
[pno
].name
;
2259 } else if (pno
>= 0xC0) {
2265 if ((req
& 0x80) && tvb_captured_length(tvb
) > 1) {
2266 expert_add_info(pinfo
, ti
, &ei_ipmi_trn_11_request_param_rev
);
2267 } else if (!(req
& 0x80) && tvb_captured_length(tvb
) == 1) {
2268 expert_add_info(pinfo
, ti
, &ei_ipmi_trn_11_request_param_data
);
2271 subtree
= proto_tree_add_subtree_format(tree
, tvb
, 0, 0, ett_ipmi_trn_parameter
, NULL
, "Parameter: %s", desc
);
2273 if (tvb_captured_length(tvb
) > 1) {
2274 if (pno
< array_length(serial_options
)) {
2275 next
= tvb_new_subset_remaining(tvb
, 1);
2276 serial_options
[pno
].intrp(next
, subtree
);
2278 proto_tree_add_item(subtree
, hf_ipmi_trn_11_param_data
, tvb
, 1, -1, ENC_NA
);
2283 static const value_string cc11
[] = {
2284 { 0x80, "Parameter not supported" },
2288 /* Set Serial/Modem Mux
2291 rq12(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2293 static int * const byte1
[] = { &hf_ipmi_trn_12_chan
, NULL
};
2294 static int * const byte2
[] = { &hf_ipmi_trn_12_mux_setting
, NULL
};
2296 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
2297 ett_ipmi_trn_12_rq_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
2298 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
2299 ett_ipmi_trn_12_rq_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
2303 rs12(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2305 static int * const byte1
[] = { &hf_ipmi_trn_12_sw_to_sys
, &hf_ipmi_trn_12_sw_to_bmc
,
2306 &hf_ipmi_trn_12_alert
, &hf_ipmi_trn_12_msg
, &hf_ipmi_trn_12_req
, &hf_ipmi_trn_12_mux_state
, NULL
};
2308 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
2309 ett_ipmi_trn_12_rs_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
2312 /* Get TAP Response Codes
2315 rq13(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2317 static int * const byte1
[] = { &hf_ipmi_trn_13_chan
, NULL
};
2319 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
2320 ett_ipmi_trn_13_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
2324 rs13(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2326 proto_tree_add_item(tree
, hf_ipmi_trn_13_code1
, tvb
, 0, 3, ENC_ASCII
);
2327 proto_tree_add_item(tree
, hf_ipmi_trn_13_code2
, tvb
, 3, 3, ENC_ASCII
);
2328 proto_tree_add_item(tree
, hf_ipmi_trn_13_code3
, tvb
, 6, 3, ENC_ASCII
);
2329 proto_tree_add_item(tree
, hf_ipmi_trn_13_code4
, tvb
, 9, 3, ENC_ASCII
);
2330 proto_tree_add_item(tree
, hf_ipmi_trn_13_code5
, tvb
, 12, 3, ENC_ASCII
);
2333 /* Set PPP UDP Proxy Transmit Data
2336 rq14(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2338 static int * const byte1
[] = { &hf_ipmi_trn_14_chan
, NULL
};
2340 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
2341 ett_ipmi_trn_14_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
2342 proto_tree_add_item(tree
, hf_ipmi_trn_14_block
, tvb
, 1, 1, ENC_LITTLE_ENDIAN
);
2343 proto_tree_add_item(tree
, hf_ipmi_trn_14_data
, tvb
, 2, 16, ENC_NA
);
2346 /* Get PPP UDP Proxy Transmit Data
2349 rq15(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2351 static int * const byte1
[] = { &hf_ipmi_trn_15_chan
, NULL
};
2353 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
2354 ett_ipmi_trn_15_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
2355 proto_tree_add_item(tree
, hf_ipmi_trn_15_block
, tvb
, 1, 1, ENC_LITTLE_ENDIAN
);
2359 rs15(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2361 proto_tree_add_item(tree
, hf_ipmi_trn_15_data
, tvb
, 0, 16, ENC_NA
);
2364 /* Send PPP UDP Proxy Packet
2367 rq16(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2369 static int * const byte1
[] = { &hf_ipmi_trn_16_chan
, NULL
};
2371 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
2372 ett_ipmi_trn_16_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
2373 proto_tree_add_item(tree
, hf_ipmi_trn_16_src_port
, tvb
, 1, 2, ENC_LITTLE_ENDIAN
);
2374 proto_tree_add_item(tree
, hf_ipmi_trn_16_dst_port
, tvb
, 3, 2, ENC_LITTLE_ENDIAN
);
2375 proto_tree_add_item(tree
, hf_ipmi_trn_16_src_addr
, tvb
, 5, 4, ENC_BIG_ENDIAN
);
2376 proto_tree_add_item(tree
, hf_ipmi_trn_16_dst_addr
, tvb
, 9, 4, ENC_BIG_ENDIAN
);
2377 proto_tree_add_item(tree
, hf_ipmi_trn_16_bytes
, tvb
, 13, 2, ENC_LITTLE_ENDIAN
);
2380 static const value_string cc16
[] = {
2381 { 0x80, "PPP link is not up" },
2382 { 0x81, "IP protocol is not up" },
2386 /* Get PPP UDP Proxy Receive Data
2389 tr17_fmt_blockno(char *s
, uint32_t v
)
2391 snprintf(s
, ITEM_LABEL_LENGTH
, "%d%s",
2392 v
, v
? "" : " (get received data length)");
2396 rq17(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2398 static int * const byte1
[] = { &hf_ipmi_trn_17_chan
, NULL
};
2399 static int * const byte2
[] = { &hf_ipmi_trn_17_clear
, &hf_ipmi_trn_17_block_num
, NULL
};
2401 ipmi_set_data(pinfo
, 0, tvb_get_uint8(tvb
, 1) & 0x7f);
2403 /* Save block number */
2407 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
2408 ett_ipmi_trn_17_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
2409 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
2410 ett_ipmi_trn_17_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
2414 rs17(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2418 if (ipmi_get_data(pinfo
, 0, &bno
) && bno
== 0) {
2419 /* Request for length */
2420 proto_tree_add_item(tree
, hf_ipmi_trn_17_size
, tvb
, 0, 2, ENC_LITTLE_ENDIAN
);
2422 proto_tree_add_item(tree
, hf_ipmi_trn_17_data
, tvb
, 0,
2423 tvb_captured_length(tvb
) < 16 ? tvb_captured_length(tvb
) : 16, ENC_NA
);
2427 static const value_string cc17
[] = {
2428 { 0x80, "No packet data available" },
2432 /* Serial/Modem Connection Active
2435 rq18(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2437 static int * const byte1
[] = { &hf_ipmi_trn_18_state
, NULL
};
2439 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
2440 ett_ipmi_trn_18_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
2441 proto_tree_add_item(tree
, hf_ipmi_trn_18_ipmi_ver
, tvb
, 1, 1, ENC_LITTLE_ENDIAN
);
2447 rq19(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2449 static int * const byte1
[] = { &hf_ipmi_trn_19_chan
, NULL
};
2450 static int * const byte2
[] = { &hf_ipmi_trn_19_dest_sel
, NULL
};
2452 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
2453 ett_ipmi_trn_19_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
2454 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
2455 ett_ipmi_trn_19_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
2458 static const value_string cc19
[] = {
2459 { 0x81, "Callback rejected, alert in progress on this channel" },
2460 { 0x82, "Callback rejected, IPMI messaging active on this channel" },
2464 /* Common for Set/Get User Callback Options
2467 parse_callback_options(tvbuff_t
*tvb
, unsigned offs
, proto_tree
*tree
)
2469 static int * const usercap
[] = { &hf_ipmi_trn_XX_cap_cbcp
, &hf_ipmi_trn_XX_cap_ipmi
, NULL
};
2470 static int * const cbcp
[] = { &hf_ipmi_trn_XX_cbcp_from_list
, &hf_ipmi_trn_XX_cbcp_user
,
2471 &hf_ipmi_trn_XX_cbcp_prespec
, &hf_ipmi_trn_XX_cbcp_nocb
, NULL
};
2473 proto_tree_add_bitmask_text(tree
, tvb
, offs
, 1,
2474 "User callback capabilities: ", "None",
2475 ett_ipmi_trn_XX_usercap
, usercap
, ENC_LITTLE_ENDIAN
, BMT_NO_TFS
);
2476 proto_tree_add_bitmask_text(tree
, tvb
, offs
+ 1, 1,
2477 "CBCP negotiation options: ", "None",
2478 ett_ipmi_trn_XX_cbcp
, cbcp
, ENC_LITTLE_ENDIAN
, BMT_NO_TFS
);
2479 proto_tree_add_item(tree
, hf_ipmi_trn_XX_dst1
, tvb
, offs
+ 2, 1, ENC_LITTLE_ENDIAN
);
2480 proto_tree_add_item(tree
, hf_ipmi_trn_XX_dst2
, tvb
, offs
+ 3, 1, ENC_LITTLE_ENDIAN
);
2481 proto_tree_add_item(tree
, hf_ipmi_trn_XX_dst3
, tvb
, offs
+ 4, 1, ENC_LITTLE_ENDIAN
);
2484 /* Set User Callback Options
2487 rq1a(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2489 static int * const byte1
[] = { &hf_ipmi_trn_1a_user
, NULL
};
2490 static int * const byte2
[] = { &hf_ipmi_trn_1a_chan
, NULL
};
2492 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
2493 ett_ipmi_trn_1a_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
2494 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
2495 ett_ipmi_trn_1a_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
2496 parse_callback_options(tvb
, 2, tree
);
2499 /* Get User Callback Options
2502 rq1b(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2504 static int * const byte1
[] = { &hf_ipmi_trn_1b_user
, NULL
};
2505 static int * const byte2
[] = { &hf_ipmi_trn_1b_chan
, NULL
};
2507 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
2508 ett_ipmi_trn_1b_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
2509 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
2510 ett_ipmi_trn_1b_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
2514 rs1b(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2516 parse_callback_options(tvb
, 0, tree
);
2519 static const value_string cc21
[] = {
2520 { 0x80, "Parameter not supported" },
2521 { 0x81, "Attempt to set the 'set in progress' value (in parameter #0) when not in the 'set complete' state" },
2522 { 0x82, "Attempt to write read-only parameter" },
2523 { 0x83, "Attempt to read write-only parameter" },
2527 static const value_string cc22
[] = {
2528 { 0x80, "Parameter not supported" },
2532 static const value_string cc33
[] = {
2533 { 0x80, "Target controller unavailable" },
2537 static const ipmi_cmd_t cmd_transport
[] = {
2538 /* LAN Device Commands */
2539 { 0x01, rq01
, NULL
, cc01
, NULL
, "Set LAN Configuration Parameters", 0 },
2540 { 0x02, rq02
, rs02
, cc02
, NULL
, "Get LAN Configuration Parameters", CMD_CALLRQ
},
2541 { 0x03, rq03
, rs03
, NULL
, NULL
, "Suspend BMC ARPs", 0 },
2542 { 0x04, rq04
, rs04
, NULL
, NULL
, "Get IP/UDP/RMCP Statistics", 0 },
2544 /* Serial/Modem Device Commands */
2545 { 0x10, rq10
, NULL
, cc10
, NULL
, "Set Serial/Modem Configuration", 0 },
2546 { 0x11, rq11
, rs11
, cc11
, NULL
, "Get Serial/Modem Configuration", CMD_CALLRQ
},
2547 { 0x12, rq12
, rs12
, NULL
, NULL
, "Set Serial/Modem Mux", 0 },
2548 { 0x13, rq13
, rs13
, NULL
, NULL
, "Get TAP Response Codes", 0 },
2549 { 0x14, rq14
, NULL
, NULL
, NULL
, "Set PPP UDP Proxy Transmit Data", 0 },
2550 { 0x15, rq15
, rs15
, NULL
, NULL
, "Get PPP UDP Proxy Transmit Data", 0 },
2551 { 0x16, rq16
, NULL
, cc16
, NULL
, "Send PPP UDP Proxy Packet", 0 },
2552 { 0x17, rq17
, rs17
, cc17
, NULL
, "Get PPP UDP Proxy Receive Data", CMD_CALLRQ
},
2553 { 0x18, rq18
, NULL
, NULL
, NULL
, "Serial/Modem Connection Active", 0 },
2554 { 0x19, rq19
, NULL
, cc19
, NULL
, "Callback", 0 },
2555 { 0x1a, rq1a
, NULL
, NULL
, NULL
, "Set User Callback Options", 0 },
2556 { 0x1b, rq1b
, rs1b
, NULL
, NULL
, "Get User Callback Options", 0 },
2557 { 0x1c, IPMI_TBD
, NULL
, NULL
, "Set Serial Routing Mux", 0 },
2559 /* Serial-Over-LAN Commands */
2560 { 0x20, IPMI_TBD
, NULL
, NULL
, "SOL Activating", 0 },
2561 { 0x21, IPMI_TBD
, cc21
, NULL
, "Set SOL Configuration Parameters", 0 },
2562 { 0x22, IPMI_TBD
, cc22
, NULL
, "Get SOL Configuration Parameters", CMD_CALLRQ
},
2564 /* Command Forwarding Commands */
2565 { 0x30, IPMI_TBD
, NULL
, NULL
, "Forwarded Command", 0 },
2566 { 0x31, IPMI_TBD
, NULL
, NULL
, "Set Forwarded Commands", 0 },
2567 { 0x32, IPMI_TBD
, NULL
, NULL
, "Get Forwarded Commands", 0 },
2568 { 0x33, IPMI_TBD
, cc33
, NULL
, "Enable Forwarded Commands", 0 },
2572 proto_register_ipmi_transport(void)
2574 static hf_register_info hf
[] = {
2575 { &hf_ipmi_trn_lan00_sip
,
2576 { "Set In Progress",
2577 "ipmi.lan00.sip", FT_UINT8
, BASE_HEX
, VALS(lan00_sip_vals
), 0x03, NULL
, HFILL
}},
2579 { &hf_ipmi_trn_lanXX_oem
,
2580 { "OEM Proprietary",
2581 "ipmi.lanXX.oem", FT_BOOLEAN
, 8, NULL
, 0x20, NULL
, HFILL
}},
2582 { &hf_ipmi_trn_lanXX_passwd
,
2583 { "Straight password/key",
2584 "ipmi.lanXX.passwd", FT_BOOLEAN
, 8, NULL
, 0x10, NULL
, HFILL
}},
2585 { &hf_ipmi_trn_lanXX_md5
,
2587 "ipmi.lanXX.md5", FT_BOOLEAN
, 8, NULL
, 0x04, NULL
, HFILL
}},
2588 { &hf_ipmi_trn_lanXX_md2
,
2590 "ipmi.lanXX.md2", FT_BOOLEAN
, 8, NULL
, 0x02, NULL
, HFILL
}},
2591 { &hf_ipmi_trn_lanXX_none
,
2593 "ipmi.lanXX.none", FT_BOOLEAN
, 8, NULL
, 0x01, NULL
, HFILL
}},
2595 { &hf_ipmi_trn_lan03_ip
,
2597 "ipmi.lan03.ip", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2599 { &hf_ipmi_trn_lan04_ipsrc
,
2600 { "IP Address Source",
2601 "ipmi.lan04.ipsrc", FT_UINT8
, BASE_HEX
, VALS(lan04_ipsrc_vals
), 0x0f, NULL
, HFILL
}},
2603 { &hf_ipmi_trn_lan05_ether
,
2605 "ipmi.lan05.mac", FT_ETHER
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2607 { &hf_ipmi_trn_lan06_subnet
,
2609 "ipmi.lan06.subnet", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2611 { &hf_ipmi_trn_lan07_ttl
,
2613 "ipmi.lan07.ttl", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2614 { &hf_ipmi_trn_lan07_flags
,
2616 "ipmi.lan07.flags", FT_UINT8
, BASE_HEX
, NULL
, 0xe0, NULL
, HFILL
}},
2617 { &hf_ipmi_trn_lan07_precedence
,
2619 "ipmi.lan07.precedence", FT_UINT8
, BASE_DEC
, NULL
, 0xe0, NULL
, HFILL
}},
2620 { &hf_ipmi_trn_lan07_tos
,
2621 { "Type of service",
2622 "ipmi.lan07.tos", FT_UINT8
, BASE_HEX
, NULL
, 0x1e, NULL
, HFILL
}},
2624 { &hf_ipmi_trn_lan08_rmcp_port
,
2625 { "Primary RMCP Port Number",
2626 "ipmi.lan08.rmcp_port", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_udpport
), 0, NULL
, HFILL
}},
2628 { &hf_ipmi_trn_lan09_rmcp_port
,
2629 { "Secondary RMCP Port Number",
2630 "ipmi.lan09.rmcp_port", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_udpport
), 0, NULL
, HFILL
}},
2632 { &hf_ipmi_trn_lan10_responses
,
2634 "ipmi.lan10.responses", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
2635 { &hf_ipmi_trn_lan10_gratuitous
,
2636 { "Gratuitous ARPs",
2637 "ipmi.lan10.gratuitous", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
2639 { &hf_ipmi_trn_lan11_arp_interval
,
2640 { "Gratuitous ARP interval",
2641 "ipmi.lan10.arp_interval", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_500ms_0based
), 0, NULL
, HFILL
}},
2643 { &hf_ipmi_trn_lan12_def_gw_ip
,
2644 { "Default Gateway Address",
2645 "ipmi.lan12.def_gw_ip", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2647 { &hf_ipmi_trn_lan13_def_gw_mac
,
2648 { "Default Gateway MAC Address",
2649 "ipmi.lan13.def_gw_mac", FT_ETHER
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2651 { &hf_ipmi_trn_lan14_bkp_gw_ip
,
2652 { "Backup Gateway Address",
2653 "ipmi.lan14.bkp_gw_ip", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2655 { &hf_ipmi_trn_lan15_bkp_gw_mac
,
2656 { "Backup Gateway MAC Address",
2657 "ipmi.lan15.bkp_gw_mac", FT_ETHER
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2659 { &hf_ipmi_trn_lan16_comm_string
,
2660 { "Community String",
2661 "ipmi.lan16.comm_string", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2663 { &hf_ipmi_trn_lan17_num_dst
,
2664 { "Number of Destinations",
2665 "ipmi.lan17.num_dst", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2667 { &hf_ipmi_trn_lan18_dst_selector
,
2668 { "Destination Selector",
2669 "ipmi.lan18.dst_selector", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2670 { &hf_ipmi_trn_lan18_ack
,
2671 { "Alert Acknowledged",
2672 "ipmi.lan18.ack", FT_BOOLEAN
, 8, TFS(&lan18_ack_tfs
), 0x80, NULL
, HFILL
}},
2673 { &hf_ipmi_trn_lan18_dst_type
,
2674 { "Destination Type",
2675 "ipmi.lan18.dst_type", FT_UINT8
, BASE_HEX
, VALS(lan18_dst_type_vals
), 0x07, NULL
, HFILL
}},
2676 { &hf_ipmi_trn_lan18_tout
,
2677 { "Timeout/Retry Interval",
2678 "ipmi.lan18.tout", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_1s_0based
), 0, NULL
, HFILL
}},
2679 { &hf_ipmi_trn_lan18_retries
,
2681 "ipmi.lan18.retries", FT_UINT8
, BASE_DEC
, NULL
, 0x07, NULL
, HFILL
}},
2683 { &hf_ipmi_trn_lan19_dst_selector
,
2684 { "Destination Selector",
2685 "ipmi.lan19.dst_selector", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2686 { &hf_ipmi_trn_lan19_addr_format
,
2688 "ipmi.lan19.addr_format", FT_UINT8
, BASE_HEX
, VALS(lan19_af_vals
), 0xf0, NULL
, HFILL
}},
2689 { &hf_ipmi_trn_lan19_address
,
2690 { "Address (format unknown)",
2691 "ipmi.lan19.address", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2692 { &hf_ipmi_trn_lan19_gw_sel
,
2693 { "Gateway selector",
2694 "ipmi.lan19.gw_sel", FT_BOOLEAN
, 8, TFS(&lan19_gw_sel_tfs
), 0x01, NULL
, HFILL
}},
2695 { &hf_ipmi_trn_lan19_ip
,
2696 { "Alerting IP Address",
2697 "ipmi.lan19.ip", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2698 { &hf_ipmi_trn_lan19_mac
,
2699 { "Alerting MAC Address",
2700 "ipmi.lan19.mac", FT_ETHER
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2702 { &hf_ipmi_trn_lan20_vlan_id_enable
,
2704 "ipmi.lan20.vlan_id_enable", FT_BOOLEAN
, 16, TFS(&lan20_enable_tfs
), 0x8000, NULL
, HFILL
}},
2705 { &hf_ipmi_trn_lan20_vlan_id
,
2707 "ipmi.lan20.vlan_id", FT_UINT16
, BASE_HEX
, NULL
, 0x0fff, NULL
, HFILL
}},
2709 { &hf_ipmi_trn_lan21_vlan_prio
,
2711 "ipmi.lan21.vlan_prio", FT_UINT8
, BASE_DEC
, NULL
, 0x07, NULL
, HFILL
}},
2713 { &hf_ipmi_trn_lan22_num_cs_entries
,
2714 { "Number of Cipher Suite Entries",
2715 "ipmi.lan22.num_cs_entries", FT_UINT8
, BASE_DEC
, NULL
, 0x1f, NULL
, HFILL
}},
2717 { &hf_ipmi_trn_lan23_cs_entry
,
2718 { "Cipher Suite ID",
2719 "ipmi.lan23.cs_entry", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2721 { &hf_ipmi_trn_lan24_priv1
,
2722 { "Maximum Privilege Level for Cipher Suite",
2723 "ipmi.lan24.priv", FT_UINT8
, BASE_HEX
, NULL
, 0xF0, NULL
, HFILL
}},
2725 { &hf_ipmi_trn_lan24_priv2
,
2726 { "Maximum Privilege Level for Cipher Suite",
2727 "ipmi.lan24.priv", FT_UINT8
, BASE_HEX
, NULL
, 0x0F, NULL
, HFILL
}},
2729 { &hf_ipmi_trn_lan25_dst_selector
,
2730 { "Destination Selector",
2731 "ipmi.lan25.dst_selector", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2732 { &hf_ipmi_trn_lan25_addr_format
,
2734 "ipmi.lan25.addr_format", FT_UINT8
, BASE_HEX
, VALS(lan25_af_vals
), 0xf0, NULL
, HFILL
}},
2735 { &hf_ipmi_trn_lan25_address
,
2736 { "Address (format unknown)",
2737 "ipmi.lan25.address", FT_UINT8
, BASE_HEX
, NULL
, 0, NULL
, HFILL
}},
2738 { &hf_ipmi_trn_lan25_uprio
,
2740 "ipmi.lan25.uprio", FT_UINT16
, BASE_DEC
, NULL
, 0xe000, NULL
, HFILL
}},
2741 { &hf_ipmi_trn_lan25_cfi
,
2743 "ipmi.lan25.cfi", FT_BOOLEAN
, 16, NULL
, 0x1000, NULL
, HFILL
}},
2744 { &hf_ipmi_trn_lan25_vlan_id
,
2746 "ipmi.lan25.vlan_id", FT_UINT16
, BASE_HEX
, NULL
, 0x0fff, NULL
, HFILL
}},
2748 { &hf_ipmi_trn_lan26_gen_event
,
2749 { "Generate a Session Audit sensor \"Invalid password disable\" event message",
2750 "ipmi.lan26.gen_event", FT_BOOLEAN
, 8, NULL
, 0x01, NULL
, HFILL
}},
2751 { &hf_ipmi_trn_lan26_thresh_number
,
2752 { "Bad Password Threshold number",
2753 "ipmi.lan26.thresh_number", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2754 { &hf_ipmi_trn_lan26_reset_interval
,
2755 { "Attempt Count Reset Interval",
2756 "ipmi.lan26.reset_interval", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2757 { &hf_ipmi_trn_lan26_lock_interval
,
2758 { "User Lockout Interval",
2759 "ipmi.lan26.lock_interval", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2761 { &hf_ipmi_trn_lan50_ipv6_only
,
2762 { "Support IPv6 addressing only",
2763 "ipmi.lan50.ipv6_only", FT_BOOLEAN
, 8, NULL
, 0x01, NULL
, HFILL
}},
2764 { &hf_ipmi_trn_lan50_both_ipv4_ipv6
,
2765 { "Support both IPv4 and IPv6 simultaneously",
2766 "ipmi.lan50.both", FT_BOOLEAN
, 8, NULL
, 0x02, NULL
, HFILL
}},
2767 { &hf_ipmi_trn_lan50_ipv6_alerting
,
2768 { "Support IPv6 destinations for LAN Alerting",
2769 "ipmi.lan50.ipv6_alerting", FT_BOOLEAN
, 8, NULL
, 0x04, NULL
, HFILL
}},
2771 { &hf_ipmi_trn_lan51_enables
,
2773 "ipmi.lan51.enables", FT_UINT8
, BASE_HEX
, VALS(lan51_enables
), 0, NULL
, HFILL
}},
2775 { &hf_ipmi_trn_lan52_traffic_class
,
2777 "ipmi.lan52.class", FT_UINT8
, BASE_HEX
, NULL
, 0, NULL
, HFILL
}},
2779 { &hf_ipmi_trn_lanXX_hop_limit
,
2781 "ipmi.lanXX.hop_limit", FT_UINT8
, BASE_DEC_HEX
, NULL
, 0, NULL
, HFILL
}},
2783 { &hf_ipmi_trn_lan54_flow_label
,
2785 "ipmi.lan.flow_label", FT_UINT24
, BASE_HEX
, NULL
, 0x0FFFFF, NULL
, HFILL
}},
2787 { &hf_ipmi_trn_lan55_static_addr_max
,
2788 { "Static Address Max",
2789 "ipmi.lan55.static_max", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2790 { &hf_ipmi_trn_lan55_dynamic_addr_max
,
2791 { "Dynamic Address Max",
2792 "ipmi.lan55.dynamic_max", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2793 { &hf_ipmi_trn_lan55_dhcpv6_support
,
2794 { "DHCPv6 is supported",
2795 "ipmi.lan55.dhcpv6", FT_BOOLEAN
, 8, NULL
, 0x01, NULL
, HFILL
}},
2796 { &hf_ipmi_trn_lan55_slaac_support
,
2797 { "SLAAC is supported",
2798 "ipmi.lan55.slaac", FT_BOOLEAN
, 8, NULL
, 0x02, NULL
, HFILL
}},
2800 { &hf_ipmi_trn_lanXX_addr_selector
,
2801 { "Address Selector",
2802 "ipmi.lanXX.addr_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2803 { &hf_ipmi_trn_lanXX_addr_type
,
2804 { "Address source/type",
2805 "ipmi.lanXX.addr_type", FT_UINT8
, BASE_DEC
, VALS(lanXX_addr_type
), 0xF, NULL
, HFILL
}},
2806 { &hf_ipmi_trn_lanXX_addr_enable
,
2807 { "Address is enabled",
2808 "ipmi.lanXX.addr_enable", FT_BOOLEAN
, 8, NULL
, 0x80, NULL
, HFILL
}},
2809 { &hf_ipmi_trn_lanXX_addr
,
2811 "ipmi.lanXX.addr", FT_IPv6
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2812 { &hf_ipmi_trn_lanXX_prefix_len
,
2814 "ipmi.lanXX.prefix_len", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2815 { &hf_ipmi_trn_lanXX_addr_status
,
2817 "ipmi.lanXX.addr_status", FT_UINT8
, BASE_DEC
, VALS(lanXX_addr_status
), 0, NULL
, HFILL
}},
2819 { &hf_ipmi_trn_lanXX_max_duid_blocks
,
2820 { "Maximum number of 16-byte blocks",
2821 "ipmi.lanXX.max_duid_blocks", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2823 { &hf_ipmi_trn_lanXX_duid_selector
,
2825 "ipmi.lanXX.duid_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2826 { &hf_ipmi_trn_lanXX_block_selector
,
2828 "ipmi.lanXX.block_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2829 { &hf_ipmi_trn_lanXX_duid
,
2831 "ipmi.lanXX.duid", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2833 { &hf_ipmi_trn_lanXX_timing_support
,
2834 { "Timing Configuration Support",
2835 "ipmi.lanXX.timing_support", FT_UINT8
, BASE_DEC
, VALS(lanXX_timing_support
), 0, NULL
, HFILL
}},
2837 { &hf_ipmi_trn_lanXX_iface_selector
,
2838 { "IPv6 Interface selector",
2839 "ipmi.lanXX.iface_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2840 { &hf_ipmi_trn_lan63_sol_max_delay
,
2842 "ipmi.lan63.sol_max_delay", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2843 { &hf_ipmi_trn_lan63_sol_timeout
,
2845 "ipmi.lan63.sol_timeout", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2846 { &hf_ipmi_trn_lan63_sol_max_rt
,
2848 "ipmi.lan63.sol_max_rt", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2849 { &hf_ipmi_trn_lan63_req_timeout
,
2851 "ipmi.lan63.req_timeout", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2852 { &hf_ipmi_trn_lan63_req_max_rt
,
2854 "ipmi.lan63.req_max_rt", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2855 { &hf_ipmi_trn_lan63_req_max_rc
,
2857 "ipmi.lan63.req_max_rc", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2858 { &hf_ipmi_trn_lan63_cnf_max_delay
,
2860 "ipmi.lan63.cnf_max_delay", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2861 { &hf_ipmi_trn_lan63_cnf_timeout
,
2863 "ipmi.lan63.cnf_timeout", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2864 { &hf_ipmi_trn_lan63_cnf_max_rt
,
2866 "ipmi.lan63.cnf_max_rt", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2867 { &hf_ipmi_trn_lan63_cnf_max_rd
,
2869 "ipmi.lan63.cnf_max_rd", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2870 { &hf_ipmi_trn_lan63_ren_timeout
,
2872 "ipmi.lan63.ren_timeout", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2873 { &hf_ipmi_trn_lan63_ren_max_rt
,
2875 "ipmi.lan63.ren_max_rt", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2876 { &hf_ipmi_trn_lan63_reb_timeout
,
2878 "ipmi.lan63.reb_timeout", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2879 { &hf_ipmi_trn_lan63_reb_max_rt
,
2881 "ipmi.lan63.reb_max_rt", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2882 { &hf_ipmi_trn_lan63_inf_max_delay
,
2884 "ipmi.lan63.inf_max_delay", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2885 { &hf_ipmi_trn_lan63_inf_timeout
,
2887 "ipmi.lan63.inf_timeout", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2888 { &hf_ipmi_trn_lan63_inf_max_rt
,
2890 "ipmi.lan63.inf_max_rt", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2891 { &hf_ipmi_trn_lan63_rel_timeout
,
2893 "ipmi.lan63.rel_timeout", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2894 { &hf_ipmi_trn_lan63_rel_max_rc
,
2896 "ipmi.lan63.rel_max_rc", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2897 { &hf_ipmi_trn_lan63_dec_timeout
,
2899 "ipmi.lan63.dec_timeout", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2900 { &hf_ipmi_trn_lan63_dec_max_rc
,
2902 "ipmi.lan63.dec_max_rc", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2903 { &hf_ipmi_trn_lan63_hop_count_limit
,
2904 { "HOP_COUNT_LIMIT",
2905 "ipmi.lan63.hop_count_limit", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2907 { &hf_ipmi_trn_lan64_static_cfg
,
2908 { "Enable static router address",
2909 "ipmi.lan64.static_cfg", FT_BOOLEAN
, 8, NULL
, 0x01, NULL
, HFILL
}},
2910 { &hf_ipmi_trn_lan64_dynamic_cfg
,
2911 { "Enable dynamic router address configuration",
2912 "ipmi.lan64.dynamic_cfg", FT_BOOLEAN
, 8, NULL
, 0x02, NULL
, HFILL
}},
2914 { &hf_ipmi_trn_lanXX_router_selector
,
2915 { "Router selector",
2916 "ipmi.lanXX.router_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2917 { &hf_ipmi_trn_lanXX_router_mac
,
2919 "ipmi.lanXX.mac", FT_ETHER
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2920 { &hf_ipmi_trn_lanXX_router_prefix
,
2922 "ipmi.lanXX.prefix", FT_IPv6
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2924 { &hf_ipmi_trn_lan73_num_dynamic_sets
,
2925 { "Number of Dynamic Router Info sets",
2926 "ipmi.lanXX.num_dynamic_sets", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2928 { &hf_ipmi_trn_lan80_max_rtr_solicitation_delay
,
2929 { "MAX_RTR_SOLICITATION_DELAY",
2930 "ipmi.lan80.max_rtr_sol_delay", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2931 { &hf_ipmi_trn_lan80_rtr_solicitation_interval
,
2932 { "RTR_SOLICITATION_INTERVAL",
2933 "ipmi.lan80.rtr_sol_interval", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2934 { &hf_ipmi_trn_lan80_max_rtr_solicitations
,
2935 { "MAX_RTR_SOLICITATIONS",
2936 "ipmi.lan80.max_rtr_sols", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2937 { &hf_ipmi_trn_lan80_dup_addr_detect_transmits
,
2938 { "DupAddrDetectTransmits",
2939 "ipmi.lan80.dup_addr_transmits", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2940 { &hf_ipmi_trn_lan80_max_multicast_solicit
,
2941 { "MAX_MULTICAST_SOLICIT",
2942 "ipmi.lan80.max_mcast_sol", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2943 { &hf_ipmi_trn_lan80_max_unicast_solicit
,
2944 { "MAX_UNICAST_SOLICIT",
2945 "ipmi.lan80.max_ucast_sol", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2946 { &hf_ipmi_trn_lan80_max_anycast_delay_time
,
2947 { "MAX_ANYCAST_DELAY_TIME",
2948 "ipmi.lan80.max_anycast_delay", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2949 { &hf_ipmi_trn_lan80_max_neighbor_advertisement
,
2950 { "MAX_NEIGHBOR_ADVERTISEMENT",
2951 "ipmi.lan80.max_neigh_adv", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2952 { &hf_ipmi_trn_lan80_reachable_time
,
2954 "ipmi.lan80.reach_time", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2955 { &hf_ipmi_trn_lan80_retrans_timer
,
2957 "ipmi.lan80.retrans_timer", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2958 { &hf_ipmi_trn_lan80_delay_first_probe_time
,
2959 { "DELAY_FIRST_PROBE_TIME",
2960 "ipmi.lan80.delay_first_probe", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2961 { &hf_ipmi_trn_lan80_max_random_factor
,
2962 { "MAX_RANDOM_FACTOR",
2963 "ipmi.lan80.max_rand", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2964 { &hf_ipmi_trn_lan80_min_random_factor
,
2965 { "MIN_RANDOM_FACTOR",
2966 "ipmi.lan80.min_rand", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2968 { &hf_ipmi_trn_serial03_connmode
,
2969 { "Connection Mode",
2970 "ipmi.serial03.connmode", FT_BOOLEAN
, 8, TFS(&serial03_connmode_tfs
), 0x80, NULL
, HFILL
}},
2971 { &hf_ipmi_trn_serial03_terminal
,
2973 "ipmi.serial03.terminal", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x04, NULL
, HFILL
}},
2974 { &hf_ipmi_trn_serial03_ppp
,
2976 "ipmi.serial03.ppp", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
2977 { &hf_ipmi_trn_serial03_basic
,
2979 "ipmi.serial03.basic", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
2980 { &hf_ipmi_trn_serial04_timeout
,
2981 { "Session Inactivity Timeout",
2982 "ipmi.serial04.timeout", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(serial04_timeout_fmt
), 0x0f, NULL
, HFILL
}},
2983 { &hf_ipmi_trn_serial05_cbcp_callback
,
2985 "ipmi.serial05.cbcp", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
2986 { &hf_ipmi_trn_serial05_ipmi_callback
,
2988 "ipmi.serial05.ipmi", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
2989 { &hf_ipmi_trn_serial05_cb_list
,
2990 { "Callback to list of possible numbers",
2991 "ipmi.serial05.cb_list", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x08, NULL
, HFILL
}},
2992 { &hf_ipmi_trn_serial05_cb_user
,
2993 { "Callback to user-specifiable number",
2994 "ipmi.serial05.cb_user", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x04, NULL
, HFILL
}},
2995 { &hf_ipmi_trn_serial05_cb_prespec
,
2996 { "Callback to pre-specified number",
2997 "ipmi.serial05.cb_prespec", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
2998 { &hf_ipmi_trn_serial05_no_cb
,
3000 "ipmi.serial05.no_cb", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
3001 { &hf_ipmi_trn_serial05_cb_dest1
,
3002 { "Callback destination 1",
3003 "ipmi.serial05.cb_dest1", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3004 { &hf_ipmi_trn_serial05_cb_dest2
,
3005 { "Callback destination 2",
3006 "ipmi.serial05.cb_dest2", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3007 { &hf_ipmi_trn_serial05_cb_dest3
,
3008 { "Callback destination 3",
3009 "ipmi.serial05.cb_dest3", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3010 { &hf_ipmi_trn_serial06_inactivity
,
3011 { "Session Inactivity Timeout",
3012 "ipmi.serial06.inactivity", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
3013 { &hf_ipmi_trn_serial06_dcd
,
3014 { "Close on DCD Loss",
3015 "ipmi.serial06.dcd", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
3016 { &hf_ipmi_trn_serial07_flowctl
,
3018 "ipmi.serial07.flowctl", FT_UINT8
, BASE_HEX
, VALS(serialXX_flowctl_vals
), 0xc0, NULL
, HFILL
}},
3019 { &hf_ipmi_trn_serial07_dtrhangup
,
3021 "ipmi.serial07.dtrhangup", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x20, NULL
, HFILL
}},
3022 { &hf_ipmi_trn_serial07_bitrate
,
3024 "ipmi.serial07.bitrate", FT_UINT8
, BASE_HEX
, VALS(serialXX_bitrate_vals
), 0x0f, NULL
, HFILL
}},
3025 { &hf_ipmi_trn_serial08_esc_powerup
,
3026 { "Power-up/wakeup via ESC-^",
3027 "ipmi.serial08.esc_powerup", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x40, NULL
, HFILL
}},
3028 { &hf_ipmi_trn_serial08_esc_reset
,
3029 { "Hard reset via ESC-R-ESC-r-ESC-R",
3030 "ipmi.serial08.esc_reset", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x20, NULL
, HFILL
}},
3031 { &hf_ipmi_trn_serial08_switch_authcap
,
3032 { "Baseboard-to-BMC switch on Get Channel Auth Capabilities",
3033 "ipmi.serial08.switch_authcap", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x10, NULL
, HFILL
}},
3034 { &hf_ipmi_trn_serial08_switch_rmcp
,
3035 { "Switch to BMC on IPMI-RMCP pattern",
3036 "ipmi.serial08.switch_rmcp", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x08, NULL
, HFILL
}},
3037 { &hf_ipmi_trn_serial08_esc_switch1
,
3038 { "BMC-to-Baseboard switch via ESC-Q",
3039 "ipmi.serial08.esc_switch1", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x04, NULL
, HFILL
}},
3040 { &hf_ipmi_trn_serial08_esc_switch2
,
3041 { "Baseboard-to-BMC switch via ESC-(",
3042 "ipmi.serial08.esc_switch2", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
3043 { &hf_ipmi_trn_serial08_switch_dcdloss
,
3044 { "Switch to BMC on DCD loss",
3045 "ipmi.serial08.switch_dcdloss", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
3046 { &hf_ipmi_trn_serial08_sharing
,
3047 { "Serial Port Sharing",
3048 "ipmi.serial08.sharing", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x08, NULL
, HFILL
}},
3049 { &hf_ipmi_trn_serial08_ping_callback
,
3050 { "Serial/Modem Connection Active during callback",
3051 "ipmi.serial08.ping_callback", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x04, NULL
, HFILL
}},
3052 { &hf_ipmi_trn_serial08_ping_direct
,
3053 { "Serial/Modem Connection Active during direct call",
3054 "ipmi.serial08.ping_direct", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
3055 { &hf_ipmi_trn_serial08_ping_retry
,
3056 { "Retry Serial/Modem Connection Active",
3057 "ipmi.serial08.ping_retry", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
3058 { &hf_ipmi_trn_serial09_ring_duration
,
3060 "ipmi.serial09.ring_duration", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_500ms_1based
), 0x3f, NULL
, HFILL
}},
3061 { &hf_ipmi_trn_serial09_ring_dead
,
3063 "ipmi.serial09.ring_dead", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_500ms_0based
), 0x0f, NULL
, HFILL
}},
3064 { &hf_ipmi_trn_serial10_set_sel
,
3065 { "Set selector (16-byte block #)",
3066 "ipmi.serial10.set_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3067 { &hf_ipmi_trn_serial10_init_str
,
3068 { "Modem Init String",
3069 "ipmi.serial10.init_str", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3070 { &hf_ipmi_trn_serial11_esc_seq
,
3071 { "Modem Escape Sequence",
3072 "ipmi.serial11.esc_seq", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3073 { &hf_ipmi_trn_serial12_hangup_seq
,
3074 { "Modem Hang-up Sequence",
3075 "ipmi.serial12.hangup_seq", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3076 { &hf_ipmi_trn_serial13_dial_cmd
,
3077 { "Modem Dial Command",
3078 "ipmi.serial13.dial_cmd", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3079 { &hf_ipmi_trn_serial14_page_blackout
,
3080 { "Page Blackout Interval (minutes)",
3081 "ipmi.serial14.page_blackout", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3082 { &hf_ipmi_trn_serial15_comm_string
,
3083 { "Community String",
3084 "ipmi.serial15.comm_string", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3085 { &hf_ipmi_trn_serial16_ndest
,
3086 { "Number of non-volatile Alert Destinations",
3087 "ipmi.serial16.ndest", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3088 { &hf_ipmi_trn_serial17_dest_sel
,
3089 { "Destination Selector",
3090 "ipmi.serial17.dest_sel", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3091 { &hf_ipmi_trn_serial17_ack
,
3092 { "Alert Acknowledge",
3093 "ipmi.serial17.ack", FT_BOOLEAN
, 8, NULL
, 0x80, NULL
, HFILL
}},
3094 { &hf_ipmi_trn_serial17_dest_type
,
3095 { "Destination Type",
3096 "ipmi.serial17.dest_type", FT_UINT8
, BASE_HEX
, VALS(serial17_dest_type_vals
), 0x0f, NULL
, HFILL
}},
3098 { &hf_ipmi_trn_serial17_ack_timeout
,
3099 { "Alert Acknowledge Timeout",
3100 "ipmi.serial17.ack_timeout", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3102 { &hf_ipmi_trn_serial17_alert_retries
,
3104 "ipmi.serial17.alert_retries", FT_UINT8
, BASE_DEC
, NULL
, 0x70, NULL
, HFILL
}},
3105 { &hf_ipmi_trn_serial17_call_retries
,
3107 "ipmi.serial17.call_retries", FT_UINT8
, BASE_DEC
, NULL
, 0x07, NULL
, HFILL
}},
3108 { &hf_ipmi_trn_serial17_alert_ack_timeout
,
3109 { "Alert Acknowledge Timeout",
3110 "ipmi.serial17.alert_ack_timeout", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_1s_0based
), 0, NULL
, HFILL
}},
3111 { &hf_ipmi_trn_serial17_dialstr_sel
,
3112 { "Dial String Selector",
3113 "ipmi.serial17.dialstr_sel", FT_UINT8
, BASE_DEC
, NULL
, 0xf0, NULL
, HFILL
}},
3114 { &hf_ipmi_trn_serial17_tap_sel
,
3115 { "TAP Account Selector",
3116 "ipmi.serial17.tap_sel", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3117 { &hf_ipmi_trn_serial17_ipaddr_sel
,
3118 { "Destination IP Address Selector",
3119 "ipmi.serial17.ipaddr_sel", FT_UINT8
, BASE_DEC
, NULL
, 0xf0, NULL
, HFILL
}},
3120 { &hf_ipmi_trn_serial17_ppp_sel
,
3121 { "PPP Account Set Selector",
3122 "ipmi.serial17.ppp_sel", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3123 { &hf_ipmi_trn_serial17_unknown
,
3124 { "Destination-specific (format unknown)",
3125 "ipmi.serial17.unknown", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3126 { &hf_ipmi_trn_serial18_call_retry
,
3127 { "Call Retry Interval",
3128 "ipmi.serial18.call_retry", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3129 { &hf_ipmi_trn_serial19_destsel
,
3130 { "Destination selector",
3131 "ipmi.serial19.destsel", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3132 { &hf_ipmi_trn_serial19_flowctl
,
3134 "ipmi.serial19.flowctl", FT_UINT8
, BASE_HEX
, VALS(serialXX_flowctl_vals
), 0xc0, NULL
, HFILL
}},
3135 { &hf_ipmi_trn_serial19_dtrhangup
,
3137 "ipmi.serial19.dtrhangup", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x20, NULL
, HFILL
}},
3138 { &hf_ipmi_trn_serial19_stopbits
,
3140 "ipmi.serial19.stopbits", FT_BOOLEAN
, 8, TFS(&serial19_stopbits_tfs
), 0x10, NULL
, HFILL
}},
3141 { &hf_ipmi_trn_serial19_charsize
,
3143 "ipmi.serial19.charsize", FT_BOOLEAN
, 8, TFS(&serial19_charsize_tfs
), 0x08, NULL
, HFILL
}},
3144 { &hf_ipmi_trn_serial19_parity
,
3146 "ipmi.serial19.parity", FT_UINT8
, BASE_HEX
, VALS(serial19_parity_vals
), 0x07, NULL
, HFILL
}},
3147 { &hf_ipmi_trn_serial19_bitrate
,
3149 "ipmi.serial19.bitrate", FT_UINT8
, BASE_HEX
, VALS(serialXX_bitrate_vals
), 0x0f, NULL
, HFILL
}},
3150 { &hf_ipmi_trn_serial20_num_dial_strings
,
3151 { "Number of Dial Strings",
3152 "ipmi.serial20.num_dial_strings", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3153 { &hf_ipmi_trn_serial21_dialsel
,
3154 { "Dial String Selector",
3155 "ipmi.serial21.dialsel", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3156 { &hf_ipmi_trn_serial21_blockno
,
3158 "ipmi.serial21.blockno", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3159 { &hf_ipmi_trn_serial21_dialstr
,
3161 "ipmi.serial21.dialstr", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3162 { &hf_ipmi_trn_serial22_num_ipaddrs
,
3163 { "Number of Alert Destination IP Addresses",
3164 "ipmi.serial22.num_ipaddrs", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3165 { &hf_ipmi_trn_serial23_destsel
,
3166 { "Destination IP Address selector",
3167 "ipmi.serial23.destsel", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3168 { &hf_ipmi_trn_serial23_ipaddr
,
3169 { "Destination IP Address",
3170 "ipmi.serial23.ipaddr", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3171 { &hf_ipmi_trn_serial24_num_tap_accounts
,
3172 { "Number of TAP Accounts",
3173 "ipmi.serial24.num_tap_accounts", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3174 { &hf_ipmi_trn_serial25_tap_acct
,
3175 { "TAP Account Selector",
3176 "ipmi.serial25.tap_acct", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3177 { &hf_ipmi_trn_serial25_dialstr_sel
,
3178 { "Dial String Selector",
3179 "ipmi.serial25.dialstr_sel", FT_UINT8
, BASE_DEC
, NULL
, 0xf0, NULL
, HFILL
}},
3180 { &hf_ipmi_trn_serial25_tapsrv_sel
,
3181 { "TAP Service Settings Selector",
3182 "ipmi.serial25.tapsrv_sel", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3183 { &hf_ipmi_trn_serial26_tap_acct
,
3184 { "TAP Account Selector",
3185 "ipmi.serial26.tap_acct", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3186 { &hf_ipmi_trn_serial26_tap_passwd
,
3188 "ipmi.serial26.tap_passwd", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3189 { &hf_ipmi_trn_serial27_tap_acct
,
3190 { "TAP Account Selector",
3191 "ipmi.serial27.tap_acct", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3192 { &hf_ipmi_trn_serial27_tap_pager_id
,
3193 { "TAP Pager ID String",
3194 "ipmi.serial27.tap_pager_id", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3195 { &hf_ipmi_trn_serial28_tapsrv_sel
,
3196 { "TAP Service Settings Selector",
3197 "ipmi.serial28.tapsrv_sel", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3198 { &hf_ipmi_trn_serial28_confirm
,
3199 { "TAP Confirmation",
3200 "ipmi.serial28.confirm", FT_UINT8
, BASE_HEX
, VALS(serial28_confirm_vals
), 0x03, NULL
, HFILL
}},
3201 { &hf_ipmi_trn_serial28_srvtype
,
3202 { "TAP 'SST' Service Type",
3203 "ipmi.serial28.srvtype", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3204 { &hf_ipmi_trn_serial28_ctrl_esc
,
3205 { "TAP Control-character escaping mask",
3206 "ipmi.serial28.ctrl_esc", FT_UINT32
, BASE_HEX
, NULL
, 0, NULL
, HFILL
}},
3207 { &hf_ipmi_trn_serial28_t2
,
3209 "ipmi.serial28.tap_t2", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_500ms_0based
), 0xf0, NULL
, HFILL
}},
3210 { &hf_ipmi_trn_serial28_t1
,
3212 "ipmi.serial28.tap_t1", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_1s_0based
), 0x0f, NULL
, HFILL
}},
3213 { &hf_ipmi_trn_serial28_t4
,
3215 "ipmi.serial28.tap_t4", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_1s_0based
), 0xf0, NULL
, HFILL
}},
3216 { &hf_ipmi_trn_serial28_t3
,
3218 "ipmi.serial28.tap_t3", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_2s_0based
), 0x0f, NULL
, HFILL
}},
3219 { &hf_ipmi_trn_serial28_t6
,
3221 "ipmi.serial28.ipmi_t6", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_1s_0based
), 0xf0, NULL
, HFILL
}},
3222 { &hf_ipmi_trn_serial28_t5
,
3224 "ipmi.serial28.tap_t5", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_2s_0based
), 0x0f, NULL
, HFILL
}},
3225 { &hf_ipmi_trn_serial28_n2
,
3227 "ipmi.serial28.tap_n2", FT_UINT8
, BASE_DEC
, NULL
, 0xf0, NULL
, HFILL
}},
3228 { &hf_ipmi_trn_serial28_n1
,
3230 "ipmi.serial28.tap_n1", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3231 { &hf_ipmi_trn_serial28_n4
,
3233 "ipmi.serial28.ipmi_n4", FT_UINT8
, BASE_DEC
, NULL
, 0xf0, NULL
, HFILL
}},
3234 { &hf_ipmi_trn_serial28_n3
,
3236 "ipmi.serial28.tap_n3", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3237 { &hf_ipmi_trn_serial29_op
,
3238 { "Parameter Operation",
3239 "ipmi.serial29.op", FT_UINT8
, BASE_HEX
, VALS(serial29_op_vals
), 0xc0, NULL
, HFILL
}},
3240 { &hf_ipmi_trn_serial29_lineedit
,
3242 "ipmi.serial29.lineedit", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x20, NULL
, HFILL
}},
3243 { &hf_ipmi_trn_serial29_deletectl
,
3245 "ipmi.serial29.deletectl", FT_UINT8
, BASE_HEX
, VALS(serial29_delete_vals
), 0x0c, NULL
, HFILL
}},
3246 { &hf_ipmi_trn_serial29_echo
,
3248 "ipmi.serial29.echo", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
3249 { &hf_ipmi_trn_serial29_handshake
,
3251 "ipmi.serial29.handshake", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
3252 { &hf_ipmi_trn_serial29_o_newline
,
3253 { "Output newline sequence",
3254 "ipmi.serial29.o_newline", FT_UINT8
, BASE_HEX
, VALS(serial29_o_nl_vals
), 0xf0, NULL
, HFILL
}},
3255 { &hf_ipmi_trn_serial29_i_newline
,
3256 { "Input newline sequence",
3257 "ipmi.serial29.i_newline", FT_UINT8
, BASE_HEX
, VALS(serial29_i_nl_vals
), 0x0f, NULL
, HFILL
}},
3258 { &hf_ipmi_trn_serial30_snooping
,
3259 { "System Negotiation Snooping",
3260 "ipmi.serial30.snooping", FT_BOOLEAN
, 8, NULL
, 0x04, NULL
, HFILL
}},
3261 { &hf_ipmi_trn_serial30_snoopctl
,
3262 { "Snoop ACCM Control",
3263 "ipmi.serial30.snoopctl", FT_UINT8
, BASE_HEX
, VALS(serial30_snoopctl_vals
), 0x03, NULL
, HFILL
}},
3264 { &hf_ipmi_trn_serial30_negot_ctl
,
3265 { "BMC negotiates link parameters",
3266 "ipmi.serial30.negot_ctl", FT_UINT8
, BASE_HEX
, VALS(serial30_negoctl_vals
), 0x30, NULL
, HFILL
}},
3267 { &hf_ipmi_trn_serial30_use_xmit_accm
,
3268 { "Filtering incoming chars",
3269 "ipmi.serial30.filter", FT_BOOLEAN
, 8, TFS(&serial30_filter_tfs
), 0x04, NULL
, HFILL
}},
3270 { &hf_ipmi_trn_serial30_xmit_addr_comp
,
3271 { "Transmit with Address and Ctl Field Compression",
3272 "ipmi.serial30.xmit_addr_comp", FT_BOOLEAN
, 8, NULL
, 0x02, NULL
, HFILL
}},
3273 { &hf_ipmi_trn_serial30_xmit_proto_comp
,
3274 { "Transmit with Protocol Field Compression",
3275 "ipmi.serial30.xmit_proto_comp", FT_BOOLEAN
, 8, NULL
, 0x01, NULL
, HFILL
}},
3276 { &hf_ipmi_trn_serial30_ipaddr
,
3277 { "IP Address negotiation",
3278 "ipmi.serial30.ipaddr", FT_UINT8
, BASE_HEX
, VALS(serial30_ipaddr_val
), 0x18, NULL
, HFILL
}},
3279 { &hf_ipmi_trn_serial30_accm
,
3280 { "ACCM Negotiation",
3281 "ipmi.serial30.accm", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x04, NULL
, HFILL
}},
3282 { &hf_ipmi_trn_serial30_addr_comp
,
3283 { "Address and Ctl Field Compression",
3284 "ipmi.serial30.addr_comp", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
3285 { &hf_ipmi_trn_serial30_proto_comp
,
3286 { "Protocol Field Compression",
3287 "ipmi.serial30.proto_comp", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
3288 { &hf_ipmi_trn_serial31_port
,
3289 { "Primary RMCP Port Number",
3290 "ipmi.serial31.port", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_udpport
), 0, NULL
, HFILL
}},
3291 { &hf_ipmi_trn_serial32_port
,
3292 { "Secondary RMCP Port Number",
3293 "ipmi.serial32.port", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_udpport
), 0, NULL
, HFILL
}},
3294 { &hf_ipmi_trn_serial33_auth_proto
,
3295 { "PPP Link Authentication Protocol",
3296 "ipmi.serial33.auth_proto", FT_UINT8
, BASE_HEX
, VALS(serialXX_proto_vals
), 0x0f, NULL
, HFILL
}},
3297 { &hf_ipmi_trn_serial34_chap_name
,
3299 "ipmi.serial34.chap_name", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3300 { &hf_ipmi_trn_serial35_recv_accm
,
3302 "ipmi.serial35.recv_accm", FT_UINT32
, BASE_HEX
, NULL
, 0, NULL
, HFILL
}},
3303 { &hf_ipmi_trn_serial35_xmit_accm
,
3305 "ipmi.serial35.xmit_accm", FT_UINT32
, BASE_HEX
, NULL
, 0, NULL
, HFILL
}},
3306 { &hf_ipmi_trn_serial36_snoop_accm
,
3307 { "Snoop Receive ACCM",
3308 "ipmi.serial36.snoop_accm", FT_UINT32
, BASE_HEX
, NULL
, 0, NULL
, HFILL
}},
3309 { &hf_ipmi_trn_serial37_num_ppp
,
3310 { "Number of PPP Accounts",
3311 "ipmi.serial37.num_ppp", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3312 { &hf_ipmi_trn_serial38_acct_sel
,
3313 { "PPP Account Selector",
3314 "ipmi.serial38.acct_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3315 { &hf_ipmi_trn_serial38_dialstr_sel
,
3316 { "Dial String Selector",
3317 "ipmi.serial38.dialstr_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3318 { &hf_ipmi_trn_serial39_acct_sel
,
3319 { "PPP Account Selector",
3320 "ipmi.serial39.acct_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3321 { &hf_ipmi_trn_serial39_ipaddr
,
3323 "ipmi.serial39.ipaddr", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3324 { &hf_ipmi_trn_serial40_acct_sel
,
3325 { "PPP Account Selector",
3326 "ipmi.serial40.acct_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3327 { &hf_ipmi_trn_serial40_username
,
3329 "ipmi.serial40.username", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3330 { &hf_ipmi_trn_serial41_acct_sel
,
3331 { "PPP Account Selector",
3332 "ipmi.serial41.acct_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3333 { &hf_ipmi_trn_serial41_userdomain
,
3335 "ipmi.serial41.userdomain", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3336 { &hf_ipmi_trn_serial42_acct_sel
,
3337 { "PPP Account Selector",
3338 "ipmi.serial42.acct_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3339 { &hf_ipmi_trn_serial42_userpass
,
3341 "ipmi.serial42.userpass", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3342 { &hf_ipmi_trn_serial43_acct_sel
,
3343 { "PPP Account Selector",
3344 "ipmi.serial43.acct_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3345 { &hf_ipmi_trn_serial43_auth_proto
,
3347 "ipmi.serial43.auth_proto", FT_UINT8
, BASE_HEX
, VALS(serialXX_proto_vals
), 0x0f, NULL
, HFILL
}},
3348 { &hf_ipmi_trn_serial44_acct_sel
,
3349 { "PPP Account Selector",
3350 "ipmi.serial44.acct_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3351 { &hf_ipmi_trn_serial44_hold_time
,
3352 { "Connection Hold Time",
3353 "ipmi.serial44.hold_time", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_1s_1based
), 0, NULL
, HFILL
}},
3354 { &hf_ipmi_trn_serial45_src_ipaddr
,
3355 { "Source IP Address",
3356 "ipmi.serial45.src_ipaddr", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3357 { &hf_ipmi_trn_serial45_dst_ipaddr
,
3358 { "Destination IP Address",
3359 "ipmi.serial45.dst_ipaddr", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3360 { &hf_ipmi_trn_serial46_tx_bufsize
,
3361 { "Transmit Buffer Size",
3362 "ipmi.serial46.tx_size", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3363 { &hf_ipmi_trn_serial47_rx_bufsize
,
3364 { "Receive Buffer Size",
3365 "ipmi.serial47.rx_size", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3366 { &hf_ipmi_trn_serial48_ipaddr
,
3367 { "Remote Console IP Address",
3368 "ipmi.serial48.ipaddr", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3369 { &hf_ipmi_trn_serial49_blockno
,
3371 "ipmi.serial49.blockno", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3372 { &hf_ipmi_trn_serial49_dialstr
,
3374 "ipmi.serial49.dialstr", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3375 { &hf_ipmi_trn_serial50_115200
,
3377 "ipmi.serial50.115200", FT_BOOLEAN
, 8, NULL
, 0x10, NULL
, HFILL
}},
3378 { &hf_ipmi_trn_serial50_57600
,
3380 "ipmi.serial50.57600", FT_BOOLEAN
, 8, NULL
, 0x08, NULL
, HFILL
}},
3381 { &hf_ipmi_trn_serial50_38400
,
3383 "ipmi.serial50.38400", FT_BOOLEAN
, 8, NULL
, 0x04, NULL
, HFILL
}},
3384 { &hf_ipmi_trn_serial50_19200
,
3386 "ipmi.serial50.19200", FT_BOOLEAN
, 8, NULL
, 0x02, NULL
, HFILL
}},
3387 { &hf_ipmi_trn_serial50_9600
,
3389 "ipmi.serial50.9600", FT_BOOLEAN
, 8, NULL
, 0x01, NULL
, HFILL
}},
3390 { &hf_ipmi_trn_serial51_port_assoc_sel
,
3391 { "Serial Port Association Entry",
3392 "ipmi.serial51.port_assoc_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3393 { &hf_ipmi_trn_serial51_ipmi_channel
,
3395 "ipmi.serial51.ipmi_channel", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_channel
), 0xf0, NULL
, HFILL
}},
3396 { &hf_ipmi_trn_serial51_conn_num
,
3397 { "Connector number",
3398 "ipmi.serial51.conn_num", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3399 { &hf_ipmi_trn_serial51_ipmi_sharing
,
3400 { "Used with IPMI Serial Port Sharing",
3401 "ipmi.serial51.ipmi_sharing", FT_BOOLEAN
, 8, NULL
, 0x80, NULL
, HFILL
}},
3402 { &hf_ipmi_trn_serial51_ipmi_sol
,
3403 { "Used with IPMI Serial-over-LAN",
3404 "ipmi.serial51.ipmi_sol", FT_BOOLEAN
, 8, NULL
, 0x40, NULL
, HFILL
}},
3405 { &hf_ipmi_trn_serial51_chan_num
,
3406 { "Serial controller channel number",
3407 "ipmi.serial51.chan_num", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3408 { &hf_ipmi_trn_serial52_port_assoc_sel
,
3409 { "Serial Port Association Entry",
3410 "ipmi.serial52.port_assoc_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3411 { &hf_ipmi_trn_serial52_conn_name
,
3413 "ipmi.serial52_conn_name", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3414 { &hf_ipmi_trn_serial53_port_assoc_sel
,
3415 { "Serial Port Association Entry",
3416 "ipmi.serial53.port_assoc_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3417 { &hf_ipmi_trn_serial53_chan_name
,
3419 "ipmi.serial52_chan_name", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3421 { &hf_ipmi_trn_01_chan
,
3423 "ipmi.tr01.chan", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_channel
), 0x0f, NULL
, HFILL
}},
3424 { &hf_ipmi_trn_01_param
,
3425 { "Parameter Selector",
3426 "ipmi.tr01.param", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3427 { &hf_ipmi_trn_01_param_data
,
3429 "ipmi.tr01.param_data", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3431 { &hf_ipmi_trn_02_getrev
,
3432 { "Get parameter revision only",
3433 "ipmi.tr02.getrev", FT_BOOLEAN
, 8, NULL
, 0x80, NULL
, HFILL
}},
3434 { &hf_ipmi_trn_02_chan
,
3436 "ipmi.tr02.chan", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_channel
), 0x0f, NULL
, HFILL
}},
3437 { &hf_ipmi_trn_02_param
,
3438 { "Parameter selector",
3439 "ipmi.tr02.param", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3440 { &hf_ipmi_trn_02_set
,
3442 "ipmi.tr02.set", FT_UINT8
, BASE_HEX
, NULL
, 0, NULL
, HFILL
}},
3443 { &hf_ipmi_trn_02_block
,
3445 "ipmi.tr02.block", FT_UINT8
, BASE_HEX
, NULL
, 0, NULL
, HFILL
}},
3446 { &hf_ipmi_trn_02_rev_present
,
3447 { "Present parameter revision",
3448 "ipmi.tr02.rev.present", FT_UINT8
, BASE_DEC
, NULL
, 0xf0, NULL
, HFILL
}},
3449 { &hf_ipmi_trn_02_rev_compat
,
3450 { "Oldest forward-compatible",
3451 "ipmi.tr02.rev.compat", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3452 { &hf_ipmi_trn_02_param_data
,
3454 "ipmi.tr02.param_data", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3456 { &hf_ipmi_trn_03_chan
,
3458 "ipmi.tr03.chan", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_channel
), 0x0f, NULL
, HFILL
}},
3459 { &hf_ipmi_trn_03_arp_resp
,
3460 { "BMC-generated ARP responses",
3461 "ipmi.tr03.arp_resp", FT_BOOLEAN
, 8, TFS(&tfs_03_suspend
), 0x02, NULL
, HFILL
}},
3462 { &hf_ipmi_trn_03_gratuitous_arp
,
3463 { "Gratuitous ARPs",
3464 "ipmi.tr03.gratuitous_arp", FT_BOOLEAN
, 8, TFS(&tfs_03_suspend
), 0x01, NULL
, HFILL
}},
3465 { &hf_ipmi_trn_03_status_arp_resp
,
3466 { "ARP Response status",
3467 "ipmi.tr03.status_arp_resp", FT_BOOLEAN
, 8, TFS(&tfs_03_arp_status
), 0x02, NULL
, HFILL
}},
3468 { &hf_ipmi_trn_03_status_gratuitous_arp
,
3469 { "Gratuitous ARP status",
3470 "ipmi.tr03.status_gratuitous_arp", FT_BOOLEAN
, 8, TFS(&tfs_03_arp_status
), 0x01, NULL
, HFILL
}},
3472 { &hf_ipmi_trn_04_chan
,
3474 "ipmi.tr04.chan", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_channel
), 0x0f, NULL
, HFILL
}},
3475 { &hf_ipmi_trn_04_clear
,
3477 "ipmi.tr04.clear", FT_BOOLEAN
, 8, TFS(&tfs_04_clear
), 0x01, NULL
, HFILL
}},
3478 { &hf_ipmi_trn_04_rx_ippkts
,
3479 { "Received IP Packets",
3480 "ipmi.tr04.rx_ippkts", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3481 { &hf_ipmi_trn_04_rx_iphdr_err
,
3482 { "Received IP Header Errors",
3483 "ipmi.tr04.rx_iphdr_err", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3484 { &hf_ipmi_trn_04_rx_ipaddr_err
,
3485 { "Received IP Address Errors",
3486 "ipmi.tr04.rx_ipaddr_err", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3487 { &hf_ipmi_trn_04_rx_ippkts_frag
,
3488 { "Received Fragmented IP Packets",
3489 "ipmi.tr04.rx_ippkts_frag", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3490 { &hf_ipmi_trn_04_tx_ippkts
,
3491 { "Transmitted IP Packets",
3492 "ipmi.tr04.tx_ippkts", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3493 { &hf_ipmi_trn_04_rx_udppkts
,
3494 { "Received UDP Packets",
3495 "ipmi.tr04.rx_udppkts", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3496 { &hf_ipmi_trn_04_rx_validrmcp
,
3497 { "Received Valid RMCP Packets",
3498 "ipmi.tr04.rx_validrmcp", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3499 { &hf_ipmi_trn_04_rx_udpproxy
,
3500 { "Received UDP Proxy Packets",
3501 "ipmi.tr04.rx_udpproxy", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3502 { &hf_ipmi_trn_04_dr_udpproxy
,
3503 { "Dropped UDP Proxy Packets",
3504 "ipmi.tr04.dr_udpproxy", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3506 { &hf_ipmi_trn_10_chan
,
3508 "ipmi.tr10.chan", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_channel
), 0x0f, NULL
, HFILL
}},
3509 { &hf_ipmi_trn_10_param
,
3510 { "Parameter Selector",
3511 "ipmi.tr10.param", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3512 { &hf_ipmi_trn_10_param_data
,
3514 "ipmi.tr10.param_data", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3516 { &hf_ipmi_trn_11_getrev
,
3517 { "Get parameter revision only",
3518 "ipmi.tr11.getrev", FT_BOOLEAN
, 8, NULL
, 0x80, NULL
, HFILL
}},
3519 { &hf_ipmi_trn_11_chan
,
3521 "ipmi.tr11.chan", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_channel
), 0x0f, NULL
, HFILL
}},
3522 { &hf_ipmi_trn_11_param
,
3523 { "Parameter selector",
3524 "ipmi.tr11.param", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3525 { &hf_ipmi_trn_11_set
,
3527 "ipmi.tr11.set", FT_UINT8
, BASE_HEX
, NULL
, 0, NULL
, HFILL
}},
3528 { &hf_ipmi_trn_11_block
,
3530 "ipmi.tr11.block", FT_UINT8
, BASE_HEX
, NULL
, 0, NULL
, HFILL
}},
3531 { &hf_ipmi_trn_11_rev_present
,
3532 { "Present parameter revision",
3533 "ipmi.tr11.rev.present", FT_UINT8
, BASE_DEC
, NULL
, 0xf0, NULL
, HFILL
}},
3534 { &hf_ipmi_trn_11_rev_compat
,
3535 { "Oldest forward-compatible",
3536 "ipmi.tr11.rev.compat", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3537 { &hf_ipmi_trn_11_param_data
,
3539 "ipmi.tr11.param_data", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3541 { &hf_ipmi_trn_12_chan
,
3543 "ipmi.tr12.chan", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_channel
), 0x0f, NULL
, HFILL
}},
3544 { &hf_ipmi_trn_12_mux_setting
,
3546 "ipmi.tr12.mux_setting", FT_UINT8
, BASE_HEX
, VALS(vals_12_mux
), 0x0f, NULL
, HFILL
}},
3547 { &hf_ipmi_trn_12_sw_to_sys
,
3548 { "Requests to switch to system",
3549 "ipmi.tr12.sw_to_sys", FT_BOOLEAN
, 8, TFS(&tfs_12_blocked
), 0x80, NULL
, HFILL
}},
3550 { &hf_ipmi_trn_12_sw_to_bmc
,
3551 { "Requests to switch to BMC",
3552 "ipmi.tr12.sw_to_bmc", FT_BOOLEAN
, 8, TFS(&tfs_12_blocked
), 0x40, NULL
, HFILL
}},
3553 { &hf_ipmi_trn_12_alert
,
3554 { "Alert in progress",
3555 "ipmi.tr12.alert", FT_BOOLEAN
, 8, NULL
, 0x08, NULL
, HFILL
}},
3556 { &hf_ipmi_trn_12_msg
,
3557 { "IPMI/OEM messaging active",
3558 "ipmi.tr12.msg", FT_BOOLEAN
, 8, NULL
, 0x04, NULL
, HFILL
}},
3559 { &hf_ipmi_trn_12_req
,
3561 "ipmi.tr12.req", FT_BOOLEAN
, 8, TFS(&tfs_12_req
), 0x02, NULL
, HFILL
}},
3562 { &hf_ipmi_trn_12_mux_state
,
3564 "ipmi.tr12.mux_state", FT_BOOLEAN
, 8, TFS(&tfs_12_mux_state
), 0x01, NULL
, HFILL
}},
3566 { &hf_ipmi_trn_13_chan
,
3568 "ipmi.tr13.chan", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_channel
), 0x0f, NULL
, HFILL
}},
3569 { &hf_ipmi_trn_13_code1
,
3571 "ipmi.tr13.code1", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3572 { &hf_ipmi_trn_13_code2
,
3574 "ipmi.tr13.code2", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3575 { &hf_ipmi_trn_13_code3
,
3577 "ipmi.tr13.code3", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3578 { &hf_ipmi_trn_13_code4
,
3580 "ipmi.tr13.code4", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3581 { &hf_ipmi_trn_13_code5
,
3583 "ipmi.tr13.code5", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3585 { &hf_ipmi_trn_14_chan
,
3587 "ipmi.tr14.chan", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_channel
), 0x0f, NULL
, HFILL
}},
3588 { &hf_ipmi_trn_14_block
,
3590 "ipmi.tr14.block", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3591 { &hf_ipmi_trn_14_data
,
3593 "ipmi.tr14.data", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3595 { &hf_ipmi_trn_15_chan
,
3597 "ipmi.tr15.chan", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_channel
), 0x0f, NULL
, HFILL
}},
3598 { &hf_ipmi_trn_15_block
,
3600 "ipmi.tr15.block", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3601 { &hf_ipmi_trn_15_data
,
3603 "ipmi.tr15.data", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3605 { &hf_ipmi_trn_16_chan
,
3607 "ipmi.tr16.chan", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_channel
), 0x0f, NULL
, HFILL
}},
3608 { &hf_ipmi_trn_16_src_port
,
3610 "ipmi.tr16.src_port", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_udpport
), 0, NULL
, HFILL
}},
3611 { &hf_ipmi_trn_16_dst_port
,
3612 { "Destination Port",
3613 "ipmi.tr16.dst_port", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_udpport
), 0, NULL
, HFILL
}},
3614 { &hf_ipmi_trn_16_src_addr
,
3615 { "Source IP Address",
3616 "ipmi.tr16.src_addr", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3617 { &hf_ipmi_trn_16_dst_addr
,
3618 { "Destination IP Address",
3619 "ipmi.tr16.dst_addr", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3620 { &hf_ipmi_trn_16_bytes
,
3622 "ipmi.tr16.bytes", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3624 { &hf_ipmi_trn_17_chan
,
3626 "ipmi.tr17.chan", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_channel
), 0x0f, NULL
, HFILL
}},
3627 { &hf_ipmi_trn_17_clear
,
3629 "ipmi.tr17.clear", FT_BOOLEAN
, 8, NULL
, 0x80, NULL
, HFILL
}},
3630 { &hf_ipmi_trn_17_block_num
,
3632 "ipmi.tr17.block_num", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(tr17_fmt_blockno
), 0x7f, NULL
, HFILL
}},
3633 { &hf_ipmi_trn_17_size
,
3634 { "Number of received bytes",
3635 "ipmi.tr17.size", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3636 { &hf_ipmi_trn_17_data
,
3638 "ipmi.tr17.data", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3640 { &hf_ipmi_trn_18_state
,
3642 "ipmi.tr18.state", FT_UINT8
, BASE_HEX
, VALS(vals_18_state
), 0x0f, NULL
, HFILL
}},
3643 { &hf_ipmi_trn_18_ipmi_ver
,
3645 "ipmi.tr18.ipmi_ver", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_version
), 0, NULL
, HFILL
}},
3647 { &hf_ipmi_trn_19_chan
,
3649 "ipmi.tr19.chan", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_channel
), 0x0f, NULL
, HFILL
}},
3650 { &hf_ipmi_trn_19_dest_sel
,
3651 { "Destination selector",
3652 "ipmi.tr19.dest_sel", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3654 { &hf_ipmi_trn_XX_cap_cbcp
,
3656 "ipmi.trXX.cap_cbcp", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
3657 { &hf_ipmi_trn_XX_cap_ipmi
,
3659 "ipmi.trXX.cap_ipmi", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
3660 { &hf_ipmi_trn_XX_cbcp_from_list
,
3661 { "Callback to one from list of numbers",
3662 "ipmi.trXX.cbcp_from_list", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x08, NULL
, HFILL
}},
3663 { &hf_ipmi_trn_XX_cbcp_user
,
3664 { "Callback to user-specified number",
3665 "ipmi.trXX.cbcp_user", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x04, NULL
, HFILL
}},
3666 { &hf_ipmi_trn_XX_cbcp_prespec
,
3667 { "Callback to pre-specified number",
3668 "ipmi.trXX.cbcp_prespec", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
3669 { &hf_ipmi_trn_XX_cbcp_nocb
,
3671 "ipmi.trXX.cbcp_nocb", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
3672 { &hf_ipmi_trn_XX_dst1
,
3673 { "Callback destination 1",
3674 "ipmi.trXX.dst1", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3675 { &hf_ipmi_trn_XX_dst2
,
3676 { "Callback destination 2",
3677 "ipmi.trXX.dst2", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3678 { &hf_ipmi_trn_XX_dst3
,
3679 { "Callback destination 3",
3680 "ipmi.trXX.dst3", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3682 { &hf_ipmi_trn_1a_user
,
3684 "ipmi.tr1a.user", FT_UINT8
, BASE_DEC
, NULL
, 0x3f, NULL
, HFILL
}},
3685 { &hf_ipmi_trn_1a_chan
,
3687 "ipmi.tr1a.chan", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_channel
), 0x0f, NULL
, HFILL
}},
3689 { &hf_ipmi_trn_1b_user
,
3691 "ipmi.tr1b.user", FT_UINT8
, BASE_DEC
, NULL
, 0x3f, NULL
, HFILL
}},
3692 { &hf_ipmi_trn_1b_chan
,
3694 "ipmi.tr1b.chan", FT_UINT8
, BASE_CUSTOM
, CF_FUNC(ipmi_fmt_channel
), 0x0f, NULL
, HFILL
}},
3697 static int *ett
[] = {
3698 &ett_ipmi_trn_lan00_byte1
,
3699 &ett_ipmi_trn_lan01_byte1
,
3700 &ett_ipmi_trn_lan02_byte1
,
3701 &ett_ipmi_trn_lan02_byte2
,
3702 &ett_ipmi_trn_lan02_byte3
,
3703 &ett_ipmi_trn_lan02_byte4
,
3704 &ett_ipmi_trn_lan02_byte5
,
3705 &ett_ipmi_trn_lan04_byte1
,
3706 &ett_ipmi_trn_lan07_byte2
,
3707 &ett_ipmi_trn_lan07_byte3
,
3708 &ett_ipmi_trn_lan10_byte1
,
3709 &ett_ipmi_trn_lan17_byte1
,
3710 &ett_ipmi_trn_lan18_byte1
,
3711 &ett_ipmi_trn_lan18_byte2
,
3712 &ett_ipmi_trn_lan18_byte4
,
3713 &ett_ipmi_trn_lan19_byte1
,
3714 &ett_ipmi_trn_lan19_byte2
,
3715 &ett_ipmi_trn_lan19_byte3
,
3716 &ett_ipmi_trn_lan20_byte12
,
3717 &ett_ipmi_trn_lan21_byte1
,
3718 &ett_ipmi_trn_lan22_byte1
,
3719 &ett_ipmi_trn_lan24_byte1
,
3720 &ett_ipmi_trn_lan24_byte2
,
3721 &ett_ipmi_trn_lan24_byte3
,
3722 &ett_ipmi_trn_lan24_byte4
,
3723 &ett_ipmi_trn_lan24_byte5
,
3724 &ett_ipmi_trn_lan24_byte6
,
3725 &ett_ipmi_trn_lan24_byte7
,
3726 &ett_ipmi_trn_lan24_byte8
,
3727 &ett_ipmi_trn_lan25_byte1
,
3728 &ett_ipmi_trn_lan25_byte2
,
3729 &ett_ipmi_trn_lan25_byte34
,
3730 &ett_ipmi_trn_lan50_byte1
,
3731 &ett_ipmi_trn_lan55_byte3
,
3732 &ett_ipmi_trn_lan56_byte2
,
3733 &ett_ipmi_trn_lan64_byte1
,
3734 &ett_ipmi_trn_serial03_byte1
,
3735 &ett_ipmi_trn_serial04_byte1
,
3736 &ett_ipmi_trn_serial05_byte1
,
3737 &ett_ipmi_trn_serial05_byte2
,
3738 &ett_ipmi_trn_serial06_byte1
,
3739 &ett_ipmi_trn_serial07_byte1
,
3740 &ett_ipmi_trn_serial07_byte2
,
3741 &ett_ipmi_trn_serial08_byte1
,
3742 &ett_ipmi_trn_serial08_byte2
,
3743 &ett_ipmi_trn_serial09_byte1
,
3744 &ett_ipmi_trn_serial09_byte2
,
3745 &ett_ipmi_trn_serial16_byte1
,
3746 &ett_ipmi_trn_serial17_byte1
,
3747 &ett_ipmi_trn_serial17_byte2
,
3748 &ett_ipmi_trn_serial17_byte4
,
3749 &ett_ipmi_trn_serial17_byte5
,
3750 &ett_ipmi_trn_serial19_byte1
,
3751 &ett_ipmi_trn_serial19_byte2
,
3752 &ett_ipmi_trn_serial19_byte3
,
3753 &ett_ipmi_trn_serial20_byte1
,
3754 &ett_ipmi_trn_serial21_byte1
,
3755 &ett_ipmi_trn_serial22_byte1
,
3756 &ett_ipmi_trn_serial23_byte1
,
3757 &ett_ipmi_trn_serial24_byte1
,
3758 &ett_ipmi_trn_serial25_byte2
,
3759 &ett_ipmi_trn_serial28_byte1
,
3760 &ett_ipmi_trn_serial28_byte2
,
3761 &ett_ipmi_trn_serial28_byte10
,
3762 &ett_ipmi_trn_serial28_byte11
,
3763 &ett_ipmi_trn_serial28_byte12
,
3764 &ett_ipmi_trn_serial28_byte13
,
3765 &ett_ipmi_trn_serial28_byte14
,
3766 &ett_ipmi_trn_serial29_byte1
,
3767 &ett_ipmi_trn_serial29_byte2
,
3768 &ett_ipmi_trn_serial30_byte1
,
3769 &ett_ipmi_trn_serial30_byte2
,
3770 &ett_ipmi_trn_serial30_byte3
,
3771 &ett_ipmi_trn_serial33_byte1
,
3772 &ett_ipmi_trn_serial37_byte1
,
3773 &ett_ipmi_trn_serial43_byte1
,
3774 &ett_ipmi_trn_serial50_byte1
,
3775 &ett_ipmi_trn_serial51_byte2
,
3776 &ett_ipmi_trn_serial51_byte3
,
3777 &ett_ipmi_trn_01_byte1
,
3778 &ett_ipmi_trn_02_byte1
,
3779 &ett_ipmi_trn_02_rev
,
3780 &ett_ipmi_trn_03_rq_byte1
,
3781 &ett_ipmi_trn_03_rq_byte2
,
3782 &ett_ipmi_trn_03_rs_byte1
,
3783 &ett_ipmi_trn_04_byte1
,
3784 &ett_ipmi_trn_04_byte2
,
3785 &ett_ipmi_trn_10_byte1
,
3786 &ett_ipmi_trn_11_byte1
,
3787 &ett_ipmi_trn_11_rev
,
3788 &ett_ipmi_trn_12_rq_byte1
,
3789 &ett_ipmi_trn_12_rq_byte2
,
3790 &ett_ipmi_trn_12_rs_byte1
,
3791 &ett_ipmi_trn_13_byte1
,
3792 &ett_ipmi_trn_14_byte1
,
3793 &ett_ipmi_trn_15_byte1
,
3794 &ett_ipmi_trn_16_byte1
,
3795 &ett_ipmi_trn_17_byte1
,
3796 &ett_ipmi_trn_17_byte2
,
3797 &ett_ipmi_trn_18_byte1
,
3798 &ett_ipmi_trn_19_byte1
,
3799 &ett_ipmi_trn_19_byte2
,
3800 &ett_ipmi_trn_XX_usercap
,
3801 &ett_ipmi_trn_XX_cbcp
,
3802 &ett_ipmi_trn_1a_byte1
,
3803 &ett_ipmi_trn_1a_byte2
,
3804 &ett_ipmi_trn_1b_byte1
,
3805 &ett_ipmi_trn_1b_byte2
,
3806 &ett_ipmi_trn_parameter
3809 static ei_register_info ei
[] = {
3810 { &ei_ipmi_trn_02_request_param_rev
, { "ipmi.tr02.request_param_rev", PI_PROTOCOL
, PI_NOTE
, "Requested parameter revision; parameter data returned", EXPFILL
}},
3811 { &ei_ipmi_trn_02_request_param_data
, { "ipmi.tr02.mrequest_param_data", PI_PROTOCOL
, PI_NOTE
, "Requested parameter data; only parameter version returned", EXPFILL
}},
3812 { &ei_ipmi_trn_11_request_param_rev
, { "ipmi.tr11.request_param_rev", PI_PROTOCOL
, PI_NOTE
, "Requested parameter revision; parameter data returned", EXPFILL
}},
3813 { &ei_ipmi_trn_11_request_param_data
, { "ipmi.tr11.mrequest_param_data", PI_PROTOCOL
, PI_NOTE
, "Requested parameter data; only parameter version returned", EXPFILL
}},
3816 expert_module_t
* expert_ipmi_trn
;
3818 proto_register_field_array(proto_ipmi
, hf
, array_length(hf
));
3819 proto_register_subtree_array(ett
, array_length(ett
));
3820 expert_ipmi_trn
= expert_register_protocol(proto_ipmi
);
3821 expert_register_field_array(expert_ipmi_trn
, ei
, array_length(ei
));
3822 ipmi_register_netfn_cmdtab(IPMI_TRANSPORT_REQ
, IPMI_OEM_NONE
, NULL
, 0, NULL
,
3823 cmd_transport
, array_length(cmd_transport
));
3827 * Editor modelines - https://www.wireshark.org/tools/modelines.html
3832 * indent-tabs-mode: t
3835 * vi: set shiftwidth=8 tabstop=8 noexpandtab:
3836 * :indentSize=8:tabSize=8:noTabs=false: