~ubuntu-branches/ubuntu/trusty/net-snmp/trusty

« back to all changes in this revision

Viewing changes to win32/dist/htmlhelp/Developer_FAQ.html

  • Committer: Bazaar Package Importer
  • Author(s): Steve Kowalik
  • Date: 2007-05-10 22:20:23 UTC
  • mto: (1.4.1 experimental)
  • mto: This revision was merged to the branch mainline in revision 11.
  • Revision ID: james.westby@ubuntu.com-20070510222023-3fr07xb9i17xvq32
Tags: upstream-5.3.1
ImportĀ upstreamĀ versionĀ 5.3.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2
 
<html>
3
 
  <head>
4
 
    <title>rstory's NET-SNMP Developers Frequently Asked Questions Page</title>
5
 
  </head>
6
 
 
7
 
  <body bgcolor="#ffffff" background="ucd-snmp-bg3.gif">
8
 
    <div align=center>
9
 
    <h1>rstory's NET-SNMP Developers Frequently Asked Questions Page</h1>
10
 
    </div>
11
 
<hr>
12
 
    <div align=center>
13
 
    <font size=-1>
14
 
      <a href="FAQ.html">[Official FAQ]</a> | 
15
 
        <a href="#tokens">[Debug tokens]</a> | 
16
 
        <a href="#agentx">[AgentX]</a> | 
17
 
        <a href="#install">[Install]</a> | 
18
 
        <a href="#disable">[Disable]</a> | 
19
 
        <a href="#errors">[Errors]</a> | 
20
 
        <a href="#bits">[Bits]</a> | 
21
 
        <a href="#embedded">[embedded perl]</a> | 
22
 
        <a href="#smux">[SMUX]</a> | 
23
 
        <a href="#entid">[Enterprise OID]</a> | 
24
 
        <a href="#autodeps">[Automatic dependencies]</a> | 
25
 
        <a href="#cross">[Cross compiling]</a> | 
26
 
        <a href="#static">[Static linking]</a> | 
27
 
        <a href="#readfds">[readfds]</a> | 
28
 
        <a href="#sharing">[Sharing data]</a> | 
29
 
        <a href="man1-mib2c.1.html">[mib2c.array-user.conf]</a> | 
30
 
        <a href="#steps">[Baby Steps flow]</a> | 
31
 
      </font>
32
 
    </div>
33
 
<hr>
34
 
This is just a quick page to answer some common questions that aren't covered
35
 
in the <a href="/FAQ.html">official FAQ</a>.
36
 
 
37
 
<a name="agentx"></a> <h2>AgentX</h2>
38
 
<pre> To have the sub-agent communicate on a different socket, or with
39
 
different permissions, add these line to your snmpd.conf
40
 
 
41
 
        # socket path
42
 
        agentxsocket /tmp/agentx
43
 
 
44
 
        # perms socket directory userid groupid
45
 
        agentxperms 777 777 rstory rstory
46
 
 
47
 
 
48
 
and add this line to your subagent:
49
 
 
50
 
        netsnmp_ds_set_string(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_X_SOCKET, "/tmp/agentx");
51
 
 
52
 
*before* you call init_agent().
53
 
 
54
 
 </pre>
55
 
 
56
 
<a name="install"></a><h2>install</h2>
57
 
<pre> INSTALL_PREFIX goes before everything.. so, with the defaults, just
58
 
setting INSTALL_PREFIX=/tmp would result in /tmp/usr/local.. 
59
 
so INSTALL_PREFIX=/tmp prefix=/usr exec_prefix=/usr would go into /tmp/usr
60
 
 </pre>
61
 
 
62
 
<a name="disable"></a><h2>disable</h2>
63
 
<pre> If you are using net-snmp Version >= 5.1, then the following configure
64
 
options may be useful to you:
65
 
 
66
 
  --disable-agent                 Do not build the agent (snmpd).
67
 
  --disable-applications          Do not build the apps (snmpget, ...).
68
 
  --disable-manuals               Do not install the manuals.
69
 
  --disable-scripts               Do not install the scripts (mib2c, ...).
