Delays from Wifi are one of the biggest reasons why end users end up having a bad experience when trying to use the network. In addition to the latency caused by retransmissions, the speed at which devices associate and re-associate is a factor that is mostly unseen by the end user but can result in serious frustration. Testing Wifi association behavior is one of the most basic metrics to gain about your DUT at this layer.
While there are plenty of ways to examine Wifi behavior and its affect on user
experience by testing
things like applicaiton latency, CDRouter contains a
wifi.tcl test module
that specifically exercises Wifi association in a number of ways.
disassociation and association may behave differently in each device depending
on the order in which the address assigned with DHCP is released, if at all. The
first three tests in the CDRouter
wifi.tcl exercise this in three different ways:
Given the stateful nature of these systems, a DUT may arrive in a bad state depending on the order in which these are done.
In its initial beacons, Wifi endpoints advertise which phy and security modes they support. When the DUT advertises a large set of these, it’s important to test that it will allow a station to connect using those options. Our test in CDRouter attempts to connect using all advertised modes and combinations of modes to make sure the DUT will actually accept connections using these modes. This also involves making sure the beacon advertisements are conformant.
The meat of Wifi association testing comes from performance - can a Wifi router or AP sustain repeated disassociation and association at high frequency? As we like to stress in our other performance related tests, repeated, normal protocol behavior may be slowly generating memory leaks or other issues that will cause a DUT to eventually fail in sometimes catastrophic ways.
Testing the base functionality of your Wifi implementations overall, in addition to physical layer testing, is key to ensuring you’ll have robust products for your customer or end user.