I am setting up a wifi system using serveral accesspoints (ap) based on OpenWrt. The ap are 802.11n series. Currently the system works properly. The missing part I feel is roaming. Some end-user devices are not roaming enabled, and stick to the first connected ap, even if it reach the one that has stronger signal. My requirement is to enable roaming for devices.
Some devices which has implemented the 802.11k/v protocols are possible to make roaming between access points and others are not.
My studies so far ..
I can get the signal strength for each stations (end-user device) by capturing the prop-requests from them. Based on the data gathered from multiple ap, it is possible to guess, which station is near to which ap. If I want to move a station from one ap to another, I should first disconnect it from the one which is already connected. Then the station would automatically connect to the nearest one. (Correct me if I am wrong or there is something better..)
My question is, How can I disconnect a station from ap? (Is it through the hostapd or by sending a disassociation packet manually?). Please explain.