for your test 1, you need to monitor the pot client lists and also capture the traffic - different clients do different things, your client may only be sending a few probes out despite the fact you're calling scan. It may get more agressive when SNR is low (thats the point being made in that presentation i added the link for just now). Does the scanning API you are calling send bcast or directed, does it try to send directed probe to every saved network, do you have enough saved networks ? try monitoring the pot client list of a near by ap and assess the behavior (and try to sniff it if you can)
Not sure this is part of test 1 or something else, but:
"The client phone is showing YouTube at a fixed place for 5 minutes - over the period, only the associated AP reported snr values."
do you know it's even scanning in this case ? as noted in those slides if it's an iphone5 it wont scan at all. If its android then again it might not be as frequent as you think, i.e.
"When connected to a network, with data traffic and good signal (not mobile and/or mobile within good AP signal range), S5 probes with a 313, 1813 and 1430 second cycle "
for test2, outdated numbers maybe due update lag and/or pot-client-list -> client-list transition. But, no matter whether the others update or not, the only valid data point is from the associated AP; the others serve no useful purpose except for coarse grained location detection
The MIB is not a practical way even for a single client to extract SNR in semi real time, you need the CLI for that, and even that is not so practical, you need to do something like this:
mac="64:76:ba:ae:2f:7e"
do {
show ap association client-mac $mac # find the AP
show ap debug client-table ap-name $ap | include "---,MAC,$mac" # current SNR etc.
show ap remote debug mgmt-frames ap-name $ap | include "Tr,Ti,---,$mac" # assoc frames
sleep 5
}
the above is easily automated with our AirRecorder tool - if you want to know more let me know, in fact you could collect the pot-client-list, client-list and the SNR info as shown above, with just 4 lines of code.
regards
-jeff