Trouble with php-snmp

Yesterday, a forum post hit me right and square. First, I though we were seeing another „this device does not support snmpbulkwalk“ issue. But as the OP provided some more hints about results obtained by a wireshark trace, things became complicated.

The issue was observed while running a „Verbose Query“. I was stuck. „Verbose Query“ uses function run_data_query, and this in turn runs a plain cacti_snmp_walk. When using php-snmp, this has no option to run snmpbulkwalks. There is no such thing as a snmp2_real_bulkwalk or the like.

But a wireshark trace revealed my error. There was indeed a bulkwalk, using max-repetitions of 20. So it seems, that php-snmp switches to bulkwalk on its own. No option to suppress this not to govern the max-repetitions.

As I knew, a colleague recently was working on php-snmp implementation and I asked him to help. He pointed me to the new php-snmp class implementation, which allows to change max-repetitions. So this will be the direction to solve that issue. The implementation has been made available with PHP 5.4.

In case of trouble, Cacti users of PHP < 5.4 will have to switch to SNMP V1 to deactivate bulkwalks when their target devices don’t like those.