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.

RELATED TO send_trap_vars…

snmpd.conf(5), snmptrapd(8)