Commit Graph

125 Commits

Author SHA1 Message Date
mentor
c9cc0e7dee Correct pointer arithmetic in the SKB CB.
With thanks (but not copyright ;) to Alessandro Erta


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3337 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-02-05 06:22:32 +00:00
mentor
ebc79fce38 Cleanup up de-MIC failure (in hardware) handling. Apparently, HW sometimes gets this wrong and spuriusly fails valid packets. In all cases, the packets are dropped, but we do extra processing to record statistics correctly.
This changeset adds a node statistic. If this is not liked, I encourage it to be fixed; I might learn something.
Thanks nbd.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3334 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-02-04 00:16:24 +00:00
mentor
c7fba7a6ce This is a HACK.
With 0.9.30.13 ANI control appears to be broken. ANI is designed only for client (STA/AHDEMO) only mode. This function updates the data used for ANI, so we will only call it for client only mode. This may will not affect ANI problems in client only mode.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3321 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-02-02 17:47:59 +00:00
mentor
c0c3125da1 Demote these messages to debug only from informational as they are noisy and unneeded
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3320 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-02-02 17:36:29 +00:00
mtaylor
4d5de4b5a2 This patch adds iwpriv values for setting the
time in ms, or the number of beacons for the
beacon miss alarm.  If we haven't had a beacon
in this period, the alarm is sounded and 
action (i.e. roaming) is taken.

This patch changes the storage of the beacon
miss threshold to integral beacon count but 
corrects the previous intent.

The default beacon miss alarm is going to be
850ms which is half way between the two hard
coded limits that were there before.

The old hard coded limits assumed that the
beacon interval was 100ms and set the limit to
10 (1000ms) for software beacon miss timer 
and 7 for hardware beacon miss timer.

The new default is 850ms (the midpoint between
the two previous defaults).  This value is rounded
up to the next nearest beacon interval.

There is no upper bound on the beacon miss
threshold specified, since it may need to be
wildly inflated with 25ms beacon interval, or
wildly reduced with 1000ms beacon interval.

The minimum is still 2 beacons, regardless of
the beacon interval.



git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3314 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-30 23:50:16 +00:00
mentor
0ad2c8981a Linux 2.4 series compatibility fixes
* Based on patches from nbd
 * av_beacon_alloc code has been reimplemented using atomic bit operations; I think this is safe for SMP


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3310 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-30 20:23:49 +00:00
mtaylor
2b8281ba31 Update comment for why we set sc_beacons to one when resetting for calibration after txcont, cac, or calibration.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3309 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-30 19:34:49 +00:00
mtaylor
6fbbcf00a0 This patch makes some debug messages about
dropped frames a little more consistent and
fixes an issue in hardstart where I was being
too aggressive about requeing.

I thought the slab allocator would stop handing
out skbuff instances before the system was out
of free memory based upon some kind of limit on
the number of buffers, but this was nonsense.

Therefore, it is NOT a good idea to requeue
when skb allocation fails because this pretty
much basically means we are out of free memory.

Keeping the packets we do not have the RAM to
send and then stopping the transmit queue has
very bad side effects under low/zero memory 
conditions.  

Symptoms may include OOM killer and panics,
among other things.

It's better to drop tx packets when there's no
more RAM than to lock all the tx packets up
in the transmit queue.  Even if more skb
become freed up in the slab cache due to 
transmissions already in progress, evil things
still happen.



