Commit Graph

269 Commits

Author SHA1 Message Date
mentor
52319f4d34 Remove humourous typo
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3223 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-20 03:34:45 +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
249e5b919b Bad merge from r3161; see r3123 for rationale
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3204 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-18 17:26:28 +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
981463bb22 Minor formatting
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3200 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-17 23:31:09 +00:00
mentor
bd7108a853 Do not try and find a device from a non-existent SKB
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3199 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-17 23:22:51 +00:00
mentor
888266fa0e Revert some r3164 - was only meant ot have one file in it
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3167 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 20:11:38 +00:00
mtaylor
c55568ef0d DFS and FCC requirements pretty much make the madwifi-specific 'CSA PROTECTION PERIOD' violate compliance with the regulations. This is being commented out in preparation for merging the DFS compliant code into the trunk
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3166 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 20:11:27 +00:00
mentor
63ccd5bbe2 Remove unneccessary node unreference - it is handled in ieee80211_dev_kfree_skb
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3164 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 20:09:34 +00:00
mentor
5f4816e17e Add ieee80211_skb_copy_noderef, which hopefully does what it says on the tin (i.e., copies a node reference, not a pointer, from one skb to another).
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3163 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 20:07:34 +00:00
mtaylor
92c62d977e More changes from madwifi-dfs that are either definitions or missed changes that should not have been on the feature branch.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3162 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 20:01:39 +00:00
mtaylor
909dc70af4 More changes merged over from madwifi-dfs that seem to have been missed
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3161 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 19:45:36 +00:00
proski
d01fbe3c85 Annotate len in struct l2_update_frame as big-endian
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3156 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 04:08:40 +00:00
mentor
fa8be6633f Fromatting cleanup for r3152. To deal with a maximal 80C line length some clearly very silly things have had to be done; I think this is proabbly a goo dindication that code needs to be refactored or split out into seperate functions.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3155 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 01:41:39 +00:00
mtaylor
ec46fcf728 Merge from madwifi-dfs r3150. Fixes for AP+STA mode state machine logic
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3152 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 01:04:01 +00:00
mtaylor
e3d16ecc8f More stuff that should have been in r3140. Sorry, teasing apart a rather long diff.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3148 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 00:40:11 +00:00
mtaylor
132f01bad9 Fix for bridging. We modify the packet's contents. Linux bridging code assumes it can clone the packet and send it to multiple interfaces without having it changed out from under it. Therefore, we need to clone each skb prior to modifying the copy. This fixes some very nasty bugs with bridged VAPs (esp with multiple VAPs in a bridge and multicast/broadcast traffic).
The symptom would be fragments of 802.11 header showing up in the ethernet header because of skb header offsets being corrupted by MadWifi devices on lower ports which then get forwarded as-is to wired ports.