70
 
  --disable-mibs                  Do not install the mib files.
71
 
  --disable-mib-loading            Do not include code that parses and
72
 
                                   manipulates the mib files.
73
 
 </pre>
74
 
 
75
 
<a name="errors"></a><h2>errors</h2>
76
 
<pre> from RFC 3416:
77
 
 
78
 
                   noError(0),
79
 
                   tooBig(1),
80
 
                   noSuchName(2),      -- for proxy compatibility
81
 
                   badValue(3),        -- for proxy compatibility
82
 
                   readOnly(4),        -- for proxy compatibility
83
 
                   genErr(5),
84
 
                   noAccess(6),
85
 
                   wrongType(7),
86
 
                   wrongLength(8),
87
 
                   wrongEncoding(9),
88
 
                   wrongValue(10),
89
 
                   noCreation(11),
90
 
                   inconsistentValue(12),
91
 
                   resourceUnavailable(13),
92
 
                   commitFailed(14),
93
 
                   undoFailed(15),
94
 
                   authorizationError(16),
95
 
                   notWritable(17),
96
 
                   inconsistentName(18)
97
 
 </pre>
98
 
 
99
 
<a name="bits"></a><h2>bits</h2>
100
 
<pre> SNMPv1 use BIT STRINGs (RFC 1212, 5.1.1):
101
 
 
102
 
          (3)  An object with BIT STRING syntax containing no more than
103
 
               32 bits becomes an INTEGER defined as a sum; otherwise if
104
 
               more than 32 bits are present, the object becomes an
105
 
               OCTET STRING, with the bits numbered from left-to-right,
106
 
               in which the least significant bits of the last octet may
107
 
               be "reserved for future use".
108
 
 
109
 
SNMPv2 and beyond uses BITS (RFC 3417, 8.1):
110
 
 
111
 
   (3)   When encoding an object whose syntax is described using the
112
 
         BITS construct, the value is encoded as an OCTET STRING, in
113
 
         which all the named bits in (the definition of) the bitstring,
114
 
         commencing with the first bit and proceeding to the last bit,
115
 
         are placed in bits 8 (high order bit) to 1 (low order bit) of
116
 
         the first octet, followed by bits 8 to 1 of each subsequent
117
 
         octet in turn, followed by as many bits as are needed of the
118
 
         final subsequent octet, commencing with bit 8.  Remaining bits,
119
 
         if any, of the final octet are set to zero on generation and
120
 
         ignored on receipt.
121
 
 </pre>
122
 
 
123
 
<a name="embedded"></a> <h2>embedded perl</h2>
124
 
<pre> Add the following line to snmpd.conf:
125
 
 
126
 
   perl do "/path/to/perl_module.pl"
127
 
 
128
 
 
129
 
To test:
130
 
 
131
 
1) Try staring up snmpd, like so: 'snmpd -Dperl'. Check your log files for:
132
 
 
133
 
  perl: initializing perl (/tmp/snmp_perl.pl)
134
 
  starting perl_module.pl
135
 
  perl_module.pl loaded ok
136
 
  registering at netSnmp.999
137
 
 
138
 
If you get:
139
 
 
140
 
  perl: initializing perl (/usr/local/share/snmp/snmp_perl.pl)
141
 
  Can't open perl script "/usr/local/share/snmp/snmp_perl.pl": No such file or directory
142
 
  embedded perl support failed to initalize
143
 
 
144
 
Then you need to locate snmp_perl.pl, and put it in the correct path, OR put
145
 
the path in your snmpd.conf:
146
 
 
147
 
        perlInitFile /tmp/snmp_perl.pl
148
 
 
149
 
 
150
 
2) Once it's loaded ok, try a walk:
151
 
 
152
 
        snmpwalk -v2c -c public localhost netSnmp.999
153
 
 
154
 
You should see something like this in your logs:
155
 
 
156
 
 refs: NetSNMP::agent::netsnmp_mib_handler, NetSNMP::agent::reginfo, NetSNMP::agent::netsnmp_agent_request_info, NetSNMP::agent::netsnmp_request_infoPtr
