FAQ:Coding 10

From Net-SNMP Wiki

Jump to: navigation, search

Are there any examples, or documentation?

Many of the MIB modules shipped with the Net-SNMP agent still use the v4 "traditional" MIB module API, but an increasing number use one of the newer v5 helper-based handlers. All of these can be found under agent/mibgroup

The tdata helper is used in the new DisMan Event, Expression and Schedule MIB modules (see disman/{event,expr,schedule}/*). The similar dataset helper is used in the older DisMan Event MIB implementation (see disman/mteEvent*) and the Notification Log MIB (see notification-log-mib/*), used by snmptrapd to log incoming traps.

The basic iterator handler is used in a number of modules, such as the TCP and UDP table implementations (mibII/tcpTable & mibII/udpTable), VACM context handling (mibII/vacm_context) and various tables relating to agent internals (agent/*). These show a number of different approaches to using the iterator helper, so it's worth comparing them.

The two examples/netSnmpHostsTable* modules provide a contrast between the iterator and iterator_access helpers.

There are an ever-increasing number of examples based on the MfD framework (see {if,ip,tcp,udp}-mib/). Much of this code is not intended to be viewed directly, but individual files are clearly commented to distinguish between internal implementation and public code.

The Net-SNMP agent does not currently include any MIB modules using the array-user container-based helper. The best examples of this are to be found in the net-policy project. See http://net-policy.sourceforge.net/

   FAQ:Coding
   
  1. How do I write C code to integrate with the agent?
  2. How does the agent fetch the value of a MIB variable from the system?
  3. Mib2c complains about a missing "mib reference" - what does this mean?
  4. Mib2c complains about not having a "valid OID" - what does this mean?
  5. Why doesn't mib2c like the MIB file I'm giving it?
  6. Mib2c ignores my MIB and generates a pair of 'mib-2' code files. Why?
  7. What's the difference between the various mib2c configuration files?
  8. Which mib2c configuration file should I use?
  9. How can I have mib2c generate code for both scalars and tables?
  10. Are there any examples, or documentation?
  11. Where should I put the files produced by 'mib2c'?
  12. I've created a new module with 'mib2c' but it doesn't work. Why not?
  13. I've added my code to this template and it still doesn't work. Why not?
  14. Why does the iterator call my get_{first,next} routines so often?
  15. How can I get the agent to generate a trap (or inform)?
  16. How can I get the agent to send an SNMPv1 (or SNMPv2c) trap?
  17. How can I get the agent to include varbinds with an SNMPv1 trap?
  18. How can I get the agent to send an SNMPv1 enterprise-specific trap?
  19. How can I get the agent to send an SNMPv3 trap (or inform)?
  20. Why does calling 'send_v2trap' generate an SNMPv1 trap (or vice versa)?
  21. What if I'm using an AgentX sub-agent instead?
  22. How can I register a MIB module in a different (SNMPv3) context?
Personal tools