Commit Graph

260 Commits

Author SHA1 Message Date
dyoung b0bb6c2505 Reference the right flag,
s/IEEE80211_RADIOTAP_F_FCS/IEEE80211_RADIOTAP_F_BADFCS/.
2007-03-26 21:22:35 +00:00
dyoung 9ff230d3d6 Define four new radiotap fields per discussions with John Bicket, Sam
Leffler, and others:

        IEEE80211_RADIOTAP_RX_FLAGS = 14,
        IEEE80211_RADIOTAP_TX_FLAGS = 15,
        IEEE80211_RADIOTAP_RTS_RETRIES = 16,
        IEEE80211_RADIOTAP_DATA_RETRIES = 17,

I describe the fields in the manual page and in comments in the
header file (cross-referenced by the manual page).
2007-03-26 04:32:14 +00:00
christos fffc9c66c9 fix fallout from caddr_t changes. 2007-03-04 07:54:07 +00:00
christos 53524e44ef Kill caddr_t; there will be some MI fallout, but it will be fixed shortly. 2007-03-04 05:59:00 +00:00
dyoung 9abbf510f1 Add software fragmentation of 802.11 packets to net80211. Some
wireless NICs need the host's help to fragment packets before the
NIC transmits them.  From Sam Leffler.

Screen-scraped by me from the WWW source browser at perforce.freebsd.org.
2007-01-06 06:02:33 +00:00
dyoung cb9910cb0d Extract all of the FreeBSD compatibility ioctls into a subroutine,
ieee80211_ioctl_get80211_fbsd(), eliminating a bunch of #ifdef/#endif
clutter.
2007-01-06 05:53:17 +00:00
dyoung f5e353f96f Add a hint to the compiler that the radiotap header requires 8-byte
alignment.  This

        1 helps GCC make better code for architectures such as ARM
          where it would otherwise do a lot of byte-loads and shifts
          to load a multi-byte word, and

        2 ensures that the compiler will add no padding between a
          radiotap header and a 64-bit or narrower field that
          follows it.
2007-01-06 05:51:15 +00:00
christos 168cd830d2 __unused removal on arguments; approved by core. 2006-11-16 01:32:37 +00:00
joerg de54b391eb Move AMRR code out of wpi(4) and ural(4) into net80211 itself.
From OpenBSD.
2006-10-31 21:53:41 +00:00
elad 0c57382297 oops - passing wrong integer. 2006-10-27 00:11:44 +00:00
elad 783aeba060 Kill some KAUTH_GENERIC_ISSUSER. 2006-10-25 23:27:29 +00:00
christos 4d595fd7b1 - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
2006-10-12 01:30:41 +00:00
christos 63753f66cf comment out impossible comparisons. 2006-08-30 15:40:41 +00:00
christos ec1b24cce5 fix initializers 2006-08-30 15:40:00 +00:00
christos 989f66d120 wrong place for __inline 2006-08-30 15:34:58 +00:00
dyoung 9f2b43c4c3 In promiscuous mode, some WNICs stop filtering management frames
whose destination does not match our MAC address.  Filter those
frames in ieee80211_recv_mgmt, to prevent spurious
deauthentication/disassociation.
2006-08-25 21:04:07 +00:00
christos dc2177377e Use curchan in monitor mode. From Dheeraj S. FreeBSD always uses curchan,
and maybe we should too.
2006-08-09 20:37:16 +00:00
ad f474dceb13 Use the LWP cached credentials where sane. 2006-07-23 22:06:03 +00:00
tacha 3fb751b1b5 Make 802.11 devices to work with stealth AP even when scanning
channels marked passive.