157
 
processing a request of type 161
158
 
   processing request of nsTransactionEntry.3
159
 
    .1.3.6.1.4.1.8072.999.1.2.1 -> hello world
160
 
   finished processing
161
 
 
162
 
3) If not, maybe check /path/to/perl_module.pl and make sure it is executable.
163
 
 
164
 
Hope that helps.
165
 
 
166
 
 </pre>
167
 
 
168
 
<a name="smux"></a> <h2>SMUX</h2>
169
 
<pre> To turn off SMUX when you don't have the options of recompiling from source
170
 
to disable SMUX support, you have to give it an invalid IP address to bind
171
 
to. This may be OS specific. On Linux, if I put this in my snmpd.conf:
172
 
 
173
 
        smuxsocket 1.0.0.0
174
 
 
175
 
I get an error at startup, and lsof or netstat show that snmpd is no longer
176
 
listenting on port 199. If you get and error message about the smuxsocket
177
 
token not being recongnized, then you're out of luck. You'll have to recompile
178
 
from source (or just use local firewall rules to block connections to port
179
 
199).
180
 
 </pre>
181
 
 
182
 
<a name="entid"></a> <h2>Enterprise OID</h2>
183
 
<pre> From: Dave Shield, RObert Story
184
 
 
185
 
Recent Versions (5.x)
186
 
---------------------
187
 
If you want to *just* change the sysObjectID numbering,
188
 
(and leave the notifications using the Net-SNMP enterprise OID)
189
 
then use  --with-enterprise-sysoid
190
 
Or you could just use the snmpd.conf directive 'sysobjectid'
191
 
to set this at run time.
192
 
 
193
 
 
194
 
If you want to *just* change enterprise-specific notification OID
195
 
(and leave the sysObjectID using the Net-SNMP values)
196
 
then use  --with-enterprise-notification-oid
197
 
 
198
 
 
199
 
If you want to change *both* of these,
200
 
then use --with-enterprise-oid
201
 
 
202
 
Older Versions (4.2.x)
203
 
----------------------
204
 
In older version, you have to manuall update the version_id in
205
 
agent/agent_trap.c:80
206
 
 
207
 
   oid version_id[]    = { EXTENSIBLEMIB, AGENTID, OSTYPE };
208
 
 
209
 
 </pre>
210
 
 
211
 
<a name="autodeps"></a> <h2>Automatic dependencies</h2>
212
 
<pre> For auto-dependencies, add the following to your Makefile:
213
 
 
214
 
#
215
 
# Build rules
216
 
#
217
 
%.d : %.c
218
 
        @echo "Generating makefile $@ ..."
219
 
        @set -e; $(CC) -M $(COPTS) $(CFLAGS) $(CPPFLAGS) $< \
220
 
        | sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \
221
 
        [ -s $@ ] || $(RM) $(RMFLAGS) $@
222
 
 
223
 
include $(SOURCES:.c=.d)
224
 
 
225
 
 </pre>
226
 
 
227
 
<a name="cross"></a> <h2>Cross compiling</h2>
228
 
<pre> From the net-snmp INSTALL file:
229
 
 
230
 
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
231
 
 
232
 
Specifying the System Type
233
 
==========================
234
 
 
235
 
   There may be some features `configure' can not figure out
236
 
automatically, but needs to determine by the type of host the package
237
 
will run on.  Usually `configure' can figure that out, but if it prints
238
 
a message saying it can not guess the host type, give it the
239
 
`--host=TYPE' option.  TYPE can either be a short name for the system
240
 
type, such as `sun4', or a canonical name with three fields:
241
 
     CPU-COMPANY-SYSTEM
242
 
 
243
 
See the file `config.sub' for the possible values of each field.  If
244
 
`config.sub' isn't included in this package, then this package doesn't
245
 
need to know the host type.
246
 
 
247
 
   If you are building compiler tools for cross-compiling, you can also
248
 
use the `--target=TYPE' option to select the type of system they will
249
 
produce code for and the `--build=TYPE' option to select the type of
250
 
