From most network devices you can get fdb tables in librenms nowadays which makes it possible to search for mac/ip addresses in librenms to assist in finding devices. However, for devices connected with wifi to AP’s controlled by Cisco WLC that information is not available in LibreNMS. I guess the fdb table equivalent is in each AP, but these cannot be polled by snmp (https://supportforums.cisco.com/t5/security-and-network-management/snmp-config-on-a-lwapp/td-p/1620662). Instead that information is collected by the WLC. So how can I get that information into LibreNMS?
Glad I ran into your post. I did test that script and it does work. Put it as a gist for anyone else who wants to try.
It will take time for me to review all the wireless code and see where to put this in. I think initially we just need to get the discovery part to work properly then we can begin polling. What always gets me is how the UI should look.
I guess it would make sense if there is a new tab under the WLC device called “Wireless Users”. In there we can probably get away with a simple table like the dump on the script.
User Mac, IP, Username, AP Mac, SSID
For me, the user name is the most valuable since having hundreds of users we want to pin point where the user is located in a large building.
Add the clients list in the FDB database
– Easier to code (Cause the DB stuff is already there, only discovery code should be added)
– Less details (no username for users connected in 802.1X for instance, only the MAC address + VLAN could be displayed, exactly as a standard FDB table)
Create a new DB table
– More difficult to code
– More capabilities (username, AP Mac, RSSI and other radio parameters, and even history could be implemented.)
– AP radios are already discovered by LibreNMS so these could be linked (instead of adding the AP MAC string into a new table, use a ID to the existing access-points table. )
The 1st option is fairly easy, and you could look at existing FDB table code, to add a conditionnal discovery for Cisco WLC. Opening a PR (a draft one) will make your code visible to the community, so you can receive help.