python-agentx: Registering variables repeatedly

All good things come in threes… consider the following code snippet that uses python-agentx: axd.RegisterVar(“a”, 0) axd.RegisterVar(“b”, 1) snmpwalk will show both a and b correctly. Now consider the following code: axd.RegisterVar(“a”, 0) axd.RegisterVar(“b”, 1) axd.RegisterVar(“a”, 2) snmpwalk will show a only. Which is a bug. Why?

“Error: OID not increasing” when declaring SNMP tables with python-agentx

At work, I’m currently working with python-agentx to implement an AgentX-based SNMP agent. Testing around with snmpwalk, I got the following error: $ snmpwalk -Of -v2c -c public localhost DFS-HW-MIB::cpus .iso.org.dod.internet.private.enterprises.dfs.systemhaus.dfsHwMIB.cpus.cpusNumber = INTEGER: 2 .iso.org.dod.internet.private.enterprises.dfs.systemhaus.dfsHwMIB.cpus.cpusTable.cpuEntry.0 = INTEGER: 0 .iso.org.dod.internet.private.enterprises.dfs.systemhaus.dfsHwMIB.cpus.cpusTable.cpuEntry.cpuIndex.1 = INTEGER: 0 .iso.org.dod.internet.private.enterprises.dfs.systemhaus.dfsHwMIB.cpus.cpusTable.cpuEntry.cpuIndex.2 = INTEGER: 1 .iso.org.dod.internet.private.enterprises.dfs.systemhaus.dfsHwMIB.cpus.cpusTable.cpuEntry.cpuStatus.1 = INTEGER: OK(1) .iso.org.dod.internet.private.enterprises.dfs.systemhaus.dfsHwMIB.cpus.cpusTable.cpuEntry.cpuStatus.2 = INTEGER: OK(1) .iso.org.dod.internet.private.enterprises.dfs.systemhaus.dfsHwMIB.cpus.cpusTable.cpuEntry.cpuNumCores.1… Continue reading “Error: OID not increasing” when declaring SNMP tables with python-agentx

The shortcomings of the Linux LEDs API

In a recent post I mentioned that the Linux kernel has a dedicated API for LEDs. This API is composed of the drivers/leds/ directory and the additional <linux/leds.h> include file, Documentation exists in form of the Documentation/leds-class.txt file. To quote: “The underlying design philosophy is simplicity. LEDs are simple devices and the aim is to… Continue reading The shortcomings of the Linux LEDs API

OpenWrt Remote debugging

While analyzing hostapd and trying to find out where to hook in after WPA pairwise key exchange has completed, the need arose to get a gdb running on the target platform (the EPIA MII), so I could break in the function and obtain a backtrace.