无线漫游相关的协议主要有802.11k/r/v
802.11k
Radio Resource Measurement (RRM)
主要是用来测量、报告资源情况。漫游的先决条件是要知道哪个AP信号好,这个就是802.11k干的事情。
ap或sta均可以发起测量请求,并响应测量报告。
802.11k describes the following measurements:
Beacon
Frame
Channel Load
Noise Histogram
STA Statistics
Location Configuration Information
Neighbor Report
Link Measurement
Transmit Stream/Category Measurement
其中漫游常用的是Beacon和Neighbor Report。
AP主导的漫游,由AP发起Beacon测量请求,sta向AP报告周边ap的beacon信号强度。AP基于此进行漫游决策。
Sta主导的漫游,由sta发起Neighbor Report,AP报告可漫游周边ap的情况给sta。这样sta就不用费力就扫描和猜测。
802.11r
Fast BSS Transition
快速BSS切换。相对于802.11i的BSS Transition,切换速度有了极大的提高,可以从500ms级别提升到40ms级别。
有两种切换方式
over the air,直接切到target ap。
over the ds,通过current ap走当前链路切换到target ap。
802.11v
Wireless Network Management (WNM)
和漫游相关是BSS Transition Management (BSTM)。
当AP确定sta可以关联到其它信号更好的ap时,AP向sta发送一个BSTM Request帧。
openwrt uci配置
config wifi-iface 'default_radio1'
option device 'radio1'
option network 'lan'
option mode 'ap'
option ssid 'OpenWrt_5G'
option encryption 'psk2+ccmp'
option key 'abc123654.'
option ieee80211k '1'
option ieee80211v '1'
option bss_transition '1'
option time_advertisement '0'
option wps_pushbutton '0'
hostapd.sh
翻译uci配置成hostapd的配置
如果开启80211v,则开启下列hostapd配置
time_advertisement
time_zone=
wnm_sleep_mode
bss_transition
如果开启80211k,则开启下列hostapd配置
rrm_neighbor_report=1
rrm_beacon_report=1
80211r,hostapd配置比较复杂一点
mobility_domain=
ft_psk_generate_local=
ft_over_ds=
reassociation_deadline=
wpa_key_mgmt
等等
hostapd_cli
发起beacon测量请求
req_beacon <addr> [req_mode=] <measurement request hexdump> = send a Beacon report request to a station
发起Bss transition
bss_tm_req = send BSS Transition Management Request
Roaming in Wi-Fi Networks
https://wifihelp.arista.com/post/roaming-in-wifi-networks
Openwrt 802.11k/v/r related
https://forum.openwrt.org/t/finally-got-802-11v-working-fully-few-pointers/56678
https://github.com/berlin-open-wireless-lab/DAWN
https://forum.openwrt.org/t/what-is-the-state-of-802-11r-k-and-v-support-in-openwrt/62363
https://forum.openwrt.org/t/how-does-rrm-work/32635
Wi-Fi network roaming with 802.11k, 802.11r, and 802.11v on iOS, iPadOS, and macOS.
https://support.apple.com/en-us/HT202628
cisco Networking, Why the 802.11k and Neighbor Report are Important?
https://blogs.cisco.com/networking/why-the-802-11k-and-neighbor-report-are-important
cisco Networking, What is 802.11r? Why is this Important?
https://blogs.cisco.com/networking/what-is-802-11r-why-is-this-important
openwrt hostapd.sh
hostapd.conf
https://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf
h3c 02-802.11v configuration
zhihu BSS Transition Management
https://zhuanlan.zhihu.com/p/472071741