Sorry for the lame explanation, but the short end of the story is that you have to copy the skb before you modify it if you are going to play nice with bridging.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3146 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 00:21:23 +00:00
mtaylor
d246553128 Switch from clone to copy. Contents may be changed.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3144 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 00:16:07 +00:00
mtaylor
a5f8c2e99b I missed part of r3140. Pinning the node with an extra refcount that is released on cleanup.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3142 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 00:14:02 +00:00
mtaylor
56d4a86372 Fix for a defect where WDS nodes were expired. Never time them out.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3140 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 00:08:14 +00:00
mtaylor
050d239b51 Log an error when node allocation fails
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3138 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 00:06:30 +00:00
mtaylor
e43eb9472d Fix for NULL dereference in skb tracking code
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3136 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 00:02:50 +00:00
mtaylor
e6a0fd9b49 This patch refactors the layer 2 update frame sending logic into two routines. Both RNR and XID frames are sent to update bridges. The RNR is probably not the best way to update L2 bridges. It's basically telling the bridges and switches that the MAC is not able to receive traffic (i.e. congested or down) and we never send any other L2 packets to counteract any side effects of this. I also found that it didn't seem to be updating every MAC table on every bridge. XID, however, is the correct way, according to my research and we send XID to inform the bridges of the new location of the MAC as dictated by the standards. I left the RNR in there for good measure, since it doesn't appear to have any ill effects for anyone. (Hostapd ALSO sends XID when you are using hostapd... the redundancy is harmless and allows madwifi to operate correctly when using open or WEP protected modes without hostapd).
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3134 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 00:01:06 +00:00
mtaylor
e7ccdf6be3 When IFF_MULTICAST was not enabled on the vap, we used to skip some filtering that prevents reception of your own multicast traffic. Then we would procede to ignore the fact that IFF_MULTICAST flag was disabled and send anyway.
I've fixed the logic so that multicast is dropped, with an error when disabled.  I don't think this is a valid configuration.  Also, we don't skip the filtering logic so that our own multicast traffic doesn't come back to us (looking like a bridging loop). 


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3132 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-15 23:54:34 +00:00
mtaylor
f2bbcd9fa2 Use clone instead of copy because the contents of the frame may be modified.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3130 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-15 23:46:22 +00:00
benoit
56f411f3c0 Fixed a kernel panic due to incorrect linux API use
hard_start_xmit() functions must either return NETDEV_TX_OK or 
NETDEV_TX_BUSY (they might also return negative errno values as well, 
like -ENETDOWN)
Correct a small missing static reported by sparse
This revert part of r3075


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3123 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-10 20:10:41 +00:00
mentor
48c02dc865 Update comments and value handling for key indexes to make clear which values should /never/ be used (as per discussion with benoit).
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3111 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-02 23:43:23 +00:00
benoit
b7051ec95d Merge madwifi-dfs to trunk : r3109
Revert to the same API/ABI for crypto (used by hostapd/wpa_supplicant)
as used in 0.9.3.3. Tested with hostapd & wpa_supplicant.
Fixed a minor error in athkey usage display


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3110 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-02 21:48:29 +00:00
br1
fd0bc7d1b2 Added lots of debug to understand & test IBSS merges
from the madwifi-dfs branch (benoit) r3086

Added MAC_FMT & MAC_ADDR macros that can be used as a drop-in
replacement for ether_sprintf(). Fixed some use of ether_sprintf() that
uses the same static buffer twice.

- Without the functional changes.



git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3091 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-28 04:35:23 +00:00
br1
62274c42c9 fixup r3013: remove duplicate line
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3081 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-25 03:17:23 +00:00
mentor
ff673bb684 Rework monitor mode SKB handling, touching shared and cloned SKB handling in the TX path. This patch removes any such processing based on the assumption that the current processing is wrong even in the most conservative case (cloned SKB).
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3076 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-24 01:01:47 +00:00
mentor
6d28f9cb8e Have net80211 hard_start functions return NETDEV_TX_* codes; tidy some headers in the process.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3075 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-23 20:11:05 +00:00
mentor
987156394d Remove some conditional SKB/reference handling.
* packets dropped in ath_hardstart are cleaned up there, so cleaning up in parent_queue_xmit is an error
* packets in ieee80211_pwrsave must always have a reference in the cb, so it is better that is fails noisily otherwise


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3074 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-23 20:03:13 +00:00
mentor
2de63dd9d2 Update dev->trans_start in ieee80211_hardstart. This helps with bonding and ARP monitoring.
Signed-Off-By: Jiri Fojtasek <jiri.fojtasek@hlohovec.net>
Ticket: http://madwifi.org/ticket/1700


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3073 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-23 02:57:45 +00:00
mentor
972e313a8e Whitespace near r3071
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3072 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-22 23:39:14 +00:00
nbd
806f7b46e7 fix a double-free bug
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3071 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-22 17:16:06 +00:00
mentor
d959c28466 Lots and lots of formatting and trivial changes that I have been collecting
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3069 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-21 17:55:45 +00:00
mentor
efd52870b7 Change delete key IOCTL request structure to use ieee80211_keyix_t.
Ticket: http://madwifi.org/ticket/1702

