mac80211_hwsim - 用于 mac80211 的 802.11 无线电软件模拟器

版权:

© 2008, Jouni Malinen <j@w1.fi>

此程序是自由软件;您可以根据自由软件基金会发布的 GNU 通用公共许可证版本 2 的条款重新分发和/或修改它。

简介

mac80211_hwsim 是一个 Linux 内核模块,可用于为 mac80211 模拟任意数量的 IEEE 802.11 无线电。 它可用于测试 mac80211 的大多数功能和用户空间工具(例如,hostapd 和 wpa_supplicant),其方式与使用真实 WLAN 硬件的正常情况非常匹配。 从 mac80211 的角度来看,mac80211_hwsim 是另一个硬件驱动程序,即,使用此测试工具不需要对 mac80211 进行任何更改。

mac80211_hwsim 的主要目标是使开发人员更容易测试他们的代码并使用 mac80211、hostapd 和 wpa_supplicant 的新功能。 模拟无线电没有真实硬件的限制,因此很容易生成任意测试设置,并始终为将来的测试重现相同的设置。 此外,由于所有无线电操作都是模拟的,因此无论法规如何,都可以在测试中使用任何通道。

mac80211_hwsim 内核模块有一个参数“radios”,可用于选择模拟多少个无线电(默认为 2)。 这允许配置非常简单的设置(例如,只有一个接入点和一个站点)或大规模测试(具有数百个站点的多个接入点)。

mac80211_hwsim 的工作原理是跟踪每个虚拟无线电的当前通道,并将所有传输的帧复制到当前已启用且与传输无线电位于同一通道上的所有其他无线电。 使用 mac80211 中的软件加密,以便在虚拟空中接口上实际加密帧,从而可以更完整地测试加密。

创建了一个独立的全局监控 netdev hwsim#,与 mac80211 无关。 此接口可用于监控所有传输的帧,而与通道无关。

简单示例

此示例演示如何使用 mac80211_hwsim 模拟两个无线电:一个充当接入点,另一个充当与 AP 关联的站点。 hostapd 和 wpa_supplicant 用于处理 WPA2-PSK 身份验证。 此外,hostapd 还在处理关联的接入点端。

# Build mac80211_hwsim as part of kernel configuration

# Load the module
modprobe mac80211_hwsim

# Run hostapd (AP) for wlan0
hostapd hostapd.conf

# Run wpa_supplicant (station) for wlan1
wpa_supplicant -Dnl80211 -iwlan1 -c wpa_supplicant.conf

hostap.git 中提供了更多测试用例:git://w1.fi/srv/git/hostap.git 和 mac80211_hwsim/tests 子目录 (http://w1.fi/gitweb/gitweb.cgi?p=hostap.git;a=tree;f=mac80211_hwsim/tests)