Room: DMS 1160
Testing the net80211(4) presents several challenges, as it must function with both the 802.11 device driver and the underlying hardware (or firmware). It is highly unlikely that 802.11 drivers are completely free of bugs, as they rely on hardware components. An 802.11 driver with no hardware dependencies could be created by simulating the hardware within the driver. This would allow all operations to be carried out in software, simplifying the process of identifying and fixing bugs compared to working with hardware directly.
FreeBSD’s wtap(4) driver is an all-software 802.11 driver that was introduced by Monthadar Al Jaberi and initially supported the 802.11s mesh mode. Since then, we have added support for various other operating modes, including IBSS mode, STA and HostAP mode, and monitor mode.
These added capabilities allow us to test net80211(4) more thoroughly and make wtap(4) a more general simulator for 802.11. Additionally, we have enhanced the 802.11 capturing facilities called radiotap on wtap(4) (the same patch as in monitor mode). When used in conjunction with monitor mode, we can get more information in capturing 802.11 frames and use them for debugging purposes.
To automate the building and testing of wtap(4), we have created a test script using the atf-sh(3) framework patch. In order to simplify the difficulty of building the environment of wtap(4), we have introduced the user-space tool wtapctl(8) patch.
Thanks to wtap(4), we can thoroughly test net80211(4) in various operating modes. In the future, we plan to enhance wtap(4) with key management and encryption capabilities to enable more comprehensive testing of wpa supplicant(8) and hostapd(8). And supports important features in 802.11n HT (high throughput), such as A-MPDU to facilitate testing HT-related functions in net80211(4).