我想使用net-snmp为PowerPC板实现SNMP-agent。以前它是使用SMASH实现的。 SMASH有一个解析器可以读取MIB并生成C代码(空白函数实现)
我该如何开始?
尝试从net-snmp查看mib2c工具。它将从MIB生成snmp代理C代码。然后,您必须只满足SNMP请求的返回值。响应SNMP请求(get,set,get-next)的框架通过生成自动完成。
我对此采取了不同的方法。为了更好地与我的C ++生态系统集成,并获得更大的灵活性(特别是在规模上),我:
snmptranslate
(即MIB树)的结果解析为一堆C ++映射和其他容器,以便在代码中使用这使得通知生成变得微不足道(我只需要一些变体类型来生成varbinds,一些PDU构造然后将其余部分留给Net-SNMP的传输功能),尽管对于我所做的请求我必须自己实现表行走(和GetNext /除非你避开所有表,或者至少避免使用复合索引表,否则GetBulk / Set并不简单。
结果是一个快速,强大和可扩展的SNMP代理,具有易于维护和扩展的富有表现力的代码。
你并没有说你正在使用C ++,但这确实让你知道如何在不必购买整个生态系统的情况下挑选Net-SNMP功能。
请注意,我不知道SNMPv3如何适合这个模型;在我成为我的问题之前,我巧妙地离开了公司。 :)