system on which you are compiling the package.
251
 
 
252
 
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
253
 
 
254
 
The most important configure options are:
255
 
 
256
 
        --with-cc=[cross-compiler]
257
 
        --with-ld=[cross-linker]
258
 
        --target=[target-environment]
259
 
        --with-endianness=[big|little]
260
 
 
261
 
Other potentially useful options:
262
 
 
263
 
        --with-cflags="..."
264
 
        --with-ldlags="..."
265
 
        --with-ar=/path/ar
266
 
 
267
 
        --enable-mini-agent
268
 
        --enable-shared="no"
269
 
        --without-pic
270
 
 
271
 
Two simple examples of cross-compiling:
272
 
 
273
 
./configure --target=ppc-linux --with-cc=ppc_405-gcc --with-endianness=big
274
 
 
275
 
./configure --target=powerpc-snmc-linux-gnu --build=i386-redhat-linux \
276
 
        --with-endianness=big
277
 
 
278
 
A more complex example involves setting environment variables for all
279
 
the flags for the tools needed for the cross compile:
280
 
 
281
 
   export TOOLPATH=/opt/hardhat/devkit/ppc/405
282
 
   export PATH=$TOOLPATH/bin:$PATH
283
 
   export CFLAGS=' -g -fPIC -msoft-float -D_SOFT_FLOAT -Dlinux -mcpu=403'
284
 
   export CPPFLAGS='-I$TOOLPATH/include -I$TOOLPATH/target/usr/include'
285
 
   export ASFLAGS='-g -gstabs'
286
 
   export LDFLAGS='-Wl,-soname,-Bdynamic -lc' 
287
 
   export LIB='ar rcu' 
288
 
 
289
 
   ./configure --build=i686-pc-linux-gnu  --host=powerpc \
290
 
           --target=powerpc-hardhat-linux-gnu --with-endianness=big
291
 
 
292
 
 
293
 
 
294
 
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
295
 
 
296
 
The mibgroup section is the most OS specific part of the agent. It's likely
297
 
that you will have to remove some of them. You just need to figure out which
298
 
ones to remove. 
299
 
 
300
 
For example, agent/mibgroup/mibII/tcpTable.c is a common module that doesn't
301
 
work on new platforms. So if it isn't working, omit it during configure, like
302
 
so:
303
 
 
304
 
        ./configure --with-out-mib-modules=mibII/tcpTable
305
 
 
306
 
 
307
 
Alternatively, you could work the other way. Start with a minimal
308
 
configuration:
309
 
 
310
 
        ./configure --enable-mini-agent
311
 
 
312
 
and then start adding MIB modules one-by-one:
313
 
 
314
 
        ./configure --enable-mini-agent
315
 
                    --with-mib-modules=mibII/system_mib,mibII/sysORTable
316
 
 
317
 
 
318
 
 </pre>
319
 
 
320
 
<a name="static"></a> <h2>Static linking</h2>
321
 
<pre> mXaureliu: I want to compile the 5.1 snmptrapd binary with statically linked libraries.. Can anyone help me with this? Is it just a simple configure switch
322
 
rstory: mXaureliu: you want static snmp libraries, or totally static (system libraries too)?
323
 
mXaureliu: totally static.. everything in one executable
324
 
mXaureliu: actually, how do i do both ways?
325
 
rstory: for snmp libs, try 'configure --enable-shared=no'.. that won't build the shared libraries
326
 
rstory: (though if you have previous versions of net-snmp libraries installed, the linker might pick those up and try and use them)
327
 
rstory: for totally static, you'll have to tweak the Makefile
328
 
rstory: add -Bstatic to LDFLAGS
329
 
 
330
 
[note: actually, for totally static, 'configure --with-ldflags=-Bstatic']
331
 
 </pre>
332
 
 
333
 
<a name="readfds"></a> <h2>readfds</h2>
334
 
<pre> > can you please tell me the meaning of the third argument. obviously the 
335
 
> first parameter to register_readfd is a file descriptor and second is the 
336
 
> callback function.
337
 
 
338
 
Correct.
339
 
