lexicographicMode在ASYNCIO bulkCmd

问题描述:

在使用异步pysnmp bulkCmd与ASYNCIO,如果被请求的OID有许多值(如1.3.6.1.2.1.17.4.3.1.2,显示由Cisco交换机学习到的MAC地址),或者如果在一个使用若干的OID请求,我有问题,响应中的OID总数受网络的MTU/MSS限制,这意味着并非所有OID都收到。lexicographicMode在ASYNCIO bulkCmd

这个问题可以如果同步bulkCmd使用lexicographicMode控制,但异步发电机bulkCmd该haven`t选项。

它可以使用的GetNext但它显著减少,因为数据包的增加总数目(每一个OID请求/响应)的性能。 有没有办法使用异步bulkCmd响应收到的控制,所有的“OID子”?

您可以使用maxRepetitions参数限制响应的OID的数量每每个请求的OID?这是example中的50

我相信lexicographicMode选项旨在停止行走MIB一旦最初的前缀超出范围。所以它对消息的大小只有间接的影响,使得它不可靠的目的。

+0

我的问题是,由于最大数据包大小,我没有收到所有必要的数据(OID)。使用asyncio批量请求,只有一个udp数据包可以接收,而不管maxRepetitions的值是多少。但我已经在这里找到解决方案[示例](http://pysnmp.sourceforge.net/examples/hlapi/asyncio/manager/cmdgen/walking-operations.html) - 我可以把批量请求放在while循环和手动控制中,如何很多请求/响应将被发送。 –

+0

'maxRepetitions'参数限制每个请求OID在响应中返回的“下一个”OID的数量。因此,它间接控制了UDP数据包的大小,但它决不会影响你得到的UDP数据包的数量(它总是一个数据包)。所以,就像你说的那样,解决方案是遍历GETBULK,将'maxRepetitions'限制为一个理智的值,不要超大MTU。 –