Question on mib2c.mfd for table

X Z <[email protected]>
Newsgroups gmane.network.net-snmp.user
Message-ID <[email protected]>
I used the mib2c.mfd to create template files for a MIB table. But when I initialized the mib in the subagent code, the table oid was not registered. 

I tried the debug mode, found out that only the following routines were called:
verbose:xxxTable:xxxTable_init_data called
verbose:xxxTable:xxxTable_container_init called

Since I used the template file, and didn't cache the data, I only changed the function call xxxTable_container_load to read in the MIB values from the memory. 
Here is the code that I modified:

int xxxTable_container_load(netsnmp_container * container)
{
    xxxTable_rowreq_ctx *rowreq_ctx;
    size_t          count = 0;

    /*
     * channelIndex(1)/INTEGER32/ASN_INTEGER/long(long)//l/a/w/e/r/d/h
     */
    long            channelIndex;

    while (1) {
        /*
         * TODO:352:M: |   |-> set indexes in new xxxTable rowreq context.
         */
    
        if (count >= chan_stats.total_channels) 
            break;

        channelIndex = chan_tbl[count].index;

        rowreq_ctx = xxxTable_allocate_rowreq_ctx(NULL);
        if (NULL == rowreq_ctx) {
            snmp_log(LOG_ERR, "memory allocation failed\n");
            return MFD_RESOURCE_UNAVAILABLE;
        }
        if (MFD_SUCCESS !=
            xxxTable_indexes_set(rowreq_ctx, channelIndex)) {
            snmp_log(LOG_ERR,
                     "error setting index while loading "
                     "xxxTable data.\n");
            xxxTable_release_rowreq_ctx(rowreq_ctx);
            continue;
        }

        /*
         * TODO:352:r: |   |-> populate xxxTable data context.
         */
      
        if ((NULL == rowreq_ctx->data.channelName) ||
            (rowreq_ctx->data.channelName_len <
             strlen(chan_tbl[count].chan_name) + 1 )) {
            snmp_log(LOG_ERR, "not enough space for value\n");
            return MFD_ERROR;
        }
        rowreq_ctx->data.channelName_len =  strlen(chan_tbl[count].chan_name) + 1;
        memcpy(rowreq_ctx->data.channelName, chan_tbl[count].chan_name,
rowreq_ctx->data.channelName_len );
      
        /*
         * insert into table container
         */
        
        CONTAINER_INSERT(container, rowreq_ctx);
        ++count;
    }

    return MFD_SUCCESS;
}                       


Inside the subagent code, I initialized two MIBs:
init_xxxScalars();
init_xxxTable();

I can get all scalars using snmpwalk, but I got the following output using "snmpwalk -v2c -c public localhost xxxTable"

xxxTable = No Such Object available on this agent at this OID

Did I miss anything? Why was the MIB table not loaded?   


Thanks
Cindy



_________________________________________________________________
Hotmail® has ever-growing storage! Don’t worry about storage limits. 
http://windowslive.com/Tutorial/Hotmail/Storage?ocid=TXT_TAGLM_WL_HM_Tutorial_Storage_062009

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge

_______________________________________________
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.