WARNING: This changes userspace ABI - hostapd WILL need to be recompiled


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3068 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-21 17:46:02 +00:00
mentor
78670fc260 Remove long lingering references to wlan_auth and wlan_radius.
Ticket: #467


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3067 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-19 23:46:41 +00:00
mentor
86b3543c14 Use standard boolean normalisation in r3062
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3065 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-17 01:16:06 +00:00
scottr
e7f80f68cf Remove the use of a bitwise XOR operation which wrongly assumes its
arguments are boolean.

Originally the arguments were converted to booleans, but r2345 removed
this conversion. I've added the conversion to booleans back again and
removed the use of XOR as it's confusing and unnecessary. 



git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3062 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-14 08:24:27 +00:00
proski
0de09d5a5a Remove separate versions for ath_pci and wlan modules
They are of no use, because they are not updated as the developmnet
continues.  It's better to have a single version for MadWifi.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3039 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-13 02:00:00 +00:00
br1
9055c25cc8 fix two more instances of using the wrong bssid in IBSS mode. there are more
places where we could use vap->iv_bss->ni_bssid instead of ni->ni_bssid but i'm
not sure about the other ones.



git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3036 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-12 11:29:19 +00:00
br1
13e0b924cc fixing up r3013: can't use IEEE80211_VERIFY_ELEMENT on extended rates since that discards beacons which dont contain that element.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3035 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-12 11:04:17 +00:00
scottr
91fcb5214d Stop writing a bogus IEEE80211_RADIOTAP_DBM_TX_POWER field.
We were setting this field to 0 as we had no easy way of determining
what TX power was used to transmit a frame. However, by including this
field and setting it to 0dBm we are saying that each frame is being
transmitted at 1mW, which is incorrect. Better to simply not write the
field at all, however this introduces the need for padding in the TX
header to ensure that the TX_FLAGS field is aligned to a 16-bit
boundary.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3014 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-10 23:13:33 +00:00
br1
45c427d337 guard against 0 rates which can be caused by wrong received frames.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3013 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-10 13:15:06 +00:00
mentor
adb4a563ba Spelling
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3005 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-05 00:55:31 +00:00
mentor
59982ec746 Formatting changes:
* Remove comments that merely duplicate the code (i.e., they don't provide information on Why or explain the opaque)
 * Rename some variable for consistency
 * Line length -> 80 chars
 * Reorder non-dependent code blocks in a function to make it more readable (at least to me)


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3003 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-04 00:43:10 +00:00
br1
07bd310cd3 always use the configured bssid (vap->iv_bss->ni_bssid) as the bssid for
beacons and management frames.

this includes benoits r2993 (from dfs branch) and the patch i sent to the list
for review a couple of days ago.



git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3002 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-03 08:52:34 +00:00
br1
b76a3ed537 allow the use of the ratiotap field IEEE80211_RADIOTAP_DATA_RETRIES to specify
the number of retries for injected frames



git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2992 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-29 01:41:21 +00:00
mentor
79bf489a8d Only try to remove padding in frames where a data body exists. Otherwise, aligning the data pushes some of it out of the buffer.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2991 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-28 21:32:50 +00:00
proski
2f1668b916 Standardize on ARRAY_SIZE, stop defining and undefining N
ARRAY_SIZE is present in all kernel versions we support.  Use it instead
of other definitions.  Define ARRAY_SIZE in the userspace tools as well.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2988 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-28 05:36:29 +00:00
mtaylor
4df2d580a7 port of r2879 from madwifi-dfs
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2980 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-27 10:06:02 +00:00
mtaylor
369b43180b Make skb_destructor debug conditional, even within IEEE80211_DEBUG_REFCNT you need IEEE80211_DEBUG_REFCNT_SKBDEST now... until I figure it out. Reports of problems with aircrack-ng injection.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2972 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-26 07:58:30 +00:00
mtaylor
573cc60660 Uninstall skb debug destructor when skb is passed up
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2970 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-26 06:38:21 +00:00
mtaylor
ec5e8e0a11 Re-enable skb debug destructor, chaining to original when present.
Split skb and node debug flags - one ending in _ref tracks minute changes to reference counts, while the non _ref flag trackes more coarse grained debug events.
Fix a node reference leak before skb_orphan detected by the debug destructor.
Fix debug flag display order for athdebug and 80211debug so that the shorter
name comes first and matches, otherwise only the _ref flags match.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2964 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-25 09:09:24 +00:00
mtaylor
4a2fbe421e Only install debug destructor if destructor is not already used by the kernel,
otherwise we can interfere with normal cleanup.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2955 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-25 07:39:48 +00:00
mentor
79e3ccd6ae Formatting changes, parentheses style this time
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2952 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-25 04:08:38 +00:00
mtaylor
e3a6ae05f5 Add linefeeds to block warnings
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2947 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-24 08:40:15 +00:00
mtaylor
5d546c1ea1 Doh! Fix boneheaded mistake.
Preprocessor flag now used to toggle printk output prior to blocking on
a spinlock.

There is of course a chance that the spinlock will be taken between the time we check it and print our little message, but this should still be of some assistance troubleshoot locking mistakes that come up in the future.

If you turn on the flag, you can find out what locks are being contended for and from which functions... i.e. ath_intr fights for a particular lock, etc.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2944 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-24 06:46:19 +00:00
mtaylor
e5854bed77 Added lock assertion macros for all locks. Assert locks in all new _locked functions. Assert lock state in all LOCK/UNLOCK macros.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2938 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-23 23:42:38 +00:00
benoit
8f7da38c30 Fixed a double locking bug - Merge from madwifi-dfs branch
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2936 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-23 22:50:01 +00:00
mtaylor
ea868797b6 Comment out some stuff added after 2.4 kernel. 2.6.0 is just a guess, but should serve as a starting point.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2927 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-22 07:57:43 +00:00
mtaylor
c428bb7406 Remove references to skbuff.input_dev as it seems to have had a relatively short lifespan, despite the references in the textbooks on network internals. ;-)
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2925 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-22 06:57:45 +00:00
mentor
2a7bdfd500 Fix some indentation from a regex gone wrong in r2915
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2918 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-22 02:37:19 +00:00
mentor
5afdef8cae Formatting changes. Mostly line lengths with some whitespace. Also, remove author info from any comments.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2915 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-22 02:08:35 +00:00
proski
22436a7615 Avoid using preprocessor conditionals inside macro arguments
Sparse doesn't like it, and it's ugly indeed.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2914 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-22 01:28:29 +00:00
mtaylor
9dc2e2884a Wrap use of input_dev in preprocessor conditionals. Went away in 2.6.20.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2913 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-22 01:02:08 +00:00
mtaylor
54d2029f21 Fix sparse warnings and compile errors reported with includes in ieee80211_skb.h
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2908 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-22 00:24:26 +00:00
mtaylor
ebe8ee9736 This patch augments the current reference counting code with:
* Counters for total outstanding instances for each resource type (skb, ath_node and ath_buf)
* One pair of acquisition/release functions per resource type in unlocked and one in locked
* Adds some more _debug versions of functions in the call chain that acquire/release resources so that the original func/line in the driver as well as the func/line that affected the resource use can be shown in the trace.  Intermediate stack frames aren't necessary to trace the leaks.
* Changes naming convention for "lock-required" functions to suffix _locked for the versions that expect locking, to be consistent with some other places in the code.
* Consolidate debug messages to the helper functions that actually affect the reference count or acquire/release a resource
* Additional sanity checks and leak detection (esp for detecting node ref leaks through skb)
* skb references are nulled out by the new sbk unref/free function.