The third parameter is arbitrary data that you can specify when you
340
 
register the file descriptor, and will then be passed to the callback
341
 
function when it's invoked.
342
 
 
343
 
 
344
 
So if you were listening on two separate sockets, for very similar
345
 
types of data, then you could use the same callback for both and
346
 
use this third parameter to distinguish between them:
347
 
 
348
 
 
349
 
        fd1 = open( "/proc/tweedledum" );
350
 
        fd2 = open( "/proc/tweedledee" );
351
 
 
352
 
        register_readfd( fd1, who_broke_the_rattle(), "tweedledee" );
353
 
        register_readfd( fd2, who_broke_the_rattle(), "tweedledum" );
354
 
 
355
 
 
356
 
void
357
 
who_broke_the_rattle( int fd, void *data )
358
 
{
359
 
    char *he_did = (char *)data;
360
 
 
361
 
    printf("%s broke the rattle!\n", he_did );
362
 
}
363
 
 
364
 
 </pre>
365
 
 
366
 
<a name="sharing"></a> <h2>sharing data</h2>
367
 
<pre> If two modules are compiled into the same agent/subagent, then just use a
368
 
normal C global var. No need to involve net-snmp in the process.
369
 
 
370
 
if they are different sub-agents, you are better off using tradition IPC
371
 
mechanisms. there is no net-snmp api for sharing data between subagents.
372
 
 
373
 
That said, *IF* you only need the data during processing of GET requests, or
374
 
when you aren't processing a request at all, you send a snmp request to the
375
 
master, which will query the other subagent. If you are processing a GET
376
 
request and are compiled into the master, you will have to delegate the
377
 
current request).
378
 
 
379
 
It's a little inefficient, compared to direct communication w/the other
380
 
subagent and it *will not* work during set processing.
381
 
 </pre>
382
 
 
383
 
<a name="tokens"></a> <h2>Debug Tokens</h2>
384
 
<pre> Some of the more common ones are:
385
 
 
386
 
   Agent: agent, agentx, dlmod, handler, helper, snmpd, trap, table
387
 
   MIBs: init_mib, mib_init, parse-file, parse-mibs
388
 
   Apps: read_config
389
 
 
390
 
Add them to your snmp.conf like so:
391
 
 
392
 
   # optionally turn on time stamps
393
 
   logTimestamp true
394
 
   doDebugging 1
395
 
   debugTokens agentx/config
396
 
 
397
 
If you put them in a different conf file, like snmpd.conf or myapp.conf,
398
 
prefix each with '[snmp]', like so:
399
 
 
400
 
   [snmp] doDebugging 1
401
 
 
402
 
 
403
 
This list was generated by running the following command in the main CVS branch:
404
 
 
405
 
find . -name \"*.c\" -print | xargs grep DEBUGMSGT | grep \" | cut -f 2 -d\" | sort -u
406
 
 
407
 
add
408
 
agent_handler
409
 
agent_registry
410
 
agent_set
411
 
agentx
412
 
agentx_build
413
 
agentx_build_varbind
414
 
agentx/config
415
 
agentx/config/retries
416
 
agentx/config/timeout
417
 
agentx/master
418
 
agentx/subagent
419
 
agentx/subgaent
420
 
asn_realloc
421
 
auto_nlist
422
 
build_oid_noalloc
423
 
build_oid_segment
424
 
callback
425
 
callback_clear
426
 
check_getnext_results
427
 
clear_nsap_list
428
 
compare:index
429
 
comparex
430
 
container
431
 
container_iterator
432
 
container_iterator:results
433
 
container:null:
434
 
container:null:find
435
 
container:null:find_next
436
 
container:null:for_each
437
 
container:null:free
438
 
container:null:get_null
439
 
container:null:get_null_factory
440
 
container:null:get_null_noalloc
441
 
container:null:insert
442
 
container:null:remove
443
 
container:null:size
444
 
container_registry
445
 
daemonize
446
 
deinit_usm_post_config
447
 
delayed_instance
448
 
dlmod
449
 
dump_etimelist
450
 
