On 19/07/2010 15:19, Martin Townsend wrote:
> Hi,
>
> I'm currently creating a test agent using my own mib.  I have 
> implemented all the scalar values using mib2c and then int-watch 
> configuration file.  The problem I have is with a table.  
> mib2c.mfd.conf was used to create the files.  I have implemented the 
> data access routines but I can't see where the generated routine 
> (loadMonitorUnitsPOTable_container_load) is called, i've used gdb and 
> set a breakpoint but the routine doesn't get called and I'm seeing no 
> table information when using snmpwalk or snmpbulkget.  All the 
> examples I've seen use container-cache which call the 
> xx_container_load from a _cache_load hook routine that is passed to 
> the netsnmp_cache_create function.  I choose the default container 
> option:
>
> container : [DEFAULT]  This access method uses a netsnmp_container
>      to store all row data in memory. This method is best for:
>          - Internal data (maintained by the agent)
>          - Access speed is important
>          - Sufficient memory exists to contain all rows
>
> Does anyone know how to hook the container_load routine up, or know 
> why I'm not getting any table information?  I've tried add the 
> container_load to loadMonitorUnitsPOTable_container_init but it seg 
> faults.
>
> Just in case it helps here is the portion of the MIB that defines the 
> table:
> loadMonitorUnitsPOIndex  OBJECT-TYPE
>     SYNTAX     Integer32 (0..13)
>     MAX-ACCESS accessible-for-notify
>     STATUS     current
>     DESCRIPTION
>         ""
>     ::= { loadMonitorPOUnits 2 }
>
> loadMonitorUnitsPOTable  OBJECT-TYPE
>     SYNTAX SEQUENCE OF LoadMonitorUnitsPOEntry
>     MAX-ACCESS not-accessible
>     STATUS     current
>     DESCRIPTION
>         ""
>     ::= { loadMonitorPOUnits 3 }
>
> loadMonitorUnitsPOEntry  OBJECT-TYPE
>     SYNTAX  LoadMonitorUnitsPOEntry
>     MAX-ACCESS not-accessible
>     STATUS     current
>     DESCRIPTION
>         ""
>     INDEX { loadMonitorUnitsPOIndex }
>     ::= { loadMonitorUnitsPOTable 1 }
>
> LoadMonitorUnitsPOEntry ::= SEQUENCE {
>     loadMonitorIDPO
>         Integer32,
>     loadMonitorFuseStatus1PO
>         INTEGER,
>     loadMonitorCurrent1PO
>         Integer32,
>     loadMonitorFuseStatus2PO
>         INTEGER,
>     loadMonitorCurrent2PO
>         Integer32
> }
>
> loadMonitorIDPO  OBJECT-TYPE
>     SYNTAX     Integer32
>     MAX-ACCESS read-only
>     STATUS     current
>     DESCRIPTION
>         ""
>     ::= { loadMonitorUnitsPOEntry 1 }
>
> loadMonitorFuseStatus1PO  OBJECT-TYPE
>     SYNTAX     INTEGER {
>         normal (0),
>         alarm (1)
>     }
>     MAX-ACCESS read-only
>     STATUS     current
>     DESCRIPTION
>         "The state of the load fuses/breakers can be either normal(0) 
> or alarm(1) "
>     ::= { loadMonitorUnitsPOEntry 2 }
>
> loadMonitorCurrent1PO  OBJECT-TYPE
>     SYNTAX     Integer32
>     UNITS   "Amperes or DeciAmperes"
>     MAX-ACCESS read-only
>     STATUS     current
>     DESCRIPTION
>         "The current consumed by this load branch. Note that the units 
> measured may be i Amperes or in Deciamperes depending on global system 
> settings"
>     ::= { loadMonitorUnitsPOEntry 3 }
>
> loadMonitorFuseStatus2PO  OBJECT-TYPE
>     SYNTAX     INTEGER {
>         normal (0),
>         alarm (1)
>     }
>     MAX-ACCESS read-only
>     STATUS     current
>     DESCRIPTION
>         "The state of the load fuses/breakers can be either normal(0) 
> or alarm(1) "
>     ::= { loadMonitorUnitsPOEntry 4 }
>
> loadMonitorCurrent2PO  OBJECT-TYPE
>     SYNTAX     Integer32
>     UNITS   "Amperes or DeciAmperes"
>     MAX-ACCESS read-only
>     STATUS     current
>     DESCRIPTION
>         "The current consumed by this load branch. Note that the units 
> measured may be i Amperes or in Deciamperes depending on global system 
> settings"
>     ::= { loadMonitorUnitsPOEntry 5 }
>
> Many Thanks in advance,
> Martin.

A bit more info:
If I call 
loadMonitorUnitsPOTable_container_load(loadMonitorUnitsPOTable_if_ctx.container);
 
at the end of generated _loadMonitorUnitsPOTable_initialize_interface 
function it works.  don't know if this is the correct place though.

Cheers,
Martin.

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
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