I've tested these changes extensively and found lots of cases where we didn't get enough node references when cloning skbuff, and where the kernel drops packets due to performance issues and leaks our node references.

With these changes and the tracing enabled I have verified that:

* TX BUF: tx buffers always go down to zero when the tx queue is done, and you can watch tx queue usage ratio go up and down again as the driver is working.  There are no leaks here at the moment, although there *are* some in the madwifi-dfs branch during CAC at the moment.

* skbuff leaks in all the common flows are fixed.  We were leaking node references in a lot of places where kernel was dropping skb's due to congestion and we were failing to increment node references when cloning skbuffs.  These are now detected, as are skbuffs that are reaped by the kernel while still holding a node reference.

* the ath_node count works correctly and on an idle system we get about 5 references per station table node, with 2 node instances per VAP.  One for the bss and one for the node in the station table, I believe.  The ath_node count goes up and down but always lands back at the stable number based on the vaps you have configured and the number of actual stations in the station table.  The point here is that it's pretty constant what you will see over time, despite excessive node creation/release in our code during input (esp input_all).  Thank god for the slab allocator.



git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2902 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 20:14:11 +00:00
proski
4ea262da0e Fix sparse warning about ni_tmp
Move the outer ni_tmp in ieee80211_deliver_data() to the scope where
it's used.  Don't set it to NULL, it goes out of scope and cannot be
used elsewhere.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2901 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 19:43:25 +00:00
mtaylor
640f86f562 Put the zeroing of the CB back in. It was supposed to move up to the top and not dissapear. In another change I will commit, some of the logic depends upon zeroing earlier before assigning some values to cb
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2900 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 18:25:00 +00:00
proski
61e57408ea Port some formatting fixes from DFS branch
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2898 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 17:18:09 +00:00
mtaylor
0624a5b03e More SKB_CB macro use and cleanup of dropped references from kernel dropped skbuff
structures.  More refcount bumps due to skb_clone/skb_copy.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2896 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 11:47:50 +00:00
mtaylor
5470ea57f4 More reference count increments after skbuff copies and more releases of
node references if the kernel drops the skbuff.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2895 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 11:43:42 +00:00
mtaylor
0c4e2a41e9 Refcount fix for netif_rx() and friends, returning error and dropping SKB but we were not releasing our node reference.
Refcount fix for skb_clone/etc where we were not keeping reference counter matching the number of skbuff instances and were not having enough references.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2894 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 11:38:42 +00:00
mtaylor
09b1e7bb56 More SKB_CB macro use
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2893 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 11:27:21 +00:00
mtaylor
fea3f135d3 Add missing symbols used by txcont
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2892 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 11:20:36 +00:00
mtaylor
b43465c8f9 Missed checkin for new debug flags
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2891 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 11:16:05 +00:00
mtaylor
831cbc8da0 More use of macros to access cb, per kernel conventions
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2890 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 11:13:54 +00:00
mtaylor
6f471d5f17 Backport of continous transmit function from madwifi-dfs.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2889 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 11:08:51 +00:00
mtaylor
76ef1fd56b Support for setting default VAP debug flags at module load time, so you can
catch messages that occur during VAP startup (before you can possibly invoke 
80211debug).

