summaryrefslogtreecommitdiffstats
path: root/sys/dev/ath/if_ath.c
Commit message (Collapse)AuthorAgeFilesLines
* only invoke ath_rate_tx_complete to update rate control state when thesam2005-07-071-1/+4
| | | | | | | | | | frame being sent is to be ack'd and hasn't been filtered by the h/w; this insures we don't pass in tx descriptors that have no meaningful state (e.g. mcast/bcast frames are not acked and so have no tx retry counts) Approved by: re (scottl) Obtained from: Atheros
* Stop embedding struct ifnet at the top of driver softcs. Instead thebrooks2005-06-101-32/+42
| | | | | | | | | | | | | | | | | | | | struct ifnet or the layer 2 common structure it was embedded in have been replaced with a struct ifnet pointer to be filled by a call to the new function, if_alloc(). The layer 2 common structure is also allocated via if_alloc() based on the interface type. It is hung off the new struct ifnet member, if_l2com. This change removes the size of these structures from the kernel ABI and will allow us to better manage them as interfaces come and go. Other changes of note: - Struct arpcom is no longer referenced in normal interface code. Instead the Ethernet address is accessed via the IFP2ENADDR() macro. To enforce this ac_enaddr has been renamed to _ac_enaddr. - The second argument to ether_ifattach is now always the mac address from driver private storage rather than sometimes being ac_enaddr. Reviewed by: sobomax, sam
* Change station mode beacon timer setup to insure the calculatedsam2005-06-091-6/+49
| | | | | | nextTbtt is always ahead of the h/w TSF. Reviewed by: avatar
* Set the correct IFS parameters for the beacon tx queuesam2005-06-071-1/+45
| | | | when operating in ap and adhoc modes.
* Misc keycache changes:sam2005-06-061-76/+152
| | | | | | | | | | o purge ath_initkeytable; it's not needed o add multicast key search support for supporting multiple group keys (disabled for now; requires updated hal) o create keycache entry for stations using open auth so they get h/w antenna management support o add keycache -> node mapping table; eliminates mac-based lookup in the net80211 layer
* restore led state on resumesam2005-06-021-0/+4
| | | | Submitted by: markus
* honor new IEEE80211_KEY_GROUP key flagsam2005-04-121-0/+29
| | | | Reviewed by: Tai-hwa Liang
* use frame type returned by ieee80211_input to drive softled codesam2005-04-041-4/+3
| | | | instead of monitoring the input packet count
* reclaim mbufs in failure casessam2005-03-311-0/+2
| | | | Submitted by: Tai-hwa Liang
* close unlikely racesam2005-03-301-2/+2
| | | | Submitted by: Michael Wong
* correct commentsam2005-03-301-3/+3
|
* rev rate control api to pass the both the first+last tx descriptorssam2005-03-301-1/+1
| | | | | | to the rate control module for tx complete processing; this enables rate control algorithms to extract the packet length for xmits that require multiple descriptors
* o extend cts to cover packet burst when operating in 11g w/ protectionsam2005-03-301-29/+55
| | | | | o check current channel parameters, not shadow state, for acm policy on data frames
* Fixing kernel build on amd64 machines.avatar2005-03-301-3/+3
| | | | Reviewed by: sam (mentor)
* extend the timestamp from the rx descriptor to calculate the tsf tosam2005-03-291-7/+24
| | | | use when checking for an ibss merge
* forgot to merge this bit from p4sam2005-03-291-1/+2
|
* replace m_defrag with something more suitablesam2005-03-291-3/+88
|
* reclaim mbuf chain when ieee80211_crypto_encap failssam2005-03-081-0/+1
| | | | Noticed by: David Young
* Fixup radiotap handling of FCS and QoS frames per discussion with David Young:sam2005-01-241-34/+11
| | | | | | | | | | | | o mark rx frames including FCS in the payload with the IEEE80211_RADIOTAP_F_FCS flag o remove hack to copy 802.11 headers with padding out of line; instead mark the frames with IEEE80211_RADIOTAP_F_DATAPAD and require applications to do the work o split precalculated radiotap flags into tx+rx now that they can be different Note the full usefulness of these changes depends on updates to applications that process radiotap data.
* beacon handling fixups for adhoc mode:sam2005-01-241-12/+21
| | | | | | | | | | o don't reclaim any previous beacon state in ath_beacon_alloc; do it explicitly in ath_newstate o reference count the node held in the beacon frame state block o process ibss merge more intelligently; let the state machine do the right thing instead of explicitly setting the new bssi id o explicitly stop tx dma before doing beacon setup to handle the ibss merge case
* switch to use bus_dmamap_load_mbuf_sgsam2005-01-241-25/+13
|
* o correct beacon interval calculation; the internal setting is in TU's not mssam2005-01-241-7/+4
| | | | o replace the private macro to convert MS->TU with the common one
* add missing statisticsam2005-01-181-2/+4
|
* disable interrupts when transitioning to INIT state so we don't rx framessam2005-01-181-1/+4
|
* replace hand-rolled code to compact an mbuf chain with m_defrag; this issam2005-01-181-17/+4
| | | | suboptimal but needed for fast frames which won't fit in a single cluster
* setup the beacon xmit queue to not interrupt; we don't use them andsam2005-01-181-1/+18
| | | | they make the led's flash unnecessarily in adhoc mode
* better led blinkingsam2005-01-181-42/+152
|
* add paren's so we can supply a|b as a debug masksam2005-01-181-2/+2
|
* bump copyright for 2005sam2004-12-311-1/+1
|
* correct some typossam2004-12-311-4/+4
| | | | Submitted by: Tai-hwa Liang
* Radiotap fixups:sam2004-12-311-18/+60
| | | | | | | | | | | | | | | | | o catch one place where we were not using ath_chan_change to switch channels; this fixes a problem where the channel settings were not being correctly reported in captured packets o return unique channel identification in the channel flags; ethereal gets confused if you return merged flags (e.g. ofdm, cck, and 2Ghz) (this is workaround and should be removed if we can ever cleanup radiotap consumers) o correct short/long preamble flag state for rx and treat tx the same--use a new hwflags array that gives us the data based on the h/w rate index/cookie o add gross hack to handle radiotap capture of frames that come in with hardware padding; should be replaced by a flag in the radiotap header and more smarts in the apps that decode radiotap data
* for parts that require split keycache entries report thesam2004-12-311-1/+4
| | | | | the index of the first entry on a mic error so we're consistent with parts that don't have split keycache
* Correct beacon timer setup logic:sam2004-12-311-15/+14
| | | | | | | | | | | o lintval is in ms; must convert to TU's for passing to the hal o roundup to calculate nexttbtt (should look at current tsf and pull the calculated nextbtt forward but this'll do for now) o don't or- in HAL_BEACON_RESET_TSF when doing station timer setup; this is not needed and messes up the sleep timer calcs, though it's unclear if it mattered as the hal masks these values before use Submitted by: Thorsten von Eicken
* no need to sweep the tx q's for node references in ath_node_free; we knowsam2004-12-311-29/+0
| | | | there are none since we're only called when the ref count goes to zero
* cleanup some assertionssam2004-12-311-12/+6
|
* Make this amd64-clean. sizeof is long on amd64, so things that do a printfpeter2004-12-151-4/+7
| | | | | | | | of a sizeof, need to use %z to get the correct type on all our platforms. Also, convert integers<->pointers via uintptr_t. (I think Sam's instructions were for me to commit this. If I misunderstood, then I apologize in advance.)
* Update with last year of work.sam2004-12-081-1109/+2763
|
* Add missing bit of last if_start workaround: mark scan calloutsam2004-08-081-1/+1
| | | | | MPSAFE only debug_mpsafenet is 1 so callbacks to send management frames hold Giant; this is another bandaid on the path to removing Giant.
* Pickup Giant in ath_rx_proc and when handling a beacon miss in order tosam2004-08-071-0/+6
| | | | satisfy the assertion in if_start.
* Second part of ALTQ driver modifications, covering:mlaier2004-08-011-3/+5
| | | | | | | | | | an(4), ath(4), hme(4), ndis(4), vr(4) and wi(4) Please help testing: http://people.freebsd.org/~mlaier/ALTQ_driver/ Tested by: Vaidas Damosevicius (an, ath, wi) Roman Divacky (vr) Submitted by: yongari (hme)
* use correct malloc type to allocate struct ieee80211_node'ssam2004-04-051-1/+1
| | | | Noticed by: phk
* do proper subclassing of node free+copy; the previous hack falls apart whensam2004-04-031-2/+8
| | | | | | the 802.11 layer does useful work Obtained from: madwifi
* transmit beacon frames directly instead of defering them to a swi; theresam2004-04-031-3/+8
| | | | | | was too much delay Obtained from: madwifi
* update copyright notice for 2004sam2004-04-021-1/+1
|
* check more quickly (and directly) if an interrupt is pending; this reducessam2004-04-021-0/+2
| | | | | | work done in ath_intr when the irq is shared Obtained from: madwifi
* cleanup descriptor allocation if attach failssam2004-04-021-2/+4
| | | | Obtained from: madwifi
* remove use IEEE80211_C_RCVMGTsam2004-04-021-1/+1
|
* radiotap updates:sam2004-04-011-6/+11
| | | | | | o force little-endian byte order for header o pad header to 32-bit boundary to guard against applications that assume packet data alignment
* Don't announce MAC addresses twice.mdodd2004-03-201-2/+0
| | | | (ieee80211_ifattach() calls ether_ifattach().)
* Make this compile on amd64.peter2004-02-061-6/+6
| | | | "I'll cope" by: sam
OpenPOWER on IntegriCloud