From FreeBSD.
2006-06-30 06:17:10 +00:00
drochner 62663607af fix some pointer botches which made wiconfig panic my machine 2006-06-27 14:30:52 +00:00
christos e07adf704d PR/33794: Arnaud Degroote: Wiconfig is broken in current. I broke it with
the previous set of stack changes.
2006-06-22 21:53:37 +00:00
christos 1ae0349e57 don't allocate chans on the stack. 2006-06-12 21:55:03 +00:00
christos 3291899659 Don't allocate wi_req on the stack. 2006-06-12 21:51:48 +00:00
christos a3ce58a6e6 Don't use roundup(IEEE80211_CHAN_MAX, NBBY) which is wrong anyway
[correct would have been howmany(...), use IEEE80211_CHAN_BYTES,
which is used in the other ioctl method. While here s/u_char/u_int8_t/
for chanlist to match the rest of the uses.
2006-06-12 21:17:59 +00:00
elad 874fef3711 integrate kauth. 2006-05-14 21:19:33 +00:00
seanb 550e54992f - Make sure scangen sequence number is unique
per iteration.
- From FreeBSD.
- CI: sam
2006-05-03 16:50:58 +00:00
dyoung b307a01ecd Revamp ieee80211_get_rate. Now it does not use the rateset in the
ic->ic_bss, but it uses the rateset in its new ieee80211_node
argument, instead.  If the rate is fixed by ic->ic_fixed_rate, but
the fixed rate is not in the node's rateset, choose a reasonable
default: prefer the lowest basic rate or, if there is no basic
rate, prefer the lowest rate, period.

Change a printf complaint to a debug message.

Adapt drivers to suit new ieee80211_get_rate calling convention.

XXX I really need to replace ieee80211_get_rate with a bitrate
XXX adaptation algorithm.  Soon, soon....
2006-03-28 00:48:10 +00:00
dyoung 0ea2ddfdd9 For eventual re-use, extract the sub-band struct from struct
ieee80211_country_ie and call it ieee80211_band.
2006-03-28 00:13:56 +00:00
christos 5a57baa413 don't use MALLOC with a non-constant size; use malloc instead. 2006-03-17 23:29:07 +00:00
christos 7a151ba681 include if_ether.h if you want to use ether_sprintf() 2006-03-16 15:59:22 +00:00
dyoung c205496a96 Note in radiotap header file and manual page that radiotap fields
are little-endian.  Fix wi(4) and atw(4) to reflect this fact.
2006-03-12 03:22:02 +00:00
lukem a1f606d3fd Use the SI capitalization for "Hz", "kHz", and "MHz" in comments and strings.
Add a space between numbers and Hz unit.
2006-03-08 23:46:22 +00:00
dyoung 25e9e914b4 Miscellaneous ath(4) and net80211 updates and bug-fixes coming from
sam@ and various open source repositories:

ath(4):

        Ignore "phantom" beacon misses: should stabilize connections
        to access points (no more ceaseless link-UP/DOWN indications).
        Also, re-synchronize beacon timer using the TSF in the
        first beacon received after joining a BSS---this should
        also help suppress spurious beacon misses.  I am hopeful
        that this will help ath(4) lossage reported by perry@ and
        smb@.

        Add new configuration through sysctl.

        Use a shorter calibration interval until IQ calibration
        finishes.

        Report antenna noise through radiotap.

        Rudiments of Radar Detection / Dynamic Frequency Selection.

        Update to HAL version 0.9.16.13.

        Update open sources for changes to the HAL API.

        Add HALs for additional architectures: add big-endian ELF
        HALs for sparc64 and for PowerPC.  Also add a Alpha HAL.
        These new HALs are untested under NetBSD.

ath(4) + net80211:

        Make the multicast transmit rate configurable by ioctl.

        Miscellaneous bug fixes.
2006-03-02 03:38:26 +00:00
dyoung 866e8c46e0 Move the SIOCS80211, SIOCG80211STATS, SIOCG80211ZSTATS definitions
nearer the top of ieee80211_ioctl.h for easy comparison with their
FreeBSD counterparts (which should just go away).
2006-02-27 06:09:10 +00:00
dyoung e597d2a713 Simplify SIOCS80211BSSID, making it work just like IEEE80211_IOC_BSSID.
The upshot is that the interface is *always* reset when a BSSID is
configured.  While I am here, rename unwieldy empty_macaddr variable
to zerobssid.
2006-02-27 05:44:53 +00:00
dyoung a6c30a4235 Register authenticators for 802.1x, WPA. 2006-02-27 01:08:28 +00:00
dyoung e16ddd314e KNF: return NULL for a pointer, instead of 0. 2006-02-27 00:55:46 +00:00
wiz 5d1e8b2745 Fix some typos. 2006-02-25 02:28:55 +00:00
dyoung d339db427f Use a safe idiom to extract the keyid from the WEP header, instead
of assuming that the bytes of the 802.11 header and WEP header are
contiguous in the mbuf chain.
2006-02-19 07:55:59 +00:00
dyoung b3c2bc4d06 From sam@FreeBSD.org:
set the mgt frame tx timer before dispatching the frame to the
driver; this closes a race where a response could be processed
before the timer was started and cause a RUN->SCAN state change
when operating in station mode
2006-02-19 07:52:43 +00:00
dyoung 8c04abbd4e In 802.11 Duration and PLCP Length calculation, account for privacy
overhead in both the header and the *trailer*.
2006-02-19 07:49:28 +00:00
christos 0149d50904 Apply patch from FreeBSD-SA-06:05. This avoids the overflow during the
lenght calculation phase instead of just growing the buffer like the older
patch did. I am leaving the bigger buffer too for now since it does not hurt.
2006-01-18 14:01:16 +00:00
yamt dae53410a7 - tweak RUN_ONCE api to allow init_func returns an error.
- physio: handle failure of workqueue_create.
2006-01-16 21:45:38 +00:00
christos 7d49bb5f04 Avoid buffer overflow in ioctl (from Karl Janmar) 2006-01-13 19:30:06 +00:00
skrll e68bcb6987 KNF a comment. 2006-01-13 08:43:11 +00:00
dyoung 1e9e4aceb7 Rewrite ieee80211_get_rate using clue from sys/dev/ic/athrate-sample.c:
Change -1 to named constant IEEE80211_FIXED_RATE_NONE.  ic_fixed_rate
is an index into the ic_sup_rates table, so lookup a fixed rate
there and search the ni->ni_rates table for it.
2005-12-29 22:17:09 +00:00
dyoung ee2b2a752e IBSS merge nit: clear IEEE80211_F_SIBSS (STATUS: start IBSS) when
we merge with another IBSS.
2005-12-29 22:13:40 +00:00
dyoung 13283d6e4f In atw(4), use ieee80211_compute_duration() to compute IEEE 802.11
Duration and PLCP Length fields, and delete the abominable
atw_frame_setdurs() subroutine.

Make rtw(4) use the new ieee80211_compute_duration() calling
convention.

Add an ieee80211_key argument to ieee80211_compute_duration() and
lightly constify arguments.  Get the crypto header length from the
key argument instead of blithely assuming a WEP header.  Add some
inline documentation.  Account for data padding (IEEE80211_F_DATAPAD).
2005-12-29 21:08:26 +00:00
dyoung 7b6a25ed00 Cosmetic: extract a subroutine ieee80211_update_adhoc_node() from
ieee80211_recv_mgmt().  ieee80211_update_adhoc_node() updates IBSS
nodes based on received beacons and probe responses.  I extract a
subroutine to maintain a tolerable indentation level.
2005-12-29 10:06:52 +00:00
dyoung 5bbf511244 In IBSS mode, track all nodes' change of BSSID, not only the BSS
node's change.  Thanks to Konstantin Kabassanov for pointing out
the problem.
2005-12-16 11:27:33 +00:00