Support for shared debug flags where they take effect across all devices
(i.e. shared flags in athdebug), and when they take effect across all VAPs
(i.e. shared flags in 80211debug).

Some additional debugging flags, including some in preparation for more leak 
detection code to be merged shortly as well as some from madwifi-dfs.



git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2888 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 10:45:58 +00:00
mtaylor
3511ea0ea9 Add SKB_CB macro and begin using it in a few places, eventually everywhere
we use skb->cb (will be in a subsequent commit/merge) should use 
   this macro.  This is part of a larger batch of changes I am in the process
   of merging that add better visibility into skbuff usage/leaks in the driver.

ieee80211_node_refcnt use atomic_read for consistency and because it is 
   the correct thing to do.  atomic_read is a macro that expands to the same 
   thing in most architectures anyway.



git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2887 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 10:39:06 +00:00
mtaylor
5fadd3cdaa Missed include
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2886 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 10:27:53 +00:00
mtaylor
bf8d475c98 Backport some additional 802.11 defines from madwifi-dfs
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2885 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 10:24:35 +00:00
mtaylor
c5469cede8 More whitespace cleanup backported from madwifi-dfs
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2884 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 10:22:23 +00:00
mtaylor
6d8bbfe271 Remove duplicate copy of VAP_DEV_NAME
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2883 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 10:16:48 +00:00
mtaylor
09e974b2db since ieee80211_input() can be called by ieee80211_input_all(), we need to check that we are not
updating statistics of all known nodes for every inbound packet for an unknown node. 

