snmpv3通知/陷阱c代码

时间:2015-05-04 14:13:05

标签: linux embedded snmp net-snmp snmp-trap

我一直在环顾四周,似乎找不到这个问题的答案。我正在使用net-snmp的snmpd进行嵌入式项目。我有额外的代码写入snmpd以支持GET和v2陷阱,但现在我可能需要切换到v3陷阱/通知。

所以,这是我的问题:

假设我已经设置了我的v3密码,加密等,是否有send_v2trap()函数的v3模拟?我无法想象它就像send_v3trap()一样容易,但必须有一种直截了当的方式。

另外,我严格限制在C.我想在其他语言中使用net-snmp绑定可能会更容易,但这对我来说不是一个选择。

1 个答案:

答案 0 :(得分:1)

来自netsnmp_trap_api(3)

   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.

这似乎表明同一个函数也应该能够发送v3陷阱(因为v3陷阱与v2陷阱相同)。

此外,查看代码(具体来说,agent/agent_trap.c),确实可以看到您的初始猜测是正确的,并且send_v3trap()函数存在。定义上面有一条评论,说:

Similar to send_v2trap(), with the added ability to specify a context.  If
the last parameter is NULL, then this call is equivalent to send_v2trap().

希望这有帮助。