encode_keychange
451
 
example
452
 
example_data_set
453
 
example_notification
454
 
example_scalar_int
455
 
fixup_mib_directory
456
 
generate_Ku
457
 
generate_kul
458
 
get_mib_directory
459
 
handler:calling
460
 
handler:inject
461
 
handler::register
462
 
handler_registry
463
 
handler:returned
464
 
header_complex
465
 
header_complex_add_data
466
 
header_complex_dump
467
 
header_complex_extract_entry
468
 
header_complex_generate_oid
469
 
header_complex_generate_varoid
470
 
header_complex_parse_oid
471
 
header_complex_test
472
 
helper:baby_steps
473
 
helper:cache_handler
474
 
helper:debug
475
 
helper:instance
476
 
helper:mfd
477
 
helper:null
478
 
helper:read_only
479
 
helper:row_merge
480
 
helper:scalar
481
 
helper:scalar_group
482
 
helper:serialize
483
 
helper:stash_cache
484
 
helper:table
485
 
helper:watcher
486
 
helper:watcher:spinlock
487
 
helper:watcher:timestamp
488
 
host/hr_device
489
 
host/hr_disk
490
 
host/hr_filesys
491
 
host/hr_inst
492
 
host/hr_network
493
 
host/hr_partition
494
 
host/hr_print
495
 
host/hr_proc
496
 
host/hr_storage
497
 
host/hr_swinst
498
 
host/hr_swrun
499
 
host/hr_swrun::GetNextHR_SWRun
500
 
host/hr_system
501
 
hr_proc
502
 
initialize_table_ipCidrRouteTable
503
 
initialize_table_mteEventNotificationTable
504
 
initialize_table_mteEventTable
505
 
initialize_table_netSnmpHostsTable
506
 
initialize_table_nlmLogTable
507
 
initialize_table_nlmLogVariableTable
508
 
initialize_table_nsModuleTable
509
 
initialize_table_nsTransactionTable
510
 
init_mib
511
 
init_usm
512
 
injectHandler
513
 
kernel_sunos5
514
 
ksm
515
 
lcd_get_enginetime
516
 
lcd_get_enginetime_ex
517
 
lcd_set_enginetime
518
 
log_notification
519
 
md5
520
 
mfd
521
 
mibII/at
522
 
mibII/icmp
523
 
mibII/interfaces
524
 
mibII/ip
525
 
mibII/ipv6
526
 
mibII/mta_sendmail.c:mta_sendmail_parse_config
527
 
mibII/mta_sendmail.c:open_sendmailst
528
 
mibII/mta_sendmail.c:read_sendmailcf
529
 
mibII/snmp_mib
530
 
mibII/sysORTable
531
 
mibII/tcpScalar
532
 
mibII/tcpTable
533
 
mibII/udpScalar
534
 
mibII/udpTable
535
 
mibII/vacm_vars
536
 
mibII/var_route
537
 
mib_init
538
 
mte_disco
539
 
mteEventTable:send_events
540
 
mteObjectsTable
541
 
mteTriggerBooleanTable
542
 
mteTriggerDeltaTable
543
 
mteTriggerExistenceTable
544
 
mteTriggertable
545
 
mteTriggerTable
546
 
mteTriggerTest
547
 
mteTriggerTest:send_mte_trap
548
 
mteTriggerThresholdTable
549
 
netsnmp_aal5pvc
550
 
netsnmp_agent_check_packet
551
 
netsnmp_deregister_agent_nsap
552
 
netsnmp_ds_handle_config
553
 
netsnmp_ds_set_boolean
554
 
netsnmp_ds_set_int
555
 
netsnmp_ds_set_string
556
 
netsnmp_ds_set_void
557
 
netsnmp_ds_toggle_boolean
558
 
netsnmp_instance_counter32_handler
559
 
netsnmp_instance_int_handler
560
 
netsnmp_instance_long_handler
561
 
netsnmp_instance_ulong_handler
562
 
netsnmp_ipx
563
 
netsnmp_register_agent_nsap
564
 
netsnmp_register_mib_table_row
565
 