Merging this fix back from DFS branch, found by Benoit.
-gThis line, and those below, will be ignored--

M    ieee80211_input.c


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2882 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 09:39:42 +00:00
mtaylor
0d6e81e270 Relocate refcounting macro defines so they are visible in more places, in preparation for
merging some other changes that need this.



git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2881 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 09:24:56 +00:00
mtaylor
12aa3fb33e Add parent device to debug output lines from ieee80211_* debug functions.
Add VAP mac address to debug output lines from ieee80211_* debug functions.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2880 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 09:15:37 +00:00
mtaylor
c717e369fd Move DEV_NAME macro from if_ath.c to ieee80211_var.h, and expand on it.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2879 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 09:13:44 +00:00
proski
3bb4181d67 Unexpand tabs in the lines different from the DFS branch
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2871 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-20 20:33:58 +00:00
proski
6b697f9589 Merge whitespace changes made on the DFS branch
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2869 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-20 18:19:55 +00:00
proski
cf73167868 Merge tools/wlanconfig.c changes from the DFS branch
IEEE80211_IS_CHAN_RADAR and IEEE80211_IS_CHAN_PASSIVE should be in the
headers, not in wlanconfig.c


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2866 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-20 17:33:41 +00:00
proski
a08cab1f36 Merge some whitespace changes from the DFS branch
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2864 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-20 17:18:36 +00:00
proski
4e9cfeafe3 Fix MHz spelling (not Mhz) from DFS branch
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2863 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-20 17:02:12 +00:00
mentor
bd6e91ee85 Move pointer reference to after null pointer check.
Ticket: http://madwifi.org/ticket/1650
Original Patch: Signed-off-by: Josef Kriegl <Josef.Kriegl@gmail.com>


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2856 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-16 11:24:22 +00:00
mentor
fba20ff1c0 When setting the desired frequency of a VAP, check for differences against a previous desired frequency rather than ic_bsschan (which may be meaningless).
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2849 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-14 18:12:05 +00:00
mentor
3fbb1d543d Modify ieee80211_saveie and ieee80211_saveath(ewww) to take a NULL source parameter, and to cleanup in this case.
On reception of an Associatiion request, always save IEs correctly (i.e., cleanup up any no longer valid IEs in the case that no new, valid IE is received).

Ticket: http://madwifi.org/ticket/1188
Original Patch: Signed-Off-By: Bas


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2847 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-13 17:45:58 +00:00
mentor
73cbb16ebe Revert r2828 - problem appears to be fixed now
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2845 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-12 19:20:11 +00:00
mentor
3093055903 Stop ieee80211_node_leave from trying to be responsible for the caller's node reference
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2844 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-11 23:22:43 +00:00
mentor
c6eac77db1 Audit of node referencing:
* Enhance readability of some functions WRT node referencing by putting blocks around areas where node references are held
 * Various bits of consistency of the usage of node references; always unreference them at the point at which they are no longer used. Don't reuse variables implicitly.
 * Significant overhaul of the usage of bf_node and ieee80211_cb.ni. Always hold a reference with aforementioned variable and always unreference it properly.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2839 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-08 16:55:02 +00:00
