On 10/12/11 00:30, Steven Chamberlain wrote:
> Issue 5:  ... I noticed a device stop
> responding to Association Requests;  with hostapd still running

> Issue 6:  deauthentication frames are constantly sent out to devices
> that haven't been in range for hours, to the same BSSIDs over and over;
>  as if it is about to purge them from the node cache, but actually
> doesn't;

Hi,

I had some new thoughts on this;  if nodes are really not being purged
out of the cache, that would explain why new Association Requests are
ignored.  The fact I saw deauthentication frames being sent means the
cache was indeed full -- it doesn't garbage-collect until then:

> 1121:                if (ic->ic_nnodes < ic->ic_max_nnodes)
> 1122:                        break;

(Before rev 1.63 / kettenis, nodes were never expired at all due to
broken logic here).

I wonder if it is right to send deauth and only call node_leave()...  if
the client is no longer in range / responding, and doesn't respond to
confirm the deauth, would that be enough to really clear the node out of
the cache?  Or should free_node() be called too (removing the 'else'
keyword)?

> 1130:                /*
> 1131:                 * Send a deauthenticate frame.
> 1132:                 */
> 1133: #ifndef IEEE80211_STA_ONLY
> 1134:                if (ic->ic_opmode == IEEE80211_M_HOSTAP) {
> 1135:                        splx(s);
> 1136:                        IEEE80211_SEND_MGMT(ic, ni,
> 1137:                            IEEE80211_FC0_SUBTYPE_DEAUTH,
> 1138:                            IEEE80211_REASON_AUTH_EXPIRE);
> 1139:                        s = splnet();
> 1140:                        ieee80211_node_leave(ic, ni);
> 1141:                } else
> 1142: #endif
> 1143:                        ieee80211_free_node(ic, ni);
> 1144:                ic->ic_stats.is_node_timeout++;


The box that exhibited this problem is one in a fairly 'public' place,
where people come and go carrying wireless devices that probe/associate
and then disappear.  This box has been known to stop accepting
connections from legitimate clients several times a day, until it is
power-cycled.

Regards,
-- 
Steven Chamberlain
[email protected]

Reply via email to