netsnmp_sockaddr_in
566
 
netsnmp_sockaddr_in6
567
 
netsnmp_sockaddr_ipx
568
 
netsnmp_table_data_set
569
 
netsnmp_tcp
570
 
netsnmp_tcp6
571
 
netsnmp_udp
572
 
netsnmp_udp6
573
 
netsnmp_udp6_getSecName
574
 
netsnmp_udp6_parse_security
575
 
netsnmp_udp_getSecName
576
 
netsnmp_udp_parse_security
577
 
netsnmp_unix
578
 
netsnmp_unix_getSecName
579
 
netsnmp_unix_parse_security
580
 
netsnmp_unix_transport
581
 
netstat:if
582
 
notification_log
583
 
nsCacheScalars
584
 
nsDebugScalars
585
 
object_monitor
586
 
old_api
587
 
output
588
 
override
589
 
parse-file
590
 
parse-mibs
591
 
parse_oid
592
 
parse_oid_indexes
593
 
perl
594
 
proc
595
 
proxy
596
 
proxy_args
597
 
proxy_config
598
 
proxy_init
599
 
read_config
600
 
read_config_copy_word
601
 
read_config_files
602
 
read_config:forward
603
 
read_config:initmib
604
 
read_config_read_data
605
 
read_config_read_memory
606
 
read_config_read_objid
607
 
read_config_read_octet_string
608
 
read_config_store_data_prefix
609
 
read_config:traphandle
610
 
register_exceptfd
611
 
register_index
612
 
register_mib
613
 
register_readfd
614
 
register_signal
615
 
register_writefd
616
 
report
617
 
results
618
 
scalar_int
619
 
scapi
620
 
scopedPDU_parse
621
 
send_notifications
622
 
sess_async_send
623
 
_sess_open
624
 
sess_process_packet
625
 
sess_read
626
 
sess_resend
627
 
sess_select
628
 
setting auth type: \
629
 
signal
630
 
smux
631
 
smux_conf
632
 
smux_init
633
 
smux/snmp_bgp
634
 
smux/snmp_ospf
635
 
smux/snmp_rip2
636
 
snmp_agent
637
 
snmp_alarm
638
 
snmp_api
639
 
snmp_build
640
 
snmp_clean_persistent
641
 
snmp_config
642
 
snmpd
643
 
snmpd/main
644
 
snmpd_ports
645
 
snmpd_register_app_config_handler
646
 
snmpd/select
647
 
snmpEngine
648
 
snmpNotifyFilterProfileTable
649
 
snmpNotifyFilterTable
650
 
snmpNotifyTable
651
 
snmp_parse
652
 
snmp_parse_args
653
 
snmp_parse_oid
654
 
snmp_pdu_realloc_rbuild
655
 
snmp_save_persistent
656
 
snmp_send
657
 
snmp_sess_add
658
 
snmp_sess_close
659
 
snmp_sess_open
660
 
snmpSetSerialNo
661
 
snmp_store
662
 
snmpTargetAddrEntry
663
 
snmpTargetParamsEntry
664
 
snmptrapd
665
 
snmpv3
666
 
snmpv3_parse
667
 
sprint_by_type
668
 
stash_cache
669
 
subtree
670
 
table_array
671
 
table_array:get
672
 
table_array:group
673
 
table_data_add_data
674
 
table_iterator
675
 
table_set_add_row
676
 
take_snapshot
677
 
target_counters
678
 
target_sessions
679
 
tdomain
680
 
testhandler
681
 
testhandler_table
682
 
transport_callback
683
 
trap
684
 
trapsess
685
 
tunnel
686
 
ucdDemoPublic
687
 
ucd-snmp/disk
688
 
ucd-snmp/disk:
689
 
ucd-snmp/memory
690
 
ucd-snmp/pass
691
 
ucd-snmp/pass_persist
692
 
ucd-snmp/proc
693
 
ucd-snmp/versioninfo
694
 
ucd-snmp/vmstat_aix4.c:update_stats
695
 
ucd-snmp/vmstat_dynix.c:update_stats
696
 
