snmp_trap_api (3) - Linux Manuals

snmp_trap_api: send TRAPs or INFORMs from a Net-SNMP MIB module

NAME

send_easy_trap, send_trap_vars, send_v2trap - send TRAPs or INFORMs from a Net-SNMP MIB module

SYNOPSIS

#include <net-snmp/agent/agent_trap.h>

void send_easy_trap(int trap, int specific);

void send_trap_vars(int trap, int specific, struct variable_list *vars);

void send_v2trap(struct variable_list *vars);

DESCRIPTION

These three routines may be used to send traps from a MIB module within the Net-SNMP agent (including an AgentX subagent).

send_easy_trap() sends an SNMPv1 trap (or the SNMPv2 equivalent) to the list of configured trap destinations (or "sinks"), using the provided values for the generic trap type, and specific trap value.

send_trap_vars() is similar, but appends the supplied list of variable bindings to the traps that are sent.

send_v2trap() uses the supplied list of variable bindings to form an SNMPv2 trap, which is sent to SNMPv2-capable sinks on the configured list. An equivalent INFORM is sent to the configuredq list of inform sinks. Sinks that can only handle SNMPv1 traps are skipped.

The various "send_trap()" calls allow you to specify traps in different formats. And the various "trapsink" directives allow you to specify destinations to receive different formats. But *all* traps are sent to *all* destinations, regardless of how they were specified.

I.e. it's
                                         ___  trapsink
                                        /
    send_easy_trap ___  [  Trap      ] ____  trap2sink
                    ___  [ Generator  ]
    send_v2trap    /     [            ] ----- informsink
                                        ____
                                              trapsess

*Not*
     send_easy_trap  ------------------->  trapsink
     send_v2trap     ------------------->  trap2sink
     ????            ------------------->  informsink
     ????            ------------------->  trapsess

WARNINGS

These routines are used to send the traps immediately they are called. Invoking them at the appropriate time is left to the MIB module programmer.

SEE ALSO

snmpd.conf(5), snmptrapd(8)