git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3308 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-30 19:33:38 +00:00
mtaylor
3f689304d6 Fix regression in reverse engineering iwpriv functions now requiring access to sc.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3293 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-28 21:02:07 +00:00
benoit
314dd3b3d8 Merge of madwifi-dfs r3189:
Replace ath_buf_counter by sc->sc_txbuf_counter. Counter is specific to 
a madwifi instance.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3291 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-28 20:44:43 +00:00
mtaylor
d25a86ffe3 Restore some of the BSS synchronization code, but only add the goto that skips the beacon timer updates for IBSS.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3290 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-28 20:32:04 +00:00
mtaylor
e2ac8356c2 Restore some of the BSS synchronization code, but only add the goto that skips the beacon timer updates for IBSS.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3288 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-28 20:26:25 +00:00
mtaylor
c61bd72fbc Remove improper handling of non-cloned frames in hardstart.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3281 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-28 19:27:26 +00:00
mentor
d136b9b1f9 Edit token names for clarity, consistency and length.
This changes some iwpriv names, because I believe they will be more readily usable and understandable


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3279 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-28 01:36:25 +00:00
mentor
70be1ef404 Edit token names for clarity, consistency, and to remove EXTREME length TO THE MAX
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3278 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-28 01:21:19 +00:00
mentor
4a60ebccec 'Context:' is used to denote the kernel context that the process is running in (i.e., hard IRQ, soft IRQ, process, preemption disabled, etc.)
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3276 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-27 19:50:09 +00:00
mentor
cf6e609462 Formatting
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3274 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-27 05:48:23 +00:00
mentor
60e9b06ffa Use a logical XOR
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3273 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-27 04:40:14 +00:00
mentor
28cf53aa95 Fix merge failures - pass one
mdtaylor: bad merging like this really must not continue any longer


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3272 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-27 04:26:38 +00:00
mtaylor
8041aa65bc in ath_intr, we will need HW TSF value if we get
HAL_INT_RX, HAL_INT_RXPHY, or HAL_INT_SWBA.  In
such cases, we will collect the earliest hw tsf
sample we can get and this is passed into send_beacon
and the trigger processing helper functions.

This cuts the number of hardware TSF reads by a 
factor of three per interrupt.  We should be reading
the hardware TSF now once on interrupt entry, and 
once in the second part of trigger processing when
we correct for hardware TSF rollover.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3271 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-27 00:46:22 +00:00
mtaylor
30e6030d36 Remove one unreferenced (but populated) hw tsf and the expensive call.
Move one hw tsf read into a conditional block as it is only used in a debug printout.
Replace one hw tsf read with a reference to the existing hw tsf in the buffer (which is more accurate anyway).



git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3270 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-26 23:55:10 +00:00
mtaylor
c2bce77197 Merge madwifi-dfs branch to trunk.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3268 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-26 20:48:11 +00:00
mentor
0b74c2ebe0 More cases to use ieee80211_skb_copy_noderef
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3262 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-26 17:46:36 +00:00
mentor
776a840f28 The netif_queue appears to be causing some performance problems. I'm going to go ahead and guess that we always want to prod the networking system to start sending packets; thus use netif_wake_queue()
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3261 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-26 17:31:51 +00:00
mtaylor
e479155497 Eliminate ether_sprintf in favor of new MAC_FMT and MAC_ADDR macros (which are faster and thread safe).
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3254 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-25 22:49:48 +00:00
mtaylor
77d9f966c0 - Add a iwpriv function that dumps a mapping of nasty obfuscated
symbol names to their corresponding HAL function names (ah.h) 
- Add a script to generate a SED script from the current HAL (ah.h)
    that will replace instances of obfuscated names with the correct names.
- Add the SED script for cleaning up text containing obfuscated function names for the current HAL


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3244 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-25 00:29:30 +00:00
br1
c585507798 beacon backoff configuration like the 802.11 standard describes
in "11.1.2.2 Beacon generation in an IBSS" the IEEE802.11 standard says, each
STA should...

"b) Calculate a random delay uniformly distributed in the range between zero
and twice aCWmin × aSlotTime,"


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3232 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-22 07:04:39 +00:00
mentor
751589f640 Revert r3220
Since r3076 ath_tx_capture no longer exists, and ath_capture no longer frees the SKB because it was a confusing place to do that. The reverted changeset has been tested to cause leaks, and once reverted the code operates correctly.i

*fwap*


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3222 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-19 15:45:28 +00:00
mtaylor
70339802ca Fix a bug where bf->bf_skb needs to be set to NULL because the skbuff have already been freed by
ath_tx_capture, for each frame in the list we have already freed the skb but the original pointer to
the list of skbs is still in bf->bf_skb.  So when bf is returned with ath_return_txbuf it tries to 
double-free, resuilting a spew of backtraces/warnings when reference debugging is enabled.  

