我想使用net-snmp实现PowerPC板的SNMP-agent。之前用的是SMASH。SMASH有一个解析器,可以读取MIB并生成C代码(空白函数实现)。
我该如何入手?
我采用了不同的方法。为了更好地与我的C++生态系统集成,并获得更大的灵活性(特别是在规模方面),我:
snmptranslate
(即MIB树)的结果解析为一堆C++映射和其他容器,以供代码使用这使得通知生成变得轻松(我只需要一些变体类型来生成varbinds,一些PDU构造,然后将其余部分留给Net-SNMP的传输功能),虽然对于请求,我确实必须自己实现表行走(并且GetNext/GetBulk/Set除非您避免所有表格,否则不是微不足道的,或者至少避免复合索引表)。
结果是一个快速、强大且可扩展的SNMP代理,具有表达力强的代码,易于维护和扩展。
您没有说您正在使用C++,但这确实给出了一个想法,即如何挑选Net-SNMP功能,而不必完全购买其整个生态系统。
请注意,我不知道SNMPv3如何适应这个模型;聪明地在这成为我的问题之前,我已经离开了公司。 :)