Commit Graph

34 Commits

Author SHA1 Message Date
benoit
a548cc50ad Rewrote IBSS merge (part that updates the IBSS parameters using content from
received beacons). Merge from branches/madwifi-dfs@3662


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@4079 0192ed92-7a03-0410-a25b-9323aeb14dbd
2009-07-11 17:37:55 +00:00
proski
db43dba0dd Fix missing space before "else"
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@4046 0192ed92-7a03-0410-a25b-9323aeb14dbd
2009-06-25 00:21:59 +00:00
proski
e846fff3ea Fix compilation for mips64
On some 64-bit architectures u_int64_t is not unsigned long long.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@4024 0192ed92-7a03-0410-a25b-9323aeb14dbd
2009-05-24 01:09:25 +00:00
proski
6aeff5a687 Remove unused node counting code
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3962 0192ed92-7a03-0410-a25b-9323aeb14dbd
2009-04-01 19:44:05 +00:00
proski
fca6a0c2df Make ieee80211_free_node() static
It should not be visible outside ieee80211_node.c


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3960 0192ed92-7a03-0410-a25b-9323aeb14dbd
2009-04-01 19:34:57 +00:00
proski
0a63a44b94 Don't call dump_stack() for mere debugging, without major errors
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3941 0192ed92-7a03-0410-a25b-9323aeb14dbd
2009-02-04 21:43:58 +00:00
mentor
78cbb40469 Convert various _debug style char *func and int line passing to use dump_stack. This may possibly be a tad noisy still.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3743 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-06-22 02:12:53 +00:00
proski
941d62b043 KASSERT should add newline at the end to match FreeBSD behavior
Fix KASSERT calls that add their own newline.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3734 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-06-19 16:58:07 +00:00
mentor
76cade5dac Make pointer declarations and casting consistent. Some other formatting changes are made in passing
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3710 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-06-06 20:32:29 +00:00
benoit
99ead2121d Merge madwifi-dfs r3676
Fixed type of all variables storing jiffies
Converted add_timer() to mod_timer()


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3677 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-22 20:25:48 +00:00
br1
86d8de1785 let ieee80211_recv_mgmt() return 0 if the frame is to be discarded and don't
process discarded frames in ath_recv_mgmt(). this reduces the number of times
we attempt to merge IBSS to invalid beacons.

this patch is based on the work of Derek Smithies


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3634 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-16 16:09:28 +00:00
br1
6da523e4d6 enclose node_print_message() calls in #ifdef IEEE80211_DEBUG
preprocessor directives to avoid this function beeing called
(and allocating stack space) when debugging is disabled.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3631 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-16 11:34:59 +00:00
mtaylor
54a9675cf9 Set subtype for re-association requests
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3490 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-09 21:03:43 +00:00
mtaylor
62bf94d5e6 Fix address used for find node for RTS frames, which also have only one address. Fix another jiffies time comparison to use rollover safe macro.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3486 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-09 21:00:17 +00:00
mtaylor
874abd03ab Reduce the maximum message length for node
messages from 1000 to 192 and drop the length
needed to display the [atomic] node count.

Slamming this much data on the stack can cause
stack overflows with 4k stacks quite easily,
especially when hard interrupts occur and 
extend a stack that is already almost full.



git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3307 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-30 19:26:13 +00:00
mentor
b8e6b99d2c De-FAIL previous revisions
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3305 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-29 17:46:15 +00:00
mentor
3202c2a0de Change reset_bss semantics so that the node reference is passed to iv_bss, and then use the iv_bss reference.
I believe that this is semantically correct, and so have removed the comment.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3303 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-29 11:17:57 +00:00
mtaylor
2411a87efc During reset_bss we were incrementing the ref
count of the new bss node.  The allocation 
function gives us a reference.  With this extra
reference, every invocation of reset_bss was
causing a leak of one node ~4kb every time the
interface was brought back up (or the BSS was reset
for other reasons).

This fixes ticket #1682.  I can run ifconfig down/up
cycle for a long time.  I'll run it overnight next
to be sure.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3301 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-29 07:08:29 +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
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
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
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
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
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
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
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
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
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
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
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
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
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