Not to mention the fact that the skb is double-freed.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3220 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-19 01:02:26 +00:00
mtaylor
583f54226e Do not count requeued packets as discarded.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3217 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-19 00:56:25 +00:00
mtaylor
f5245bf3d0 Trivial spelling error
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3215 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-19 00:52:41 +00:00
mtaylor
9132c847c9 Add state debug messages when AP or STA returns to RUN state, indicating
whether or not beacons were going to be reconfigured.  Add logic so that
any time a STA on an AP mode radio comes back to RUN state we will
reconfigure beacons.  Also reconfigure beacons on AP return to RUN state
in a AP+STA configuration.  In this AP+STA mode, we need to be careful to update the beacons any time a STA or AP comes online to make sure the APs start beaconing.  This fixes issues where beacons are not restarted correctly after the station returns from SCAN/ASSOC/AUTH/INIT to RUN state while APs are pending completation of the STAs activity.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3213 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-18 22:14:41 +00:00
mtaylor
9e039dcd6a Two more places where running out of txbuf should cause requeue
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3211 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-18 22:01:03 +00:00
mtaylor
ac89d5ecc3 For any hardstart failure resulting from insufficient resources, set requeue.
On requeue, stop the kernel queue and flag the fact that we stopped it in sc_dev_stopped so that it can be restarted automatically when resources become available.  This is already done in the case of taking a txbuf, but can/should be done for every code path leading to requeuing.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3208 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-18 21:32:17 +00:00
mtaylor
278c57c4e7 Move channel non-occupancy limits out of ieee80211_channel structure to
avoid hitting the size limitations of wireless extensions.  wext is a real pain.
Now the values are stored in ic_chan_non_occupy[] instead.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3207 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-18 21:25:05 +00:00
mentor
a27f996ac4 Comment cleanup. No tagging in comments
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3205 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-18 17:28:43 +00:00
mentor
ac2124cce3 Another pass on r3156:r3200:
* Lots of coding style and formatting, tedious and annoying
 * Quite a few bad merges as far as I can tell; at least one of which was serious - reintroduced a leak


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3202 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-18 01:28:43 +00:00
mentor
beb3ffc4eb Formatting; grammar - r3179
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3197 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-17 02:51:32 +00:00
mentor
307d970bf5 Formatting r3185
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3196 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-17 02:49:14 +00:00
mentor
3dd1a89219 Formatting r3187 - getting slightly annoying now
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3195 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-17 02:48:09 +00:00
mentor
86891cd55e Formatting and style for r3189
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3194 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-17 02:45:41 +00:00
mentor
09ffca4d23 Formatting - r3191
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3193 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-17 02:30:15 +00:00
mtaylor
f1d15f48ce Invoke netif_stop_queue and requeue skb if we run out of txbuf instances in the pool
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3191 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 22:46:31 +00:00
mtaylor
7559e86881 Add support for variable number of VAPs. The hard coded maximum of 4 VAPs is replaced by a module parameter so that you can specify from 2 to 64 VAPs. The only quirk with high numbers of VAPs is that you must not attempt to use staggered beacons because the hardware cannot fire them fast enough. If more than 4 VAP maximum is specified, beacons are always bursted. This code has been tested successfully against 16-VAP APs without problems.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3189 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 22:43:30 +00:00
mtaylor
4bf21e04c5 More meaningful error message
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3187 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 22:29:57 +00:00
mtaylor
1da2be285c Debug output when beacons are reconfigured.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3185 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 22:28:49 +00:00
mtaylor
d25dbe6d49 Add the VAP pointer and nickname when dumping state transitions
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3183 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 22:26:32 +00:00
mtaylor
876563aeb1 Turn off beacon debug
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3181 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 22:24:46 +00:00
mtaylor
6322355756 Add an error if bursted beacons fails to set the buffer address.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3179 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 22:21:51 +00:00
mtaylor
4183b417a2 This is another case where we are getting clones of SKB and then modifying the header or the data. In a bridge, this is bad behavior. This fixes more bridge anomalies where incorrect header/data are sent to wired ports when packets are previously forwarded over madwifi port(s).
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3176 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 22:17:53 +00:00