Does the client device or access point determine when to roam?
The client device determines when it should roam.
How does the client device determine when it should roam?
Typically this decision is based off of the received signal strength indication(RSSI) value of the client's current connection. While it varies by manufacturer, typically the client will start to look for alternative options around an RSSI of -70 dB. The client device needs to see an access point with signal quality that is significantly better than its current connection. "Significantly better" often means between a 10 - 30 dB improvement. Keep in mind that with RSSI, values closer to 0 are better.
For example, if a client device has a signal strength of -70, but sees another access point nearby with a slightly better signal strength of -65, it likely won't roam. If that signal strength was significantly better, say -55 dB, it would be more likely to initiate a roam.
The actual RSSI values used to make roaming decisions depends on the client manufacturer, and different manufacturers are likely to use different settings. Sometimes these settings are adjustable on the client device, however often they are not. They also may not be publicly published.
A WiFi site survey tool should be used to verify there is always at least one access point in all areas that offers a strong signal (ideally no worse than -60 dB).
Do all access points need to be on the same channel?
No, but they all need to use the same SSID and password.
Does 802.11r help with roaming?
802.11r speeds up the initial handshake when the client is connecting to a new access point using the same SSID. It may make the transition quicker, but may not make the client device more aggressive at roaming.
Keep in mind that not all client devices support 802.11r. Some legacy devices may fail to connect to SSIDs with 802.11r enabled.
Is 802.11k and 802.11v supported?
802.11k provides a list of access point neighbors for the current network, giving the client a better understanding of roaming options in the area. 802.11k is now available in the 6.5 firmware.
802.11v provides a method for the access point to initiate a roaming event instead of waiting for the client device to make that decision. 892.11v is not currently supported.
When are the roaming VLANs used?
Roaming VLANs 991 - 994 are used with unbridged SSIDs to help route traffic back to the originating access point the client roamed from. If an SSID is bridged, then the roaming VLAN is not used, client traffic is always bridged directly onto the local network.
Using the roaming VLANs is a more complicated roaming method. If you experience problems roaming on an unbridged SSID, try a bridged SSID to see if it makes a difference. Also ensure the roaming VLANs are enabled on any managed switch ports the access points are connected to.
I see port flapping reports on my switch when clients roam. Is this normal?
Port flapping means the switch cannot determine which port a client's traffic is coming from. This is normal when a client roams between access points via a bridged SSID, as the port their traffic is originating from will have changed. Typically these port flapping reports should be short lived, and stop shortly after the client has completed roaming to the new AP.