Q:

How does access point changing populate MAC addresses in switch tables?

Let us assume that I have a large corporate WLAN network with many access points having the same SSID. The WLAN access points are connected to each other by learning Ethernet switches. Now, each client in the WLAN network has its own MAC address.
When a client moves from the area of one access point to another, it has to perform an access point change because its signal level went down. AFAIK, the MAC address of the client does not change during this procedure.
My question is, how do the switches in the network learn that the client has moved to another access point if the client is only consuming downlink data? Let us assume that there is a mostly quiescent TCP connection that has data transfer only in the downlink direction at 10-second intervals, with no keepalive. Of course, there will be uplink ACKs but only as a response to the downlink data.
When the client has performed an access point change, if there's no uplink data, my understanding is that the switches will direct the downlink TCP data to an incorrect access point until the (MAC address, port) pairs in the switches expire.
Is there some kind of dummy uplink packet sent after an access point change to inform the switches in the network that the MAC address has moved to a new switch port?
Or is there some kind of mechanism where the old access point will redirect the packet to the new access point?

A:

So, first of all, TCP is two-way protocol. If there's data travelling one way, you'll have data travelling the other way as well even if only just for the ACKs. You are correct however, that client MAC doesn't change.
The AP association/reassociation/leaving are quite interesting, and it's actually very chatty before AP and Your host assume they have a 'link up' between each other - sometimes it's 'only' four frames being exchanged, but with more security, it's usually whole discussion taking place over wireless. Take a look here for technical description of the process from 802.11 side:
http://www.cisco.com/c/en/us/support/docs/wireless-mobility/wireless-lan-wlan/116493-technote-technology-00.html
Roaming itself became also quite complex process, with natural push to provide seamless mobility for the host roaming. Take a look at 802.11r if You're interested in the details:
https://en.wikipedia.org/wiki/IEEE_802.11r-2008

