Hi Guys,

I am using NET_SNMP 5.9.1.

I am working on a SNMP agent implementation for a MIB with some snmp tables. It 
is done via the main agent mib extension.
All is working now .
Though, we would like to use stash cache for one of the snmp tables in the MIB.
The handler of this snmp table reads a database table.
(The cache would save us on database load if the manager polls the table too 
frequently. )

We made an attempt to do that happen with configuring injectHandler in the 
snmpd.conf file & snmpd restarted.
However, at the end, we did not have luck.

What we got:

-          seemingly the stash_cache handler injected (the "handler:inject" 
debug token print outs confirmed this) but

-          all of the snmpget queries caused to hit the database (seemingly no 
change in the request processing)

-          We turned on "helper:stash_cache" debug token but we were not able 
to see any log print out from the snmpd process.

This is the line in snmpd.conf for the stash cache handler injection we applied.

injectHandler stash_cache deviceInfoTable table_iterator



We use netsnmp_register_table_iterator2() in the snmp table implementation.

Below is how the snmp table init is implemented.
/*****************************************
* MIB EXTENSION EXPORTED initializer
*
 * Initializes the deviceInfoTable module
 * Initialize the deviceInfoTable table
 * by defining its contents and how it's structured
*****************************************/
void
init_deviceInfoTable(void)
{
    DEBUGMSGTL(("verbose:deviceInfoTable:init",
                "initializing "
                 "table deviceInfoTable\n"));

    const oid deviceInfoTable_oid[] = {1,3,6,1,4,1,6878,100,1,1};
    const size_t deviceInfoTable_oid_len =
                        OID_LENGTH(deviceInfoTable_oid);

    netsnmp_handler_registration    *my_handler;
    netsnmp_iterator_info           *iinfo;
    netsnmp_table_registration_info *table_info;


    table_info =
        SNMP_MALLOC_TYPEDEF( netsnmp_table_registration_info );
    iinfo =
        SNMP_MALLOC_TYPEDEF( netsnmp_iterator_info );

    my_handler = netsnmp_create_handler_registration(
                    "deviceInfoTable",
                    deviceInfoTable_handler,
                    deviceInfoTable_oid,
                    /*deviceInfoTable_oid_len,*/
                    OID_LENGTH(deviceInfoTable_oid),
                    HANDLER_CAN_RONLY
                );

    if (!my_handler || !table_info || !iinfo) {
        snmp_log(LOG_ERR,
            "malloc failed in "
            "init_deviceInfoTable");
        return;
    }

    /***************************************************
     * Setting up the table's definition
     */
    netsnmp_table_helper_add_indexes(table_info,
                           ASN_OCTET_STR,
                           0);

    table_info->min_column = COLUMN_DEVICENAME;
    table_info->max_column = COLUMN_DEVICESTATE;

    iinfo->get_first_data_point =
                    deviceInfoTable_get_first_data_point;
    iinfo->get_next_data_point  =
                    deviceInfoTable_get_next_data_point;

    iinfo->make_data_context =
                    deviceInfoTable_make_data_context;
    iinfo->free_data_context =
                    deviceInfoTable_free_data_context;

    iinfo->free_loop_context_at_end =
                    deviceInfoTable_free_loop_context_at_end;

    iinfo->table_reginfo        = table_info;

    netsnmp_register_table_iterator2(my_handler, iinfo);

    /* Initialise the contents of the table here */
}



I would appreciate if anybody could help me out on this issue.

Has anybody similar experience on net-snmp  v5.9.1?

Can somebody point me out for a good working example for stash_cache?

Thanks for any feedback in advance.

Jeno


________________________________

This email and any files transmitted with it are confidential and are intended 
for the sole use of the individual to whom they are addressed. Black Box 
Corporation reserves the right to scan all e-mail traffic for restricted 
content and to monitor all e-mail in general. If you are not the intended 
recipient or you have received this email in error, any use, dissemination or 
forwarding of this email is strictly prohibited. If you have received this 
email in error, please notify the sender by replying to this email.
_______________________________________________
Net-snmp-users mailing list
Net-snmp-users@lists.sourceforge.net
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users

Reply via email to