mentor
be343965ed * Update comments on find_*node functions to specifically note node reference acquirement
* Update ieee80211 XR mode to use ieee80211_parent_queue_xmit


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2838 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-08 16:50:00 +00:00
scottr
d07ba1953d Install modules with mode set to 0644 instead of 0755.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2834 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-06 00:41:19 +00:00
mtaylor
39aeb2e4e2 Temporary workaround to refcount bugs exposed by r2792
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2828 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-05 16:34:46 +00:00
mtaylor
b42f24aaf1 Fix a node reference leak in XR mode due to re-assigning a variable without unref first.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2824 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-03 05:49:37 +00:00
mtaylor
3b4dd6cb3a Fix a node reference leak in ieee80211_ioctl_getspy loop
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2823 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-03 05:30:40 +00:00
proski
120d309bc3 Fix sysctl support in Linux 2.6.24
Linux 2.6.24 introduces a sysctl checker that disallows using arbitrary
ctl_name values for sysctl entries.  The entries with non-standard
values should set ctl_name to CTL_UNNUMBERED.

On the other hand, using consistent non-zero ctl_name values is required
for older kernels (tested on Linux 2.4.33.3 from Slackware 11).

Thus the solution is to use CTL_UNNUMBERED on Linux 2.6.24+ and the
original values in the older kernels.  Move CTL_AUTO and DEV_ATH to
include/compat.h and define them correspondingly.

When copying sysctl entries, check procname for being non-zero, since
ctl_name is zero (CTL_UNNUMBERED) on Linux 2.6.24 and newer.

For the same reason, don't use ctl_name to distinguish entries in
ath_sysctl_template, use extra2 instead.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2814 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-10-31 05:39:41 +00:00
mtaylor
d2fd0a8446 Our ABI for hostapd currently uses an old structure that only has one byte for the key index. This means that the 'magic value' of -1 (255) for NONE is passed rather than the larger type we actually use internally. To make comparisons work properly, I'm putting the magic value back at (uint8_t)-1 again so that a key index of 'none' with a MAC address that is passed into madwifi is interpreted correctly and the keys for that station are properly removed, rather than errors returned.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2798 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-10-29 22:33:03 +00:00
proski
b7186f5480 Fix oops due to sysctl table check failure in Linux 2.6.24
Linux 2.6.24 has a sysctl table checker that rejects the tables
presented by the driver.  Make the code survive this condition.  Free
devname (or dev_name) before freeing the table.  Don't do it at the
unregister time, it's too late.

The sysctl tables still need to be fixed.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2795 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-10-29 04:19:27 +00:00
mtaylor
01a0d01102 Fix for a false replay detection when seq was initialized to zero and first packet is also seq zero.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2794 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-10-28 20:40:04 +00:00
mentor
63a7a26a09 Move acquisition of node reference outside macro to ensure node is referenced only once.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2792 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-10-27 17:58:32 +00:00
proski
854dfb1ec8 Linux 2.6.24 moves proc_net inside init_net
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2756 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-10-17 16:59:45 +00:00
mentor
83a58db918 If a rates information element is received that is larger than we will accept, simply take the first maximum size elements and continue, rather than BUG'ing out.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2736 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-10-11 15:40:49 +00:00
mentor
bdd0a567f3 Function declaration whitespace
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2731 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-10-08 11:38:21 +00:00
proski
a5bfbf4367 Fix lock context imbalance in ap_end() found by sparse
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2726 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-10-05 17:01:13 +00:00
mtaylor
d9ca43629b Added support for AP mode scan results to be updated and returned to
wireless tools and other clients.  This fixes:

bgscan
iwlist <iface> scan
wlanconfig <iface> list scan
wlanconfig <iface> list peers

etc...




git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2724 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-10-05 05:52:42 +00:00
mrenzmann
2c0d8db912 Restructuring the repository layout in response to ath5k.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2721 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-10-04 13:07:51 +00:00