Wiperf: A wireless client performance probe mode on the WLAN Pi

I've had a number of occasions when it would have been really useful to deploy a wireless client device on a WLAN to monitor performance over time from a client perspective. Too often, when troubleshooting a wireless network, everything looks fine from the data provided by your infrastructure kit, but the user experience is a whole different story. Unfortunately, when this requirement has arisen, persuading anyone in the organization in which I was working to invest in a wireless probe-type solution has been an uphill battle.

Around 18 months ago I got to the point when working on an issue that I could not progress and had no choice but to roll my own rudimentary client probe solution. It was a Python script installed on a Raspberry Pi acting as a client on a particular SSID that was having issues. It reported wireless connectivity data and a few client tests (e.g. speedtest & ping) to a Google spreadsheet. The same code also ran on a WLAN Pi, so that I could have two probes running! The data they provided was invaluable in giving me an insight into what was going on over time on the network that was suffering issues.

After that particular “gig” was complete, I moth-balled my probes, but was hugely impressed with the insights they had provided.

Around 4 months ago, my friend Kristian Roberts dropped me a note on Slack asking about using the WLAN Pi as a client probe to gather connectivity data and forward it in to Splunk for reporting. In his day-job, he already used Splunk to do some pretty fancy reporting based on various inputs from his wireless network kit.

I pulled out my old Python scripts and started looking at how I could quickly modify them to send data in to Splunk. Unfortunately, when you look at code you did a few months ago, you start to see how you could have written it better and start to come up with new ideas.

Anyhow, here we are, four months later and I’ve got to the point of having a package that I’m relatively happy to share. There have many evenings of testing, tweaking and brainstorming but we finally have the newly named “wiperf” package ready to go.

Wiperf Overview 

In brief, wiperf is a series of Python modules that are included in the WLAN Pi image that will flip the WLAN Pi in to a wireless client mode, join an SSID and run a series of configured network tests. The tests include Ookla Speedtest, iperf3, ping, DNS, DHCP and http. Once the tests have been run, the results are returned to a Splunk server which stores the data and allows the creation of some very nice historical reports (see the example below).

Setting up the WLAN Pi to run in wiperf mode is very easy. There are just a couple of configuration files to edit for the wireless connection details and the test configurations. Then, it’s just a case of flipping the WLAN Pi into wiperf mode via the front panel buttons. To find out the full details of setting up the WLAN Pi, start here.

Building a Splunk server platform is not as bad as you might expect. You can install it on a Windows, Mac or Linux platform and it’s pretty much the usual executable download and next..next...next install wizard you expect for many applications. Although Splunk is a paid-for package generally, we can run on the free tier as our data volumes are so low.

Once Splunk is installed, a few reporting dashboards need to be configured in Splunk and then you’re good to go. Thanks to the fantastic help I got from Kristian, there are a series of pre-canned report files we’ve built that can easily be used to create your dashboards.

You can find the full details of how to set up Splunk and create your reporting dashboards in the following document I created: Splunk Install and Config Guide.


Wiperf is a great tactical tool for setting up a wireless client probe when you’re looking at issues on a network or maybe want to do a little performance trending.

It is a little bit clunky to set up compared to the full-blown paid-for options available out there, but it’s a useful tool to have in your bag. It’s not a scalable performance monitoring solution, but I think it probably has quite a lot of value in demonstrating the value of the additional client-level insights a commercial offering provides. This will hopefully encourage decision makers to invest in a more scalable, fit-for-purpose commercial solution that will no-doubt provide an excellent return on investment.

I hope you have fun tinkering with wiperf and it provides some useful insights for you. Please take the time to consult the various documents I have created below to help you on your journey with exploring wiperf.


Popular posts from this blog

The 5GHz “Problem” For Wi-Fi Networks: DFS

Microsoft NPS as a RADIUS Server for WiFi Networks: SSID Filtering

Microsoft NPS as a RADIUS Server for WiFi Networks: Dynamic VLAN Assignment