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>
7 * Wireshark - Network traffic analyzer
8 * By Gerald Combs <gerald@wireshark.org>
9 * Copyright 1998 Gerald Combs
11 * This program is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License
13 * as published by the Free Software Foundation; either version 2
14 * of the License, or (at your option) any later version.
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
28 #include <epan/packet.h>
30 #include "packet-ipmi.h"
32 static gint ett_ipmi_trn_lan00_byte1
= -1;
33 static gint ett_ipmi_trn_lan01_byte1
= -1;
34 static gint ett_ipmi_trn_lan02_byte1
= -1;
35 static gint ett_ipmi_trn_lan02_byte2
= -1;
36 static gint ett_ipmi_trn_lan02_byte3
= -1;
37 static gint ett_ipmi_trn_lan02_byte4
= -1;
38 static gint ett_ipmi_trn_lan02_byte5
= -1;
39 static gint ett_ipmi_trn_lan04_byte1
= -1;
40 static gint ett_ipmi_trn_lan07_byte2
= -1;
41 static gint ett_ipmi_trn_lan07_byte3
= -1;
42 static gint ett_ipmi_trn_lan10_byte1
= -1;
43 static gint ett_ipmi_trn_lan17_byte1
= -1;
44 static gint ett_ipmi_trn_lan18_byte1
= -1;
45 static gint ett_ipmi_trn_lan18_byte2
= -1;
46 static gint ett_ipmi_trn_lan18_byte4
= -1;
47 static gint ett_ipmi_trn_lan19_byte1
= -1;
48 static gint ett_ipmi_trn_lan19_byte2
= -1;
49 static gint ett_ipmi_trn_lan19_byte3
= -1;
50 static gint ett_ipmi_trn_lan20_byte12
= -1;
51 static gint ett_ipmi_trn_lan21_byte1
= -1;
52 static gint ett_ipmi_trn_lan22_byte1
= -1;
53 static gint ett_ipmi_trn_lan24_byte1
= -1;
54 static gint ett_ipmi_trn_lan24_byte2
= -1;
55 static gint ett_ipmi_trn_lan24_byte3
= -1;
56 static gint ett_ipmi_trn_lan24_byte4
= -1;
57 static gint ett_ipmi_trn_lan24_byte5
= -1;
58 static gint ett_ipmi_trn_lan24_byte6
= -1;
59 static gint ett_ipmi_trn_lan24_byte7
= -1;
60 static gint ett_ipmi_trn_lan24_byte8
= -1;
61 static gint ett_ipmi_trn_lan25_byte1
= -1;
62 static gint ett_ipmi_trn_lan25_byte2
= -1;
63 static gint ett_ipmi_trn_lan25_byte34
= -1;
64 static gint ett_ipmi_trn_serial03_byte1
= -1;
65 static gint ett_ipmi_trn_serial04_byte1
= -1;
66 static gint ett_ipmi_trn_serial05_byte1
= -1;
67 static gint ett_ipmi_trn_serial05_byte2
= -1;
68 static gint ett_ipmi_trn_serial06_byte1
= -1;
69 static gint ett_ipmi_trn_serial07_byte1
= -1;
70 static gint ett_ipmi_trn_serial07_byte2
= -1;
71 static gint ett_ipmi_trn_serial08_byte1
= -1;
72 static gint ett_ipmi_trn_serial08_byte2
= -1;
73 static gint ett_ipmi_trn_serial09_byte1
= -1;
74 static gint ett_ipmi_trn_serial09_byte2
= -1;
75 static gint ett_ipmi_trn_serial16_byte1
= -1;
76 static gint ett_ipmi_trn_serial17_byte1
= -1;
77 static gint ett_ipmi_trn_serial17_byte2
= -1;
78 static gint ett_ipmi_trn_serial17_byte4
= -1;
79 static gint ett_ipmi_trn_serial17_byte5
= -1;
80 static gint ett_ipmi_trn_serial19_byte1
= -1;
81 static gint ett_ipmi_trn_serial19_byte2
= -1;
82 static gint ett_ipmi_trn_serial19_byte3
= -1;
83 static gint ett_ipmi_trn_serial20_byte1
= -1;
84 static gint ett_ipmi_trn_serial21_byte1
= -1;
85 static gint ett_ipmi_trn_serial22_byte1
= -1;
86 static gint ett_ipmi_trn_serial23_byte1
= -1;
87 static gint ett_ipmi_trn_serial24_byte1
= -1;
88 static gint ett_ipmi_trn_serial25_byte2
= -1;
89 static gint ett_ipmi_trn_serial28_byte1
= -1;
90 static gint ett_ipmi_trn_serial28_byte2
= -1;
91 static gint ett_ipmi_trn_serial28_byte10
= -1;
92 static gint ett_ipmi_trn_serial28_byte11
= -1;
93 static gint ett_ipmi_trn_serial28_byte12
= -1;
94 static gint ett_ipmi_trn_serial28_byte13
= -1;
95 static gint ett_ipmi_trn_serial28_byte14
= -1;
96 static gint ett_ipmi_trn_serial29_byte1
= -1;
97 static gint ett_ipmi_trn_serial29_byte2
= -1;
98 static gint ett_ipmi_trn_serial30_byte1
= -1;
99 static gint ett_ipmi_trn_serial30_byte2
= -1;
100 static gint ett_ipmi_trn_serial30_byte3
= -1;
101 static gint ett_ipmi_trn_serial33_byte1
= -1;
102 static gint ett_ipmi_trn_serial37_byte1
= -1;
103 static gint ett_ipmi_trn_serial43_byte1
= -1;
104 static gint ett_ipmi_trn_serial50_byte1
= -1;
105 static gint ett_ipmi_trn_serial51_byte2
= -1;
106 static gint ett_ipmi_trn_serial51_byte3
= -1;
107 static gint ett_ipmi_trn_01_byte1
= -1;
108 static gint ett_ipmi_trn_02_byte1
= -1;
109 static gint ett_ipmi_trn_02_rev
= -1;
110 static gint ett_ipmi_trn_03_rq_byte1
= -1;
111 static gint ett_ipmi_trn_03_rq_byte2
= -1;
112 static gint ett_ipmi_trn_03_rs_byte1
= -1;
113 static gint ett_ipmi_trn_04_byte1
= -1;
114 static gint ett_ipmi_trn_04_byte2
= -1;
115 static gint ett_ipmi_trn_10_byte1
= -1;
116 static gint ett_ipmi_trn_11_byte1
= -1;
117 static gint ett_ipmi_trn_11_rev
= -1;
118 static gint ett_ipmi_trn_12_rq_byte1
= -1;
119 static gint ett_ipmi_trn_12_rq_byte2
= -1;
120 static gint ett_ipmi_trn_12_rs_byte1
= -1;
121 static gint ett_ipmi_trn_13_byte1
= -1;
122 static gint ett_ipmi_trn_14_byte1
= -1;
123 static gint ett_ipmi_trn_15_byte1
= -1;
124 static gint ett_ipmi_trn_16_byte1
= -1;
125 static gint ett_ipmi_trn_17_byte1
= -1;
126 static gint ett_ipmi_trn_17_byte2
= -1;
127 static gint ett_ipmi_trn_18_byte1
= -1;
128 static gint ett_ipmi_trn_19_byte1
= -1;
129 static gint ett_ipmi_trn_19_byte2
= -1;
130 static gint ett_ipmi_trn_XX_usercap
= -1;
131 static gint ett_ipmi_trn_XX_cbcp
= -1;
132 static gint ett_ipmi_trn_1a_byte1
= -1;
133 static gint ett_ipmi_trn_1a_byte2
= -1;
134 static gint ett_ipmi_trn_1b_byte1
= -1;
135 static gint ett_ipmi_trn_1b_byte2
= -1;
137 static gint hf_ipmi_trn_lan00_sip
= -1;
139 static gint hf_ipmi_trn_lanXX_oem
= -1;
140 static gint hf_ipmi_trn_lanXX_passwd
= -1;
141 static gint hf_ipmi_trn_lanXX_md5
= -1;
142 static gint hf_ipmi_trn_lanXX_md2
= -1;
143 static gint hf_ipmi_trn_lanXX_none
= -1;
145 static gint hf_ipmi_trn_lan03_ip
= -1;
147 static gint hf_ipmi_trn_lan04_ipsrc
= -1;
149 static gint hf_ipmi_trn_lan05_ether
= -1;
151 static gint hf_ipmi_trn_lan06_subnet
= -1;
153 static gint hf_ipmi_trn_lan07_ttl
= -1;
154 static gint hf_ipmi_trn_lan07_flags
= -1;
155 static gint hf_ipmi_trn_lan07_precedence
= -1;
156 static gint hf_ipmi_trn_lan07_tos
= -1;
158 static gint hf_ipmi_trn_lan08_rmcp_port
= -1;
160 static gint hf_ipmi_trn_lan09_rmcp_port
= -1;
162 static gint hf_ipmi_trn_lan10_responses
= -1;
163 static gint hf_ipmi_trn_lan10_gratuitous
= -1;
165 static gint hf_ipmi_trn_lan11_arp_interval
= -1;
167 static gint hf_ipmi_trn_lan12_def_gw_ip
= -1;
169 static gint hf_ipmi_trn_lan13_def_gw_mac
= -1;
171 static gint hf_ipmi_trn_lan14_bkp_gw_ip
= -1;
173 static gint hf_ipmi_trn_lan15_bkp_gw_mac
= -1;
175 static gint hf_ipmi_trn_lan16_comm_string
= -1;
177 static gint hf_ipmi_trn_lan17_num_dst
= -1;
179 static gint hf_ipmi_trn_lan18_dst_selector
= -1;
180 static gint hf_ipmi_trn_lan18_ack
= -1;
181 static gint hf_ipmi_trn_lan18_dst_type
= -1;
182 static gint hf_ipmi_trn_lan18_tout
= -1;
183 static gint hf_ipmi_trn_lan18_retries
= -1;
185 static gint hf_ipmi_trn_lan19_dst_selector
= -1;
186 static gint hf_ipmi_trn_lan19_addr_format
= -1;
187 static gint hf_ipmi_trn_lan19_address
= -1;
188 static gint hf_ipmi_trn_lan19_gw_sel
= -1;
189 static gint hf_ipmi_trn_lan19_ip
= -1;
190 static gint hf_ipmi_trn_lan19_mac
= -1;
192 static gint hf_ipmi_trn_lan20_vlan_id_enable
= -1;
193 static gint hf_ipmi_trn_lan20_vlan_id
= -1;
195 static gint hf_ipmi_trn_lan21_vlan_prio
= -1;
197 static gint hf_ipmi_trn_lan22_num_cs_entries
= -1;
199 static gint hf_ipmi_trn_lan23_cs_entry
= -1;
201 static gint hf_ipmi_trn_lan24_priv
= -1;
203 static gint hf_ipmi_trn_lan25_dst_selector
= -1;
204 static gint hf_ipmi_trn_lan25_addr_format
= -1;
205 static gint hf_ipmi_trn_lan25_address
= -1;
206 static gint hf_ipmi_trn_lan25_uprio
= -1;
207 static gint hf_ipmi_trn_lan25_cfi
= -1;
208 static gint hf_ipmi_trn_lan25_vlan_id
= -1;
210 static gint hf_ipmi_trn_serial03_connmode
= -1;
211 static gint hf_ipmi_trn_serial03_terminal
= -1;
212 static gint hf_ipmi_trn_serial03_ppp
= -1;
213 static gint hf_ipmi_trn_serial03_basic
= -1;
215 static gint hf_ipmi_trn_serial04_timeout
= -1;
217 static gint hf_ipmi_trn_serial05_cbcp_callback
= -1;
218 static gint hf_ipmi_trn_serial05_ipmi_callback
= -1;
219 static gint hf_ipmi_trn_serial05_cb_list
= -1;
220 static gint hf_ipmi_trn_serial05_cb_user
= -1;
221 static gint hf_ipmi_trn_serial05_cb_prespec
= -1;
222 static gint hf_ipmi_trn_serial05_no_cb
= -1;
223 static gint hf_ipmi_trn_serial05_cb_dest1
= -1;
224 static gint hf_ipmi_trn_serial05_cb_dest2
= -1;
225 static gint hf_ipmi_trn_serial05_cb_dest3
= -1;
227 static gint hf_ipmi_trn_serial06_inactivity
= -1;
228 static gint hf_ipmi_trn_serial06_dcd
= -1;
230 static gint hf_ipmi_trn_serial07_flowctl
= -1;
231 static gint hf_ipmi_trn_serial07_dtrhangup
= -1;
232 static gint hf_ipmi_trn_serial07_bitrate
= -1;
234 static gint hf_ipmi_trn_serial08_esc_powerup
= -1;
235 static gint hf_ipmi_trn_serial08_esc_reset
= -1;
236 static gint hf_ipmi_trn_serial08_switch_authcap
= -1;
237 static gint hf_ipmi_trn_serial08_switch_rmcp
= -1;
238 static gint hf_ipmi_trn_serial08_esc_switch1
= -1;
239 static gint hf_ipmi_trn_serial08_esc_switch2
= -1;
240 static gint hf_ipmi_trn_serial08_switch_dcdloss
= -1;
241 static gint hf_ipmi_trn_serial08_sharing
= -1;
242 static gint hf_ipmi_trn_serial08_ping_callback
= -1;
243 static gint hf_ipmi_trn_serial08_ping_direct
= -1;
244 static gint hf_ipmi_trn_serial08_ping_retry
= -1;
246 static gint hf_ipmi_trn_serial09_ring_duration
= -1;
247 static gint hf_ipmi_trn_serial09_ring_dead
= -1;
249 static gint hf_ipmi_trn_serial10_set_sel
= -1;
250 static gint hf_ipmi_trn_serial10_init_str
= -1;
251 static gint hf_ipmi_trn_serial11_esc_seq
= -1;
252 static gint hf_ipmi_trn_serial12_hangup_seq
= -1;
253 static gint hf_ipmi_trn_serial13_dial_cmd
= -1;
254 static gint hf_ipmi_trn_serial14_page_blackout
= -1;
255 static gint hf_ipmi_trn_serial15_comm_string
= -1;
257 static gint hf_ipmi_trn_serial16_ndest
= -1;
259 static gint hf_ipmi_trn_serial17_dest_sel
= -1;
260 static gint hf_ipmi_trn_serial17_ack
= -1;
261 static gint hf_ipmi_trn_serial17_dest_type
= -1;
262 /* static gint hf_ipmi_trn_serial17_ack_timeout = -1; */
263 static gint hf_ipmi_trn_serial17_alert_retries
= -1;
264 static gint hf_ipmi_trn_serial17_call_retries
= -1;
265 static gint hf_ipmi_trn_serial17_alert_ack_timeout
= -1;
266 static gint hf_ipmi_trn_serial17_dialstr_sel
= -1;
267 static gint hf_ipmi_trn_serial17_tap_sel
= -1;
268 static gint hf_ipmi_trn_serial17_ipaddr_sel
= -1;
269 static gint hf_ipmi_trn_serial17_ppp_sel
= -1;
270 static gint hf_ipmi_trn_serial17_unknown
= -1;
272 static gint hf_ipmi_trn_serial18_call_retry
= -1;
274 static gint hf_ipmi_trn_serial19_destsel
= -1;
275 static gint hf_ipmi_trn_serial19_flowctl
= -1;
276 static gint hf_ipmi_trn_serial19_dtrhangup
= -1;
277 static gint hf_ipmi_trn_serial19_stopbits
= -1;
278 static gint hf_ipmi_trn_serial19_charsize
= -1;
279 static gint hf_ipmi_trn_serial19_parity
= -1;
280 static gint hf_ipmi_trn_serial19_bitrate
= -1;
282 static gint hf_ipmi_trn_serial20_num_dial_strings
= -1;
283 static gint hf_ipmi_trn_serial21_dialsel
= -1;
284 static gint hf_ipmi_trn_serial21_blockno
= -1;
285 static gint hf_ipmi_trn_serial21_dialstr
= -1;
286 static gint hf_ipmi_trn_serial22_num_ipaddrs
= -1;
287 static gint hf_ipmi_trn_serial23_destsel
= -1;
288 static gint hf_ipmi_trn_serial23_ipaddr
= -1;
289 static gint hf_ipmi_trn_serial24_num_tap_accounts
= -1;
290 static gint hf_ipmi_trn_serial25_tap_acct
= -1;
291 static gint hf_ipmi_trn_serial25_dialstr_sel
= -1;
292 static gint hf_ipmi_trn_serial25_tapsrv_sel
= -1;
293 static gint hf_ipmi_trn_serial26_tap_acct
= -1;
294 static gint hf_ipmi_trn_serial26_tap_passwd
= -1;
295 static gint hf_ipmi_trn_serial27_tap_acct
= -1;
296 static gint hf_ipmi_trn_serial27_tap_pager_id
= -1;
298 static gint hf_ipmi_trn_serial28_tapsrv_sel
= -1;
299 static gint hf_ipmi_trn_serial28_confirm
= -1;
300 static gint hf_ipmi_trn_serial28_srvtype
= -1;
301 static gint hf_ipmi_trn_serial28_ctrl_esc
= -1;
302 static gint hf_ipmi_trn_serial28_t2
= -1;
303 static gint hf_ipmi_trn_serial28_t1
= -1;
304 static gint hf_ipmi_trn_serial28_t4
= -1;
305 static gint hf_ipmi_trn_serial28_t3
= -1;
306 static gint hf_ipmi_trn_serial28_t6
= -1;
307 static gint hf_ipmi_trn_serial28_t5
= -1;
308 static gint hf_ipmi_trn_serial28_n2
= -1;
309 static gint hf_ipmi_trn_serial28_n1
= -1;
310 static gint hf_ipmi_trn_serial28_n4
= -1;
311 static gint hf_ipmi_trn_serial28_n3
= -1;
313 static gint hf_ipmi_trn_serial29_op
= -1;
314 static gint hf_ipmi_trn_serial29_lineedit
= -1;
315 static gint hf_ipmi_trn_serial29_deletectl
= -1;
316 static gint hf_ipmi_trn_serial29_echo
= -1;
317 static gint hf_ipmi_trn_serial29_handshake
= -1;
318 static gint hf_ipmi_trn_serial29_o_newline
= -1;
319 static gint hf_ipmi_trn_serial29_i_newline
= -1;
320 static gint hf_ipmi_trn_serial30_snooping
= -1;
321 static gint hf_ipmi_trn_serial30_snoopctl
= -1;
322 static gint hf_ipmi_trn_serial30_negot_ctl
= -1;
323 static gint hf_ipmi_trn_serial30_use_xmit_accm
= -1;
324 static gint hf_ipmi_trn_serial30_xmit_addr_comp
= -1;
325 static gint hf_ipmi_trn_serial30_xmit_proto_comp
= -1;
326 static gint hf_ipmi_trn_serial30_ipaddr
= -1;
327 static gint hf_ipmi_trn_serial30_accm
= -1;
328 static gint hf_ipmi_trn_serial30_addr_comp
= -1;
329 static gint hf_ipmi_trn_serial30_proto_comp
= -1;
330 static gint hf_ipmi_trn_serial31_port
= -1;
331 static gint hf_ipmi_trn_serial32_port
= -1;
332 static gint hf_ipmi_trn_serial33_auth_proto
= -1;
333 static gint hf_ipmi_trn_serial34_chap_name
= -1;
335 static gint hf_ipmi_trn_serial35_recv_accm
= -1;
336 static gint hf_ipmi_trn_serial35_xmit_accm
= -1;
337 static gint hf_ipmi_trn_serial36_snoop_accm
= -1;
338 static gint hf_ipmi_trn_serial37_num_ppp
= -1;
339 static gint hf_ipmi_trn_serial38_acct_sel
= -1;
340 static gint hf_ipmi_trn_serial38_dialstr_sel
= -1;
341 static gint hf_ipmi_trn_serial39_acct_sel
= -1;
342 static gint hf_ipmi_trn_serial39_ipaddr
= -1;
343 static gint hf_ipmi_trn_serial40_acct_sel
= -1;
344 static gint hf_ipmi_trn_serial40_username
= -1;
345 static gint hf_ipmi_trn_serial41_acct_sel
= -1;
346 static gint hf_ipmi_trn_serial41_userdomain
= -1;
347 static gint hf_ipmi_trn_serial42_acct_sel
= -1;
348 static gint hf_ipmi_trn_serial42_userpass
= -1;
349 static gint hf_ipmi_trn_serial43_acct_sel
= -1;
350 static gint hf_ipmi_trn_serial43_auth_proto
= -1;
351 static gint hf_ipmi_trn_serial44_acct_sel
= -1;
352 static gint hf_ipmi_trn_serial44_hold_time
= -1;
354 static gint hf_ipmi_trn_serial45_src_ipaddr
= -1;
355 static gint hf_ipmi_trn_serial45_dst_ipaddr
= -1;
356 static gint hf_ipmi_trn_serial46_tx_bufsize
= -1;
357 static gint hf_ipmi_trn_serial47_rx_bufsize
= -1;
358 static gint hf_ipmi_trn_serial48_ipaddr
= -1;
359 static gint hf_ipmi_trn_serial49_blockno
= -1;
360 static gint hf_ipmi_trn_serial49_dialstr
= -1;
361 static gint hf_ipmi_trn_serial50_115200
= -1;
362 static gint hf_ipmi_trn_serial50_57600
= -1;
363 static gint hf_ipmi_trn_serial50_38400
= -1;
364 static gint hf_ipmi_trn_serial50_19200
= -1;
365 static gint hf_ipmi_trn_serial50_9600
= -1;
367 static gint hf_ipmi_trn_serial51_port_assoc_sel
= -1;
368 static gint hf_ipmi_trn_serial51_ipmi_channel
= -1;
369 static gint hf_ipmi_trn_serial51_conn_num
= -1;
370 static gint hf_ipmi_trn_serial51_ipmi_sharing
= -1;
371 static gint hf_ipmi_trn_serial51_ipmi_sol
= -1;
372 static gint hf_ipmi_trn_serial51_chan_num
= -1;
373 static gint hf_ipmi_trn_serial52_port_assoc_sel
= -1;
374 static gint hf_ipmi_trn_serial52_conn_name
= -1;
375 static gint hf_ipmi_trn_serial53_port_assoc_sel
= -1;
376 static gint hf_ipmi_trn_serial53_chan_name
= -1;
378 static gint hf_ipmi_trn_01_chan
= -1;
379 static gint hf_ipmi_trn_01_param
= -1;
380 static gint hf_ipmi_trn_01_param_data
= -1;
382 static gint hf_ipmi_trn_02_getrev
= -1;
383 static gint hf_ipmi_trn_02_chan
= -1;
384 static gint hf_ipmi_trn_02_param
= -1;
385 static gint hf_ipmi_trn_02_set
= -1;
386 static gint hf_ipmi_trn_02_block
= -1;
387 static gint hf_ipmi_trn_02_rev_present
= -1;
388 static gint hf_ipmi_trn_02_rev_compat
= -1;
389 static gint hf_ipmi_trn_02_param_data
= -1;
391 static gint hf_ipmi_trn_03_chan
= -1;
392 static gint hf_ipmi_trn_03_arp_resp
= -1;
393 static gint hf_ipmi_trn_03_gratuitous_arp
= -1;
394 static gint hf_ipmi_trn_03_status_arp_resp
= -1;
395 static gint hf_ipmi_trn_03_status_gratuitous_arp
= -1;
397 static gint hf_ipmi_trn_04_chan
= -1;
398 static gint hf_ipmi_trn_04_clear
= -1;
399 static gint hf_ipmi_trn_04_rx_ippkts
= -1;
400 static gint hf_ipmi_trn_04_rx_iphdr_err
= -1;
401 static gint hf_ipmi_trn_04_rx_ipaddr_err
= -1;
402 static gint hf_ipmi_trn_04_rx_ippkts_frag
= -1;
403 static gint hf_ipmi_trn_04_tx_ippkts
= -1;
404 static gint hf_ipmi_trn_04_rx_udppkts
= -1;
405 static gint hf_ipmi_trn_04_rx_validrmcp
= -1;
406 static gint hf_ipmi_trn_04_rx_udpproxy
= -1;
407 static gint hf_ipmi_trn_04_dr_udpproxy
= -1;
409 static gint hf_ipmi_trn_10_chan
= -1;
410 static gint hf_ipmi_trn_10_param
= -1;
411 static gint hf_ipmi_trn_10_param_data
= -1;
413 static gint hf_ipmi_trn_11_getrev
= -1;
414 static gint hf_ipmi_trn_11_chan
= -1;
415 static gint hf_ipmi_trn_11_param
= -1;
416 static gint hf_ipmi_trn_11_set
= -1;
417 static gint hf_ipmi_trn_11_block
= -1;
418 static gint hf_ipmi_trn_11_rev_present
= -1;
419 static gint hf_ipmi_trn_11_rev_compat
= -1;
420 static gint hf_ipmi_trn_11_param_data
= -1;
422 static gint hf_ipmi_trn_12_chan
= -1;
423 static gint hf_ipmi_trn_12_mux_setting
= -1;
424 static gint hf_ipmi_trn_12_sw_to_sys
= -1;
425 static gint hf_ipmi_trn_12_sw_to_bmc
= -1;
426 static gint hf_ipmi_trn_12_alert
= -1;
427 static gint hf_ipmi_trn_12_msg
= -1;
428 static gint hf_ipmi_trn_12_req
= -1;
429 static gint hf_ipmi_trn_12_mux_state
= -1;
431 static gint hf_ipmi_trn_13_chan
= -1;
432 static gint hf_ipmi_trn_13_code1
= -1;
433 static gint hf_ipmi_trn_13_code2
= -1;
434 static gint hf_ipmi_trn_13_code3
= -1;
435 static gint hf_ipmi_trn_13_code4
= -1;
436 static gint hf_ipmi_trn_13_code5
= -1;
438 static gint hf_ipmi_trn_14_chan
= -1;
439 static gint hf_ipmi_trn_14_block
= -1;
440 static gint hf_ipmi_trn_14_data
= -1;
442 static gint hf_ipmi_trn_15_chan
= -1;
443 static gint hf_ipmi_trn_15_block
= -1;
444 static gint hf_ipmi_trn_15_data
= -1;
446 static gint hf_ipmi_trn_16_chan
= -1;
447 static gint hf_ipmi_trn_16_src_port
= -1;
448 static gint hf_ipmi_trn_16_dst_port
= -1;
449 static gint hf_ipmi_trn_16_src_addr
= -1;
450 static gint hf_ipmi_trn_16_dst_addr
= -1;
451 static gint hf_ipmi_trn_16_bytes
= -1;
453 static gint hf_ipmi_trn_17_chan
= -1;
454 static gint hf_ipmi_trn_17_clear
= -1;
455 static gint hf_ipmi_trn_17_block_num
= -1;
456 static gint hf_ipmi_trn_17_size
= -1;
457 static gint hf_ipmi_trn_17_data
= -1;
459 static gint hf_ipmi_trn_18_state
= -1;
460 static gint hf_ipmi_trn_18_ipmi_ver
= -1;
462 static gint hf_ipmi_trn_19_chan
= -1;
463 static gint hf_ipmi_trn_19_dest_sel
= -1;
465 static gint hf_ipmi_trn_XX_cap_cbcp
= -1;
466 static gint hf_ipmi_trn_XX_cap_ipmi
= -1;
467 static gint hf_ipmi_trn_XX_cbcp_from_list
= -1;
468 static gint hf_ipmi_trn_XX_cbcp_user
= -1;
469 static gint hf_ipmi_trn_XX_cbcp_prespec
= -1;
470 static gint hf_ipmi_trn_XX_cbcp_nocb
= -1;
471 static gint hf_ipmi_trn_XX_dst1
= -1;
472 static gint hf_ipmi_trn_XX_dst2
= -1;
473 static gint hf_ipmi_trn_XX_dst3
= -1;
475 static gint hf_ipmi_trn_1a_user
= -1;
476 static gint hf_ipmi_trn_1a_chan
= -1;
478 static gint hf_ipmi_trn_1b_user
= -1;
479 static gint hf_ipmi_trn_1b_chan
= -1;
481 static const value_string lan00_sip_vals
[] = {
482 { 0x00, "Set complete" },
483 { 0x01, "Set in progress" },
484 { 0x02, "Commit write" },
485 { 0x03, "Reserved" },
489 static const value_string lan04_ipsrc_vals
[] = {
490 { 0x00, "Unspecified" },
491 { 0x01, "Static address (manually configured)" },
492 { 0x02, "Address obtained by BMC running DHCP" },
493 { 0x03, "Address loaded by BIOS or system software" },
494 { 0x04, "Address obtained by BMC running other address assignment protocol" },
498 static const struct true_false_string lan18_ack_tfs
= {
499 "Acknowledged", "Unacknowledged"
502 static const value_string lan18_dst_type_vals
[] = {
503 { 0x00, "PET Trap destination" },
509 static const value_string lan19_af_vals
[] = {
510 { 0x00, "IPv4 Address followed by Ethernet/802.3 MAC Address" },
514 static const struct true_false_string lan19_gw_sel_tfs
= {
515 "Use backup gateway", "Use default gateway"
518 static const struct true_false_string lan20_enable_tfs
= {
519 "Enabled", "Disabled"
522 static const value_string lan24_priv_vals
[] = {
523 { 0x00, "Unspecified" },
524 { 0x01, "Callback" },
526 { 0x03, "Operator" },
527 { 0x04, "Administrator" },
532 static const value_string lan25_af_vals
[] = {
533 { 0x00, "VLAN ID not used" },
534 { 0x01, "802.1q VLAN TAG" },
538 static const value_string serialXX_flowctl_vals
[] = {
539 { 0x00, "No flow control" },
540 { 0x01, "RTS/CTS flow control" },
541 { 0x02, "XON/XOFF flow control" },
542 { 0x03, "Reserved" },
546 static const value_string serialXX_bitrate_vals
[] = {
547 { 0x06, "9600 bps" },
548 { 0x07, "19.2 kbps" },
549 { 0x08, "38.4 kbps" },
550 { 0x09, "57.6 kbps" },
551 { 0x0A, "115.2 kbps" },
555 static const struct true_false_string serial03_connmode_tfs
= {
556 "Direct Connect", "Modem Connect"
559 static const value_string serial17_dest_type_vals
[] = {
560 { 0x00, "Dial Page" },
561 { 0x01, "TAP Page" },
562 { 0x02, "PPP Alert" },
563 { 0x03, "Basic Mode Callback" },
564 { 0x04, "PPP Mode Callback" },
570 static const struct true_false_string serial19_stopbits_tfs
= {
571 "2 stop bits", "1 stop bit"
574 static const struct true_false_string serial19_charsize_tfs
= {
578 static const value_string serial19_parity_vals
[] = {
585 static const value_string serial28_confirm_vals
[] = {
586 { 0x00, "ACK received after end-of-transaction only" },
587 { 0x01, "Code 211 and ACK received after ETX" },
588 { 0x02, "Code 211 or 213, and ACK received after ETX" },
592 static const value_string serial29_op_vals
[] = {
593 { 0x00, "Set volatile settings" },
594 { 0x01, "Set non-volatile settings" },
595 { 0x02, "Restore default" },
599 static const value_string serial29_delete_vals
[] = {
601 { 0x01, "<bksp><sp><bksp>" },
605 static const value_string serial29_o_nl_vals
[] = {
607 { 0x01, "<CR><LF>" },
610 { 0x04, "<LF><CR>" },
615 static const value_string serial29_i_nl_vals
[] = {
621 static const value_string serial30_snoopctl_vals
[] = {
622 { 0x00, "BMC uses Transmit ACCM" },
623 { 0x01, "BMC uses Snoop ACCM" },
627 static const value_string serial30_negoctl_vals
[] = {
628 { 0x00, "On initial connection and mux switch" },
629 { 0x01, "On initial connection" },
634 static const struct true_false_string serial30_filter_tfs
= {
635 "Using Transmit ACCM", "Assuming all control chars escaped"
638 static const value_string serial30_ipaddr_val
[] = {
639 { 0x00, "Request IP Address" },
640 { 0x01, "Request Fixed IP Address" },
641 { 0x02, "No Negotiation" },
645 static const value_string serialXX_proto_vals
[] = {
649 { 0x03, "MS-CHAP v1, Windows NT" },
650 { 0x04, "MS-CHAP v1, Lan Manager" },
651 { 0x05, "MS-CHAP v2" },
655 static const struct true_false_string tfs_03_suspend
= {
656 "Suspend", "Do not suspend"
659 static const struct true_false_string tfs_03_arp_status
= {
660 "Occurring", "Suspended"
663 static const struct true_false_string tfs_04_clear
= {
664 "Clear", "Do not clear"
667 static const value_string vals_12_mux
[] = {
668 { 0x00, "Get present status" },
669 { 0x01, "Request switch to system" },
670 { 0x02, "Request switch to BMC" },
671 { 0x03, "Force switch to system" },
672 { 0x04, "Force switch to BMC" },
673 { 0x05, "Block requests to switch to system" },
674 { 0x06, "Allow requests to switch to system" },
675 { 0x07, "Block requests to switch to BMC" },
676 { 0x08, "Allow requests to switch to BMC" },
680 static const struct true_false_string tfs_12_blocked
= {
684 static const struct true_false_string tfs_12_req
= {
685 "accepted/forced", "rejected"
688 static const struct true_false_string tfs_12_mux_state
= {
692 static const value_string vals_18_state
[] = {
693 { 0x00, "No session active" },
694 { 0x01, "Session active (mux switched to BMC)" },
695 { 0x02, "Switching mux to system" },
699 static const int *lanXX_authtypes_byte
[] = { &hf_ipmi_trn_lanXX_oem
, &hf_ipmi_trn_lanXX_passwd
, &hf_ipmi_trn_lanXX_md5
,
700 &hf_ipmi_trn_lanXX_md2
, &hf_ipmi_trn_lanXX_none
, NULL
};
703 lan_serial_00(tvbuff_t
*tvb
, proto_tree
*tree
)
705 static const int *byte1
[] = { &hf_ipmi_trn_lan00_sip
, NULL
};
707 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_lan00_byte1
,
708 byte1
, ENC_LITTLE_ENDIAN
, 0);
712 lan_serial_01(tvbuff_t
*tvb
, proto_tree
*tree
)
714 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, "Authentication types supported: ",
715 "No authentication types supported for this channel", ett_ipmi_trn_lan01_byte1
,
716 lanXX_authtypes_byte
, ENC_LITTLE_ENDIAN
, 0);
720 lan_serial_02(tvbuff_t
*tvb
, proto_tree
*tree
)
722 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, "Authentication types for Callback level: ",
723 "No authentication types enabled", ett_ipmi_trn_lan02_byte1
,
724 lanXX_authtypes_byte
, ENC_LITTLE_ENDIAN
, 0);
725 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, "Authentication types for User level: ",
726 "No authentication types enabled", ett_ipmi_trn_lan02_byte2
,
727 lanXX_authtypes_byte
, ENC_LITTLE_ENDIAN
, 0);
728 proto_tree_add_bitmask_text(tree
, tvb
, 2, 1, "Authentication types for Operator level: ",
729 "No authentication types enabled", ett_ipmi_trn_lan02_byte3
,
730 lanXX_authtypes_byte
, ENC_LITTLE_ENDIAN
, 0);
731 proto_tree_add_bitmask_text(tree
, tvb
, 3, 1, "Authentication types for Administrator level: ",
732 "No authentication types enabled", ett_ipmi_trn_lan02_byte4
,
733 lanXX_authtypes_byte
, ENC_LITTLE_ENDIAN
, 0);
734 proto_tree_add_bitmask_text(tree
, tvb
, 4, 1, "Authentication types for OEM level: ",
735 "No authentication types enabled", ett_ipmi_trn_lan02_byte5
,
736 lanXX_authtypes_byte
, ENC_LITTLE_ENDIAN
, 0);
740 lan_03(tvbuff_t
*tvb
, proto_tree
*tree
)
742 proto_tree_add_item(tree
, hf_ipmi_trn_lan03_ip
, tvb
, 0, 4, ENC_BIG_ENDIAN
);
746 lan_04(tvbuff_t
*tvb
, proto_tree
*tree
)
748 static const int *byte1
[] = { &hf_ipmi_trn_lan04_ipsrc
, NULL
};
750 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_lan04_byte1
,
751 byte1
, ENC_LITTLE_ENDIAN
, 0);
755 lan_05(tvbuff_t
*tvb
, proto_tree
*tree
)
757 proto_tree_add_item(tree
, hf_ipmi_trn_lan05_ether
, tvb
, 0, 6, ENC_NA
);
761 lan_06(tvbuff_t
*tvb
, proto_tree
*tree
)
763 proto_tree_add_item(tree
, hf_ipmi_trn_lan06_subnet
, tvb
, 0, 4, ENC_BIG_ENDIAN
);
767 lan_07(tvbuff_t
*tvb
, proto_tree
*tree
)
769 static const int *byte2
[] = { &hf_ipmi_trn_lan07_flags
, NULL
};
770 static const int *byte3
[] = { &hf_ipmi_trn_lan07_precedence
, &hf_ipmi_trn_lan07_tos
, NULL
};
772 proto_tree_add_item(tree
, hf_ipmi_trn_lan07_ttl
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
773 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
, ett_ipmi_trn_lan07_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
774 proto_tree_add_bitmask_text(tree
, tvb
, 2, 1, NULL
, NULL
, ett_ipmi_trn_lan07_byte3
, byte3
, ENC_LITTLE_ENDIAN
, 0);
778 lan_08(tvbuff_t
*tvb
, proto_tree
*tree
)
780 proto_tree_add_item(tree
, hf_ipmi_trn_lan08_rmcp_port
, tvb
, 0, 2, ENC_LITTLE_ENDIAN
);
784 lan_09(tvbuff_t
*tvb
, proto_tree
*tree
)
786 proto_tree_add_item(tree
, hf_ipmi_trn_lan09_rmcp_port
, tvb
, 0, 2, ENC_LITTLE_ENDIAN
);
790 lan_10(tvbuff_t
*tvb
, proto_tree
*tree
)
792 static const int *byte1
[] = { &hf_ipmi_trn_lan10_responses
, &hf_ipmi_trn_lan10_gratuitous
, NULL
};
794 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_lan10_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
798 lan_11(tvbuff_t
*tvb
, proto_tree
*tree
)
800 proto_tree_add_item(tree
, hf_ipmi_trn_lan11_arp_interval
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
804 lan_12(tvbuff_t
*tvb
, proto_tree
*tree
)
806 proto_tree_add_item(tree
, hf_ipmi_trn_lan12_def_gw_ip
, tvb
, 0, 4, ENC_BIG_ENDIAN
);
810 lan_13(tvbuff_t
*tvb
, proto_tree
*tree
)
812 proto_tree_add_item(tree
, hf_ipmi_trn_lan13_def_gw_mac
, tvb
, 0, 6, ENC_NA
);
816 lan_14(tvbuff_t
*tvb
, proto_tree
*tree
)
818 proto_tree_add_item(tree
, hf_ipmi_trn_lan14_bkp_gw_ip
, tvb
, 0, 4, ENC_BIG_ENDIAN
);
822 lan_15(tvbuff_t
*tvb
, proto_tree
*tree
)
824 proto_tree_add_item(tree
, hf_ipmi_trn_lan15_bkp_gw_mac
, tvb
, 0, 6, ENC_NA
);
828 lan_16(tvbuff_t
*tvb
, proto_tree
*tree
)
830 proto_tree_add_item(tree
, hf_ipmi_trn_lan16_comm_string
, tvb
, 0, 18, ENC_ASCII
|ENC_NA
);
834 lan_17(tvbuff_t
*tvb
, proto_tree
*tree
)
836 static const int *byte1
[] = { &hf_ipmi_trn_lan17_num_dst
, NULL
};
838 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_lan17_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
842 lan_18(tvbuff_t
*tvb
, proto_tree
*tree
)
844 static const int *byte1
[] = { &hf_ipmi_trn_lan18_dst_selector
, NULL
};
845 static const int *byte2
[] = { &hf_ipmi_trn_lan18_ack
, &hf_ipmi_trn_lan18_dst_type
, NULL
};
846 static const int *byte4
[] = { &hf_ipmi_trn_lan18_retries
, NULL
};
848 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_lan18_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
849 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
, ett_ipmi_trn_lan18_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
850 proto_tree_add_item(tree
, hf_ipmi_trn_lan18_tout
, tvb
, 2, 1, ENC_LITTLE_ENDIAN
);
851 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
, ett_ipmi_trn_lan18_byte4
, byte4
, ENC_LITTLE_ENDIAN
, 0);
855 lan_19(tvbuff_t
*tvb
, proto_tree
*tree
)
857 static const int *byte1
[] = { &hf_ipmi_trn_lan19_dst_selector
, NULL
};
858 static const int *byte2
[] = { &hf_ipmi_trn_lan19_addr_format
, NULL
};
859 static const int *byte3
[] = { &hf_ipmi_trn_lan19_gw_sel
, NULL
};
862 v
= tvb_get_guint8(tvb
, 1) >> 4;
863 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_lan19_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
864 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
, ett_ipmi_trn_lan19_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
867 proto_tree_add_bitmask_text(tree
, tvb
, 2, 1, NULL
, NULL
, ett_ipmi_trn_lan19_byte3
, byte3
, ENC_LITTLE_ENDIAN
, 0);
868 proto_tree_add_item(tree
, hf_ipmi_trn_lan19_ip
, tvb
, 3, 4, ENC_BIG_ENDIAN
);
869 proto_tree_add_item(tree
, hf_ipmi_trn_lan19_mac
, tvb
, 7, 6, ENC_NA
);
873 proto_tree_add_item(tree
, hf_ipmi_trn_lan19_address
, tvb
, 2, tvb_length(tvb
) - 2, ENC_NA
);
877 lan_20(tvbuff_t
*tvb
, proto_tree
*tree
)
879 static const int *byte12
[] = { &hf_ipmi_trn_lan20_vlan_id_enable
, &hf_ipmi_trn_lan20_vlan_id
, NULL
};
881 proto_tree_add_bitmask_text(tree
, tvb
, 0, 2, NULL
, NULL
, ett_ipmi_trn_lan20_byte12
, byte12
, ENC_LITTLE_ENDIAN
, 0);
885 lan_21(tvbuff_t
*tvb
, proto_tree
*tree
)
887 static const int *byte1
[] = { &hf_ipmi_trn_lan21_vlan_prio
, NULL
};
889 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_lan21_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
893 lan_22(tvbuff_t
*tvb
, proto_tree
*tree
)
895 static const int *byte1
[] = { &hf_ipmi_trn_lan22_num_cs_entries
, NULL
};
897 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_lan22_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
901 lan_23(tvbuff_t
*tvb
, proto_tree
*tree
)
906 for (i
= 0; i
< 16; i
++) {
907 v
= tvb_get_guint8(tvb
, i
+ 1);
908 proto_tree_add_uint_format(tree
, hf_ipmi_trn_lan23_cs_entry
, tvb
, i
+ 1, 1,
909 v
, "Cipher Suite ID entry %c: %u", 'A' + i
, v
);
914 lan_24(tvbuff_t
*tvb
, proto_tree
*tree
)
916 static const int *ett
[] = { &ett_ipmi_trn_lan24_byte1
, &ett_ipmi_trn_lan24_byte2
, &ett_ipmi_trn_lan24_byte3
,
917 &ett_ipmi_trn_lan24_byte4
, &ett_ipmi_trn_lan24_byte5
, &ett_ipmi_trn_lan24_byte6
, &ett_ipmi_trn_lan24_byte7
,
918 &ett_ipmi_trn_lan24_byte8
};
924 for (i
= 0; i
< 8; i
++) {
925 v
= tvb_get_guint8(tvb
, i
+ 1);
928 ti
= proto_tree_add_text(tree
, tvb
, i
+ 1, 1,
929 "Cipher Suite #%d: %s (0x%02x), Cipher Suite #%d: %s (0x%02x)",
930 i
* 2 + 1, val_to_str_const(v1
, lan24_priv_vals
, "Reserved"), v1
,
931 i
* 2 + 2, val_to_str_const(v2
, lan24_priv_vals
, "Reserved"), v2
);
932 s_tree
= proto_item_add_subtree(ti
, *ett
[i
]);
933 proto_tree_add_uint_format(s_tree
, hf_ipmi_trn_lan24_priv
, tvb
, i
+ 1, 1,
934 v2
<< 4, "%sMaximum Privilege Level for Cipher Suite #%d: %s (0x%02x)",
935 ipmi_dcd8(v
, 0xf0), i
* 2 + 2, val_to_str_const(v2
, lan24_priv_vals
, "Reserved"), v2
);
936 proto_tree_add_uint_format(s_tree
, hf_ipmi_trn_lan24_priv
, tvb
, i
+ 1, 1,
937 v1
, "%sMaximum Privilege Level for Cipher Suite #%d: %s (0x%02x)",
938 ipmi_dcd8(v
, 0x0f), i
* 2 + 1, val_to_str_const(v1
, lan24_priv_vals
, "Reserved"), v1
);
943 lan_25(tvbuff_t
*tvb
, proto_tree
*tree
)
945 static const int *byte1
[] = { &hf_ipmi_trn_lan25_dst_selector
, NULL
};
946 static const int *byte2
[] = { &hf_ipmi_trn_lan25_addr_format
, NULL
};
947 static const int *byte34
[] = { &hf_ipmi_trn_lan25_uprio
, &hf_ipmi_trn_lan25_cfi
, &hf_ipmi_trn_lan25_vlan_id
, NULL
};
950 v
= tvb_get_guint8(tvb
, 1) >> 4;
951 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_lan25_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
952 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
, ett_ipmi_trn_lan25_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
957 proto_tree_add_bitmask_text(tree
, tvb
, 2, 2, NULL
, NULL
, ett_ipmi_trn_lan25_byte34
,
958 byte34
, ENC_LITTLE_ENDIAN
, 0);
961 proto_tree_add_item(tree
, hf_ipmi_trn_lan25_address
, tvb
, 2, tvb_length(tvb
) - 2, ENC_LITTLE_ENDIAN
);
967 void (*intrp
)(tvbuff_t
*tvb
, proto_tree
*tree
);
970 { lan_serial_00
, "Set In Progress" },
971 { lan_serial_01
, "Authentication Type Support" },
972 { lan_serial_02
, "Authentication Type Enables" },
973 { lan_03
, "IP Address" },
974 { lan_04
, "IP Address Source" },
975 { lan_05
, "MAC Address" },
976 { lan_06
, "Subnet Mask" },
977 { lan_07
, "IPv4 Header Parameters" },
978 { lan_08
, "Primary RMCP Port Number" },
979 { lan_09
, "Secondary RMCP Port Number" },
980 { lan_10
, "BMC-generated ARP Control" },
981 { lan_11
, "Gratuitous ARP Interval" },
982 { lan_12
, "Default Gateway Address" },
983 { lan_13
, "Default Gateway MAC Address" },
984 { lan_14
, "Backup Gateway Address" },
985 { lan_15
, "Backup Gateway MAC Address" },
986 { lan_16
, "Community String" },
987 { lan_17
, "Number of Destinations" },
988 { lan_18
, "Destination Type" },
989 { lan_19
, "Destination Addresses" },
990 { lan_20
, "VLAN ID (802.1q)" },
991 { lan_21
, "VLAN Priority (802.1q)" },
992 { lan_22
, "Cipher Suite Entry Support (RMCP+)" },
993 { lan_23
, "Cipher Suite Entries (RMCP+)" },
994 { lan_24
, "Cipher Suite Privilege Levels (RMCP+)" },
995 { lan_25
, "Destination Address VLAN TAGs" },
998 /* Set LAN Configuration Parameters
1001 rq01(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1003 static const int *byte1
[] = { &hf_ipmi_trn_01_chan
, NULL
};
1008 pno
= tvb_get_guint8(tvb
, 1);
1009 if (pno
< array_length(lan_options
)) {
1010 desc
= lan_options
[pno
].name
;
1011 } else if (pno
>= 0xC0) {
1017 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_01_byte1
,
1018 byte1
, ENC_LITTLE_ENDIAN
, 0);
1019 proto_tree_add_uint_format_value(tree
, hf_ipmi_trn_01_param
, tvb
, 1, 1,
1020 pno
, "%s (0x%02x)", desc
, pno
);
1021 if (pno
< array_length(lan_options
)) {
1022 next
= tvb_new_subset(tvb
, 2, tvb_length(tvb
) - 2, tvb_length(tvb
) - 2);
1023 lan_options
[pno
].intrp(next
, tree
);
1025 proto_tree_add_item(tree
, hf_ipmi_trn_01_param_data
, tvb
, 2,
1026 tvb_length(tvb
) - 2, ENC_NA
);
1030 static const value_string cc01
[] = {
1031 { 0x80, "Parameter not supported" },
1032 { 0x81, "Attempt to set the 'set in progress' value (in parameter #0) when not in the 'set complete' state" },
1033 { 0x82, "Attempt to write read-only parameter" },
1034 { 0x83, "Attempt to read write-only parameter" },
1038 /* Get LAN Configuration Parameters
1041 rq02(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1043 static const int *byte1
[] = { &hf_ipmi_trn_02_getrev
, &hf_ipmi_trn_02_chan
, NULL
};
1047 pno
= tvb_get_guint8(tvb
, 1);
1050 ipmi_setsaveddata(0, pno
);
1051 ipmi_setsaveddata(1, tvb_get_guint8(tvb
, 0) & 0x80);
1055 if (pno
< array_length(lan_options
)) {
1056 desc
= lan_options
[pno
].name
;
1057 } else if (pno
>= 0xC0) {
1063 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1064 ett_ipmi_trn_02_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1065 proto_tree_add_uint_format_value(tree
, hf_ipmi_trn_02_param
, tvb
, 1, 1,
1066 pno
, "%s (0x%02x)", desc
, pno
);
1067 proto_tree_add_item(tree
, hf_ipmi_trn_02_set
, tvb
, 2, 1, ENC_LITTLE_ENDIAN
);
1068 proto_tree_add_item(tree
, hf_ipmi_trn_02_block
, tvb
, 2, 1, ENC_LITTLE_ENDIAN
);
1072 rs02(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1074 static const int *byte1
[] = { &hf_ipmi_trn_02_rev_present
, &hf_ipmi_trn_02_rev_compat
, NULL
};
1080 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1081 ett_ipmi_trn_02_rev
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1083 if (!ipmi_getsaveddata(0, &pno
) || !ipmi_getsaveddata(1, &req
)) {
1084 /* No request found - cannot parse further */
1085 if (tvb_length(tvb
) > 1) {
1086 proto_tree_add_item(tree
, hf_ipmi_trn_02_param_data
, tvb
, 1, tvb_length(tvb
) - 1, ENC_NA
);
1091 if ((req
& 0x80) && tvb_length(tvb
) > 1) {
1092 ti
= proto_tree_add_text(tree
, tvb
, 0, 0, "Requested parameter revision; parameter data returned");
1093 PROTO_ITEM_SET_GENERATED(ti
);
1094 } else if (!(req
& 0x80) && tvb_length(tvb
) == 1) {
1095 ti
= proto_tree_add_text(tree
, tvb
, 0, 0, "Requested parameter data; only parameter version returned");
1096 PROTO_ITEM_SET_GENERATED(ti
);
1099 if (pno
< array_length(lan_options
)) {
1100 desc
= lan_options
[pno
].name
;
1101 } else if (pno
>= 0xC0) {
1107 ti
= proto_tree_add_text(tree
, tvb
, 0, 0, "Parameter: %s", desc
);
1108 PROTO_ITEM_SET_GENERATED(ti
);
1110 if (tvb_length(tvb
) > 1) {
1111 if (pno
< array_length(lan_options
)) {
1112 next
= tvb_new_subset(tvb
, 1, tvb_length(tvb
) - 1, tvb_length(tvb
) - 1);
1113 lan_options
[pno
].intrp(next
, tree
);
1115 proto_tree_add_item(tree
, hf_ipmi_trn_02_param_data
, tvb
, 1,
1116 tvb_length(tvb
) - 1, ENC_NA
);
1121 static const value_string cc02
[] = {
1122 { 0x80, "Parameter not supported" },
1127 rq03(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1129 static const int *byte1
[] = { &hf_ipmi_trn_03_chan
, NULL
};
1130 static const int *byte2
[] = { &hf_ipmi_trn_03_arp_resp
, &hf_ipmi_trn_03_gratuitous_arp
, NULL
};
1132 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1133 ett_ipmi_trn_03_rq_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1134 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1135 ett_ipmi_trn_03_rq_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1139 rs03(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1141 static const int *byte1
[] = { &hf_ipmi_trn_03_status_arp_resp
,
1142 &hf_ipmi_trn_03_status_gratuitous_arp
, NULL
};
1144 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1145 ett_ipmi_trn_03_rs_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1149 rq04(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1151 static const int *byte1
[] = { &hf_ipmi_trn_04_chan
, NULL
};
1152 static const int *byte2
[] = { &hf_ipmi_trn_04_clear
, NULL
};
1154 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1155 ett_ipmi_trn_04_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1156 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1157 ett_ipmi_trn_04_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1161 rs04(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1163 proto_tree_add_item(tree
, hf_ipmi_trn_04_rx_ippkts
, tvb
, 0, 2, ENC_LITTLE_ENDIAN
);
1164 proto_tree_add_item(tree
, hf_ipmi_trn_04_rx_iphdr_err
, tvb
, 2, 2, ENC_LITTLE_ENDIAN
);
1165 proto_tree_add_item(tree
, hf_ipmi_trn_04_rx_ipaddr_err
, tvb
, 4, 2, ENC_LITTLE_ENDIAN
);
1166 proto_tree_add_item(tree
, hf_ipmi_trn_04_rx_ippkts_frag
, tvb
, 6, 2, ENC_LITTLE_ENDIAN
);
1167 proto_tree_add_item(tree
, hf_ipmi_trn_04_tx_ippkts
, tvb
, 8, 2, ENC_LITTLE_ENDIAN
);
1168 proto_tree_add_item(tree
, hf_ipmi_trn_04_rx_udppkts
, tvb
, 10, 2, ENC_LITTLE_ENDIAN
);
1169 proto_tree_add_item(tree
, hf_ipmi_trn_04_rx_validrmcp
, tvb
, 12, 2, ENC_LITTLE_ENDIAN
);
1170 proto_tree_add_item(tree
, hf_ipmi_trn_04_rx_udpproxy
, tvb
, 14, 2, ENC_LITTLE_ENDIAN
);
1171 proto_tree_add_item(tree
, hf_ipmi_trn_04_dr_udpproxy
, tvb
, 16, 2, ENC_LITTLE_ENDIAN
);
1175 serial_03(tvbuff_t
*tvb
, proto_tree
*tree
)
1177 static const int *byte1
[] = { &hf_ipmi_trn_serial03_connmode
, &hf_ipmi_trn_serial03_terminal
,
1178 &hf_ipmi_trn_serial03_ppp
, &hf_ipmi_trn_serial03_basic
, NULL
};
1180 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1181 ett_ipmi_trn_serial03_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1185 serial04_timeout_fmt(gchar
*s
, guint32 v
)
1188 g_snprintf(s
, ITEM_LABEL_LENGTH
, "%d sec", 30 * v
);
1191 g_snprintf(s
, ITEM_LABEL_LENGTH
, "Does not timeout");
1196 serial_04(tvbuff_t
*tvb
, proto_tree
*tree
)
1198 static const gint
*byte1
[] = { &hf_ipmi_trn_serial04_timeout
, NULL
};
1200 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1201 ett_ipmi_trn_serial04_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1205 serial_05(tvbuff_t
*tvb
, proto_tree
*tree
)
1207 static const int *byte1
[] = { &hf_ipmi_trn_serial05_cbcp_callback
,
1208 &hf_ipmi_trn_serial05_ipmi_callback
, NULL
};
1209 static const int *byte2
[] = { &hf_ipmi_trn_serial05_cb_list
, &hf_ipmi_trn_serial05_cb_user
,
1210 &hf_ipmi_trn_serial05_cb_prespec
, &hf_ipmi_trn_serial05_no_cb
, NULL
};
1212 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, "Callback capabilities: ", "None",
1213 ett_ipmi_trn_serial05_byte1
, byte1
, ENC_LITTLE_ENDIAN
, BMT_NO_TFS
);
1214 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, "CBCP negotiation options: ", "None",
1215 ett_ipmi_trn_serial05_byte2
, byte2
, ENC_LITTLE_ENDIAN
, BMT_NO_TFS
);
1216 proto_tree_add_item(tree
, hf_ipmi_trn_serial05_cb_dest1
, tvb
, 2, 1, ENC_LITTLE_ENDIAN
);
1217 proto_tree_add_item(tree
, hf_ipmi_trn_serial05_cb_dest2
, tvb
, 3, 1, ENC_LITTLE_ENDIAN
);
1218 proto_tree_add_item(tree
, hf_ipmi_trn_serial05_cb_dest3
, tvb
, 4, 1, ENC_LITTLE_ENDIAN
);
1222 serial_06(tvbuff_t
*tvb
, proto_tree
*tree
)
1224 static const gint
*byte1
[] = { &hf_ipmi_trn_serial06_inactivity
,
1225 &hf_ipmi_trn_serial06_dcd
, NULL
};
1227 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1228 ett_ipmi_trn_serial06_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1232 serial_07(tvbuff_t
*tvb
, proto_tree
*tree
)
1234 static const gint
*byte1
[] = { &hf_ipmi_trn_serial07_flowctl
, &hf_ipmi_trn_serial07_dtrhangup
, NULL
};
1235 static const gint
*byte2
[] = { &hf_ipmi_trn_serial07_bitrate
, NULL
};
1237 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1238 ett_ipmi_trn_serial07_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1239 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1240 ett_ipmi_trn_serial07_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1244 serial_08(tvbuff_t
*tvb
, proto_tree
*tree
)
1246 static const gint
*byte1
[] = { &hf_ipmi_trn_serial08_esc_powerup
,
1247 &hf_ipmi_trn_serial08_esc_reset
, &hf_ipmi_trn_serial08_switch_authcap
,
1248 &hf_ipmi_trn_serial08_switch_rmcp
, &hf_ipmi_trn_serial08_esc_switch1
,
1249 &hf_ipmi_trn_serial08_esc_switch2
, &hf_ipmi_trn_serial08_switch_dcdloss
, NULL
};
1250 static const gint
*byte2
[] = { &hf_ipmi_trn_serial08_sharing
,
1251 &hf_ipmi_trn_serial08_ping_callback
, &hf_ipmi_trn_serial08_ping_direct
,
1252 &hf_ipmi_trn_serial08_ping_retry
, NULL
};
1254 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, "Switch/escape settings", NULL
,
1255 ett_ipmi_trn_serial08_byte1
, byte1
, ENC_LITTLE_ENDIAN
, BMT_NO_APPEND
);
1256 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, "Sharing/ping settings", NULL
,
1257 ett_ipmi_trn_serial08_byte2
, byte2
, ENC_LITTLE_ENDIAN
, BMT_NO_APPEND
);
1261 serial_09(tvbuff_t
*tvb
, proto_tree
*tree
)
1263 static const gint
*byte1
[] = { &hf_ipmi_trn_serial09_ring_duration
, NULL
};
1264 static const gint
*byte2
[] = { &hf_ipmi_trn_serial09_ring_dead
, NULL
};
1266 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1267 ett_ipmi_trn_serial09_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1268 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1269 ett_ipmi_trn_serial09_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1273 serial_10(tvbuff_t
*tvb
, proto_tree
*tree
)
1275 proto_tree_add_item(tree
, hf_ipmi_trn_serial10_set_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1276 proto_tree_add_item(tree
, hf_ipmi_trn_serial10_init_str
, tvb
, 1, tvb_length(tvb
) - 1, ENC_ASCII
|ENC_NA
);
1280 serial_11(tvbuff_t
*tvb
, proto_tree
*tree
)
1282 proto_tree_add_item(tree
, hf_ipmi_trn_serial11_esc_seq
, tvb
, 0, 5, ENC_ASCII
|ENC_NA
);
1286 serial_12(tvbuff_t
*tvb
, proto_tree
*tree
)
1288 proto_tree_add_item(tree
, hf_ipmi_trn_serial12_hangup_seq
, tvb
, 0, 8, ENC_ASCII
|ENC_NA
);
1292 serial_13(tvbuff_t
*tvb
, proto_tree
*tree
)
1294 proto_tree_add_item(tree
, hf_ipmi_trn_serial13_dial_cmd
, tvb
, 0, 8, ENC_ASCII
|ENC_NA
);
1298 serial_14(tvbuff_t
*tvb
, proto_tree
*tree
)
1300 proto_tree_add_item(tree
, hf_ipmi_trn_serial14_page_blackout
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1304 serial_15(tvbuff_t
*tvb
, proto_tree
*tree
)
1306 proto_tree_add_item(tree
, hf_ipmi_trn_serial15_comm_string
, tvb
, 0, 18, ENC_ASCII
|ENC_NA
);
1310 serial_16(tvbuff_t
*tvb
, proto_tree
*tree
)
1312 static const gint
*byte1
[] = { &hf_ipmi_trn_serial16_ndest
, NULL
};
1314 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1315 ett_ipmi_trn_serial16_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1319 serial_17(tvbuff_t
*tvb
, proto_tree
*tree
)
1321 static const gint
*byte1
[] = { &hf_ipmi_trn_serial17_dest_sel
, NULL
};
1322 static const gint
*byte2
[] = { &hf_ipmi_trn_serial17_ack
, &hf_ipmi_trn_serial17_dest_type
, NULL
};
1323 static const gint
*byte4
[] = { &hf_ipmi_trn_serial17_alert_retries
, &hf_ipmi_trn_serial17_call_retries
, NULL
};
1324 const gint
*byte5
[3] = { NULL
, NULL
, NULL
};
1327 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1328 ett_ipmi_trn_serial17_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1329 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1330 ett_ipmi_trn_serial17_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1331 proto_tree_add_item(tree
, hf_ipmi_trn_serial17_alert_ack_timeout
, tvb
, 2, 1, ENC_LITTLE_ENDIAN
);
1332 proto_tree_add_bitmask_text(tree
, tvb
, 3, 1, NULL
, NULL
,
1333 ett_ipmi_trn_serial17_byte4
, byte4
, ENC_LITTLE_ENDIAN
, 0);
1335 v
= tvb_get_guint8(tvb
, 1) & 0x0f;
1337 case 0: /* Dial Page */
1338 case 3: /* Basic Mode Callback */
1339 byte5
[0] = &hf_ipmi_trn_serial17_dialstr_sel
;
1341 case 1: /* TAP Page */
1342 byte5
[0] = &hf_ipmi_trn_serial17_tap_sel
;
1344 case 2: /* PPP Alert */
1345 case 4: /* PPP Callback */
1346 byte5
[0] = &hf_ipmi_trn_serial17_ipaddr_sel
;
1347 byte5
[1] = &hf_ipmi_trn_serial17_ppp_sel
;
1350 proto_tree_add_item(tree
, hf_ipmi_trn_serial17_unknown
, tvb
, 4, 1, ENC_LITTLE_ENDIAN
);
1353 proto_tree_add_bitmask_text(tree
, tvb
, 4, 1, NULL
, NULL
,
1354 ett_ipmi_trn_serial17_byte5
, byte5
, ENC_LITTLE_ENDIAN
, 0);
1358 serial_18(tvbuff_t
*tvb
, proto_tree
*tree
)
1360 proto_tree_add_item(tree
, hf_ipmi_trn_serial18_call_retry
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1364 serial_19(tvbuff_t
*tvb
, proto_tree
*tree
)
1366 static const gint
*byte1
[] = { &hf_ipmi_trn_serial19_destsel
, NULL
};
1367 static const gint
*byte2
[] = { &hf_ipmi_trn_serial19_flowctl
, &hf_ipmi_trn_serial19_dtrhangup
,
1368 &hf_ipmi_trn_serial19_stopbits
, &hf_ipmi_trn_serial19_charsize
, &hf_ipmi_trn_serial19_parity
, NULL
};
1369 static const gint
*byte3
[] = { &hf_ipmi_trn_serial19_bitrate
, NULL
};
1371 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1372 ett_ipmi_trn_serial19_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1373 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1374 ett_ipmi_trn_serial19_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1375 proto_tree_add_bitmask_text(tree
, tvb
, 2, 1, NULL
, NULL
,
1376 ett_ipmi_trn_serial19_byte3
, byte3
, ENC_LITTLE_ENDIAN
, 0);
1380 serial_20(tvbuff_t
*tvb
, proto_tree
*tree
)
1382 static const gint
*byte1
[] = { &hf_ipmi_trn_serial20_num_dial_strings
, NULL
};
1384 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1385 ett_ipmi_trn_serial20_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1389 serial_21(tvbuff_t
*tvb
, proto_tree
*tree
)
1391 static const gint
*byte1
[] = { &hf_ipmi_trn_serial21_dialsel
, NULL
};
1393 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1394 ett_ipmi_trn_serial21_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1395 proto_tree_add_item(tree
, hf_ipmi_trn_serial21_blockno
, tvb
, 1, 1, ENC_LITTLE_ENDIAN
);
1396 proto_tree_add_item(tree
, hf_ipmi_trn_serial21_dialstr
, tvb
, 2, 1, ENC_ASCII
|ENC_NA
);
1400 serial_22(tvbuff_t
*tvb
, proto_tree
*tree
)
1402 static const gint
*byte1
[] = { &hf_ipmi_trn_serial22_num_ipaddrs
, NULL
};
1404 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1405 ett_ipmi_trn_serial22_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1409 serial_23(tvbuff_t
*tvb
, proto_tree
*tree
)
1411 static const gint
*byte1
[] = { &hf_ipmi_trn_serial23_destsel
, NULL
};
1413 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1414 ett_ipmi_trn_serial23_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1415 proto_tree_add_item(tree
, hf_ipmi_trn_serial23_ipaddr
, tvb
, 1, 4, ENC_BIG_ENDIAN
);
1419 serial_24(tvbuff_t
*tvb
, proto_tree
*tree
)
1421 static const gint
*byte1
[] = { &hf_ipmi_trn_serial24_num_tap_accounts
, NULL
};
1423 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1424 ett_ipmi_trn_serial24_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1428 serial_25(tvbuff_t
*tvb
, proto_tree
*tree
)
1430 static const gint
*byte2
[] = { &hf_ipmi_trn_serial25_dialstr_sel
, &hf_ipmi_trn_serial25_tapsrv_sel
, NULL
};
1432 proto_tree_add_item(tree
, hf_ipmi_trn_serial25_tap_acct
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1433 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1434 ett_ipmi_trn_serial25_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1438 serial_26(tvbuff_t
*tvb
, proto_tree
*tree
)
1440 proto_tree_add_item(tree
, hf_ipmi_trn_serial26_tap_acct
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1441 proto_tree_add_item(tree
, hf_ipmi_trn_serial26_tap_passwd
, tvb
, 1, 6, ENC_ASCII
|ENC_NA
);
1445 serial_27(tvbuff_t
*tvb
, proto_tree
*tree
)
1447 proto_tree_add_item(tree
, hf_ipmi_trn_serial27_tap_acct
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1448 proto_tree_add_item(tree
, hf_ipmi_trn_serial27_tap_pager_id
, tvb
, 1, 16, ENC_ASCII
|ENC_NA
);
1452 serial_28(tvbuff_t
*tvb
, proto_tree
*tree
)
1454 static const gint
*byte1
[] = { &hf_ipmi_trn_serial28_tapsrv_sel
, NULL
};
1455 static const gint
*byte2
[] = { &hf_ipmi_trn_serial28_confirm
, NULL
};
1456 static const gint
*byte10
[] = { &hf_ipmi_trn_serial28_t2
, &hf_ipmi_trn_serial28_t1
, NULL
};
1457 static const gint
*byte11
[] = { &hf_ipmi_trn_serial28_t4
, &hf_ipmi_trn_serial28_t3
, NULL
};
1458 static const gint
*byte12
[] = { &hf_ipmi_trn_serial28_t6
, &hf_ipmi_trn_serial28_t5
, NULL
};
1459 static const gint
*byte13
[] = { &hf_ipmi_trn_serial28_n2
, &hf_ipmi_trn_serial28_n1
, NULL
};
1460 static const gint
*byte14
[] = { &hf_ipmi_trn_serial28_n4
, &hf_ipmi_trn_serial28_n3
, NULL
};
1462 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1463 ett_ipmi_trn_serial28_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1464 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1465 ett_ipmi_trn_serial28_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1466 proto_tree_add_item(tree
, hf_ipmi_trn_serial28_srvtype
, tvb
, 2, 3, ENC_ASCII
|ENC_NA
);
1467 proto_tree_add_item(tree
, hf_ipmi_trn_serial28_ctrl_esc
, tvb
, 5, 4, ENC_LITTLE_ENDIAN
);
1468 proto_tree_add_bitmask_text(tree
, tvb
, 9, 1, NULL
, NULL
,
1469 ett_ipmi_trn_serial28_byte10
, byte10
, ENC_LITTLE_ENDIAN
, 0);
1470 proto_tree_add_bitmask_text(tree
, tvb
, 10, 1, NULL
, NULL
,
1471 ett_ipmi_trn_serial28_byte11
, byte11
, ENC_LITTLE_ENDIAN
, 0);
1472 proto_tree_add_bitmask_text(tree
, tvb
, 11, 1, NULL
, NULL
,
1473 ett_ipmi_trn_serial28_byte12
, byte12
, ENC_LITTLE_ENDIAN
, 0);
1474 proto_tree_add_bitmask_text(tree
, tvb
, 12, 1, NULL
, NULL
,
1475 ett_ipmi_trn_serial28_byte13
, byte13
, ENC_LITTLE_ENDIAN
, 0);
1476 proto_tree_add_bitmask_text(tree
, tvb
, 13, 1, NULL
, NULL
,
1477 ett_ipmi_trn_serial28_byte14
, byte14
, ENC_LITTLE_ENDIAN
, 0);
1481 serial_29(tvbuff_t
*tvb
, proto_tree
*tree
)
1483 static const gint
*byte1
[] = { &hf_ipmi_trn_serial29_op
, &hf_ipmi_trn_serial29_lineedit
,
1484 &hf_ipmi_trn_serial29_deletectl
, &hf_ipmi_trn_serial29_echo
, &hf_ipmi_trn_serial29_handshake
, NULL
};
1485 static const gint
*byte2
[] = { &hf_ipmi_trn_serial29_o_newline
, &hf_ipmi_trn_serial29_i_newline
, NULL
};
1487 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1488 ett_ipmi_trn_serial29_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1489 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1490 ett_ipmi_trn_serial29_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1494 serial_30(tvbuff_t
*tvb
, proto_tree
*tree
)
1496 static const gint
*byte1
[] = { &hf_ipmi_trn_serial30_snooping
, &hf_ipmi_trn_serial30_snoopctl
, NULL
};
1497 static const gint
*byte2
[] = { &hf_ipmi_trn_serial30_negot_ctl
, &hf_ipmi_trn_serial30_use_xmit_accm
,
1498 &hf_ipmi_trn_serial30_xmit_addr_comp
, &hf_ipmi_trn_serial30_xmit_proto_comp
, NULL
};
1499 static const gint
*byte3
[] = { &hf_ipmi_trn_serial30_ipaddr
, &hf_ipmi_trn_serial30_accm
,
1500 &hf_ipmi_trn_serial30_addr_comp
, &hf_ipmi_trn_serial30_proto_comp
, NULL
};
1502 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1503 ett_ipmi_trn_serial30_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1504 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1505 ett_ipmi_trn_serial30_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1506 proto_tree_add_bitmask_text(tree
, tvb
, 2, 1, NULL
, NULL
,
1507 ett_ipmi_trn_serial30_byte3
, byte3
, ENC_LITTLE_ENDIAN
, 0);
1511 serial_31(tvbuff_t
*tvb
, proto_tree
*tree
)
1513 proto_tree_add_item(tree
, hf_ipmi_trn_serial31_port
, tvb
, 0, 2, ENC_LITTLE_ENDIAN
);
1517 serial_32(tvbuff_t
*tvb
, proto_tree
*tree
)
1519 proto_tree_add_item(tree
, hf_ipmi_trn_serial32_port
, tvb
, 0, 2, ENC_LITTLE_ENDIAN
);
1523 serial_33(tvbuff_t
*tvb
, proto_tree
*tree
)
1525 static const gint
*byte1
[] = { &hf_ipmi_trn_serial33_auth_proto
, NULL
};
1527 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1528 ett_ipmi_trn_serial33_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1532 serial_34(tvbuff_t
*tvb
, proto_tree
*tree
)
1534 proto_tree_add_item(tree
, hf_ipmi_trn_serial34_chap_name
, tvb
, 0, 16, ENC_ASCII
|ENC_NA
);
1538 serial_35(tvbuff_t
*tvb
, proto_tree
*tree
)
1540 proto_tree_add_item(tree
, hf_ipmi_trn_serial35_recv_accm
, tvb
, 0, 4, ENC_BIG_ENDIAN
);
1541 proto_tree_add_item(tree
, hf_ipmi_trn_serial35_xmit_accm
, tvb
, 4, 4, ENC_BIG_ENDIAN
);
1545 serial_36(tvbuff_t
*tvb
, proto_tree
*tree
)
1547 proto_tree_add_item(tree
, hf_ipmi_trn_serial36_snoop_accm
, tvb
, 0, 4, ENC_BIG_ENDIAN
);
1551 serial_37(tvbuff_t
*tvb
, proto_tree
*tree
)
1553 static const gint
*byte1
[] = { &hf_ipmi_trn_serial37_num_ppp
, NULL
};
1555 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1556 ett_ipmi_trn_serial37_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1560 serial_38(tvbuff_t
*tvb
, proto_tree
*tree
)
1562 proto_tree_add_item(tree
, hf_ipmi_trn_serial38_acct_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1563 proto_tree_add_item(tree
, hf_ipmi_trn_serial38_dialstr_sel
, tvb
, 1, 1, ENC_LITTLE_ENDIAN
);
1567 serial_39(tvbuff_t
*tvb
, proto_tree
*tree
)
1569 proto_tree_add_item(tree
, hf_ipmi_trn_serial39_acct_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1570 proto_tree_add_item(tree
, hf_ipmi_trn_serial39_ipaddr
, tvb
, 1, 4, ENC_BIG_ENDIAN
);
1574 serial_40(tvbuff_t
*tvb
, proto_tree
*tree
)
1578 proto_tree_add_item(tree
, hf_ipmi_trn_serial40_acct_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1579 slen
= tvb_length(tvb
) - 1;
1583 proto_tree_add_item(tree
, hf_ipmi_trn_serial40_username
, tvb
, 1, slen
, ENC_ASCII
|ENC_NA
);
1587 serial_41(tvbuff_t
*tvb
, proto_tree
*tree
)
1591 proto_tree_add_item(tree
, hf_ipmi_trn_serial41_acct_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1592 slen
= tvb_length(tvb
) - 1;
1596 proto_tree_add_item(tree
, hf_ipmi_trn_serial41_userdomain
, tvb
, 1, slen
, ENC_ASCII
|ENC_NA
);
1600 serial_42(tvbuff_t
*tvb
, proto_tree
*tree
)
1604 proto_tree_add_item(tree
, hf_ipmi_trn_serial42_acct_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1605 slen
= tvb_length(tvb
) - 1;
1609 proto_tree_add_item(tree
, hf_ipmi_trn_serial42_userpass
, tvb
, 1, slen
, ENC_ASCII
|ENC_NA
);
1613 serial_43(tvbuff_t
*tvb
, proto_tree
*tree
)
1615 static const gint
*byte1
[] = { &hf_ipmi_trn_serial43_auth_proto
, NULL
};
1617 proto_tree_add_item(tree
, hf_ipmi_trn_serial43_acct_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1618 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1619 ett_ipmi_trn_serial43_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1623 serial_44(tvbuff_t
*tvb
, proto_tree
*tree
)
1625 proto_tree_add_item(tree
, hf_ipmi_trn_serial44_acct_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1626 proto_tree_add_item(tree
, hf_ipmi_trn_serial44_hold_time
, tvb
, 1, 1, ENC_LITTLE_ENDIAN
);
1630 serial_45(tvbuff_t
*tvb
, proto_tree
*tree
)
1632 proto_tree_add_item(tree
, hf_ipmi_trn_serial45_src_ipaddr
, tvb
, 0, 4, ENC_BIG_ENDIAN
);
1633 proto_tree_add_item(tree
, hf_ipmi_trn_serial45_dst_ipaddr
, tvb
, 4, 4, ENC_BIG_ENDIAN
);
1637 serial_46(tvbuff_t
*tvb
, proto_tree
*tree
)
1639 proto_tree_add_item(tree
, hf_ipmi_trn_serial46_tx_bufsize
, tvb
, 0, 2, ENC_LITTLE_ENDIAN
);
1643 serial_47(tvbuff_t
*tvb
, proto_tree
*tree
)
1645 proto_tree_add_item(tree
, hf_ipmi_trn_serial47_rx_bufsize
, tvb
, 0, 2, ENC_LITTLE_ENDIAN
);
1649 serial_48(tvbuff_t
*tvb
, proto_tree
*tree
)
1651 proto_tree_add_item(tree
, hf_ipmi_trn_serial48_ipaddr
, tvb
, 0, 4, ENC_BIG_ENDIAN
);
1655 serial_49(tvbuff_t
*tvb
, proto_tree
*tree
)
1659 proto_tree_add_item(tree
, hf_ipmi_trn_serial49_blockno
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1660 slen
= tvb_length(tvb
) - 1;
1664 proto_tree_add_item(tree
, hf_ipmi_trn_serial49_dialstr
, tvb
, 1, slen
, ENC_ASCII
|ENC_NA
);
1668 serial_50(tvbuff_t
*tvb
, proto_tree
*tree
)
1670 static const gint
*byte1
[] = { &hf_ipmi_trn_serial50_115200
, &hf_ipmi_trn_serial50_57600
,
1671 &hf_ipmi_trn_serial50_38400
, &hf_ipmi_trn_serial50_19200
, &hf_ipmi_trn_serial50_9600
, NULL
};
1673 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, "Bit rate support: ", "None",
1674 ett_ipmi_trn_serial50_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1678 serial_51(tvbuff_t
*tvb
, proto_tree
*tree
)
1680 static const gint
*byte2
[] = { &hf_ipmi_trn_serial51_ipmi_channel
, &hf_ipmi_trn_serial51_conn_num
, NULL
};
1681 static const gint
*byte3
[] = { &hf_ipmi_trn_serial51_ipmi_sharing
,
1682 &hf_ipmi_trn_serial51_ipmi_sol
, &hf_ipmi_trn_serial51_chan_num
, NULL
};
1684 proto_tree_add_item(tree
, hf_ipmi_trn_serial51_port_assoc_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1685 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1686 ett_ipmi_trn_serial51_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1687 proto_tree_add_bitmask_text(tree
, tvb
, 2, 1, NULL
, NULL
,
1688 ett_ipmi_trn_serial51_byte3
, byte3
, ENC_LITTLE_ENDIAN
, 0);
1692 serial_52(tvbuff_t
*tvb
, proto_tree
*tree
)
1694 proto_tree_add_item(tree
, hf_ipmi_trn_serial52_port_assoc_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1695 proto_tree_add_item(tree
, hf_ipmi_trn_serial52_conn_name
, tvb
, 1, 16, ENC_NA
);
1699 serial_53(tvbuff_t
*tvb
, proto_tree
*tree
)
1701 proto_tree_add_item(tree
, hf_ipmi_trn_serial53_port_assoc_sel
, tvb
, 0, 1, ENC_LITTLE_ENDIAN
);
1702 proto_tree_add_item(tree
, hf_ipmi_trn_serial53_chan_name
, tvb
, 1, 16, ENC_NA
);
1706 void (*intrp
)(tvbuff_t
*tvb
, proto_tree
*tree
);
1708 } serial_options
[] = {
1709 { lan_serial_00
, "Set In Progress" },
1710 { lan_serial_01
, "Authentication Type Support" },
1711 { lan_serial_02
, "Authentication Type Enables" },
1712 { serial_03
, "Connection Mode" },
1713 { serial_04
, "Session Inactivity Timeout" },
1714 { serial_05
, "Channel Callback Control" },
1715 { serial_06
, "Session Termination" },
1716 { serial_07
, "IPMI Messaging Comm Settings" },
1717 { serial_08
, "Mux Switch Control" },
1718 { serial_09
, "Modem Ring Time" },
1719 { serial_10
, "Modem Init String" },
1720 { serial_11
, "Modem Escape Sequence" },
1721 { serial_12
, "Modem Hang-up Sequence" },
1722 { serial_13
, "Modem Dial Command" },
1723 { serial_14
, "Page Blackout Interval" },
1724 { serial_15
, "Community String" },
1725 { serial_16
, "Number of Alert Destinations" },
1726 { serial_17
, "Destination Info" },
1727 { serial_18
, "Call Retry Interval" },
1728 { serial_19
, "Destination Comm Settings" },
1729 { serial_20
, "Number of Dial Strings" },
1730 { serial_21
, "Destination Dial Strings" },
1731 { serial_22
, "Number of Alert Destination IP Addresses" },
1732 { serial_23
, "Destination IP Addresses" },
1733 { serial_24
, "Number of TAP Accounts" },
1734 { serial_25
, "TAP Account" },
1735 { serial_26
, "TAP Passwords" },
1736 { serial_27
, "TAP Pager ID Strings" },
1737 { serial_28
, "TAP Service Settings" },
1738 { serial_29
, "Terminal Mode Configuration" },
1739 { serial_30
, "PPP Protocol Options" },
1740 { serial_31
, "PPP Primary RMCP Port" },
1741 { serial_32
, "PPP Secondary RMCP Port" },
1742 { serial_33
, "PPP Link Authentication" },
1743 { serial_34
, "CHAP Name" },
1744 { serial_35
, "PPP ACCM" },
1745 { serial_36
, "PPP Snoop ACCM" },
1746 { serial_37
, "Number of PPP Accounts" },
1747 { serial_38
, "PPP Account Dial String Selector" },
1748 { serial_39
, "PPP Account IP Addresses" },
1749 { serial_40
, "PPP Account User Names" },
1750 { serial_41
, "PPP Account User Domains" },
1751 { serial_42
, "PPP Account User Passwords" },
1752 { serial_43
, "PPP Account Authentication Settings" },
1753 { serial_44
, "PPP Account Connection Hold Times" },
1754 { serial_45
, "PPP UDP Proxy IP Header" },
1755 { serial_46
, "PPP UDP Proxy Transmit Buffer Size" },
1756 { serial_47
, "PPP UDP Proxy Receive Buffer Size" },
1757 { serial_48
, "PPP Remote Console IP Address" },
1758 { serial_49
, "System Phone Number" },
1759 { serial_50
, "Bitrate Support" },
1760 { serial_51
, "System Serial Port Association" },
1761 { serial_52
, "System Connector Names" },
1762 { serial_53
, "System Serial Channel Names" }
1765 /* Set Serial/Modem Configuration Parameters
1768 rq10(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1770 static const int *byte1
[] = { &hf_ipmi_trn_10_chan
, NULL
};
1775 pno
= tvb_get_guint8(tvb
, 1);
1776 if (pno
< array_length(serial_options
)) {
1777 desc
= serial_options
[pno
].name
;
1778 } else if (pno
>= 0xC0) {
1784 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
, ett_ipmi_trn_10_byte1
,
1785 byte1
, ENC_LITTLE_ENDIAN
, 0);
1786 proto_tree_add_uint_format_value(tree
, hf_ipmi_trn_10_param
, tvb
, 1, 1,
1787 pno
, "%s (0x%02x)", desc
, pno
);
1788 if (pno
< array_length(serial_options
)) {
1789 next
= tvb_new_subset(tvb
, 2, tvb_length(tvb
) - 2, tvb_length(tvb
) - 2);
1790 serial_options
[pno
].intrp(next
, tree
);
1792 proto_tree_add_item(tree
, hf_ipmi_trn_10_param_data
, tvb
, 2,
1793 tvb_length(tvb
) - 2, ENC_NA
);
1797 static const value_string cc10
[] = {
1798 { 0x80, "Parameter not supported" },
1799 { 0x81, "Attempt to set the 'set in progress' value (in parameter #0) when not in the 'set complete' state" },
1800 { 0x82, "Attempt to write read-only parameter" },
1801 { 0x83, "Attempt to read write-only parameter" },
1805 /* Get LAN Configuration Parameters
1808 rq11(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1810 static const int *byte1
[] = { &hf_ipmi_trn_11_getrev
, &hf_ipmi_trn_11_chan
, NULL
};
1814 pno
= tvb_get_guint8(tvb
, 1);
1817 ipmi_setsaveddata(0, pno
);
1818 ipmi_setsaveddata(1, tvb_get_guint8(tvb
, 0));
1822 if (pno
< array_length(serial_options
)) {
1823 desc
= serial_options
[pno
].name
;
1824 } else if (pno
>= 0xC0) {
1830 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1831 ett_ipmi_trn_11_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1832 proto_tree_add_uint_format_value(tree
, hf_ipmi_trn_11_param
, tvb
, 1, 1,
1833 pno
, "%s (0x%02x)", desc
, pno
);
1834 proto_tree_add_item(tree
, hf_ipmi_trn_11_set
, tvb
, 2, 1, ENC_LITTLE_ENDIAN
);
1835 proto_tree_add_item(tree
, hf_ipmi_trn_11_block
, tvb
, 2, 1, ENC_LITTLE_ENDIAN
);
1839 rs11(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1841 static const int *byte1
[] = { &hf_ipmi_trn_11_rev_present
, &hf_ipmi_trn_11_rev_compat
, NULL
};
1847 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1848 ett_ipmi_trn_11_rev
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1850 if (!ipmi_getsaveddata(0, &pno
) || !ipmi_getsaveddata(1, &req
)) {
1851 /* No request found - cannot parse further */
1852 if (tvb_length(tvb
) > 1) {
1853 proto_tree_add_item(tree
, hf_ipmi_trn_11_param_data
, tvb
, 1, tvb_length(tvb
) - 1, ENC_NA
);
1858 if (pno
< array_length(serial_options
)) {
1859 desc
= serial_options
[pno
].name
;
1860 } else if (pno
>= 0xC0) {
1866 if ((req
& 0x80) && tvb_length(tvb
) > 1) {
1867 ti
= proto_tree_add_text(tree
, tvb
, 0, 0, "Requested parameter revision; parameter data returned");
1868 PROTO_ITEM_SET_GENERATED(ti
);
1869 } else if (!(req
& 0x80) && tvb_length(tvb
) == 1) {
1870 ti
= proto_tree_add_text(tree
, tvb
, 0, 0, "Requested parameter data; only parameter version returned");
1871 PROTO_ITEM_SET_GENERATED(ti
);
1874 ti
= proto_tree_add_text(tree
, tvb
, 0, 0, "Parameter: %s", desc
);
1875 PROTO_ITEM_SET_GENERATED(ti
);
1877 if (tvb_length(tvb
) > 1) {
1878 if (pno
< array_length(serial_options
)) {
1879 next
= tvb_new_subset(tvb
, 1, tvb_length(tvb
) - 1, tvb_length(tvb
) - 1);
1880 serial_options
[pno
].intrp(next
, tree
);
1882 proto_tree_add_item(tree
, hf_ipmi_trn_11_param_data
, tvb
, 1,
1883 tvb_length(tvb
) - 1, ENC_NA
);
1888 static const value_string cc11
[] = {
1889 { 0x80, "Parameter not supported" },
1893 /* Set Serial/Modem Mux
1896 rq12(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1898 static const gint
*byte1
[] = { &hf_ipmi_trn_12_chan
, NULL
};
1899 static const gint
*byte2
[] = { &hf_ipmi_trn_12_mux_setting
, NULL
};
1901 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1902 ett_ipmi_trn_12_rq_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1903 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
1904 ett_ipmi_trn_12_rq_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
1908 rs12(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1910 static const gint
*byte1
[] = { &hf_ipmi_trn_12_sw_to_sys
, &hf_ipmi_trn_12_sw_to_bmc
,
1911 &hf_ipmi_trn_12_alert
, &hf_ipmi_trn_12_msg
, &hf_ipmi_trn_12_req
, &hf_ipmi_trn_12_mux_state
, NULL
};
1913 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1914 ett_ipmi_trn_12_rs_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1917 /* Get TAP Response Codes
1920 rq13(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1922 static const gint
*byte1
[] = { &hf_ipmi_trn_13_chan
, NULL
};
1924 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1925 ett_ipmi_trn_13_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1929 rs13(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1931 proto_tree_add_item(tree
, hf_ipmi_trn_13_code1
, tvb
, 0, 3, ENC_ASCII
|ENC_NA
);
1932 proto_tree_add_item(tree
, hf_ipmi_trn_13_code2
, tvb
, 3, 3, ENC_ASCII
|ENC_NA
);
1933 proto_tree_add_item(tree
, hf_ipmi_trn_13_code3
, tvb
, 6, 3, ENC_ASCII
|ENC_NA
);
1934 proto_tree_add_item(tree
, hf_ipmi_trn_13_code4
, tvb
, 9, 3, ENC_ASCII
|ENC_NA
);
1935 proto_tree_add_item(tree
, hf_ipmi_trn_13_code5
, tvb
, 12, 3, ENC_ASCII
|ENC_NA
);
1938 /* Set PPP UDP Proxy Transmit Data
1941 rq14(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1943 static const gint
*byte1
[] = { &hf_ipmi_trn_14_chan
, NULL
};
1945 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1946 ett_ipmi_trn_14_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1947 proto_tree_add_item(tree
, hf_ipmi_trn_14_block
, tvb
, 1, 1, ENC_LITTLE_ENDIAN
);
1948 proto_tree_add_item(tree
, hf_ipmi_trn_14_data
, tvb
, 2, 16, ENC_NA
);
1951 /* Get PPP UDP Proxy Transmit Data
1954 rq15(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1956 static const gint
*byte1
[] = { &hf_ipmi_trn_15_chan
, NULL
};
1958 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1959 ett_ipmi_trn_15_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1960 proto_tree_add_item(tree
, hf_ipmi_trn_15_block
, tvb
, 1, 1, ENC_LITTLE_ENDIAN
);
1964 rs15(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1966 proto_tree_add_item(tree
, hf_ipmi_trn_15_data
, tvb
, 0, 16, ENC_NA
);
1969 /* Send PPP UDP Proxy Packet
1972 rq16(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1974 static const gint
*byte1
[] = { &hf_ipmi_trn_16_chan
, NULL
};
1976 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
1977 ett_ipmi_trn_16_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
1978 proto_tree_add_item(tree
, hf_ipmi_trn_16_src_port
, tvb
, 1, 2, ENC_LITTLE_ENDIAN
);
1979 proto_tree_add_item(tree
, hf_ipmi_trn_16_dst_port
, tvb
, 3, 2, ENC_LITTLE_ENDIAN
);
1980 proto_tree_add_item(tree
, hf_ipmi_trn_16_src_addr
, tvb
, 5, 4, ENC_BIG_ENDIAN
);
1981 proto_tree_add_item(tree
, hf_ipmi_trn_16_dst_addr
, tvb
, 9, 4, ENC_BIG_ENDIAN
);
1982 proto_tree_add_item(tree
, hf_ipmi_trn_16_bytes
, tvb
, 13, 2, ENC_LITTLE_ENDIAN
);
1985 static const value_string cc16
[] = {
1986 { 0x80, "PPP link is not up" },
1987 { 0x81, "IP protocol is not up" },
1991 /* Get PPP UDP Proxy Receive Data
1994 tr17_fmt_blockno(gchar
*s
, guint32 v
)
1996 g_snprintf(s
, ITEM_LABEL_LENGTH
, "%d%s",
1997 v
, v
? "" : " (get received data length)");
2001 rq17(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2003 static const gint
*byte1
[] = { &hf_ipmi_trn_17_chan
, NULL
};
2004 static const gint
*byte2
[] = { &hf_ipmi_trn_17_clear
, &hf_ipmi_trn_17_block_num
, NULL
};
2007 /* Save block number */
2008 ipmi_setsaveddata(0, tvb_get_guint8(tvb
, 1) & 0x7f);
2012 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
2013 ett_ipmi_trn_17_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
2014 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
2015 ett_ipmi_trn_17_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
2019 rs17(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2023 if (ipmi_getsaveddata(0, &bno
) && bno
== 0) {
2024 /* Request for length */
2025 proto_tree_add_item(tree
, hf_ipmi_trn_17_size
, tvb
, 0, 2, ENC_LITTLE_ENDIAN
);
2027 proto_tree_add_item(tree
, hf_ipmi_trn_17_data
, tvb
, 0,
2028 tvb_length(tvb
) < 16 ? tvb_length(tvb
) : 16, ENC_NA
);
2032 static const value_string cc17
[] = {
2033 { 0x80, "No packet data available" },
2037 /* Serial/Modem Connection Active
2040 rq18(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2042 static const gint
*byte1
[] = { &hf_ipmi_trn_18_state
, NULL
};
2044 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
2045 ett_ipmi_trn_18_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
2046 proto_tree_add_item(tree
, hf_ipmi_trn_18_ipmi_ver
, tvb
, 1, 1, ENC_LITTLE_ENDIAN
);
2052 rq19(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2054 static const gint
*byte1
[] = { &hf_ipmi_trn_19_chan
, NULL
};
2055 static const gint
*byte2
[] = { &hf_ipmi_trn_19_dest_sel
, NULL
};
2057 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
2058 ett_ipmi_trn_19_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
2059 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
2060 ett_ipmi_trn_19_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
2063 static const value_string cc19
[] = {
2064 { 0x81, "Callback rejected, alert in progress on this channel" },
2065 { 0x82, "Callback rejected, IPMI messaging active on this channel" },
2069 /* Common for Set/Get User Callback Options
2072 parse_callback_options(tvbuff_t
*tvb
, guint offs
, proto_tree
*tree
)
2074 static const gint
*usercap
[] = { &hf_ipmi_trn_XX_cap_cbcp
, &hf_ipmi_trn_XX_cap_ipmi
, NULL
};
2075 static const gint
*cbcp
[] = { &hf_ipmi_trn_XX_cbcp_from_list
, &hf_ipmi_trn_XX_cbcp_user
,
2076 &hf_ipmi_trn_XX_cbcp_prespec
, &hf_ipmi_trn_XX_cbcp_nocb
, NULL
};
2078 proto_tree_add_bitmask_text(tree
, tvb
, offs
, 1,
2079 "User callback capabilities: ", "None",
2080 ett_ipmi_trn_XX_usercap
, usercap
, ENC_LITTLE_ENDIAN
, BMT_NO_TFS
);
2081 proto_tree_add_bitmask_text(tree
, tvb
, offs
+ 1, 1,
2082 "CBCP negotiation options: ", "None",
2083 ett_ipmi_trn_XX_cbcp
, cbcp
, ENC_LITTLE_ENDIAN
, BMT_NO_TFS
);
2084 proto_tree_add_item(tree
, hf_ipmi_trn_XX_dst1
, tvb
, offs
+ 2, 1, ENC_LITTLE_ENDIAN
);
2085 proto_tree_add_item(tree
, hf_ipmi_trn_XX_dst2
, tvb
, offs
+ 3, 1, ENC_LITTLE_ENDIAN
);
2086 proto_tree_add_item(tree
, hf_ipmi_trn_XX_dst3
, tvb
, offs
+ 4, 1, ENC_LITTLE_ENDIAN
);
2089 /* Set User Callback Options
2092 rq1a(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2094 static const gint
*byte1
[] = { &hf_ipmi_trn_1a_user
, NULL
};
2095 static const gint
*byte2
[] = { &hf_ipmi_trn_1a_chan
, NULL
};
2097 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
2098 ett_ipmi_trn_1a_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
2099 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
2100 ett_ipmi_trn_1a_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
2101 parse_callback_options(tvb
, 2, tree
);
2104 /* Get User Callback Options
2107 rq1b(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2109 static const gint
*byte1
[] = { &hf_ipmi_trn_1b_user
, NULL
};
2110 static const gint
*byte2
[] = { &hf_ipmi_trn_1b_chan
, NULL
};
2112 proto_tree_add_bitmask_text(tree
, tvb
, 0, 1, NULL
, NULL
,
2113 ett_ipmi_trn_1b_byte1
, byte1
, ENC_LITTLE_ENDIAN
, 0);
2114 proto_tree_add_bitmask_text(tree
, tvb
, 1, 1, NULL
, NULL
,
2115 ett_ipmi_trn_1b_byte2
, byte2
, ENC_LITTLE_ENDIAN
, 0);
2119 rs1b(tvbuff_t
*tvb
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2121 parse_callback_options(tvb
, 0, tree
);
2124 static const value_string cc21
[] = {
2125 { 0x80, "Parameter not supported" },
2126 { 0x81, "Attempt to set the 'set in progress' value (in parameter #0) when not in the 'set complete' state" },
2127 { 0x82, "Attempt to write read-only parameter" },
2128 { 0x83, "Attempt to read write-only parameter" },
2132 static const value_string cc22
[] = {
2133 { 0x80, "Parameter not supported" },
2137 static const value_string cc33
[] = {
2138 { 0x80, "Target controller unavailable" },
2142 static ipmi_cmd_t cmd_transport
[] = {
2143 /* LAN Device Commands */
2144 { 0x01, rq01
, NULL
, cc01
, NULL
, "Set LAN Configuration Parameters", 0 },
2145 { 0x02, rq02
, rs02
, cc02
, NULL
, "Get LAN Configuration Parameters", CMD_CALLRQ
},
2146 { 0x03, rq03
, rs03
, NULL
, NULL
, "Suspend BMC ARPs", 0 },
2147 { 0x04, rq04
, rs04
, NULL
, NULL
, "Get IP/UDP/RMCP Statistics", 0 },
2149 /* Serial/Modem Device Commands */
2150 { 0x10, rq10
, NULL
, cc10
, NULL
, "Set Serial/Modem Configuration", 0 },
2151 { 0x11, rq11
, rs11
, cc11
, NULL
, "Get Serial/Modem Configuration", CMD_CALLRQ
},
2152 { 0x12, rq12
, rs12
, NULL
, NULL
, "Set Serial/Modem Mux", 0 },
2153 { 0x13, rq13
, rs13
, NULL
, NULL
, "Get TAP Response Codes", 0 },
2154 { 0x14, rq14
, NULL
, NULL
, NULL
, "Set PPP UDP Proxy Transmit Data", 0 },
2155 { 0x15, rq15
, rs15
, NULL
, NULL
, "Get PPP UDP Proxy Transmit Data", 0 },
2156 { 0x16, rq16
, NULL
, cc16
, NULL
, "Send PPP UDP Proxy Packet", 0 },
2157 { 0x17, rq17
, rs17
, cc17
, NULL
, "Get PPP UDP Proxy Receive Data", CMD_CALLRQ
},
2158 { 0x18, rq18
, NULL
, NULL
, NULL
, "Serial/Modem Connection Active", 0 },
2159 { 0x19, rq19
, NULL
, cc19
, NULL
, "Callback", 0 },
2160 { 0x1a, rq1a
, NULL
, NULL
, NULL
, "Set User Callback Options", 0 },
2161 { 0x1b, rq1b
, rs1b
, NULL
, NULL
, "Get User Callback Options", 0 },
2162 { 0x1c, IPMI_TBD
, NULL
, NULL
, "Set Serial Routing Mux", 0 },
2164 /* Serial-Over-LAN Commands */
2165 { 0x20, IPMI_TBD
, NULL
, NULL
, "SOL Activating", 0 },
2166 { 0x21, IPMI_TBD
, cc21
, NULL
, "Set SOL Configuration Parameters", 0 },
2167 { 0x22, IPMI_TBD
, cc22
, NULL
, "Get SOL Configuration Parameters", CMD_CALLRQ
},
2169 /* Command Forwarding Commands */
2170 { 0x30, IPMI_TBD
, NULL
, NULL
, "Forwarded Command", 0 },
2171 { 0x31, IPMI_TBD
, NULL
, NULL
, "Set Forwarded Commands", 0 },
2172 { 0x32, IPMI_TBD
, NULL
, NULL
, "Get Forwarded Commands", 0 },
2173 { 0x33, IPMI_TBD
, cc33
, NULL
, "Enable Forwarded Commands", 0 },
2177 ipmi_register_transport(gint proto_ipmi
)
2179 static hf_register_info hf
[] = {
2180 { &hf_ipmi_trn_lan00_sip
,
2181 { "Set In Progress",
2182 "ipmi.lan00.sip", FT_UINT8
, BASE_HEX
, lan00_sip_vals
, 0x03, NULL
, HFILL
}},
2184 { &hf_ipmi_trn_lanXX_oem
,
2185 { "OEM Proprietary",
2186 "ipmi.lanXX.oem", FT_BOOLEAN
, 8, NULL
, 0x20, NULL
, HFILL
}},
2187 { &hf_ipmi_trn_lanXX_passwd
,
2188 { "Straight password/key",
2189 "ipmi.lanXX.passwd", FT_BOOLEAN
, 8, NULL
, 0x10, NULL
, HFILL
}},
2190 { &hf_ipmi_trn_lanXX_md5
,
2192 "ipmi.lanXX.md5", FT_BOOLEAN
, 8, NULL
, 0x04, NULL
, HFILL
}},
2193 { &hf_ipmi_trn_lanXX_md2
,
2195 "ipmi.lanXX.md2", FT_BOOLEAN
, 8, NULL
, 0x02, NULL
, HFILL
}},
2196 { &hf_ipmi_trn_lanXX_none
,
2198 "ipmi.lanXX.none", FT_BOOLEAN
, 8, NULL
, 0x01, NULL
, HFILL
}},
2200 { &hf_ipmi_trn_lan03_ip
,
2202 "ipmi.lan03.ip", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2204 { &hf_ipmi_trn_lan04_ipsrc
,
2205 { "IP Address Source",
2206 "ipmi.lan04.ipsrc", FT_UINT8
, BASE_HEX
, lan04_ipsrc_vals
, 0x0f, NULL
, HFILL
}},
2208 { &hf_ipmi_trn_lan05_ether
,
2210 "ipmi.lan05.mac", FT_ETHER
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2212 { &hf_ipmi_trn_lan06_subnet
,
2214 "ipmi.lan06.subnet", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2216 { &hf_ipmi_trn_lan07_ttl
,
2218 "ipmi.lan07.ttl", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2219 { &hf_ipmi_trn_lan07_flags
,
2221 "ipmi.lan07.flags", FT_UINT8
, BASE_HEX
, NULL
, 0xe0, NULL
, HFILL
}},
2222 { &hf_ipmi_trn_lan07_precedence
,
2224 "ipmi.lan07.precedence", FT_UINT8
, BASE_DEC
, NULL
, 0xe0, NULL
, HFILL
}},
2225 { &hf_ipmi_trn_lan07_tos
,
2226 { "Type of service",
2227 "ipmi.lan07.tos", FT_UINT8
, BASE_HEX
, NULL
, 0x1e, NULL
, HFILL
}},
2229 { &hf_ipmi_trn_lan08_rmcp_port
,
2230 { "Primary RMCP Port Number",
2231 "ipmi.lan08.rmcp_port", FT_UINT16
, BASE_CUSTOM
, ipmi_fmt_udpport
, 0, NULL
, HFILL
}},
2233 { &hf_ipmi_trn_lan09_rmcp_port
,
2234 { "Secondary RMCP Port Number",
2235 "ipmi.lan09.rmcp_port", FT_UINT16
, BASE_CUSTOM
, ipmi_fmt_udpport
, 0, NULL
, HFILL
}},
2237 { &hf_ipmi_trn_lan10_responses
,
2239 "ipmi.lan10.responses", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
2240 { &hf_ipmi_trn_lan10_gratuitous
,
2241 { "Gratuitous ARPs",
2242 "ipmi.lan10.gratuitous", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
2244 { &hf_ipmi_trn_lan11_arp_interval
,
2245 { "Gratuitous ARP interval",
2246 "ipmi.lan10.arp_interval", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_500ms_0based
, 0, NULL
, HFILL
}},
2248 { &hf_ipmi_trn_lan12_def_gw_ip
,
2249 { "Default Gateway Address",
2250 "ipmi.lan12.def_gw_ip", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2252 { &hf_ipmi_trn_lan13_def_gw_mac
,
2253 { "Default Gateway MAC Address",
2254 "ipmi.lan13.def_gw_mac", FT_ETHER
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2256 { &hf_ipmi_trn_lan14_bkp_gw_ip
,
2257 { "Backup Gateway Address",
2258 "ipmi.lan14.bkp_gw_ip", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2260 { &hf_ipmi_trn_lan15_bkp_gw_mac
,
2261 { "Backup Gateway MAC Address",
2262 "ipmi.lan15.bkp_gw_mac", FT_ETHER
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2264 { &hf_ipmi_trn_lan16_comm_string
,
2265 { "Community String",
2266 "ipmi.lan16.comm_string", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2268 { &hf_ipmi_trn_lan17_num_dst
,
2269 { "Number of Destinations",
2270 "ipmi.lan17.num_dst", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2272 { &hf_ipmi_trn_lan18_dst_selector
,
2273 { "Destination Selector",
2274 "ipmi.lan18.dst_selector", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2275 { &hf_ipmi_trn_lan18_ack
,
2276 { "Alert Acknowledged",
2277 "ipmi.lan18.ack", FT_BOOLEAN
, 8, TFS(&lan18_ack_tfs
), 0x80, NULL
, HFILL
}},
2278 { &hf_ipmi_trn_lan18_dst_type
,
2279 { "Destination Type",
2280 "ipmi.lan18.dst_type", FT_UINT8
, BASE_HEX
, lan18_dst_type_vals
, 0x07, NULL
, HFILL
}},
2281 { &hf_ipmi_trn_lan18_tout
,
2282 { "Timeout/Retry Interval",
2283 "ipmi.lan18.tout", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_1s_0based
, 0, NULL
, HFILL
}},
2284 { &hf_ipmi_trn_lan18_retries
,
2286 "ipmi.lan18.retries", FT_UINT8
, BASE_DEC
, NULL
, 0x07, NULL
, HFILL
}},
2288 { &hf_ipmi_trn_lan19_dst_selector
,
2289 { "Destination Selector",
2290 "ipmi.lan19.dst_selector", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2291 { &hf_ipmi_trn_lan19_addr_format
,
2293 "ipmi.lan19.addr_format", FT_UINT8
, BASE_HEX
, lan19_af_vals
, 0xf0, NULL
, HFILL
}},
2294 { &hf_ipmi_trn_lan19_address
,
2295 { "Address (format unknown)",
2296 "ipmi.lan19.address", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2297 { &hf_ipmi_trn_lan19_gw_sel
,
2298 { "Gateway selector",
2299 "ipmi.lan19.gw_sel", FT_BOOLEAN
, 8, TFS(&lan19_gw_sel_tfs
), 0x01, NULL
, HFILL
}},
2300 { &hf_ipmi_trn_lan19_ip
,
2301 { "Alerting IP Address",
2302 "ipmi.lan19.ip", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2303 { &hf_ipmi_trn_lan19_mac
,
2304 { "Alerting MAC Address",
2305 "ipmi.lan19.mac", FT_ETHER
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2307 { &hf_ipmi_trn_lan20_vlan_id_enable
,
2309 "ipmi.lan20.vlan_id_enable", FT_BOOLEAN
, 16, TFS(&lan20_enable_tfs
), 0x8000, NULL
, HFILL
}},
2310 { &hf_ipmi_trn_lan20_vlan_id
,
2312 "ipmi.lan20.vlan_id", FT_UINT16
, BASE_HEX
, NULL
, 0x0fff, NULL
, HFILL
}},
2314 { &hf_ipmi_trn_lan21_vlan_prio
,
2316 "ipmi.lan21.vlan_prio", FT_UINT8
, BASE_DEC
, NULL
, 0x07, NULL
, HFILL
}},
2318 { &hf_ipmi_trn_lan22_num_cs_entries
,
2319 { "Number of Cipher Suite Entries",
2320 "ipmi.lan22.num_cs_entries", FT_UINT8
, BASE_DEC
, NULL
, 0x1f, NULL
, HFILL
}},
2322 { &hf_ipmi_trn_lan23_cs_entry
,
2323 { "Cipher Suite ID",
2324 "ipmi.lan23.cs_entry", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2326 { &hf_ipmi_trn_lan24_priv
,
2327 { "Maximum Privilege Level",
2328 "ipmi.lan24.priv", FT_UINT8
, BASE_HEX
, NULL
, 0, NULL
, HFILL
}},
2330 { &hf_ipmi_trn_lan25_dst_selector
,
2331 { "Destination Selector",
2332 "ipmi.lan25.dst_selector", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2333 { &hf_ipmi_trn_lan25_addr_format
,
2335 "ipmi.lan25.addr_format", FT_UINT8
, BASE_HEX
, lan25_af_vals
, 0xf0, NULL
, HFILL
}},
2336 { &hf_ipmi_trn_lan25_address
,
2337 { "Address (format unknown)",
2338 "ipmi.lan25.address", FT_UINT8
, BASE_HEX
, NULL
, 0, NULL
, HFILL
}},
2339 { &hf_ipmi_trn_lan25_uprio
,
2341 "ipmi.lan25.uprio", FT_UINT16
, BASE_DEC
, NULL
, 0xe000, NULL
, HFILL
}},
2342 { &hf_ipmi_trn_lan25_cfi
,
2344 "ipmi.lan25.cfi", FT_BOOLEAN
, 16, NULL
, 0x1000, NULL
, HFILL
}},
2345 { &hf_ipmi_trn_lan25_vlan_id
,
2347 "ipmi.lan25.vlan_id", FT_UINT16
, BASE_HEX
, NULL
, 0x0fff, NULL
, HFILL
}},
2349 { &hf_ipmi_trn_serial03_connmode
,
2350 { "Connection Mode",
2351 "ipmi.serial03.connmode", FT_BOOLEAN
, 8, TFS(&serial03_connmode_tfs
), 0x80, NULL
, HFILL
}},
2352 { &hf_ipmi_trn_serial03_terminal
,
2354 "ipmi.serial03.terminal", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x04, NULL
, HFILL
}},
2355 { &hf_ipmi_trn_serial03_ppp
,
2357 "ipmi.serial03.ppp", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
2358 { &hf_ipmi_trn_serial03_basic
,
2360 "ipmi.serial03.basic", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
2361 { &hf_ipmi_trn_serial04_timeout
,
2362 { "Session Inactivity Timeout",
2363 "ipmi.serial04.timeout", FT_UINT8
, BASE_CUSTOM
, serial04_timeout_fmt
, 0x0f, NULL
, HFILL
}},
2364 { &hf_ipmi_trn_serial05_cbcp_callback
,
2366 "ipmi.serial05.cbcp", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
2367 { &hf_ipmi_trn_serial05_ipmi_callback
,
2369 "ipmi.serial05.ipmi", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
2370 { &hf_ipmi_trn_serial05_cb_list
,
2371 { "Callback to list of possible numbers",
2372 "ipmi.serial05.cb_list", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x08, NULL
, HFILL
}},
2373 { &hf_ipmi_trn_serial05_cb_user
,
2374 { "Callback to user-specifiable number",
2375 "ipmi.serial05.cb_user", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x04, NULL
, HFILL
}},
2376 { &hf_ipmi_trn_serial05_cb_prespec
,
2377 { "Callback to pre-specified number",
2378 "ipmi.serial05.cb_prespec", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
2379 { &hf_ipmi_trn_serial05_no_cb
,
2381 "ipmi.serial05.no_cb", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
2382 { &hf_ipmi_trn_serial05_cb_dest1
,
2383 { "Callback destination 1",
2384 "ipmi.serial05.cb_dest1", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2385 { &hf_ipmi_trn_serial05_cb_dest2
,
2386 { "Callback destination 2",
2387 "ipmi.serial05.cb_dest2", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2388 { &hf_ipmi_trn_serial05_cb_dest3
,
2389 { "Callback destination 3",
2390 "ipmi.serial05.cb_dest3", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2391 { &hf_ipmi_trn_serial06_inactivity
,
2392 { "Session Inactivity Timeout",
2393 "ipmi.serial06.inactivity", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
2394 { &hf_ipmi_trn_serial06_dcd
,
2395 { "Close on DCD Loss",
2396 "ipmi.serial06.dcd", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
2397 { &hf_ipmi_trn_serial07_flowctl
,
2399 "ipmi.serial07.flowctl", FT_UINT8
, BASE_HEX
, serialXX_flowctl_vals
, 0xc0, NULL
, HFILL
}},
2400 { &hf_ipmi_trn_serial07_dtrhangup
,
2402 "ipmi.serial07.dtrhangup", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x20, NULL
, HFILL
}},
2403 { &hf_ipmi_trn_serial07_bitrate
,
2405 "ipmi.serial07.bitrate", FT_UINT8
, BASE_HEX
, serialXX_bitrate_vals
, 0x0f, NULL
, HFILL
}},
2406 { &hf_ipmi_trn_serial08_esc_powerup
,
2407 { "Power-up/wakeup via ESC-^",
2408 "ipmi.serial08.esc_powerup", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x40, NULL
, HFILL
}},
2409 { &hf_ipmi_trn_serial08_esc_reset
,
2410 { "Hard reset via ESC-R-ESC-r-ESC-R",
2411 "ipmi.serial08.esc_reset", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x20, NULL
, HFILL
}},
2412 { &hf_ipmi_trn_serial08_switch_authcap
,
2413 { "Baseboard-to-BMC switch on Get Channel Auth Capabilities",
2414 "ipmi.serial08.switch_authcap", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x10, NULL
, HFILL
}},
2415 { &hf_ipmi_trn_serial08_switch_rmcp
,
2416 { "Switch to BMC on IPMI-RMCP pattern",
2417 "ipmi.serial08.switch_rmcp", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x08, NULL
, HFILL
}},
2418 { &hf_ipmi_trn_serial08_esc_switch1
,
2419 { "BMC-to-Baseboard switch via ESC-Q",
2420 "ipmi.serial08.esc_switch1", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x04, NULL
, HFILL
}},
2421 { &hf_ipmi_trn_serial08_esc_switch2
,
2422 { "Baseboard-to-BMC switch via ESC-(",
2423 "ipmi.serial08.esc_switch2", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
2424 { &hf_ipmi_trn_serial08_switch_dcdloss
,
2425 { "Switch to BMC on DCD loss",
2426 "ipmi.serial08.switch_dcdloss", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
2427 { &hf_ipmi_trn_serial08_sharing
,
2428 { "Serial Port Sharing",
2429 "ipmi.serial08.sharing", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x08, NULL
, HFILL
}},
2430 { &hf_ipmi_trn_serial08_ping_callback
,
2431 { "Serial/Modem Connection Active during callback",
2432 "ipmi.serial08.ping_callback", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x04, NULL
, HFILL
}},
2433 { &hf_ipmi_trn_serial08_ping_direct
,
2434 { "Serial/Modem Connection Active during direct call",
2435 "ipmi.serial08.ping_direct", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
2436 { &hf_ipmi_trn_serial08_ping_retry
,
2437 { "Retry Serial/Modem Connection Active",
2438 "ipmi.serial08.ping_retry", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
2439 { &hf_ipmi_trn_serial09_ring_duration
,
2441 "ipmi.serial09.ring_duration", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_500ms_1based
, 0x3f, NULL
, HFILL
}},
2442 { &hf_ipmi_trn_serial09_ring_dead
,
2444 "ipmi.serial09.ring_dead", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_500ms_0based
, 0x0f, NULL
, HFILL
}},
2445 { &hf_ipmi_trn_serial10_set_sel
,
2446 { "Set selector (16-byte block #)",
2447 "ipmi.serial10.set_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2448 { &hf_ipmi_trn_serial10_init_str
,
2449 { "Modem Init String",
2450 "ipmi.serial10.init_str", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2451 { &hf_ipmi_trn_serial11_esc_seq
,
2452 { "Modem Escape Sequence",
2453 "ipmi.serial11.esc_seq", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2454 { &hf_ipmi_trn_serial12_hangup_seq
,
2455 { "Modem Hang-up Sequence",
2456 "ipmi.serial12.hangup_seq", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2457 { &hf_ipmi_trn_serial13_dial_cmd
,
2458 { "Modem Dial Command",
2459 "ipmi.serial13.dial_cmd", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2460 { &hf_ipmi_trn_serial14_page_blackout
,
2461 { "Page Blackout Interval (minutes)",
2462 "ipmi.serial14.page_blackout", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2463 { &hf_ipmi_trn_serial15_comm_string
,
2464 { "Community String",
2465 "ipmi.serial15.comm_string", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2466 { &hf_ipmi_trn_serial16_ndest
,
2467 { "Number of non-volatile Alert Destinations",
2468 "ipmi.serial16.ndest", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2469 { &hf_ipmi_trn_serial17_dest_sel
,
2470 { "Destination Selector",
2471 "ipmi.serial17.dest_sel", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2472 { &hf_ipmi_trn_serial17_ack
,
2473 { "Alert Acknowledge",
2474 "ipmi.serial17.ack", FT_BOOLEAN
, 8, NULL
, 0x80, NULL
, HFILL
}},
2475 { &hf_ipmi_trn_serial17_dest_type
,
2476 { "Destination Type",
2477 "ipmi.serial17.dest_type", FT_UINT8
, BASE_HEX
, serial17_dest_type_vals
, 0x0f, NULL
, HFILL
}},
2479 { &hf_ipmi_trn_serial17_ack_timeout
,
2480 { "Alert Acknowledge Timeout",
2481 "ipmi.serial17.ack_timeout", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2483 { &hf_ipmi_trn_serial17_alert_retries
,
2485 "ipmi.serial17.alert_retries", FT_UINT8
, BASE_DEC
, NULL
, 0x70, NULL
, HFILL
}},
2486 { &hf_ipmi_trn_serial17_call_retries
,
2488 "ipmi.serial17.call_retries", FT_UINT8
, BASE_DEC
, NULL
, 0x07, NULL
, HFILL
}},
2489 { &hf_ipmi_trn_serial17_alert_ack_timeout
,
2490 { "Alert Acknowledge Timeout",
2491 "ipmi.serial17.alert_ack_timeout", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_1s_0based
, 0, NULL
, HFILL
}},
2492 { &hf_ipmi_trn_serial17_dialstr_sel
,
2493 { "Dial String Selector",
2494 "ipmi.serial17.dialstr_sel", FT_UINT8
, BASE_DEC
, NULL
, 0xf0, NULL
, HFILL
}},
2495 { &hf_ipmi_trn_serial17_tap_sel
,
2496 { "TAP Account Selector",
2497 "ipmi.serial17.tap_sel", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2498 { &hf_ipmi_trn_serial17_ipaddr_sel
,
2499 { "Destination IP Address Selector",
2500 "ipmi.serial17.ipaddr_sel", FT_UINT8
, BASE_DEC
, NULL
, 0xf0, NULL
, HFILL
}},
2501 { &hf_ipmi_trn_serial17_ppp_sel
,
2502 { "PPP Account Set Selector",
2503 "ipmi.serial17.ppp_sel", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2504 { &hf_ipmi_trn_serial17_unknown
,
2505 { "Destination-specific (format unknown)",
2506 "ipmi.serial17.unknown", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2507 { &hf_ipmi_trn_serial18_call_retry
,
2508 { "Call Retry Interval",
2509 "ipmi.serial18.call_retry", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2510 { &hf_ipmi_trn_serial19_destsel
,
2511 { "Destination selector",
2512 "ipmi.serial19.destsel", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2513 { &hf_ipmi_trn_serial19_flowctl
,
2515 "ipmi.serial19.flowctl", FT_UINT8
, BASE_HEX
, serialXX_flowctl_vals
, 0xc0, NULL
, HFILL
}},
2516 { &hf_ipmi_trn_serial19_dtrhangup
,
2518 "ipmi.serial19.dtrhangup", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x20, NULL
, HFILL
}},
2519 { &hf_ipmi_trn_serial19_stopbits
,
2521 "ipmi.serial19.stopbits", FT_BOOLEAN
, 8, TFS(&serial19_stopbits_tfs
), 0x10, NULL
, HFILL
}},
2522 { &hf_ipmi_trn_serial19_charsize
,
2524 "ipmi.serial19.charsize", FT_BOOLEAN
, 8, TFS(&serial19_charsize_tfs
), 0x08, NULL
, HFILL
}},
2525 { &hf_ipmi_trn_serial19_parity
,
2527 "ipmi.serial19.parity", FT_UINT8
, BASE_HEX
, serial19_parity_vals
, 0x07, NULL
, HFILL
}},
2528 { &hf_ipmi_trn_serial19_bitrate
,
2530 "ipmi.serial19.bitrate", FT_UINT8
, BASE_HEX
, serialXX_bitrate_vals
, 0x0f, NULL
, HFILL
}},
2531 { &hf_ipmi_trn_serial20_num_dial_strings
,
2532 { "Number of Dial Strings",
2533 "ipmi.serial20.num_dial_strings", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2534 { &hf_ipmi_trn_serial21_dialsel
,
2535 { "Dial String Selector",
2536 "ipmi.serial21.dialsel", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2537 { &hf_ipmi_trn_serial21_blockno
,
2539 "ipmi.serial21.blockno", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2540 { &hf_ipmi_trn_serial21_dialstr
,
2542 "ipmi.serial21.dialstr", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2543 { &hf_ipmi_trn_serial22_num_ipaddrs
,
2544 { "Number of Alert Destination IP Addresses",
2545 "ipmi.serial22.num_ipaddrs", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2546 { &hf_ipmi_trn_serial23_destsel
,
2547 { "Destination IP Address selector",
2548 "ipmi.serial23.destsel", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2549 { &hf_ipmi_trn_serial23_ipaddr
,
2550 { "Destination IP Address",
2551 "ipmi.serial23.ipaddr", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2552 { &hf_ipmi_trn_serial24_num_tap_accounts
,
2553 { "Number of TAP Accounts",
2554 "ipmi.serial24.num_tap_accounts", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2555 { &hf_ipmi_trn_serial25_tap_acct
,
2556 { "TAP Account Selector",
2557 "ipmi.serial25.tap_acct", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2558 { &hf_ipmi_trn_serial25_dialstr_sel
,
2559 { "Dial String Selector",
2560 "ipmi.serial25.dialstr_sel", FT_UINT8
, BASE_DEC
, NULL
, 0xf0, NULL
, HFILL
}},
2561 { &hf_ipmi_trn_serial25_tapsrv_sel
,
2562 { "TAP Service Settings Selector",
2563 "ipmi.serial25.tapsrv_sel", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2564 { &hf_ipmi_trn_serial26_tap_acct
,
2565 { "TAP Account Selector",
2566 "ipmi.serial26.tap_acct", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2567 { &hf_ipmi_trn_serial26_tap_passwd
,
2569 "ipmi.serial26.tap_passwd", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2570 { &hf_ipmi_trn_serial27_tap_acct
,
2571 { "TAP Account Selector",
2572 "ipmi.serial27.tap_acct", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2573 { &hf_ipmi_trn_serial27_tap_pager_id
,
2574 { "TAP Pager ID String",
2575 "ipmi.serial27.tap_pager_id", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2576 { &hf_ipmi_trn_serial28_tapsrv_sel
,
2577 { "TAP Service Settings Selector",
2578 "ipmi.serial28.tapsrv_sel", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2579 { &hf_ipmi_trn_serial28_confirm
,
2580 { "TAP Confirmation",
2581 "ipmi.serial28.confirm", FT_UINT8
, BASE_HEX
, serial28_confirm_vals
, 0x03, NULL
, HFILL
}},
2582 { &hf_ipmi_trn_serial28_srvtype
,
2583 { "TAP 'SST' Service Type",
2584 "ipmi.serial28.srvtype", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2585 { &hf_ipmi_trn_serial28_ctrl_esc
,
2586 { "TAP Control-character escaping mask",
2587 "ipmi.serial28.ctrl_esc", FT_UINT32
, BASE_HEX
, NULL
, 0, NULL
, HFILL
}},
2588 { &hf_ipmi_trn_serial28_t2
,
2590 "ipmi.serial28.tap_t2", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_500ms_0based
, 0xf0, NULL
, HFILL
}},
2591 { &hf_ipmi_trn_serial28_t1
,
2593 "ipmi.serial28.tap_t1", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_1s_0based
, 0x0f, NULL
, HFILL
}},
2594 { &hf_ipmi_trn_serial28_t4
,
2596 "ipmi.serial28.tap_t4", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_1s_0based
, 0xf0, NULL
, HFILL
}},
2597 { &hf_ipmi_trn_serial28_t3
,
2599 "ipmi.serial28.tap_t3", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_2s_0based
, 0x0f, NULL
, HFILL
}},
2600 { &hf_ipmi_trn_serial28_t6
,
2602 "ipmi.serial28.ipmi_t6", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_1s_0based
, 0xf0, NULL
, HFILL
}},
2603 { &hf_ipmi_trn_serial28_t5
,
2605 "ipmi.serial28.tap_t5", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_2s_0based
, 0x0f, NULL
, HFILL
}},
2606 { &hf_ipmi_trn_serial28_n2
,
2608 "ipmi.serial28.tap_n2", FT_UINT8
, BASE_DEC
, NULL
, 0xf0, NULL
, HFILL
}},
2609 { &hf_ipmi_trn_serial28_n1
,
2611 "ipmi.serial28.tap_n1", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2612 { &hf_ipmi_trn_serial28_n4
,
2614 "ipmi.serial28.ipmi_n4", FT_UINT8
, BASE_DEC
, NULL
, 0xf0, NULL
, HFILL
}},
2615 { &hf_ipmi_trn_serial28_n3
,
2617 "ipmi.serial28.tap_n3", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2618 { &hf_ipmi_trn_serial29_op
,
2619 { "Parameter Operation",
2620 "ipmi.serial29.op", FT_UINT8
, BASE_HEX
, serial29_op_vals
, 0xc0, NULL
, HFILL
}},
2621 { &hf_ipmi_trn_serial29_lineedit
,
2623 "ipmi.serial29.lineedit", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x20, NULL
, HFILL
}},
2624 { &hf_ipmi_trn_serial29_deletectl
,
2626 "ipmi.serial29.deletectl", FT_UINT8
, BASE_HEX
, serial29_delete_vals
, 0x0c, NULL
, HFILL
}},
2627 { &hf_ipmi_trn_serial29_echo
,
2629 "ipmi.serial29.echo", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
2630 { &hf_ipmi_trn_serial29_handshake
,
2632 "ipmi.serial29.handshake", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
2633 { &hf_ipmi_trn_serial29_o_newline
,
2634 { "Output newline sequence",
2635 "ipmi.serial29.o_newline", FT_UINT8
, BASE_HEX
, serial29_o_nl_vals
, 0xf0, NULL
, HFILL
}},
2636 { &hf_ipmi_trn_serial29_i_newline
,
2637 { "Input newline sequence",
2638 "ipmi.serial29.i_newline", FT_UINT8
, BASE_HEX
, serial29_i_nl_vals
, 0x0f, NULL
, HFILL
}},
2639 { &hf_ipmi_trn_serial30_snooping
,
2640 { "System Negotiation Snooping",
2641 "ipmi.serial30.snooping", FT_BOOLEAN
, 8, NULL
, 0x04, NULL
, HFILL
}},
2642 { &hf_ipmi_trn_serial30_snoopctl
,
2643 { "Snoop ACCM Control",
2644 "ipmi.serial30.snoopctl", FT_UINT8
, BASE_HEX
, serial30_snoopctl_vals
, 0x03, NULL
, HFILL
}},
2645 { &hf_ipmi_trn_serial30_negot_ctl
,
2646 { "BMC negotiates link parameters",
2647 "ipmi.serial30.negot_ctl", FT_UINT8
, BASE_HEX
, serial30_negoctl_vals
, 0x30, NULL
, HFILL
}},
2648 { &hf_ipmi_trn_serial30_use_xmit_accm
,
2649 { "Filtering incoming chars",
2650 "ipmi.serial30.filter", FT_BOOLEAN
, 8, TFS(&serial30_filter_tfs
), 0x04, NULL
, HFILL
}},
2651 { &hf_ipmi_trn_serial30_xmit_addr_comp
,
2652 { "Transmit with Address and Ctl Field Compression",
2653 "ipmi.serial30.xmit_addr_comp", FT_BOOLEAN
, 8, NULL
, 0x02, NULL
, HFILL
}},
2654 { &hf_ipmi_trn_serial30_xmit_proto_comp
,
2655 { "Transmit with Protocol Field Compression",
2656 "ipmi.serial30.xmit_proto_comp", FT_BOOLEAN
, 8, NULL
, 0x01, NULL
, HFILL
}},
2657 { &hf_ipmi_trn_serial30_ipaddr
,
2658 { "IP Address negotiation",
2659 "ipmi.serial30.ipaddr", FT_UINT8
, BASE_HEX
, serial30_ipaddr_val
, 0x18, NULL
, HFILL
}},
2660 { &hf_ipmi_trn_serial30_accm
,
2661 { "ACCM Negotiation",
2662 "ipmi.serial30.accm", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x04, NULL
, HFILL
}},
2663 { &hf_ipmi_trn_serial30_addr_comp
,
2664 { "Address and Ctl Field Compression",
2665 "ipmi.serial30.addr_comp", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
2666 { &hf_ipmi_trn_serial30_proto_comp
,
2667 { "Protocol Field Compression",
2668 "ipmi.serial30.proto_comp", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
2669 { &hf_ipmi_trn_serial31_port
,
2670 { "Primary RMCP Port Number",
2671 "ipmi.serial31.port", FT_UINT16
, BASE_CUSTOM
, ipmi_fmt_udpport
, 0, NULL
, HFILL
}},
2672 { &hf_ipmi_trn_serial32_port
,
2673 { "Secondary RMCP Port Number",
2674 "ipmi.serial32.port", FT_UINT16
, BASE_CUSTOM
, ipmi_fmt_udpport
, 0, NULL
, HFILL
}},
2675 { &hf_ipmi_trn_serial33_auth_proto
,
2676 { "PPP Link Authentication Protocol",
2677 "ipmi.serial33.auth_proto", FT_UINT8
, BASE_HEX
, serialXX_proto_vals
, 0x0f, NULL
, HFILL
}},
2678 { &hf_ipmi_trn_serial34_chap_name
,
2680 "ipmi.serial34.chap_name", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2681 { &hf_ipmi_trn_serial35_recv_accm
,
2683 "ipmi.serial35.recv_accm", FT_UINT32
, BASE_HEX
, NULL
, 0, NULL
, HFILL
}},
2684 { &hf_ipmi_trn_serial35_xmit_accm
,
2686 "ipmi.serial35.xmit_accm", FT_UINT32
, BASE_HEX
, NULL
, 0, NULL
, HFILL
}},
2687 { &hf_ipmi_trn_serial36_snoop_accm
,
2688 { "Snoop Receive ACCM",
2689 "ipmi.serial36.snoop_accm", FT_UINT32
, BASE_HEX
, NULL
, 0, NULL
, HFILL
}},
2690 { &hf_ipmi_trn_serial37_num_ppp
,
2691 { "Number of PPP Accounts",
2692 "ipmi.serial37.num_ppp", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2693 { &hf_ipmi_trn_serial38_acct_sel
,
2694 { "PPP Account Selector",
2695 "ipmi.serial38.acct_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2696 { &hf_ipmi_trn_serial38_dialstr_sel
,
2697 { "Dial String Selector",
2698 "ipmi.serial38.dialstr_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2699 { &hf_ipmi_trn_serial39_acct_sel
,
2700 { "PPP Account Selector",
2701 "ipmi.serial39.acct_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2702 { &hf_ipmi_trn_serial39_ipaddr
,
2704 "ipmi.serial39.ipaddr", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2705 { &hf_ipmi_trn_serial40_acct_sel
,
2706 { "PPP Account Selector",
2707 "ipmi.serial40.acct_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2708 { &hf_ipmi_trn_serial40_username
,
2710 "ipmi.serial40.username", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2711 { &hf_ipmi_trn_serial41_acct_sel
,
2712 { "PPP Account Selector",
2713 "ipmi.serial41.acct_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2714 { &hf_ipmi_trn_serial41_userdomain
,
2716 "ipmi.serial41.userdomain", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2717 { &hf_ipmi_trn_serial42_acct_sel
,
2718 { "PPP Account Selector",
2719 "ipmi.serial42.acct_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2720 { &hf_ipmi_trn_serial42_userpass
,
2722 "ipmi.serial42.userpass", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2723 { &hf_ipmi_trn_serial43_acct_sel
,
2724 { "PPP Account Selector",
2725 "ipmi.serial43.acct_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2726 { &hf_ipmi_trn_serial43_auth_proto
,
2728 "ipmi.serial43.auth_proto", FT_UINT8
, BASE_HEX
, serialXX_proto_vals
, 0x0f, NULL
, HFILL
}},
2729 { &hf_ipmi_trn_serial44_acct_sel
,
2730 { "PPP Account Selector",
2731 "ipmi.serial44.acct_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2732 { &hf_ipmi_trn_serial44_hold_time
,
2733 { "Connection Hold Time",
2734 "ipmi.serial44.hold_time", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_1s_1based
, 0, NULL
, HFILL
}},
2735 { &hf_ipmi_trn_serial45_src_ipaddr
,
2736 { "Source IP Address",
2737 "ipmi.serial45.src_ipaddr", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2738 { &hf_ipmi_trn_serial45_dst_ipaddr
,
2739 { "Destination IP Address",
2740 "ipmi.serial45.dst_ipaddr", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2741 { &hf_ipmi_trn_serial46_tx_bufsize
,
2742 { "Transmit Buffer Size",
2743 "ipmi.serial46.tx_size", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2744 { &hf_ipmi_trn_serial47_rx_bufsize
,
2745 { "Receive Buffer Size",
2746 "ipmi.serial47.rx_size", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2747 { &hf_ipmi_trn_serial48_ipaddr
,
2748 { "Remote Console IP Address",
2749 "ipmi.serial48.ipaddr", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2750 { &hf_ipmi_trn_serial49_blockno
,
2752 "ipmi.serial49.blockno", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2753 { &hf_ipmi_trn_serial49_dialstr
,
2755 "ipmi.serial49.dialstr", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2756 { &hf_ipmi_trn_serial50_115200
,
2758 "ipmi.serial50.115200", FT_BOOLEAN
, 8, NULL
, 0x10, NULL
, HFILL
}},
2759 { &hf_ipmi_trn_serial50_57600
,
2761 "ipmi.serial50.57600", FT_BOOLEAN
, 8, NULL
, 0x08, NULL
, HFILL
}},
2762 { &hf_ipmi_trn_serial50_38400
,
2764 "ipmi.serial50.38400", FT_BOOLEAN
, 8, NULL
, 0x04, NULL
, HFILL
}},
2765 { &hf_ipmi_trn_serial50_19200
,
2767 "ipmi.serial50.19200", FT_BOOLEAN
, 8, NULL
, 0x02, NULL
, HFILL
}},
2768 { &hf_ipmi_trn_serial50_9600
,
2770 "ipmi.serial50.9600", FT_BOOLEAN
, 8, NULL
, 0x01, NULL
, HFILL
}},
2771 { &hf_ipmi_trn_serial51_port_assoc_sel
,
2772 { "Serial Port Association Entry",
2773 "ipmi.serial51.port_assoc_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2774 { &hf_ipmi_trn_serial51_ipmi_channel
,
2776 "ipmi.serial51.ipmi_channel", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_channel
, 0xf0, NULL
, HFILL
}},
2777 { &hf_ipmi_trn_serial51_conn_num
,
2778 { "Connector number",
2779 "ipmi.serial51.conn_num", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2780 { &hf_ipmi_trn_serial51_ipmi_sharing
,
2781 { "Used with IPMI Serial Port Sharing",
2782 "ipmi.serial51.ipmi_sharing", FT_BOOLEAN
, 8, NULL
, 0x80, NULL
, HFILL
}},
2783 { &hf_ipmi_trn_serial51_ipmi_sol
,
2784 { "Used with IPMI Serial-over-LAN",
2785 "ipmi.serial51.ipmi_sol", FT_BOOLEAN
, 8, NULL
, 0x40, NULL
, HFILL
}},
2786 { &hf_ipmi_trn_serial51_chan_num
,
2787 { "Serial controller channel number",
2788 "ipmi.serial51.chan_num", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2789 { &hf_ipmi_trn_serial52_port_assoc_sel
,
2790 { "Serial Port Association Entry",
2791 "ipmi.serial52.port_assoc_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2792 { &hf_ipmi_trn_serial52_conn_name
,
2794 "ipmi.serial52_conn_name", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2795 { &hf_ipmi_trn_serial53_port_assoc_sel
,
2796 { "Serial Port Association Entry",
2797 "ipmi.serial53.port_assoc_sel", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2798 { &hf_ipmi_trn_serial53_chan_name
,
2800 "ipmi.serial52_chan_name", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2802 { &hf_ipmi_trn_01_chan
,
2804 "ipmi.tr01.chan", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_channel
, 0x0f, NULL
, HFILL
}},
2805 { &hf_ipmi_trn_01_param
,
2806 { "Parameter Selector",
2807 "ipmi.tr01.param", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2808 { &hf_ipmi_trn_01_param_data
,
2810 "ipmi.tr01.param_data", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2812 { &hf_ipmi_trn_02_getrev
,
2813 { "Get parameter revision only",
2814 "ipmi.tr02.getrev", FT_BOOLEAN
, 8, NULL
, 0x80, NULL
, HFILL
}},
2815 { &hf_ipmi_trn_02_chan
,
2817 "ipmi.tr02.chan", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_channel
, 0x0f, NULL
, HFILL
}},
2818 { &hf_ipmi_trn_02_param
,
2819 { "Parameter selector",
2820 "ipmi.tr02.param", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2821 { &hf_ipmi_trn_02_set
,
2823 "ipmi.tr02.set", FT_UINT8
, BASE_HEX
, NULL
, 0, NULL
, HFILL
}},
2824 { &hf_ipmi_trn_02_block
,
2826 "ipmi.tr02.block", FT_UINT8
, BASE_HEX
, NULL
, 0, NULL
, HFILL
}},
2827 { &hf_ipmi_trn_02_rev_present
,
2828 { "Present parameter revision",
2829 "ipmi.tr02.rev.present", FT_UINT8
, BASE_DEC
, NULL
, 0xf0, NULL
, HFILL
}},
2830 { &hf_ipmi_trn_02_rev_compat
,
2831 { "Oldest forward-compatible",
2832 "ipmi.tr02.rev.compat", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2833 { &hf_ipmi_trn_02_param_data
,
2835 "ipmi.tr02.param_data", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2837 { &hf_ipmi_trn_03_chan
,
2839 "ipmi.tr03.chan", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_channel
, 0x0f, NULL
, HFILL
}},
2840 { &hf_ipmi_trn_03_arp_resp
,
2841 { "BMC-generated ARP responses",
2842 "ipmi.tr03.arp_resp", FT_BOOLEAN
, 8, TFS(&tfs_03_suspend
), 0x02, NULL
, HFILL
}},
2843 { &hf_ipmi_trn_03_gratuitous_arp
,
2844 { "Gratuitous ARPs",
2845 "ipmi.tr03.gratuitous_arp", FT_BOOLEAN
, 8, TFS(&tfs_03_suspend
), 0x01, NULL
, HFILL
}},
2846 { &hf_ipmi_trn_03_status_arp_resp
,
2847 { "ARP Response status",
2848 "ipmi.tr03.status_arp_resp", FT_BOOLEAN
, 8, TFS(&tfs_03_arp_status
), 0x02, NULL
, HFILL
}},
2849 { &hf_ipmi_trn_03_status_gratuitous_arp
,
2850 { "Gratuitous ARP status",
2851 "ipmi.tr03.status_gratuitous_arp", FT_BOOLEAN
, 8, TFS(&tfs_03_arp_status
), 0x01, NULL
, HFILL
}},
2853 { &hf_ipmi_trn_04_chan
,
2855 "ipmi.tr04.chan", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_channel
, 0x0f, NULL
, HFILL
}},
2856 { &hf_ipmi_trn_04_clear
,
2858 "ipmi.tr04.clear", FT_BOOLEAN
, 8, TFS(&tfs_04_clear
), 0x01, NULL
, HFILL
}},
2859 { &hf_ipmi_trn_04_rx_ippkts
,
2860 { "Received IP Packets",
2861 "ipmi.tr04.rx_ippkts", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2862 { &hf_ipmi_trn_04_rx_iphdr_err
,
2863 { "Received IP Header Errors",
2864 "ipmi.tr04.rx_iphdr_err", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2865 { &hf_ipmi_trn_04_rx_ipaddr_err
,
2866 { "Received IP Address Errors",
2867 "ipmi.tr04.rx_ipaddr_err", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2868 { &hf_ipmi_trn_04_rx_ippkts_frag
,
2869 { "Received Fragmented IP Packets",
2870 "ipmi.tr04.rx_ippkts_frag", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2871 { &hf_ipmi_trn_04_tx_ippkts
,
2872 { "Transmitted IP Packets",
2873 "ipmi.tr04.tx_ippkts", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2874 { &hf_ipmi_trn_04_rx_udppkts
,
2875 { "Received UDP Packets",
2876 "ipmi.tr04.rx_udppkts", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2877 { &hf_ipmi_trn_04_rx_validrmcp
,
2878 { "Received Valid RMCP Packets",
2879 "ipmi.tr04.rx_validrmcp", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2880 { &hf_ipmi_trn_04_rx_udpproxy
,
2881 { "Received UDP Proxy Packets",
2882 "ipmi.tr04.rx_udpproxy", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2883 { &hf_ipmi_trn_04_dr_udpproxy
,
2884 { "Dropped UDP Proxy Packets",
2885 "ipmi.tr04.dr_udpproxy", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2887 { &hf_ipmi_trn_10_chan
,
2889 "ipmi.tr10.chan", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_channel
, 0x0f, NULL
, HFILL
}},
2890 { &hf_ipmi_trn_10_param
,
2891 { "Parameter Selector",
2892 "ipmi.tr10.param", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2893 { &hf_ipmi_trn_10_param_data
,
2895 "ipmi.tr10.param_data", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2897 { &hf_ipmi_trn_11_getrev
,
2898 { "Get parameter revision only",
2899 "ipmi.tr11.getrev", FT_BOOLEAN
, 8, NULL
, 0x80, NULL
, HFILL
}},
2900 { &hf_ipmi_trn_11_chan
,
2902 "ipmi.tr11.chan", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_channel
, 0x0f, NULL
, HFILL
}},
2903 { &hf_ipmi_trn_11_param
,
2904 { "Parameter selector",
2905 "ipmi.tr11.param", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2906 { &hf_ipmi_trn_11_set
,
2908 "ipmi.tr11.set", FT_UINT8
, BASE_HEX
, NULL
, 0, NULL
, HFILL
}},
2909 { &hf_ipmi_trn_11_block
,
2911 "ipmi.tr11.block", FT_UINT8
, BASE_HEX
, NULL
, 0, NULL
, HFILL
}},
2912 { &hf_ipmi_trn_11_rev_present
,
2913 { "Present parameter revision",
2914 "ipmi.tr11.rev.present", FT_UINT8
, BASE_DEC
, NULL
, 0xf0, NULL
, HFILL
}},
2915 { &hf_ipmi_trn_11_rev_compat
,
2916 { "Oldest forward-compatible",
2917 "ipmi.tr11.rev.compat", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2918 { &hf_ipmi_trn_11_param_data
,
2920 "ipmi.tr11.param_data", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2922 { &hf_ipmi_trn_12_chan
,
2924 "ipmi.tr12.chan", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_channel
, 0x0f, NULL
, HFILL
}},
2925 { &hf_ipmi_trn_12_mux_setting
,
2927 "ipmi.tr12.mux_setting", FT_UINT8
, BASE_HEX
, vals_12_mux
, 0x0f, NULL
, HFILL
}},
2928 { &hf_ipmi_trn_12_sw_to_sys
,
2929 { "Requests to switch to system",
2930 "ipmi.tr12.sw_to_sys", FT_BOOLEAN
, 8, TFS(&tfs_12_blocked
), 0x80, NULL
, HFILL
}},
2931 { &hf_ipmi_trn_12_sw_to_bmc
,
2932 { "Requests to switch to BMC",
2933 "ipmi.tr12.sw_to_bmc", FT_BOOLEAN
, 8, TFS(&tfs_12_blocked
), 0x40, NULL
, HFILL
}},
2934 { &hf_ipmi_trn_12_alert
,
2935 { "Alert in progress",
2936 "ipmi.tr12.alert", FT_BOOLEAN
, 8, NULL
, 0x08, NULL
, HFILL
}},
2937 { &hf_ipmi_trn_12_msg
,
2938 { "IPMI/OEM messaging active",
2939 "ipmi.tr12.msg", FT_BOOLEAN
, 8, NULL
, 0x04, NULL
, HFILL
}},
2940 { &hf_ipmi_trn_12_req
,
2942 "ipmi.tr12.req", FT_BOOLEAN
, 8, TFS(&tfs_12_req
), 0x02, NULL
, HFILL
}},
2943 { &hf_ipmi_trn_12_mux_state
,
2945 "ipmi.tr12.mux_state", FT_BOOLEAN
, 8, TFS(&tfs_12_mux_state
), 0x01, NULL
, HFILL
}},
2947 { &hf_ipmi_trn_13_chan
,
2949 "ipmi.tr13.chan", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_channel
, 0x0f, NULL
, HFILL
}},
2950 { &hf_ipmi_trn_13_code1
,
2952 "ipmi.tr13.code1", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2953 { &hf_ipmi_trn_13_code2
,
2955 "ipmi.tr13.code2", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2956 { &hf_ipmi_trn_13_code3
,
2958 "ipmi.tr13.code3", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2959 { &hf_ipmi_trn_13_code4
,
2961 "ipmi.tr13.code4", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2962 { &hf_ipmi_trn_13_code5
,
2964 "ipmi.tr13.code5", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2966 { &hf_ipmi_trn_14_chan
,
2968 "ipmi.tr14.chan", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_channel
, 0x0f, NULL
, HFILL
}},
2969 { &hf_ipmi_trn_14_block
,
2971 "ipmi.tr14.block", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2972 { &hf_ipmi_trn_14_data
,
2974 "ipmi.tr14.data", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2976 { &hf_ipmi_trn_15_chan
,
2978 "ipmi.tr15.chan", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_channel
, 0x0f, NULL
, HFILL
}},
2979 { &hf_ipmi_trn_15_block
,
2981 "ipmi.tr15.block", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
2982 { &hf_ipmi_trn_15_data
,
2984 "ipmi.tr15.data", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2986 { &hf_ipmi_trn_16_chan
,
2988 "ipmi.tr16.chan", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_channel
, 0x0f, NULL
, HFILL
}},
2989 { &hf_ipmi_trn_16_src_port
,
2991 "ipmi.tr16.src_port", FT_UINT16
, BASE_CUSTOM
, ipmi_fmt_udpport
, 0, NULL
, HFILL
}},
2992 { &hf_ipmi_trn_16_dst_port
,
2993 { "Destination Port",
2994 "ipmi.tr16.dst_port", FT_UINT16
, BASE_CUSTOM
, ipmi_fmt_udpport
, 0, NULL
, HFILL
}},
2995 { &hf_ipmi_trn_16_src_addr
,
2996 { "Source IP Address",
2997 "ipmi.tr16.src_addr", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
2998 { &hf_ipmi_trn_16_dst_addr
,
2999 { "Destination IP Address",
3000 "ipmi.tr16.dst_addr", FT_IPv4
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3001 { &hf_ipmi_trn_16_bytes
,
3003 "ipmi.tr16.bytes", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3005 { &hf_ipmi_trn_17_chan
,
3007 "ipmi.tr17.chan", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_channel
, 0x0f, NULL
, HFILL
}},
3008 { &hf_ipmi_trn_17_clear
,
3010 "ipmi.tr17.clear", FT_BOOLEAN
, 8, NULL
, 0x80, NULL
, HFILL
}},
3011 { &hf_ipmi_trn_17_block_num
,
3013 "ipmi.tr17.block_num", FT_UINT8
, BASE_CUSTOM
, tr17_fmt_blockno
, 0x7f, NULL
, HFILL
}},
3014 { &hf_ipmi_trn_17_size
,
3015 { "Number of received bytes",
3016 "ipmi.tr17.size", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3017 { &hf_ipmi_trn_17_data
,
3019 "ipmi.tr17.data", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
3021 { &hf_ipmi_trn_18_state
,
3023 "ipmi.tr18.state", FT_UINT8
, BASE_HEX
, vals_18_state
, 0x0f, NULL
, HFILL
}},
3024 { &hf_ipmi_trn_18_ipmi_ver
,
3026 "ipmi.tr18.ipmi_ver", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_version
, 0, NULL
, HFILL
}},
3028 { &hf_ipmi_trn_19_chan
,
3030 "ipmi.tr19.chan", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_channel
, 0x0f, NULL
, HFILL
}},
3031 { &hf_ipmi_trn_19_dest_sel
,
3032 { "Destination selector",
3033 "ipmi.tr19.dest_sel", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
3035 { &hf_ipmi_trn_XX_cap_cbcp
,
3037 "ipmi.trXX.cap_cbcp", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
3038 { &hf_ipmi_trn_XX_cap_ipmi
,
3040 "ipmi.trXX.cap_ipmi", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
3041 { &hf_ipmi_trn_XX_cbcp_from_list
,
3042 { "Callback to one from list of numbers",
3043 "ipmi.trXX.cbcp_from_list", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x08, NULL
, HFILL
}},
3044 { &hf_ipmi_trn_XX_cbcp_user
,
3045 { "Callback to user-specified number",
3046 "ipmi.trXX.cbcp_user", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x04, NULL
, HFILL
}},
3047 { &hf_ipmi_trn_XX_cbcp_prespec
,
3048 { "Callback to pre-specified number",
3049 "ipmi.trXX.cbcp_prespec", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
}},
3050 { &hf_ipmi_trn_XX_cbcp_nocb
,
3052 "ipmi.trXX.cbcp_nocb", FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
}},
3053 { &hf_ipmi_trn_XX_dst1
,
3054 { "Callback destination 1",
3055 "ipmi.trXX.dst1", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3056 { &hf_ipmi_trn_XX_dst2
,
3057 { "Callback destination 2",
3058 "ipmi.trXX.dst2", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3059 { &hf_ipmi_trn_XX_dst3
,
3060 { "Callback destination 3",
3061 "ipmi.trXX.dst3", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
3063 { &hf_ipmi_trn_1a_user
,
3065 "ipmi.tr1a.user", FT_UINT8
, BASE_DEC
, NULL
, 0x3f, NULL
, HFILL
}},
3066 { &hf_ipmi_trn_1a_chan
,
3068 "ipmi.tr1a.chan", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_channel
, 0x0f, NULL
, HFILL
}},
3070 { &hf_ipmi_trn_1b_user
,
3072 "ipmi.tr1b.user", FT_UINT8
, BASE_DEC
, NULL
, 0x3f, NULL
, HFILL
}},
3073 { &hf_ipmi_trn_1b_chan
,
3075 "ipmi.tr1b.chan", FT_UINT8
, BASE_CUSTOM
, ipmi_fmt_channel
, 0x0f, NULL
, HFILL
}},
3078 static gint
*ett
[] = {
3079 &ett_ipmi_trn_lan00_byte1
,
3080 &ett_ipmi_trn_lan01_byte1
,
3081 &ett_ipmi_trn_lan02_byte1
,
3082 &ett_ipmi_trn_lan02_byte2
,
3083 &ett_ipmi_trn_lan02_byte3
,
3084 &ett_ipmi_trn_lan02_byte4
,
3085 &ett_ipmi_trn_lan02_byte5
,
3086 &ett_ipmi_trn_lan04_byte1
,
3087 &ett_ipmi_trn_lan07_byte2
,
3088 &ett_ipmi_trn_lan07_byte3
,
3089 &ett_ipmi_trn_lan10_byte1
,
3090 &ett_ipmi_trn_lan17_byte1
,
3091 &ett_ipmi_trn_lan18_byte1
,
3092 &ett_ipmi_trn_lan18_byte2
,
3093 &ett_ipmi_trn_lan18_byte4
,
3094 &ett_ipmi_trn_lan19_byte1
,
3095 &ett_ipmi_trn_lan19_byte2
,
3096 &ett_ipmi_trn_lan19_byte3
,
3097 &ett_ipmi_trn_lan20_byte12
,
3098 &ett_ipmi_trn_lan21_byte1
,
3099 &ett_ipmi_trn_lan22_byte1
,
3100 &ett_ipmi_trn_lan24_byte1
,
3101 &ett_ipmi_trn_lan24_byte2
,
3102 &ett_ipmi_trn_lan24_byte3
,
3103 &ett_ipmi_trn_lan24_byte4
,
3104 &ett_ipmi_trn_lan24_byte5
,
3105 &ett_ipmi_trn_lan24_byte6
,
3106 &ett_ipmi_trn_lan24_byte7
,
3107 &ett_ipmi_trn_lan24_byte8
,
3108 &ett_ipmi_trn_lan25_byte1
,
3109 &ett_ipmi_trn_lan25_byte2
,
3110 &ett_ipmi_trn_lan25_byte34
,
3111 &ett_ipmi_trn_serial03_byte1
,
3112 &ett_ipmi_trn_serial04_byte1
,
3113 &ett_ipmi_trn_serial05_byte1
,
3114 &ett_ipmi_trn_serial05_byte2
,
3115 &ett_ipmi_trn_serial06_byte1
,
3116 &ett_ipmi_trn_serial07_byte1
,
3117 &ett_ipmi_trn_serial07_byte2
,
3118 &ett_ipmi_trn_serial08_byte1
,
3119 &ett_ipmi_trn_serial08_byte2
,
3120 &ett_ipmi_trn_serial09_byte1
,
3121 &ett_ipmi_trn_serial09_byte2
,
3122 &ett_ipmi_trn_serial16_byte1
,
3123 &ett_ipmi_trn_serial17_byte1
,
3124 &ett_ipmi_trn_serial17_byte2
,
3125 &ett_ipmi_trn_serial17_byte4
,
3126 &ett_ipmi_trn_serial17_byte5
,
3127 &ett_ipmi_trn_serial19_byte1
,
3128 &ett_ipmi_trn_serial19_byte2
,
3129 &ett_ipmi_trn_serial19_byte3
,
3130 &ett_ipmi_trn_serial20_byte1
,
3131 &ett_ipmi_trn_serial21_byte1
,
3132 &ett_ipmi_trn_serial22_byte1
,
3133 &ett_ipmi_trn_serial23_byte1
,
3134 &ett_ipmi_trn_serial24_byte1
,
3135 &ett_ipmi_trn_serial25_byte2
,
3136 &ett_ipmi_trn_serial28_byte1
,
3137 &ett_ipmi_trn_serial28_byte2
,
3138 &ett_ipmi_trn_serial28_byte10
,
3139 &ett_ipmi_trn_serial28_byte11
,
3140 &ett_ipmi_trn_serial28_byte12
,
3141 &ett_ipmi_trn_serial28_byte13
,
3142 &ett_ipmi_trn_serial28_byte14
,
3143 &ett_ipmi_trn_serial29_byte1
,
3144 &ett_ipmi_trn_serial29_byte2
,
3145 &ett_ipmi_trn_serial30_byte1
,
3146 &ett_ipmi_trn_serial30_byte2
,
3147 &ett_ipmi_trn_serial30_byte3
,
3148 &ett_ipmi_trn_serial33_byte1
,
3149 &ett_ipmi_trn_serial37_byte1
,
3150 &ett_ipmi_trn_serial43_byte1
,
3151 &ett_ipmi_trn_serial50_byte1
,
3152 &ett_ipmi_trn_serial51_byte2
,
3153 &ett_ipmi_trn_serial51_byte3
,
3154 &ett_ipmi_trn_01_byte1
,
3155 &ett_ipmi_trn_02_byte1
,
3156 &ett_ipmi_trn_02_rev
,
3157 &ett_ipmi_trn_03_rq_byte1
,
3158 &ett_ipmi_trn_03_rq_byte2
,
3159 &ett_ipmi_trn_03_rs_byte1
,
3160 &ett_ipmi_trn_04_byte1
,
3161 &ett_ipmi_trn_04_byte2
,
3162 &ett_ipmi_trn_10_byte1
,
3163 &ett_ipmi_trn_11_byte1
,
3164 &ett_ipmi_trn_11_rev
,
3165 &ett_ipmi_trn_12_rq_byte1
,
3166 &ett_ipmi_trn_12_rq_byte2
,
3167 &ett_ipmi_trn_12_rs_byte1
,
3168 &ett_ipmi_trn_13_byte1
,
3169 &ett_ipmi_trn_14_byte1
,
3170 &ett_ipmi_trn_15_byte1
,
3171 &ett_ipmi_trn_16_byte1
,
3172 &ett_ipmi_trn_17_byte1
,
3173 &ett_ipmi_trn_17_byte2
,
3174 &ett_ipmi_trn_18_byte1
,
3175 &ett_ipmi_trn_19_byte1
,
3176 &ett_ipmi_trn_19_byte2
,
3177 &ett_ipmi_trn_XX_usercap
,
3178 &ett_ipmi_trn_XX_cbcp
,
3179 &ett_ipmi_trn_1a_byte1
,
3180 &ett_ipmi_trn_1a_byte2
,
3181 &ett_ipmi_trn_1b_byte1
,
3182 &ett_ipmi_trn_1b_byte2
,
3185 proto_register_field_array(proto_ipmi
, hf
, array_length(hf
));
3186 proto_register_subtree_array(ett
, array_length(ett
));
3187 ipmi_register_netfn_cmdtab(IPMI_TRANSPORT_REQ
, IPMI_OEM_NONE
, NULL
, 0, NULL
,
3188 cmd_transport
, array_length(cmd_transport
));