~ubuntu-branches/ubuntu/utopic/openipmi/utopic-proposed

« back to all changes in this revision

Viewing changes to swig/perl/test_pef

  • Committer: Bazaar Package Importer
  • Author(s): Noèl Köthe
  • Date: 2006-09-15 17:56:24 UTC
  • mfrom: (1.1.2 upstream) (2.1.1 etch)
  • Revision ID: james.westby@ubuntu.com-20060915175624-ljk0mg3xtcm65tvm
Tags: 2.0.7-1
* new upstream release from 2006-06-08
  Thanks to John Wright <john.wright hp.com> for initial work
  (closes: Bug#380149)
* updated Standards Version
* new binaries openipmicmd, openipmish, rmcp_ping

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/perl
 
2
 
 
3
# test_pef
 
4
#
 
5
# Test of the pef code
 
6
#
 
7
# Author: MontaVista Software, Inc.
 
8
#         Corey Minyard <minyard@mvista.com>
 
9
#         source@mvista.com
 
10
#
 
11
# Copyright 2004 MontaVista Software Inc.
 
12
#
 
13
#  This program is free software; you can redistribute it and/or
 
14
#  modify it under the terms of the GNU Lesser General Public License
 
15
#  as published by the Free Software Foundation; either version 2 of
 
16
#  the License, or (at your option) any later version.
 
17
#
 
18
#
 
19
#  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
 
20
#  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 
21
#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 
22
#  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 
23
#  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 
24
#  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
 
25
#  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 
26
#  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
 
27
#  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
 
28
#  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
29
#
 
30
#  You should have received a copy of the GNU Lesser General Public
 
31
#  License along with this program; if not, write to the Free
 
32
#  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
33
#
 
34
 
 
35
use Lanserv;
 
36
use OpenIPMI;
 
37
 
 
38
my $errcountholder : shared = 0;
 
39
$errcount = \$errcountholder;
 
40
 
 
41
my $fru_field_table = {};
 
42
 
 
43
sub reg_err {
 
44
    my $str = shift;
 
45
 
 
46
    $$errcount++;
 
47
    print STDERR "***", $str, "\n";
 
48
}
 
49
 
 
50
sub get_errcount {
 
51
    return $$errcount;
 
52
}
 
53
 
 
54
{
 
55
    package CloseDomain;
 
56
    sub new {
 
57
        my $a = shift;
 
58
        my $b = \$a;
 
59
        $b = bless $b;
 
60
        return $b;
 
61
    }
 
62
 
 
63
    sub domain_cb {
 
64
        my $self = shift;
 
65
        my $domain = shift;
 
66
 
 
67
        $domain->close($$self);
 
68
    }
 
69
 
 
70
    package aaa;
 
71
 
 
72
    sub new {
 
73
        my $self = shift;
 
74
        my $a = {};
 
75
        $a->{handler} = shift;
 
76
        return bless \$a;
 
77
    }
 
78
 
 
79
    package Handlers;
 
80
 
 
81
    sub new {
 
82
        my $a = {};
 
83
        $a->{keepon} = 1;
 
84
        $a->{accmode} = 0;
 
85
        return bless \$a;
 
86
    }
 
87
 
 
88
    sub log {
 
89
        my $self = shift;
 
90
        my $level = shift;
 
91
        my $log = shift;
 
92
 
 
93
        print $level, ": ", $log, "\n";
 
94
    }
 
95
 
 
96
    sub pef_set_parm_cb {
 
97
        my $self = shift;
 
98
        my $pef = shift;
 
99
        my $err = shift;
 
100
 
 
101
        print "Parm set: ", $$self->{accmode}, "\n";
 
102
        $rv = $pef->get_parm($OpenIPMI::PEFPARM_ALERT_STRING,
 
103
                             12, 2, $self);
 
104
        if ($rv) {
 
105
            main::reg_err("Unable to request lan parm(1): $rv\n");
 
106
            $self->close();
 
107
            return;
 
108
        }
 
109
    }
 
110
 
 
111
 
 
112
    sub pef_got_parm_cb {
 
113
        my $self = shift;
 
114
        my $pef = shift;
 
115
        my $err = shift;
 
116
        my $parm_rev = shift;
 
117
        my @vals = @_;
 
118
 
 
119
        print "Parm retrieved: ", $$self->{accmode}, "\n";
 
120
        if ($parm_rev != 0x11) {
 
121
            main::reg_err("Invalid parm revision\n");
 
122
        }
 
123
 
 
124
        if ($$self->{accmode} == 1) {
 
125
            if (join(" ", @vals) ne "12 2 99 115 100 102 0 0 0 0 0 0 0 0 0 0 0 0") {
 
126
                main::reg_err("Invalid get parms(1), '" . join(" ", @vals) . "'\n");
 
127
                $self->close();
 
128
                return;
 
129
            }
 
130
            $vals[6] = 0x31;
 
131
            $$self->{accmode} = 2;
 
132
            $rv = $pef->set_parm($OpenIPMI::PEFPARM_ALERT_STRING,
 
133
                                 join(" ", @vals), $self);
 
134
            if ($rv) {
 
135
                main::reg_err("Error setting parms(1): $rv\n");
 
136
                $self->close();
 
137
                return;
 
138
            }
 
139
        } elsif ($$self->{accmode} == 2) {
 
140
            if (join(" ", @vals) ne "12 2 99 115 100 102 49 0 0 0 0 0 0 0 0 0 0 0") {
 
141
                main::reg_err("Invalid get parms(2), '" . join(" ", @vals) . "'\n");
 
142
                $self->close();
 
143
                return;
 
144
            }
 
145
            $vals[7] = 0x32;
 
146
            $$self->{accmode} = 3;
 
147
            $rv = $pef->set_parm_array($OpenIPMI::PEFPARM_ALERT_STRING,
 
148
                                       \@vals, $self);
 
149
            if ($rv) {
 
150
                main::reg_err("Error setting parms(2): $rv\n");
 
151
                $self->close();
 
152
                return;
 
153
            }
 
154
        } else {
 
155
            if (join(" ", @vals) ne "12 2 99 115 100 102 49 50 0 0 0 0 0 0 0 0 0 0") {
 
156
                main::reg_err("Invalid get parms(3)\n");
 
157
                $self->close();
 
158
                return;
 
159
            }
 
160
 
 
161
            $self->close();
 
162
        }
 
163
    }
 
164
 
 
165
    @first_configs = 
 
166
        ("0 -1 -1 alert_startup_delay_enabled bool false",
 
167
         "1 -1 -1 startup_delay_enabled bool false",
 
168
         "2 -1 -1 event_messages_enabled bool false",
 
169
         "3 -1 -1 pef_enabled bool false",
 
170
         "4 -1 -1 diagnostic_interrupt_enabled bool false",
 
171
         "5 -1 -1 oem_action_enabled bool false",
 
172
         "6 -1 -1 power_cycle_enabled bool false",
 
173
         "7 -1 -1 reset_enabled bool false",
 
174
         "8 -1 -1 power_down_enabled bool false",
 
175
         "9 -1 -1 alert_enabled bool false",
 
176
         "10 -1 -1 startup_delay integer 0",
 
177
         "11 -1 -1 alert_startup_delay integer 0",
 
178
         "12 -1 -1 guid_enabled bool false",
 
179
         "13 -1 -1 guid_val data 0x00%0x00%0x00%0x00%0x00%0x00%0x00%0x00%0x00%0x00%0x00%0x00%0x00%0x00%0x00%0x00",
 
180
         "14 -1 -1 num_event_filters integer 15",
 
181
         "15 0 1 enable_filter bool false",
 
182
         "15 1 2 enable_filter bool false",
 
183
         "15 2 3 enable_filter bool false",
 
184
         "15 3 4 enable_filter bool false",
 
185
         "15 4 5 enable_filter bool false",
 
186
         "15 5 6 enable_filter bool false",
 
187
         "15 6 7 enable_filter bool false",
 
188
         "15 7 8 enable_filter bool false",
 
189
         "15 8 9 enable_filter bool false",
 
190
         "15 9 10 enable_filter bool false",
 
191
         "15 10 11 enable_filter bool false",
 
192
         "15 11 12 enable_filter bool false",
 
193
         "15 12 13 enable_filter bool false",
 
194
         "15 13 14 enable_filter bool false",
 
195
         "15 14 -1 enable_filter bool false",
 
196
         "16 0 1 filter_type integer 0",
 
197
         "16 1 2 filter_type integer 0",
 
198
         "16 2 3 filter_type integer 0",
 
199
         "16 3 4 filter_type integer 0",
 
200
         "16 4 5 filter_type integer 0",
 
201
         "16 5 6 filter_type integer 0",
 
202
         "16 6 7 filter_type integer 0",
 
203
         "16 7 8 filter_type integer 0",
 
204
         "16 8 9 filter_type integer 0",
 
205
         "16 9 10 filter_type integer 0",
 
206
         "16 10 11 filter_type integer 0",
 
207
         "16 11 12 filter_type integer 0",
 
208
         "16 12 13 filter_type integer 0",
 
209
         "16 13 14 filter_type integer 0",
 
210
         "16 14 -1 filter_type integer 0",
 
211
         "17 0 1 diagnostic_interrupt bool false",
 
212
         "17 1 2 diagnostic_interrupt bool false",
 
213
         "17 2 3 diagnostic_interrupt bool false",
 
214
         "17 3 4 diagnostic_interrupt bool false",
 
215
         "17 4 5 diagnostic_interrupt bool false",
 
216
         "17 5 6 diagnostic_interrupt bool false",
 
217
         "17 6 7 diagnostic_interrupt bool false",
 
218
         "17 7 8 diagnostic_interrupt bool false",
 
219
         "17 8 9 diagnostic_interrupt bool false",
 
220
         "17 9 10 diagnostic_interrupt bool false",
 
221
         "17 10 11 diagnostic_interrupt bool false",
 
222
         "17 11 12 diagnostic_interrupt bool false",
 
223
         "17 12 13 diagnostic_interrupt bool false",
 
224
         "17 13 14 diagnostic_interrupt bool false",
 
225
         "17 14 -1 diagnostic_interrupt bool false",
 
226
         "18 0 1 oem_action bool false",
 
227
         "18 1 2 oem_action bool false",
 
228
         "18 2 3 oem_action bool false",
 
229
         "18 3 4 oem_action bool false",
 
230
         "18 4 5 oem_action bool false",
 
231
         "18 5 6 oem_action bool false",
 
232
         "18 6 7 oem_action bool false",
 
233
         "18 7 8 oem_action bool false",
 
234
         "18 8 9 oem_action bool false",
 
235
         "18 9 10 oem_action bool false",
 
236
         "18 10 11 oem_action bool false",
 
237
         "18 11 12 oem_action bool false",
 
238
         "18 12 13 oem_action bool false",
 
239
         "18 13 14 oem_action bool false",
 
240
         "18 14 -1 oem_action bool false",
 
241
         "19 0 1 power_cycle bool false",
 
242
         "19 1 2 power_cycle bool false",
 
243
         "19 2 3 power_cycle bool false",
 
244
         "19 3 4 power_cycle bool false",
 
245
         "19 4 5 power_cycle bool false",
 
246
         "19 5 6 power_cycle bool false",
 
247
         "19 6 7 power_cycle bool false",
 
248
         "19 7 8 power_cycle bool false",
 
249
         "19 8 9 power_cycle bool false",
 
250
         "19 9 10 power_cycle bool false",
 
251
         "19 10 11 power_cycle bool false",
 
252
         "19 11 12 power_cycle bool false",
 
253
         "19 12 13 power_cycle bool false",
 
254
         "19 13 14 power_cycle bool false",
 
255
         "19 14 -1 power_cycle bool false",
 
256
         "20 0 1 reset bool false",
 
257
         "20 1 2 reset bool false",
 
258
         "20 2 3 reset bool false",
 
259
         "20 3 4 reset bool false",
 
260
         "20 4 5 reset bool false",
 
261
         "20 5 6 reset bool false",
 
262
         "20 6 7 reset bool false",
 
263
         "20 7 8 reset bool false",
 
264
         "20 8 9 reset bool false",
 
265
         "20 9 10 reset bool false",
 
266
         "20 10 11 reset bool false",
 
267
         "20 11 12 reset bool false",
 
268
         "20 12 13 reset bool false",
 
269
         "20 13 14 reset bool false",
 
270
         "20 14 -1 reset bool false",
 
271
         "21 0 1 power_down bool false",
 
272
         "21 1 2 power_down bool false",
 
273
         "21 2 3 power_down bool false",
 
274
         "21 3 4 power_down bool false",
 
275
         "21 4 5 power_down bool false",
 
276
         "21 5 6 power_down bool false",
 
277
         "21 6 7 power_down bool false",
 
278
         "21 7 8 power_down bool false",
 
279
         "21 8 9 power_down bool false",
 
280
         "21 9 10 power_down bool false",
 
281
         "21 10 11 power_down bool false",
 
282
         "21 11 12 power_down bool false",
 
283
         "21 12 13 power_down bool false",
 
284
         "21 13 14 power_down bool false",
 
285
         "21 14 -1 power_down bool false",
 
286
         "22 0 1 alert bool false",
 
287
         "22 1 2 alert bool false",
 
288
         "22 2 3 alert bool false",
 
289
         "22 3 4 alert bool false",
 
290
         "22 4 5 alert bool false",
 
291
         "22 5 6 alert bool false",
 
292
         "22 6 7 alert bool false",
 
293
         "22 7 8 alert bool false",
 
294
         "22 8 9 alert bool false",
 
295
         "22 9 10 alert bool false",
 
296
         "22 10 11 alert bool false",
 
297
         "22 11 12 alert bool false",
 
298
         "22 12 13 alert bool false",
 
299
         "22 13 14 alert bool false",
 
300
         "22 14 -1 alert bool false",
 
301
         "23 0 1 alert_policy_number integer 0",
 
302
         "23 1 2 alert_policy_number integer 0",
 
303
         "23 2 3 alert_policy_number integer 0",
 
304
         "23 3 4 alert_policy_number integer 0",
 
305
         "23 4 5 alert_policy_number integer 0",
 
306
         "23 5 6 alert_policy_number integer 0",
 
307
         "23 6 7 alert_policy_number integer 0",
 
308
         "23 7 8 alert_policy_number integer 0",
 
309
         "23 8 9 alert_policy_number integer 0",
 
310
         "23 9 10 alert_policy_number integer 0",
 
311
         "23 10 11 alert_policy_number integer 0",
 
312
         "23 11 12 alert_policy_number integer 0",
 
313
         "23 12 13 alert_policy_number integer 0",
 
314
         "23 13 14 alert_policy_number integer 0",
 
315
         "23 14 -1 alert_policy_number integer 0",
 
316
         "24 0 1 event_severity integer 0",
 
317
         "24 1 2 event_severity integer 0",
 
318
         "24 2 3 event_severity integer 0",
 
319
         "24 3 4 event_severity integer 0",
 
320
         "24 4 5 event_severity integer 0",
 
321
         "24 5 6 event_severity integer 0",
 
322
         "24 6 7 event_severity integer 0",
 
323
         "24 7 8 event_severity integer 0",
 
324
         "24 8 9 event_severity integer 0",
 
325
         "24 9 10 event_severity integer 0",
 
326
         "24 10 11 event_severity integer 0",
 
327
         "24 11 12 event_severity integer 0",
 
328
         "24 12 13 event_severity integer 0",
 
329
         "24 13 14 event_severity integer 0",
 
330
         "24 14 -1 event_severity integer 0",
 
331
         "25 0 1 generator_id_addr integer 0",
 
332
         "25 1 2 generator_id_addr integer 0",
 
333
         "25 2 3 generator_id_addr integer 0",
 
334
         "25 3 4 generator_id_addr integer 0",
 
335
         "25 4 5 generator_id_addr integer 0",
 
336
         "25 5 6 generator_id_addr integer 0",
 
337
         "25 6 7 generator_id_addr integer 0",
 
338
         "25 7 8 generator_id_addr integer 0",
 
339
         "25 8 9 generator_id_addr integer 0",
 
340
         "25 9 10 generator_id_addr integer 0",
 
341
         "25 10 11 generator_id_addr integer 0",
 
342
         "25 11 12 generator_id_addr integer 0",
 
343
         "25 12 13 generator_id_addr integer 0",
 
344
         "25 13 14 generator_id_addr integer 0",
 
345
         "25 14 -1 generator_id_addr integer 0",
 
346
         "26 0 1 generator_id_channel_lun integer 0",
 
347
         "26 1 2 generator_id_channel_lun integer 0",
 
348
         "26 2 3 generator_id_channel_lun integer 0",
 
349
         "26 3 4 generator_id_channel_lun integer 0",
 
350
         "26 4 5 generator_id_channel_lun integer 0",
 
351
         "26 5 6 generator_id_channel_lun integer 0",
 
352
         "26 6 7 generator_id_channel_lun integer 0",
 
353
         "26 7 8 generator_id_channel_lun integer 0",
 
354
         "26 8 9 generator_id_channel_lun integer 0",
 
355
         "26 9 10 generator_id_channel_lun integer 0",
 
356
         "26 10 11 generator_id_channel_lun integer 0",
 
357
         "26 11 12 generator_id_channel_lun integer 0",
 
358
         "26 12 13 generator_id_channel_lun integer 0",
 
359
         "26 13 14 generator_id_channel_lun integer 0",
 
360
         "26 14 -1 generator_id_channel_lun integer 0",
 
361
         "27 0 1 sensor_type integer 0",
 
362
         "27 1 2 sensor_type integer 0",
 
363
         "27 2 3 sensor_type integer 0",
 
364
         "27 3 4 sensor_type integer 0",
 
365
         "27 4 5 sensor_type integer 0",
 
366
         "27 5 6 sensor_type integer 0",
 
367
         "27 6 7 sensor_type integer 0",
 
368
         "27 7 8 sensor_type integer 0",
 
369
         "27 8 9 sensor_type integer 0",
 
370
         "27 9 10 sensor_type integer 0",
 
371
         "27 10 11 sensor_type integer 0",
 
372
         "27 11 12 sensor_type integer 0",
 
373
         "27 12 13 sensor_type integer 0",
 
374
         "27 13 14 sensor_type integer 0",
 
375
         "27 14 -1 sensor_type integer 0",
 
376
         "28 0 1 sensor_number integer 0",
 
377
         "28 1 2 sensor_number integer 0",
 
378
         "28 2 3 sensor_number integer 0",
 
379
         "28 3 4 sensor_number integer 0",
 
380
         "28 4 5 sensor_number integer 0",
 
381
         "28 5 6 sensor_number integer 0",
 
382
         "28 6 7 sensor_number integer 0",
 
383
         "28 7 8 sensor_number integer 0",
 
384
         "28 8 9 sensor_number integer 0",
 
385
         "28 9 10 sensor_number integer 0",
 
386
         "28 10 11 sensor_number integer 0",
 
387
         "28 11 12 sensor_number integer 0",
 
388
         "28 12 13 sensor_number integer 0",
 
389
         "28 13 14 sensor_number integer 0",
 
390
         "28 14 -1 sensor_number integer 0",
 
391
         "29 0 1 event_trigger integer 0",
 
392
         "29 1 2 event_trigger integer 0",
 
393
         "29 2 3 event_trigger integer 0",
 
394
         "29 3 4 event_trigger integer 0",
 
395
         "29 4 5 event_trigger integer 0",
 
396
         "29 5 6 event_trigger integer 0",
 
397
         "29 6 7 event_trigger integer 0",
 
398
         "29 7 8 event_trigger integer 0",
 
399
         "29 8 9 event_trigger integer 0",
 
400
         "29 9 10 event_trigger integer 0",
 
401
         "29 10 11 event_trigger integer 0",
 
402
         "29 11 12 event_trigger integer 0",
 
403
         "29 12 13 event_trigger integer 0",
 
404
         "29 13 14 event_trigger integer 0",
 
405
         "29 14 -1 event_trigger integer 0",
 
406
         "30 0 1 data1_offset_mask integer 0",
 
407
         "30 1 2 data1_offset_mask integer 0",
 
408
         "30 2 3 data1_offset_mask integer 0",
 
409
         "30 3 4 data1_offset_mask integer 0",
 
410
         "30 4 5 data1_offset_mask integer 0",
 
411
         "30 5 6 data1_offset_mask integer 0",
 
412
         "30 6 7 data1_offset_mask integer 0",
 
413
         "30 7 8 data1_offset_mask integer 0",
 
414
         "30 8 9 data1_offset_mask integer 0",
 
415
         "30 9 10 data1_offset_mask integer 0",
 
416
         "30 10 11 data1_offset_mask integer 0",
 
417
         "30 11 12 data1_offset_mask integer 0",
 
418
         "30 12 13 data1_offset_mask integer 0",
 
419
         "30 13 14 data1_offset_mask integer 0",
 
420
         "30 14 -1 data1_offset_mask integer 0",
 
421
         "31 0 1 data1_mask integer 0",
 
422
         "31 1 2 data1_mask integer 0",
 
423
         "31 2 3 data1_mask integer 0",
 
424
         "31 3 4 data1_mask integer 0",
 
425
         "31 4 5 data1_mask integer 0",
 
426
         "31 5 6 data1_mask integer 0",
 
427
         "31 6 7 data1_mask integer 0",
 
428
         "31 7 8 data1_mask integer 0",
 
429
         "31 8 9 data1_mask integer 0",
 
430
         "31 9 10 data1_mask integer 0",
 
431
         "31 10 11 data1_mask integer 0",
 
432
         "31 11 12 data1_mask integer 0",
 
433
         "31 12 13 data1_mask integer 0",
 
434
         "31 13 14 data1_mask integer 0",
 
435
         "31 14 -1 data1_mask integer 0",
 
436
         "32 0 1 data1_compare1 integer 0",
 
437
         "32 1 2 data1_compare1 integer 0",
 
438
         "32 2 3 data1_compare1 integer 0",
 
439
         "32 3 4 data1_compare1 integer 0",
 
440
         "32 4 5 data1_compare1 integer 0",
 
441
         "32 5 6 data1_compare1 integer 0",
 
442
         "32 6 7 data1_compare1 integer 0",
 
443
         "32 7 8 data1_compare1 integer 0",
 
444
         "32 8 9 data1_compare1 integer 0",
 
445
         "32 9 10 data1_compare1 integer 0",
 
446
         "32 10 11 data1_compare1 integer 0",
 
447
         "32 11 12 data1_compare1 integer 0",
 
448
         "32 12 13 data1_compare1 integer 0",
 
449
         "32 13 14 data1_compare1 integer 0",
 
450
         "32 14 -1 data1_compare1 integer 0",
 
451
         "33 0 1 data1_compare2 integer 0",
 
452
         "33 1 2 data1_compare2 integer 0",
 
453
         "33 2 3 data1_compare2 integer 0",
 
454
         "33 3 4 data1_compare2 integer 0",
 
455
         "33 4 5 data1_compare2 integer 0",
 
456
         "33 5 6 data1_compare2 integer 0",
 
457
         "33 6 7 data1_compare2 integer 0",
 
458
         "33 7 8 data1_compare2 integer 0",
 
459
         "33 8 9 data1_compare2 integer 0",
 
460
         "33 9 10 data1_compare2 integer 0",
 
461
         "33 10 11 data1_compare2 integer 0",
 
462
         "33 11 12 data1_compare2 integer 0",
 
463
         "33 12 13 data1_compare2 integer 0",
 
464
         "33 13 14 data1_compare2 integer 0",
 
465
         "33 14 -1 data1_compare2 integer 0",
 
466
         "34 0 1 data2_mask integer 0",
 
467
         "34 1 2 data2_mask integer 0",
 
468
         "34 2 3 data2_mask integer 0",
 
469
         "34 3 4 data2_mask integer 0",
 
470
         "34 4 5 data2_mask integer 0",
 
471
         "34 5 6 data2_mask integer 0",
 
472
         "34 6 7 data2_mask integer 0",
 
473
         "34 7 8 data2_mask integer 0",
 
474
         "34 8 9 data2_mask integer 0",
 
475
         "34 9 10 data2_mask integer 0",
 
476
         "34 10 11 data2_mask integer 0",
 
477
         "34 11 12 data2_mask integer 0",
 
478
         "34 12 13 data2_mask integer 0",
 
479
         "34 13 14 data2_mask integer 0",
 
480
         "34 14 -1 data2_mask integer 0",
 
481
         "35 0 1 data2_compare1 integer 0",
 
482
         "35 1 2 data2_compare1 integer 0",
 
483
         "35 2 3 data2_compare1 integer 0",
 
484
         "35 3 4 data2_compare1 integer 0",
 
485
         "35 4 5 data2_compare1 integer 0",
 
486
         "35 5 6 data2_compare1 integer 0",
 
487
         "35 6 7 data2_compare1 integer 0",
 
488
         "35 7 8 data2_compare1 integer 0",
 
489
         "35 8 9 data2_compare1 integer 0",
 
490
         "35 9 10 data2_compare1 integer 0",
 
491
         "35 10 11 data2_compare1 integer 0",
 
492
         "35 11 12 data2_compare1 integer 0",
 
493
         "35 12 13 data2_compare1 integer 0",
 
494
         "35 13 14 data2_compare1 integer 0",
 
495
         "35 14 -1 data2_compare1 integer 0",
 
496
         "36 0 1 data2_compare2 integer 0",
 
497
         "36 1 2 data2_compare2 integer 0",
 
498
         "36 2 3 data2_compare2 integer 0",
 
499
         "36 3 4 data2_compare2 integer 0",
 
500
         "36 4 5 data2_compare2 integer 0",
 
501
         "36 5 6 data2_compare2 integer 0",
 
502
         "36 6 7 data2_compare2 integer 0",
 
503
         "36 7 8 data2_compare2 integer 0",
 
504
         "36 8 9 data2_compare2 integer 0",
 
505
         "36 9 10 data2_compare2 integer 0",
 
506
         "36 10 11 data2_compare2 integer 0",
 
507
         "36 11 12 data2_compare2 integer 0",
 
508
         "36 12 13 data2_compare2 integer 0",
 
509
         "36 13 14 data2_compare2 integer 0",
 
510
         "36 14 -1 data2_compare2 integer 0",
 
511
         "37 0 1 data3_mask integer 0",
 
512
         "37 1 2 data3_mask integer 0",
 
513
         "37 2 3 data3_mask integer 0",
 
514
         "37 3 4 data3_mask integer 0",
 
515
         "37 4 5 data3_mask integer 0",
 
516
         "37 5 6 data3_mask integer 0",
 
517
         "37 6 7 data3_mask integer 0",
 
518
         "37 7 8 data3_mask integer 0",
 
519
         "37 8 9 data3_mask integer 0",
 
520
         "37 9 10 data3_mask integer 0",
 
521
         "37 10 11 data3_mask integer 0",
 
522
         "37 11 12 data3_mask integer 0",
 
523
         "37 12 13 data3_mask integer 0",
 
524
         "37 13 14 data3_mask integer 0",
 
525
         "37 14 -1 data3_mask integer 0",
 
526
         "38 0 1 data3_compare1 integer 0",
 
527
         "38 1 2 data3_compare1 integer 0",
 
528
         "38 2 3 data3_compare1 integer 0",
 
529
         "38 3 4 data3_compare1 integer 0",
 
530
         "38 4 5 data3_compare1 integer 0",
 
531
         "38 5 6 data3_compare1 integer 0",
 
532
         "38 6 7 data3_compare1 integer 0",
 
533
         "38 7 8 data3_compare1 integer 0",
 
534
         "38 8 9 data3_compare1 integer 0",
 
535
         "38 9 10 data3_compare1 integer 0",
 
536
         "38 10 11 data3_compare1 integer 0",
 
537
         "38 11 12 data3_compare1 integer 0",
 
538
         "38 12 13 data3_compare1 integer 0",
 
539
         "38 13 14 data3_compare1 integer 0",
 
540
         "38 14 -1 data3_compare1 integer 0",
 
541
         "39 0 1 data3_compare2 integer 0",
 
542
         "39 1 2 data3_compare2 integer 0",
 
543
         "39 2 3 data3_compare2 integer 0",
 
544
         "39 3 4 data3_compare2 integer 0",
 
545
         "39 4 5 data3_compare2 integer 0",
 
546
         "39 5 6 data3_compare2 integer 0",
 
547
         "39 6 7 data3_compare2 integer 0",
 
548
         "39 7 8 data3_compare2 integer 0",
 
549
         "39 8 9 data3_compare2 integer 0",
 
550
         "39 9 10 data3_compare2 integer 0",
 
551
         "39 10 11 data3_compare2 integer 0",
 
552
         "39 11 12 data3_compare2 integer 0",
 
553
         "39 12 13 data3_compare2 integer 0",
 
554
         "39 13 14 data3_compare2 integer 0",
 
555
         "39 14 -1 data3_compare2 integer 0",
 
556
         "40 -1 -1 num_alert_policies integer 15",
 
557
         "41 0 1 policy_num integer 0",
 
558
         "41 1 2 policy_num integer 0",
 
559
         "41 2 3 policy_num integer 0",
 
560
         "41 3 4 policy_num integer 0",
 
561
         "41 4 5 policy_num integer 0",
 
562
         "41 5 6 policy_num integer 0",
 
563
         "41 6 7 policy_num integer 0",
 
564
         "41 7 8 policy_num integer 0",
 
565
         "41 8 9 policy_num integer 0",
 
566
         "41 9 10 policy_num integer 0",
 
567
         "41 10 11 policy_num integer 0",
 
568
         "41 11 12 policy_num integer 0",
 
569
         "41 12 13 policy_num integer 0",
 
570
         "41 13 14 policy_num integer 0",
 
571
         "41 14 -1 policy_num integer 0",
 
572
         "42 0 1 enabled bool false",
 
573
         "42 1 2 enabled bool false",
 
574
         "42 2 3 enabled bool false",
 
575
         "42 3 4 enabled bool false",
 
576
         "42 4 5 enabled bool false",
 
577
         "42 5 6 enabled bool false",
 
578
         "42 6 7 enabled bool false",
 
579
         "42 7 8 enabled bool false",
 
580
         "42 8 9 enabled bool false",
 
581
         "42 9 10 enabled bool false",
 
582
         "42 10 11 enabled bool false",
 
583
         "42 11 12 enabled bool false",
 
584
         "42 12 13 enabled bool false",
 
585
         "42 13 14 enabled bool false",
 
586
         "42 14 -1 enabled bool false",
 
587
         "43 0 1 policy integer 0",
 
588
         "43 1 2 policy integer 0",
 
589
         "43 2 3 policy integer 0",
 
590
         "43 3 4 policy integer 0",
 
591
         "43 4 5 policy integer 0",
 
592
         "43 5 6 policy integer 0",
 
593
         "43 6 7 policy integer 0",
 
594
         "43 7 8 policy integer 0",
 
595
         "43 8 9 policy integer 0",
 
596
         "43 9 10 policy integer 0",
 
597
         "43 10 11 policy integer 0",
 
598
         "43 11 12 policy integer 0",
 
599
         "43 12 13 policy integer 0",
 
600
         "43 13 14 policy integer 0",
 
601
         "43 14 -1 policy integer 0",
 
602
         "44 0 1 channel integer 0",
 
603
         "44 1 2 channel integer 0",
 
604
         "44 2 3 channel integer 0",
 
605
         "44 3 4 channel integer 0",
 
606
         "44 4 5 channel integer 0",
 
607
         "44 5 6 channel integer 0",
 
608
         "44 6 7 channel integer 0",
 
609
         "44 7 8 channel integer 0",
 
610
         "44 8 9 channel integer 0",
 
611
         "44 9 10 channel integer 0",
 
612
         "44 10 11 channel integer 0",
 
613
         "44 11 12 channel integer 0",
 
614
         "44 12 13 channel integer 0",
 
615
         "44 13 14 channel integer 0",
 
616
         "44 14 -1 channel integer 0",
 
617
         "45 0 1 destination_selector integer 0",
 
618
         "45 1 2 destination_selector integer 0",
 
619
         "45 2 3 destination_selector integer 0",
 
620
         "45 3 4 destination_selector integer 0",
 
621
         "45 4 5 destination_selector integer 0",
 
622
         "45 5 6 destination_selector integer 0",
 
623
         "45 6 7 destination_selector integer 0",
 
624
         "45 7 8 destination_selector integer 0",
 
625
         "45 8 9 destination_selector integer 0",
 
626
         "45 9 10 destination_selector integer 0",
 
627
         "45 10 11 destination_selector integer 0",
 
628
         "45 11 12 destination_selector integer 0",
 
629
         "45 12 13 destination_selector integer 0",
 
630
         "45 13 14 destination_selector integer 0",
 
631
         "45 14 -1 destination_selector integer 0",
 
632
         "46 0 1 alert_string_event_specific bool false",
 
633
         "46 1 2 alert_string_event_specific bool false",
 
634
         "46 2 3 alert_string_event_specific bool false",
 
635
         "46 3 4 alert_string_event_specific bool false",
 
636
         "46 4 5 alert_string_event_specific bool false",
 
637
         "46 5 6 alert_string_event_specific bool false",
 
638
         "46 6 7 alert_string_event_specific bool false",
 
639
         "46 7 8 alert_string_event_specific bool false",
 
640
         "46 8 9 alert_string_event_specific bool false",
 
641
         "46 9 10 alert_string_event_specific bool false",
 
642
         "46 10 11 alert_string_event_specific bool false",
 
643
         "46 11 12 alert_string_event_specific bool false",
 
644
         "46 12 13 alert_string_event_specific bool false",
 
645
         "46 13 14 alert_string_event_specific bool false",
 
646
         "46 14 -1 alert_string_event_specific bool false",
 
647
         "47 0 1 alert_string_selector integer 0",
 
648
         "47 1 2 alert_string_selector integer 0",
 
649
         "47 2 3 alert_string_selector integer 0",
 
650
         "47 3 4 alert_string_selector integer 0",
 
651
         "47 4 5 alert_string_selector integer 0",
 
652
         "47 5 6 alert_string_selector integer 0",
 
653
         "47 6 7 alert_string_selector integer 0",
 
654
         "47 7 8 alert_string_selector integer 0",
 
655
         "47 8 9 alert_string_selector integer 0",
 
656
         "47 9 10 alert_string_selector integer 0",
 
657
         "47 10 11 alert_string_selector integer 0",
 
658
         "47 11 12 alert_string_selector integer 0",
 
659
         "47 12 13 alert_string_selector integer 0",
 
660
         "47 13 14 alert_string_selector integer 0",
 
661
         "47 14 -1 alert_string_selector integer 0",
 
662
         "48 -1 -1 num_alert_strings integer 16",
 
663
         "49 0 1 event_filter integer 0",
 
664
         "49 1 2 event_filter integer 0",
 
665
         "49 2 3 event_filter integer 0",
 
666
         "49 3 4 event_filter integer 0",
 
667
         "49 4 5 event_filter integer 0",
 
668
         "49 5 6 event_filter integer 0",
 
669
         "49 6 7 event_filter integer 0",
 
670
         "49 7 8 event_filter integer 0",
 
671
         "49 8 9 event_filter integer 0",
 
672
         "49 9 10 event_filter integer 0",
 
673
         "49 10 11 event_filter integer 0",
 
674
         "49 11 12 event_filter integer 0",
 
675
         "49 12 13 event_filter integer 0",
 
676
         "49 13 14 event_filter integer 0",
 
677
         "49 14 15 event_filter integer 0",
 
678
         "49 15 -1 event_filter integer 0",
 
679
         "50 0 1 alert_string_set integer 0",
 
680
         "50 1 2 alert_string_set integer 0",
 
681
         "50 2 3 alert_string_set integer 0",
 
682
         "50 3 4 alert_string_set integer 0",
 
683
         "50 4 5 alert_string_set integer 0",
 
684
         "50 5 6 alert_string_set integer 0",
 
685
         "50 6 7 alert_string_set integer 0",
 
686
         "50 7 8 alert_string_set integer 0",
 
687
         "50 8 9 alert_string_set integer 0",
 
688
         "50 9 10 alert_string_set integer 0",
 
689
         "50 10 11 alert_string_set integer 0",
 
690
         "50 11 12 alert_string_set integer 0",
 
691
         "50 12 13 alert_string_set integer 0",
 
692
         "50 13 14 alert_string_set integer 0",
 
693
         "50 14 15 alert_string_set integer 0",
 
694
         "50 15 -1 alert_string_set integer 0",
 
695
         "51 0 1 alert_string string",
 
696
         "51 1 2 alert_string string",
 
697
         "51 2 3 alert_string string",
 
698
         "51 3 4 alert_string string",
 
699
         "51 4 5 alert_string string",
 
700
         "51 5 6 alert_string string",
 
701
         "51 6 7 alert_string string",
 
702
         "51 7 8 alert_string string",
 
703
         "51 8 9 alert_string string",
 
704
         "51 9 10 alert_string string",
 
705
         "51 10 11 alert_string string",
 
706
         "51 11 12 alert_string string",
 
707
         "51 12 13 alert_string string",
 
708
         "51 13 14 alert_string string",
 
709
         "51 14 15 alert_string string",
 
710
         "51 15 -1 alert_string string" );
 
711
 
 
712
    @set_configs = 
 
713
        ("0 -1 -1 alert_startup_delay_enabled bool true",
 
714
         "1 -1 -1 startup_delay_enabled bool true",
 
715
         "2 -1 -1 event_messages_enabled bool true",
 
716
         "3 -1 -1 pef_enabled bool true",
 
717
         "4 -1 -1 diagnostic_interrupt_enabled bool true",
 
718
         "5 -1 -1 oem_action_enabled bool true",
 
719
         "6 -1 -1 power_cycle_enabled bool true",
 
720
         "7 -1 -1 reset_enabled bool true",
 
721
         "8 -1 -1 power_down_enabled bool true",
 
722
         "9 -1 -1 alert_enabled bool true",
 
723
         "10 -1 -1 startup_delay integer 1",
 
724
         "11 -1 -1 alert_startup_delay integer 2",
 
725
         "12 -1 -1 guid_enabled bool true",
 
726
         "13 -1 -1 guid_val data 0x03%0x04%0x05%0x06%0x77%0x88%0x99%0xaa%0xbb%0xcc%0xdd%0xee%0xff%0xee%0xdd%0xcc",
 
727
         "14 -1 -1 num_event_filters integer 15 r",
 
728
         "15 0 1 enable_filter bool true",
 
729
         "15 1 2 enable_filter bool true",
 
730
         "15 2 3 enable_filter bool true",
 
731
         "15 3 4 enable_filter bool true",
 
732
         "15 4 5 enable_filter bool true",
 
733
         "15 5 6 enable_filter bool true",
 
734
         "15 6 7 enable_filter bool true",
 
735
         "15 7 8 enable_filter bool true",
 
736
         "15 8 9 enable_filter bool true",
 
737
         "15 9 10 enable_filter bool true",
 
738
         "15 10 11 enable_filter bool true",
 
739
         "15 11 12 enable_filter bool true",
 
740
         "15 12 13 enable_filter bool true",
 
741
         "15 13 14 enable_filter bool true",
 
742
         "15 14 -1 enable_filter bool true",
 
743
         "16 0 1 filter_type integer 2",
 
744
         "16 1 2 filter_type integer 3",
 
745
         "16 2 3 filter_type integer 2",
 
746
         "16 3 4 filter_type integer 3",
 
747
         "16 4 5 filter_type integer 2",
 
748
         "16 5 6 filter_type integer 1",
 
749
         "16 6 7 filter_type integer 2",
 
750
         "16 7 8 filter_type integer 3",
 
751
         "16 8 9 filter_type integer 1",
 
752
         "16 9 10 filter_type integer 3",
 
753
         "16 10 11 filter_type integer 2",
 
754
         "16 11 12 filter_type integer 1",
 
755
         "16 12 13 filter_type integer 2",
 
756
         "16 13 14 filter_type integer 3",
 
757
         "16 14 -1 filter_type integer 2",
 
758
         "17 0 1 diagnostic_interrupt bool true",
 
759
         "17 1 2 diagnostic_interrupt bool true",
 
760
         "17 2 3 diagnostic_interrupt bool true",
 
761
         "17 3 4 diagnostic_interrupt bool true",
 
762
         "17 4 5 diagnostic_interrupt bool true",
 
763
         "17 5 6 diagnostic_interrupt bool true",
 
764
         "17 6 7 diagnostic_interrupt bool true",
 
765
         "17 7 8 diagnostic_interrupt bool true",
 
766
         "17 8 9 diagnostic_interrupt bool true",
 
767
         "17 9 10 diagnostic_interrupt bool true",
 
768
         "17 10 11 diagnostic_interrupt bool true",
 
769
         "17 11 12 diagnostic_interrupt bool true",
 
770
         "17 12 13 diagnostic_interrupt bool true",
 
771
         "17 13 14 diagnostic_interrupt bool true",
 
772
         "17 14 -1 diagnostic_interrupt bool true",
 
773
         "18 0 1 oem_action bool true",
 
774
         "18 1 2 oem_action bool true",
 
775
         "18 2 3 oem_action bool true",
 
776
         "18 3 4 oem_action bool true",
 
777
         "18 4 5 oem_action bool true",
 
778
         "18 5 6 oem_action bool true",
 
779
         "18 6 7 oem_action bool true",
 
780
         "18 7 8 oem_action bool true",
 
781
         "18 8 9 oem_action bool true",
 
782
         "18 9 10 oem_action bool true",
 
783
         "18 10 11 oem_action bool true",
 
784
         "18 11 12 oem_action bool true",
 
785
         "18 12 13 oem_action bool true",
 
786
         "18 13 14 oem_action bool true",
 
787
         "18 14 -1 oem_action bool true",
 
788
         "19 0 1 power_cycle bool true",
 
789
         "19 1 2 power_cycle bool true",
 
790
         "19 2 3 power_cycle bool true",
 
791
         "19 3 4 power_cycle bool true",
 
792
         "19 4 5 power_cycle bool true",
 
793
         "19 5 6 power_cycle bool true",
 
794
         "19 6 7 power_cycle bool true",
 
795
         "19 7 8 power_cycle bool true",
 
796
         "19 8 9 power_cycle bool true",
 
797
         "19 9 10 power_cycle bool true",
 
798
         "19 10 11 power_cycle bool true",
 
799
         "19 11 12 power_cycle bool true",
 
800
         "19 12 13 power_cycle bool true",
 
801
         "19 13 14 power_cycle bool true",
 
802
         "19 14 -1 power_cycle bool true",
 
803
         "20 0 1 reset bool true",
 
804
         "20 1 2 reset bool true",
 
805
         "20 2 3 reset bool true",
 
806
         "20 3 4 reset bool true",
 
807
         "20 4 5 reset bool true",
 
808
         "20 5 6 reset bool true",
 
809
         "20 6 7 reset bool true",
 
810
         "20 7 8 reset bool true",
 
811
         "20 8 9 reset bool true",
 
812
         "20 9 10 reset bool true",
 
813
         "20 10 11 reset bool true",
 
814
         "20 11 12 reset bool true",
 
815
         "20 12 13 reset bool true",
 
816
         "20 13 14 reset bool true",
 
817
         "20 14 -1 reset bool true",
 
818
         "21 0 1 power_down bool true",
 
819
         "21 1 2 power_down bool true",
 
820
         "21 2 3 power_down bool true",
 
821
         "21 3 4 power_down bool true",
 
822
         "21 4 5 power_down bool true",
 
823
         "21 5 6 power_down bool true",
 
824
         "21 6 7 power_down bool true",
 
825
         "21 7 8 power_down bool true",
 
826
         "21 8 9 power_down bool true",
 
827
         "21 9 10 power_down bool true",
 
828
         "21 10 11 power_down bool true",
 
829
         "21 11 12 power_down bool true",
 
830
         "21 12 13 power_down bool true",
 
831
         "21 13 14 power_down bool true",
 
832
         "21 14 -1 power_down bool true",
 
833
         "22 0 1 alert bool true",
 
834
         "22 1 2 alert bool true",
 
835
         "22 2 3 alert bool true",
 
836
         "22 3 4 alert bool true",
 
837
         "22 4 5 alert bool true",
 
838
         "22 5 6 alert bool true",
 
839
         "22 6 7 alert bool true",
 
840
         "22 7 8 alert bool true",
 
841
         "22 8 9 alert bool true",
 
842
         "22 9 10 alert bool true",
 
843
         "22 10 11 alert bool true",
 
844
         "22 11 12 alert bool true",
 
845
         "22 12 13 alert bool true",
 
846
         "22 13 14 alert bool true",
 
847
         "22 14 -1 alert bool true",
 
848
         "23 0 1 alert_policy_number integer 1",
 
849
         "23 1 2 alert_policy_number integer 2",
 
850
         "23 2 3 alert_policy_number integer 3",
 
851
         "23 3 4 alert_policy_number integer 4",
 
852
         "23 4 5 alert_policy_number integer 5",
 
853
         "23 5 6 alert_policy_number integer 6",
 
854
         "23 6 7 alert_policy_number integer 7",
 
855
         "23 7 8 alert_policy_number integer 8",
 
856
         "23 8 9 alert_policy_number integer 9",
 
857
         "23 9 10 alert_policy_number integer 10",
 
858
         "23 10 11 alert_policy_number integer 11",
 
859
         "23 11 12 alert_policy_number integer 12",
 
860
         "23 12 13 alert_policy_number integer 13",
 
861
         "23 13 14 alert_policy_number integer 14",
 
862
         "23 14 -1 alert_policy_number integer 15",
 
863
         "24 0 1 event_severity integer 1",
 
864
         "24 1 2 event_severity integer 2",
 
865
         "24 2 3 event_severity integer 3",
 
866
         "24 3 4 event_severity integer 4",
 
867
         "24 4 5 event_severity integer 5",
 
868
         "24 5 6 event_severity integer 6",
 
869
         "24 6 7 event_severity integer 7",
 
870
         "24 7 8 event_severity integer 8",
 
871
         "24 8 9 event_severity integer 9",
 
872
         "24 9 10 event_severity integer 10",
 
873
         "24 10 11 event_severity integer 11",
 
874
         "24 11 12 event_severity integer 12",
 
875
         "24 12 13 event_severity integer 13",
 
876
         "24 13 14 event_severity integer 14",
 
877
         "24 14 -1 event_severity integer 15",
 
878
         "25 0 1 generator_id_addr integer 1",
 
879
         "25 1 2 generator_id_addr integer 2",
 
880
         "25 2 3 generator_id_addr integer 3",
 
881
         "25 3 4 generator_id_addr integer 4",
 
882
         "25 4 5 generator_id_addr integer 5",
 
883
         "25 5 6 generator_id_addr integer 6",
 
884
         "25 6 7 generator_id_addr integer 7",
 
885
         "25 7 8 generator_id_addr integer 8",
 
886
         "25 8 9 generator_id_addr integer 9",
 
887
         "25 9 10 generator_id_addr integer 10",
 
888
         "25 10 11 generator_id_addr integer 11",
 
889
         "25 11 12 generator_id_addr integer 12",
 
890
         "25 12 13 generator_id_addr integer 13",
 
891
         "25 13 14 generator_id_addr integer 14",
 
892
         "25 14 -1 generator_id_addr integer 15",
 
893
         "26 0 1 generator_id_channel_lun integer 1",
 
894
         "26 1 2 generator_id_channel_lun integer 2",
 
895
         "26 2 3 generator_id_channel_lun integer 3",
 
896
         "26 3 4 generator_id_channel_lun integer 4",
 
897
         "26 4 5 generator_id_channel_lun integer 5",
 
898
         "26 5 6 generator_id_channel_lun integer 6",
 
899
         "26 6 7 generator_id_channel_lun integer 7",
 
900
         "26 7 8 generator_id_channel_lun integer 8",
 
901
         "26 8 9 generator_id_channel_lun integer 9",
 
902
         "26 9 10 generator_id_channel_lun integer 10",
 
903
         "26 10 11 generator_id_channel_lun integer 11",
 
904
         "26 11 12 generator_id_channel_lun integer 12",
 
905
         "26 12 13 generator_id_channel_lun integer 13",
 
906
         "26 13 14 generator_id_channel_lun integer 14",
 
907
         "26 14 -1 generator_id_channel_lun integer 15",
 
908
         "27 0 1 sensor_type integer 1",
 
909
         "27 1 2 sensor_type integer 2",
 
910
         "27 2 3 sensor_type integer 3",
 
911
         "27 3 4 sensor_type integer 4",
 
912
         "27 4 5 sensor_type integer 5",
 
913
         "27 5 6 sensor_type integer 6",
 
914
         "27 6 7 sensor_type integer 7",
 
915
         "27 7 8 sensor_type integer 8",
 
916
         "27 8 9 sensor_type integer 9",
 
917
         "27 9 10 sensor_type integer 10",
 
918
         "27 10 11 sensor_type integer 11",
 
919
         "27 11 12 sensor_type integer 12",
 
920
         "27 12 13 sensor_type integer 13",
 
921
         "27 13 14 sensor_type integer 14",
 
922
         "27 14 -1 sensor_type integer 15",
 
923
         "28 0 1 sensor_number integer 1",
 
924
         "28 1 2 sensor_number integer 2",
 
925
         "28 2 3 sensor_number integer 3",
 
926
         "28 3 4 sensor_number integer 4",
 
927
         "28 4 5 sensor_number integer 5",
 
928
         "28 5 6 sensor_number integer 6",
 
929
         "28 6 7 sensor_number integer 7",
 
930
         "28 7 8 sensor_number integer 8",
 
931
         "28 8 9 sensor_number integer 9",
 
932
         "28 9 10 sensor_number integer 10",
 
933
         "28 10 11 sensor_number integer 11",
 
934
         "28 11 12 sensor_number integer 12",
 
935
         "28 12 13 sensor_number integer 13",
 
936
         "28 13 14 sensor_number integer 14",
 
937
         "28 14 -1 sensor_number integer 15",
 
938
         "29 0 1 event_trigger integer 1",
 
939
         "29 1 2 event_trigger integer 2",
 
940
         "29 2 3 event_trigger integer 3",
 
941
         "29 3 4 event_trigger integer 4",
 
942
         "29 4 5 event_trigger integer 5",
 
943
         "29 5 6 event_trigger integer 6",
 
944
         "29 6 7 event_trigger integer 7",
 
945
         "29 7 8 event_trigger integer 8",
 
946
         "29 8 9 event_trigger integer 9",
 
947
         "29 9 10 event_trigger integer 10",
 
948
         "29 10 11 event_trigger integer 11",
 
949
         "29 11 12 event_trigger integer 12",
 
950
         "29 12 13 event_trigger integer 13",
 
951
         "29 13 14 event_trigger integer 14",
 
952
         "29 14 -1 event_trigger integer 15",
 
953
         "30 0 1 data1_offset_mask integer 1",
 
954
         "30 1 2 data1_offset_mask integer 2",
 
955
         "30 2 3 data1_offset_mask integer 3",
 
956
         "30 3 4 data1_offset_mask integer 4",
 
957
         "30 4 5 data1_offset_mask integer 5",
 
958
         "30 5 6 data1_offset_mask integer 6",
 
959
         "30 6 7 data1_offset_mask integer 7",
 
960
         "30 7 8 data1_offset_mask integer 8",
 
961
         "30 8 9 data1_offset_mask integer 9",
 
962
         "30 9 10 data1_offset_mask integer 10",
 
963
         "30 10 11 data1_offset_mask integer 11",
 
964
         "30 11 12 data1_offset_mask integer 12",
 
965
         "30 12 13 data1_offset_mask integer 13",
 
966
         "30 13 14 data1_offset_mask integer 14",
 
967
         "30 14 -1 data1_offset_mask integer 15",
 
968
         "31 0 1 data1_mask integer 1",
 
969
         "31 1 2 data1_mask integer 2",
 
970
         "31 2 3 data1_mask integer 3",
 
971
         "31 3 4 data1_mask integer 4",
 
972
         "31 4 5 data1_mask integer 5",
 
973
         "31 5 6 data1_mask integer 6",
 
974
         "31 6 7 data1_mask integer 7",
 
975
         "31 7 8 data1_mask integer 8",
 
976
         "31 8 9 data1_mask integer 9",
 
977
         "31 9 10 data1_mask integer 10",
 
978
         "31 10 11 data1_mask integer 11",
 
979
         "31 11 12 data1_mask integer 12",
 
980
         "31 12 13 data1_mask integer 13",
 
981
         "31 13 14 data1_mask integer 14",
 
982
         "31 14 -1 data1_mask integer 15",
 
983
         "32 0 1 data1_compare1 integer 1",
 
984
         "32 1 2 data1_compare1 integer 2",
 
985
         "32 2 3 data1_compare1 integer 3",
 
986
         "32 3 4 data1_compare1 integer 4",
 
987
         "32 4 5 data1_compare1 integer 5",
 
988
         "32 5 6 data1_compare1 integer 6",
 
989
         "32 6 7 data1_compare1 integer 7",
 
990
         "32 7 8 data1_compare1 integer 8",
 
991
         "32 8 9 data1_compare1 integer 9",
 
992
         "32 9 10 data1_compare1 integer 10",
 
993
         "32 10 11 data1_compare1 integer 11",
 
994
         "32 11 12 data1_compare1 integer 12",
 
995
         "32 12 13 data1_compare1 integer 13",
 
996
         "32 13 14 data1_compare1 integer 14",
 
997
         "32 14 -1 data1_compare1 integer 15",
 
998
         "33 0 1 data1_compare2 integer 1",
 
999
         "33 1 2 data1_compare2 integer 2",
 
1000
         "33 2 3 data1_compare2 integer 3",
 
1001
         "33 3 4 data1_compare2 integer 4",
 
1002
         "33 4 5 data1_compare2 integer 5",
 
1003
         "33 5 6 data1_compare2 integer 6",
 
1004
         "33 6 7 data1_compare2 integer 7",
 
1005
         "33 7 8 data1_compare2 integer 8",
 
1006
         "33 8 9 data1_compare2 integer 9",
 
1007
         "33 9 10 data1_compare2 integer 10",
 
1008
         "33 10 11 data1_compare2 integer 11",
 
1009
         "33 11 12 data1_compare2 integer 12",
 
1010
         "33 12 13 data1_compare2 integer 13",
 
1011
         "33 13 14 data1_compare2 integer 14",
 
1012
         "33 14 -1 data1_compare2 integer 15",
 
1013
         "34 0 1 data2_mask integer 1",
 
1014
         "34 1 2 data2_mask integer 2",
 
1015
         "34 2 3 data2_mask integer 3",
 
1016
         "34 3 4 data2_mask integer 4",
 
1017
         "34 4 5 data2_mask integer 5",
 
1018
         "34 5 6 data2_mask integer 6",
 
1019
         "34 6 7 data2_mask integer 7",
 
1020
         "34 7 8 data2_mask integer 8",
 
1021
         "34 8 9 data2_mask integer 9",
 
1022
         "34 9 10 data2_mask integer 10",
 
1023
         "34 10 11 data2_mask integer 11",
 
1024
         "34 11 12 data2_mask integer 12",
 
1025
         "34 12 13 data2_mask integer 13",
 
1026
         "34 13 14 data2_mask integer 14",
 
1027
         "34 14 -1 data2_mask integer 15",
 
1028
         "35 0 1 data2_compare1 integer 1",
 
1029
         "35 1 2 data2_compare1 integer 2",
 
1030
         "35 2 3 data2_compare1 integer 3",
 
1031
         "35 3 4 data2_compare1 integer 4",
 
1032
         "35 4 5 data2_compare1 integer 5",
 
1033
         "35 5 6 data2_compare1 integer 6",
 
1034
         "35 6 7 data2_compare1 integer 7",
 
1035
         "35 7 8 data2_compare1 integer 8",
 
1036
         "35 8 9 data2_compare1 integer 9",
 
1037
         "35 9 10 data2_compare1 integer 10",
 
1038
         "35 10 11 data2_compare1 integer 11",
 
1039
         "35 11 12 data2_compare1 integer 12",
 
1040
         "35 12 13 data2_compare1 integer 13",
 
1041
         "35 13 14 data2_compare1 integer 14",
 
1042
         "35 14 -1 data2_compare1 integer 15",
 
1043
         "36 0 1 data2_compare2 integer 1",
 
1044
         "36 1 2 data2_compare2 integer 2",
 
1045
         "36 2 3 data2_compare2 integer 3",
 
1046
         "36 3 4 data2_compare2 integer 4",
 
1047
         "36 4 5 data2_compare2 integer 5",
 
1048
         "36 5 6 data2_compare2 integer 6",
 
1049
         "36 6 7 data2_compare2 integer 7",
 
1050
         "36 7 8 data2_compare2 integer 8",
 
1051
         "36 8 9 data2_compare2 integer 9",
 
1052
         "36 9 10 data2_compare2 integer 10",
 
1053
         "36 10 11 data2_compare2 integer 11",
 
1054
         "36 11 12 data2_compare2 integer 12",
 
1055
         "36 12 13 data2_compare2 integer 13",
 
1056
         "36 13 14 data2_compare2 integer 14",
 
1057
         "36 14 -1 data2_compare2 integer 15",
 
1058
         "37 0 1 data3_mask integer 1",
 
1059
         "37 1 2 data3_mask integer 2",
 
1060
         "37 2 3 data3_mask integer 3",
 
1061
         "37 3 4 data3_mask integer 4",
 
1062
         "37 4 5 data3_mask integer 5",
 
1063
         "37 5 6 data3_mask integer 6",
 
1064
         "37 6 7 data3_mask integer 7",
 
1065
         "37 7 8 data3_mask integer 8",
 
1066
         "37 8 9 data3_mask integer 9",
 
1067
         "37 9 10 data3_mask integer 10",
 
1068
         "37 10 11 data3_mask integer 11",
 
1069
         "37 11 12 data3_mask integer 12",
 
1070
         "37 12 13 data3_mask integer 13",
 
1071
         "37 13 14 data3_mask integer 14",
 
1072
         "37 14 -1 data3_mask integer 15",
 
1073
         "38 0 1 data3_compare1 integer 1",
 
1074
         "38 1 2 data3_compare1 integer 2",
 
1075
         "38 2 3 data3_compare1 integer 3",
 
1076
         "38 3 4 data3_compare1 integer 4",
 
1077
         "38 4 5 data3_compare1 integer 5",
 
1078
         "38 5 6 data3_compare1 integer 6",
 
1079
         "38 6 7 data3_compare1 integer 7",
 
1080
         "38 7 8 data3_compare1 integer 8",
 
1081
         "38 8 9 data3_compare1 integer 9",
 
1082
         "38 9 10 data3_compare1 integer 10",
 
1083
         "38 10 11 data3_compare1 integer 11",
 
1084
         "38 11 12 data3_compare1 integer 12",
 
1085
         "38 12 13 data3_compare1 integer 13",
 
1086
         "38 13 14 data3_compare1 integer 14",
 
1087
         "38 14 -1 data3_compare1 integer 15",
 
1088
         "39 0 1 data3_compare2 integer 1",
 
1089
         "39 1 2 data3_compare2 integer 2",
 
1090
         "39 2 3 data3_compare2 integer 3",
 
1091
         "39 3 4 data3_compare2 integer 4",
 
1092
         "39 4 5 data3_compare2 integer 5",
 
1093
         "39 5 6 data3_compare2 integer 6",
 
1094
         "39 6 7 data3_compare2 integer 7",
 
1095
         "39 7 8 data3_compare2 integer 8",
 
1096
         "39 8 9 data3_compare2 integer 9",
 
1097
         "39 9 10 data3_compare2 integer 10",
 
1098
         "39 10 11 data3_compare2 integer 11",
 
1099
         "39 11 12 data3_compare2 integer 12",
 
1100
         "39 12 13 data3_compare2 integer 13",
 
1101
         "39 13 14 data3_compare2 integer 14",
 
1102
         "39 14 -1 data3_compare2 integer 15",
 
1103
         "40 -1 -1 num_alert_policies integer 15 r",
 
1104
         "41 0 1 policy_num integer 1",
 
1105
         "41 1 2 policy_num integer 2",
 
1106
         "41 2 3 policy_num integer 3",
 
1107
         "41 3 4 policy_num integer 4",
 
1108
         "41 4 5 policy_num integer 5",
 
1109
         "41 5 6 policy_num integer 6",
 
1110
         "41 6 7 policy_num integer 7",
 
1111
         "41 7 8 policy_num integer 8",
 
1112
         "41 8 9 policy_num integer 9",
 
1113
         "41 9 10 policy_num integer 10",
 
1114
         "41 10 11 policy_num integer 11",
 
1115
         "41 11 12 policy_num integer 12",
 
1116
         "41 12 13 policy_num integer 13",
 
1117
         "41 13 14 policy_num integer 14",
 
1118
         "41 14 -1 policy_num integer 15",
 
1119
         "42 0 1 enabled bool true",
 
1120
         "42 1 2 enabled bool true",
 
1121
         "42 2 3 enabled bool true",
 
1122
         "42 3 4 enabled bool true",
 
1123
         "42 4 5 enabled bool true",
 
1124
         "42 5 6 enabled bool true",
 
1125
         "42 6 7 enabled bool true",
 
1126
         "42 7 8 enabled bool true",
 
1127
         "42 8 9 enabled bool true",
 
1128
         "42 9 10 enabled bool true",
 
1129
         "42 10 11 enabled bool true",
 
1130
         "42 11 12 enabled bool true",
 
1131
         "42 12 13 enabled bool true",
 
1132
         "42 13 14 enabled bool true",
 
1133
         "42 14 -1 enabled bool true",
 
1134
         "43 0 1 policy integer 1",
 
1135
         "43 1 2 policy integer 2",
 
1136
         "43 2 3 policy integer 3",
 
1137
         "43 3 4 policy integer 4",
 
1138
         "43 4 5 policy integer 5",
 
1139
         "43 5 6 policy integer 6",
 
1140
         "43 6 7 policy integer 7",
 
1141
         "43 7 8 policy integer 6",
 
1142
         "43 8 9 policy integer 5",
 
1143
         "43 9 10 policy integer 4",
 
1144
         "43 10 11 policy integer 3",
 
1145
         "43 11 12 policy integer 2",
 
1146
         "43 12 13 policy integer 1",
 
1147
         "43 13 14 policy integer 2",
 
1148
         "43 14 -1 policy integer 3",
 
1149
         "44 0 1 channel integer 1",
 
1150
         "44 1 2 channel integer 2",
 
1151
         "44 2 3 channel integer 3",
 
1152
         "44 3 4 channel integer 4",
 
1153
         "44 4 5 channel integer 5",
 
1154
         "44 5 6 channel integer 6",
 
1155
         "44 6 7 channel integer 7",
 
1156
         "44 7 8 channel integer 8",
 
1157
         "44 8 9 channel integer 9",
 
1158
         "44 9 10 channel integer 10",
 
1159
         "44 10 11 channel integer 11",
 
1160
         "44 11 12 channel integer 12",
 
1161
         "44 12 13 channel integer 13",
 
1162
         "44 13 14 channel integer 14",
 
1163
         "44 14 -1 channel integer 15",
 
1164
         "45 0 1 destination_selector integer 1",
 
1165
         "45 1 2 destination_selector integer 2",
 
1166
         "45 2 3 destination_selector integer 3",
 
1167
         "45 3 4 destination_selector integer 4",
 
1168
         "45 4 5 destination_selector integer 5",
 
1169
         "45 5 6 destination_selector integer 6",
 
1170
         "45 6 7 destination_selector integer 7",
 
1171
         "45 7 8 destination_selector integer 8",
 
1172
         "45 8 9 destination_selector integer 9",
 
1173
         "45 9 10 destination_selector integer 10",
 
1174
         "45 10 11 destination_selector integer 11",
 
1175
         "45 11 12 destination_selector integer 12",
 
1176
         "45 12 13 destination_selector integer 13",
 
1177
         "45 13 14 destination_selector integer 14",
 
1178
         "45 14 -1 destination_selector integer 15",
 
1179
         "46 0 1 alert_string_event_specific bool true",
 
1180
         "46 1 2 alert_string_event_specific bool true",
 
1181
         "46 2 3 alert_string_event_specific bool true",
 
1182
         "46 3 4 alert_string_event_specific bool true",
 
1183
         "46 4 5 alert_string_event_specific bool true",
 
1184
         "46 5 6 alert_string_event_specific bool true",
 
1185
         "46 6 7 alert_string_event_specific bool true",
 
1186
         "46 7 8 alert_string_event_specific bool true",
 
1187
         "46 8 9 alert_string_event_specific bool true",
 
1188
         "46 9 10 alert_string_event_specific bool true",
 
1189
         "46 10 11 alert_string_event_specific bool true",
 
1190
         "46 11 12 alert_string_event_specific bool true",
 
1191
         "46 12 13 alert_string_event_specific bool true",
 
1192
         "46 13 14 alert_string_event_specific bool true",
 
1193
         "46 14 -1 alert_string_event_specific bool true",
 
1194
         "47 0 1 alert_string_selector integer 1",
 
1195
         "47 1 2 alert_string_selector integer 2",
 
1196
         "47 2 3 alert_string_selector integer 3",
 
1197
         "47 3 4 alert_string_selector integer 4",
 
1198
         "47 4 5 alert_string_selector integer 5",
 
1199
         "47 5 6 alert_string_selector integer 6",
 
1200
         "47 6 7 alert_string_selector integer 7",
 
1201
         "47 7 8 alert_string_selector integer 8",
 
1202
         "47 8 9 alert_string_selector integer 9",
 
1203
         "47 9 10 alert_string_selector integer 10",
 
1204
         "47 10 11 alert_string_selector integer 11",
 
1205
         "47 11 12 alert_string_selector integer 12",
 
1206
         "47 12 13 alert_string_selector integer 13",
 
1207
         "47 13 14 alert_string_selector integer 14",
 
1208
         "47 14 -1 alert_string_selector integer 15",
 
1209
         "48 -1 -1 num_alert_strings integer 16 r",
 
1210
         "49 0 1 event_filter integer 1",
 
1211
         "49 1 2 event_filter integer 2",
 
1212
         "49 2 3 event_filter integer 3",
 
1213
         "49 3 4 event_filter integer 4",
 
1214
         "49 4 5 event_filter integer 5",
 
1215
         "49 5 6 event_filter integer 6",
 
1216
         "49 6 7 event_filter integer 7",
 
1217
         "49 7 8 event_filter integer 8",
 
1218
         "49 8 9 event_filter integer 9",
 
1219
         "49 9 10 event_filter integer 10",
 
1220
         "49 10 11 event_filter integer 11",
 
1221
         "49 11 12 event_filter integer 12",
 
1222
         "49 12 13 event_filter integer 13",
 
1223
         "49 13 14 event_filter integer 14",
 
1224
         "49 14 15 event_filter integer 15",
 
1225
         "49 15 -1 event_filter integer 14",
 
1226
         "50 0 1 alert_string_set integer 1",
 
1227
         "50 1 2 alert_string_set integer 2",
 
1228
         "50 2 3 alert_string_set integer 3",
 
1229
         "50 3 4 alert_string_set integer 4",
 
1230
         "50 4 5 alert_string_set integer 5",
 
1231
         "50 5 6 alert_string_set integer 6",
 
1232
         "50 6 7 alert_string_set integer 7",
 
1233
         "50 7 8 alert_string_set integer 8",
 
1234
         "50 8 9 alert_string_set integer 9",
 
1235
         "50 9 10 alert_string_set integer 10",
 
1236
         "50 10 11 alert_string_set integer 11",
 
1237
         "50 11 12 alert_string_set integer 12",
 
1238
         "50 12 13 alert_string_set integer 13",
 
1239
         "50 13 14 alert_string_set integer 14",
 
1240
         "50 14 15 alert_string_set integer 15",
 
1241
         "50 15 -1 alert_string_set integer 14",
 
1242
         "51 0 1 alert_string string asdfasdf",
 
1243
         "51 1 2 alert_string string asd8asdlk",
 
1244
         "51 2 3 alert_string string sadfjskl;d",
 
1245
         "51 3 4 alert_string string asdfsafs,.,",
 
1246
         "51 4 5 alert_string string 9s0dfn;33lkl",
 
1247
         "51 5 6 alert_string string 90asld902lk2k",
 
1248
         "51 6 7 alert_string string 9asd02lk3l2n2l",
 
1249
         "51 7 8 alert_string string 90232lk32nklsll",
 
1250
         "51 8 9 alert_string string 9s0fl2nkclshdm2,",
 
1251
         "51 9 10 alert_string string ksla89slksn2ln2lw",
 
1252
         "51 10 11 alert_string string klns8s9sn22ln2lk3s",
 
1253
         "51 11 12 alert_string string 89asdn2jks9f822nnfd",
 
1254
         "51 12 13 alert_string string lslskdf892j22njkcsdf",
 
1255
         "51 13 14 alert_string string s79lkwjn29nsjd9slkjd3",
 
1256
         "51 14 15 alert_string string 8sdn22ls88jwlsidnlwnas",
 
1257
         "51 15 -1 alert_string string 9sn2njcs92kljsjkcsyskba");
 
1258
 
 
1259
    sub pef_set_config_cb {
 
1260
        my $self = shift;
 
1261
        my $pef = shift;
 
1262
        my $err = shift;
 
1263
 
 
1264
        print "Pef config set\n";
 
1265
 
 
1266
        $rv = $pef->get_config($self);
 
1267
        if ($rv) {
 
1268
            main::reg_err("Unable to get pef config: $rv\n");
 
1269
            $self->close();
 
1270
            return;
 
1271
        }
 
1272
    }
 
1273
 
 
1274
    sub pef_got_config_cb {
 
1275
        my $self = shift;
 
1276
        my $pef = shift;
 
1277
        my $err = shift;
 
1278
        my $config = shift;
 
1279
        my $rv;
 
1280
        my $i;
 
1281
 
 
1282
        if ($$self->{accmode} == 0) {
 
1283
            @config = @first_configs;
 
1284
            print "Checking first config\n";
 
1285
        } else {
 
1286
            @config = @set_configs;
 
1287
            print "Checking second config\n";
 
1288
        }
 
1289
 
 
1290
        for $i (@config) {
 
1291
            my ($parm, $idx, $nidx, $name, $type, $val) = split /\s+/, $i;
 
1292
            if (defined($val)) {
 
1293
                $val = join(" ", split(/%/, $val));
 
1294
            } else {
 
1295
                $val = "";
 
1296
            }
 
1297
            my $vidx = int($idx);
 
1298
            my $v = $config->get_val($parm, \$vidx);
 
1299
            my ($vname, $vtype, $vval) = split /\s+/, $v, 3;
 
1300
            if ($name ne $vname) {
 
1301
                main::reg_err("$parm($idx) name mismatch, expected $name, got $vname");
 
1302
            }
 
1303
            if ($type ne $vtype) {
 
1304
                main::reg_err("$parm($idx) type mismatch, expected $type, got $vtype");
 
1305
                print join(" ", $parm, $idx, $nidx, $name, $type, $val), "\n";
 
1306
            }
 
1307
            if ($val ne $vval) {
 
1308
                main::reg_err("$parm($idx) val mismatch, expected $val, got $vval");
 
1309
            }
 
1310
            if ($nidx != $vidx) {
 
1311
                main::reg_err("$parm($idx) nidx mismatch, expected $nidx, got $vidx");
 
1312
            }
 
1313
        }
 
1314
 
 
1315
        if ($$self->{accmode} == 0) {
 
1316
            for $i (@set_configs) {
 
1317
                my ($parm, $idx, $nidx, $name, $type, $val, $ro) = split /\s+/, $i;
 
1318
                next if ($ro); # skip read-only vals
 
1319
                $val = join(" ", split(/%/, $val));
 
1320
                $rv = $config->set_val($parm, $idx, $type, $val);
 
1321
                if ($rv) {
 
1322
                    main::reg_err("error $rv setting parm $parm($idx) $type $val");
 
1323
                  }
 
1324
            }
 
1325
            $$self->{accmode} = 1;
 
1326
 
 
1327
            $rv = $pef->set_config($config, $self);
 
1328
            if ($rv) {
 
1329
                main::reg_err("Unable to set pef config: $rv\n");
 
1330
                $self->close();
 
1331
                return;
 
1332
            }
 
1333
        } else {
 
1334
            $rv = $pef->get_parm($OpenIPMI::PEFPARM_ALERT_STRING,
 
1335
                                     12, 2, $self);
 
1336
            if ($rv) {
 
1337
                main::reg_err("Unable to request lan parm(1): $rv\n");
 
1338
                $self->close();
 
1339
                return;
 
1340
            }
 
1341
        }
 
1342
    }
 
1343
 
 
1344
    sub got_pef_cb {
 
1345
        my $self = shift;
 
1346
        my $pef = shift;
 
1347
        my $err = shift;
 
1348
 
 
1349
        if ($err) {
 
1350
            main::reg_err("Unable to get pef: $err\n");
 
1351
            $self->close();
 
1352
            return;
 
1353
        }
 
1354
 
 
1355
        $rv = $pef->get_config($self);
 
1356
        if ($rv) {
 
1357
            main::reg_err("Unable to get pef config: $rv\n");
 
1358
            $self->close();
 
1359
            return;
 
1360
        }
 
1361
    }
 
1362
 
 
1363
    sub mc_update_cb {
 
1364
        my $self = shift;
 
1365
        my $op = shift;
 
1366
        my $domain = shift;
 
1367
        my $mc = shift;
 
1368
        my $rv;
 
1369
        my $pef;
 
1370
 
 
1371
        if ($op eq "added") {
 
1372
            print $op, " MC ", $mc->get_name(), "\n";
 
1373
            $pef = $mc->get_pef($self);
 
1374
            if (! defined($pef)) {
 
1375
                main::reg_err("Unable to get pef\n");
 
1376
                $self->close();
 
1377
                return;
 
1378
            }
 
1379
        }
 
1380
    }
 
1381
 
 
1382
    sub conn_change_cb {
 
1383
        my $self = shift;
 
1384
        my $domain = shift;
 
1385
        my $err = shift;
 
1386
        my $conn_num = shift;
 
1387
        my $port_num = shift;
 
1388
        my $still_connected = shift;
 
1389
        my $rv;
 
1390
 
 
1391
        if ($err) {
 
1392
            main::reg_err("Error starting up IPMI connection: $err");
 
1393
            $self->close();
 
1394
            return;
 
1395
        }
 
1396
 
 
1397
        print "Connection up!\n";
 
1398
        $rv = $domain->add_mc_update_handler($self);
 
1399
        if ($rv) {
 
1400
            main::reg_err("Unable to add mc updated handler: $rv\n");
 
1401
            $self->close();
 
1402
            return;
 
1403
        }
 
1404
    }
 
1405
 
 
1406
    sub domain_close_done_cb {
 
1407
        my $self = shift;
 
1408
 
 
1409
        $$self->{keepon} = 0;
 
1410
    }
 
1411
 
 
1412
    sub close {
 
1413
        my $self = shift;
 
1414
        my $domain = shift;
 
1415
 
 
1416
        if (defined $$self->{domain_id}) {
 
1417
            my $v = CloseDomain::new($self);
 
1418
            $$self->{domain_id}->to_domain($v);
 
1419
        } else {
 
1420
            $$self->{keepon} = 0;
 
1421
        }
 
1422
    }
 
1423
 
 
1424
}
 
1425
 
 
1426
package main;
 
1427
 
 
1428
$lanserv = Lanserv->new();
 
1429
if (! $lanserv) {
 
1430
    main::reg_err("Unable to start lanserv");
 
1431
    exit(1);
 
1432
}
 
1433
 
 
1434
# Add a BMC
 
1435
$lanserv->cmd("mc_add 20 0 1 23 9 8 1f 1291 f02");
 
1436
$lanserv->cmd("mc_setbmc 20");
 
1437
$lanserv->cmd("mc_enable 20");
 
1438
 
 
1439
sleep 1;
 
1440
 
 
1441
#OpenIPMI::enable_debug_msg();
 
1442
OpenIPMI::enable_debug_malloc();
 
1443
 
 
1444
# Now start OpenIPMI
 
1445
OpenIPMI::init();
 
1446
 
 
1447
$h = Handlers::new();
 
1448
 
 
1449
OpenIPMI::set_log_handler($h);
 
1450
 
 
1451
@args = ( "-noseteventrcvr",
 
1452
          "lan", "-p", "9000", "-U", "minyard", "-P", "test", "localhost");
 
1453
$$h->{domain_id} = OpenIPMI::open_domain2("test", \@args, $h, \undef);
 
1454
if (! $$h->{domain_id}) {
 
1455
    $lanserv->close();
 
1456
    print "IPMI open failed\n";
 
1457
    exit 1;
 
1458
}
 
1459
 
 
1460
while ($$h->{keepon}) {
 
1461
    OpenIPMI::wait_io(1000);
 
1462
}
 
1463
 
 
1464
$lanserv->close();
 
1465
OpenIPMI::shutdown_everything();
 
1466
exit main::get_errcount();