我正在尝试使用 Xilinx SDK 中的 LWIP 库在设备上实现 SNMP 代理。
我成功实现了代理并让代理在我的设备上运行以响应命令(snmpget、snmpset、snmpwalk)。
但是,如果 OID 必须返回长度 > 255 的八位字节字符串,则代理行为可疑。 当我尝试传递长度 >255 的八位字节字符串时,我没有收到关于该 oid 的数据,之后代理断开连接,并且不会响应任何进一步的命令。
长度 <255 的 snmp 八位字节字符串被正确接收,没有问题(没有问题).. 我想知道 LWIP SNMP Agent 是否对八位字节字符串的大小有限制..??
最佳答案
我找到了解决方案...!!!
在文件 src\lwip-1.4.0\src\core\snmp\msg_in.c 中,处理传入消息的是将字符串的长度从 u16_t 转换为 u8_t。它表示该范围现已弃用为 (0-255)。所以问题。
我将限制我处理长度 > 255 的八位字节字符串的 u8_t 更改为 u16_t。
现在 LWIP 库能够处理长度 > 255.. 的消息
谢谢..!!!
关于snmp - 允许使用 LWIP 从 SNMP 代理发送的八位字节字符串的最大长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27396666/