ucd-snmp/vmstat_hpux.c:update_stats
697
 
ucd-snmp/vmstat_solaris2.c:update_stats
698
 
unlink_tree
699
 
unload-mib
700
 
unregister_exceptfd
701
 
unregister_readfd
702
 
unregister_signal
703
 
unregister_writefd
704
 
usm
705
 
usmUser
706
 
util_funcs
707
 
vacm:checkSubtree
708
 
vacm:getView
709
 
versioninfo
710
 
vmstat
711
 
yyyinjectHandler
712
 
 </pre>
713
 
 
714
 
<a name="steps"></a> <h2>Baby Steps Flow</h2>
715
 
<pre>     /**
716
 
     * Baby Steps Flow diagram (rev 2003.09.29.1330)
717
 
     *
718
 
     * Legend: (test) [optional] &lt;required>
719
 
     *
720
 
     * OLD              NEW
721
 
     * ========  ============================================
722
 
     * +++           [pre_request]
723
 
     *                    |
724
 
     *               (row exists?) N ->(row_creation) N >-->+
725
 
     *                    |                   | Y           |
726
 
     *                    |&lt;------------------+             |
727
 
     *                   \|/                               \|/
728
 
     * RESERVE1  &lt;object_syntax_checks>                     |
729
 
     *                    |                                 | 
730
 
     *                  (err?)  Y >------------------------>+
731
 
     *                    |                                 |
732
 
     *                   \|/                               \|/
733
 
     * +++          (row existed?) N --->[row_creation]     |
734
 
     *                    |                   |             |
735
 
     *                    |&lt;--------------N (err?)          |
736
 
     *                    |                   | Y           |
737
 
     *                    |                   |             |
738
 
     *                    |       [row_creation_cleanup]--->+
739
 
     *                   \|/                                |
740
 
     * RESERVER2     [undo_setup]                           |
741
 
     *                    |                                 |
742
 
     *                  (err?)  Y --->-------->--------->+  |
743
 
     *                    |                              | \|/
744
 
     * ACTION        &lt;set_values>                        |  |
745
 
     *                    |                              |  |
746
 
     *                  (err?)  Y >---------+           \|/ |
747
 
     *                    |                 |            |  |
748
 
     * +++        [consistency_checks]      |            |  |
749
 
     *                    |                \|/           |  |
750
 
     * UNDO             (err?)  Y >-------[undo]-------->+  |
751
 
     *                    |                              |  |
752
 
     *            [reversible_commit]                    |  |
753
 
     * +++                |                              | \|/
754
 
     *                  (err?)  Y >--[reverse_commit]    |  |
755
 
     *                    |              |               |  |
756
 
     * COMMIT        &lt;final_commit>      |               |  |
757
 
     *                    |              |               |  |
758
 
     *                  (err?)  Y >--[log msg]           |  |
759
 
     *                    |              |               |  |
760
 
     *                    |             \|/             \|/ |
761
 
     *                    | &lt;-----------&lt;+---&lt;-----------+  |
762
 
     *                   \|/                                |
763
 
     * FREE          [undo_cleanup]                         |
764
 
     *                    |                                \|/
765
 
     *                    |&lt;--------------&lt;-----------------+
766
 
     *                   \|/
767
 
     *               [post_request]
768
 
     */
769
 
 </pre>
770
 
 
771
 
<hr>
772
 
<table width="100%">
773
 
<tr><td align=left>
774
 
<br>Page
775
 
<!-- Created: Thu Jul 24 10:08:26 MET DST 1997 -->
776
 
<!-- hhmts start -->
777
 
Last modified: Wed Mar 12 13:49:32 PST 2003
778
 
<!-- hhmts end -->
779
 
</td><td align=right>
780
 
<br>Powered by:
781
 
<A href="http://sourceforge.net">
782
 
      <IMG src="http://sourceforge.net/sflogo.php?group_id=12694&amp;type=1" width="88" height="31" border="0" alt="SourceForge Logo"></A>
783
 
 
784
 
</td></tr></table>
785
 
  </body>
786
 
</html>