I am still having some conceptual problems with the v5 API.  The model that I am
using is the DataSet model for tables.  The routines that I am calling, and 
those
that are produced for the stub code generated by mib2c, are listed at the URL

  <http://www.net-snmp.org/tutorial-5/agent/group__table__dataset.html>

Whereas I my work involves a Linux RedHat 9 system, and the computer I am
using in the preparation of the email is a Windows 2000 Pro system, and whereas
these two computers are located some 40 miles apart, I do not have direct access
at this time such that I would be able to report the helper file used by mib2c 
to
generate the code with which I am working.  Still, I expect that readers will be
able to address the question(s) posed here.

My current concern is the order of operations in the fulfillment of get and set
requests, as processed via v5 API code generated by the mib2c compiler.  The
specific issue concerns the invocation of the helper handler routine defined by
means of the function calls

netsnmp_create_handler_registration()

and

netsnmp_create_handler_registration()

In the documentation provided for the table_dataset model, at the URL given
above, and on the associated page that gives the source code for the file
table_dataset.c, one finds the function

netsnmp_table_data_set_helper_handler()

to be described as the function that

"...implements the table data helper.  This is the routine that takes
  care of all SNMP requests coming into the table."

In perusing the source code of this function, it does appear that get and set
requests are serviced at this point.  The applications of macros, such as

    MODE_IS_SET(reqinfo->mode)

give strong confirmation that this is the location at which the varbinds of get
and set requests are serviced.

Now, I return to a specific question.  In what order are operations performed
in the calling of the helper handler routine, as found in the code generated
by mib2c?  It would seem logical that for get requests, the helper handler
routine is called after the request is serviced by the function

netsnmp_table_data_set_helper_handler()

since any operation that helper handler function is to perform on the data
of the OID would need to be applied after that data is obtained from its
source.  I am thinking of the case where that data is stored in a register
of a chip, such as those chips that implement 802dot11 functionality.

It would seem equally logical that for set requests, the helper handler
routine is called before the request is serviced by the function

netsnmp_table_data_set_helper_handler()

since in this case, I would need to apply any operation to the data prior
to its being, consistent with my described 802dot11 application, transmitted
to the chip register.

Is this the correct interpretation of actions performed by the v5 API?  Am I
missing some detail in this process, and if so, what are those details?

In any case, the data corresponding to OIDs must, for my application, be
transmitted to, and received from, an 802dot11 chipset.  I need to know
where to put the calls to the device drivers for this chipset, in order to
provide the essential link between the get and set request handler (the
Net-SNMP daemon) and the chipset.  A lack of understanding of this
interfacing issue is the biggest impediment I face in implementing the
802dot11 MIB within the Net-SNMP environment.

Now, I do notice that the section of the routine

netsnmp_table_data_set_helper_handler()

that includes the code

00526         switch (reqinfo->mode) {
00527         case MODE_GET:
00528         case MODE_GETNEXT:
00529         case MODE_GETBULK:     /* XXXWWW */

has a call to the function

netsnmp_table_data_build_result

and this function seems to obtain data from the internal store of the relevant
table.  Since the table_dataset model operates through the retention of data
internal to the agent, I would suspect that get requests will require that 
internal
data store to be updated as appropriate prior to execution of the function

netsnmp_table_data_build_result

with some kind of inverse operation applicable for set requests.

Now, this function first performs the get then the set operations, and this
is consistent with the CMU approach.  David Shield has described this to me
in past emails.  As we drill down through the call tree, we visit, in order, the
functions

snmp_set_var_typed_value()

and

snmp_set_var_value()

and it is at this point that I become lost in the details.

So, my concerns are 

   i) the placement of calls to interfacing drivers for an 802dot11 chipset;

  ii) the sequence of operations in calling the helper handler routine that
        is created by mib2c for my specific table

Just so I am complete, the table I am working with is the StationConfigTable of
the 802dot11 MIB.  I have previously posted this MIB, and I would hope that it
is included in the MIB set for the Net-SNMP toolkit.

I think that I am getting very close to a full understanding of this model of
data servicing.  A few well constructed explanations of the issues outlined
in this posting are sure to help me obtain that full understanding.

William R. Buckley






-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/
_______________________________________________
Net-snmp-users mailing list
[EMAIL PROTECTED]
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users

Reply via email to