Age | Commit message (Collapse) | Author |
|
|
|
m_defrag() does not work. It seems to assume that if the length of
the mbuf passed as parameter is less than MHLEN, then it is an mbuf
header and not a cluster (or something like that.)
It thus fails miserably in the bcopy path.
I don't have the time to investigate further into this.
Thanks to Okan Demirmen for reporting the issue on a ral(4) RT2560.
The RT2560 chipset does not support TX scatter and thus m_defrag()
was called much more often than in other drivers using m_defrag()
where it was less noticeable.
|
|
|
|
now in line with iwn_ioctl(); 'dead assignment' llvm/clang; ok damien
|
|
|
|
|
|
on i386 and amd64 (we do not implement bounce buffers) where this hardware
is likely to be found. this is good programming practice.
|
|
- Sync wpi(4)'s set_key comment with the comment from iwn(4).
ok damien@
|
|
otherwise the chip comes up with the RF_TOGGLED bit set which triggers
an if_stop() call if a shared interrupt occurs.
|
|
function. will be required for future MCS support in iwn.
|
|
Found by LLVM/Clang Static Analyzer.
ok damien@
|
|
this is an overkill in this case as it duplicates mbuf tags etc...
following a discussion with kettenis@ a few months ago about gem(4)
did some cleanup while i was there.
|
|
|
|
|
|
wpi(4) and iwn(4) used to be in sync but with the latest iwn(4)
changes, this was no longer the case. that commit repair this.
it brings HW CCMP encryption/decryption among other things.
requires an update of the wpi-firmware package.
please report any regression you might see.
|
|
wpi(4) and iwn(4) used to be in sync but with the latest iwn(4)
changes, this was no longer the case. that commit repair this.
it brings HW CCMP encryption/decryption among other things.
requires an update of the wpi-firmware package.
please report any regression you might see.
|
|
remove IBSS and HostAP support from net80211 and 802.11 drivers.
it can be used to shrink RAMDISK kernels for instance (like what
was done for wi(4)).
it also has the benefit of highlighting what is specific to IBSS
and HostAP modes in the code.
the cost is that we now have two code paths to maintain.
|
|
From jcs@ and in accordance with what the Intel Linux driver does.
|
|
pass a pointer to an ieee80211_rxinfo structure containing those two
fields plus an extra flags field that indicates whether the frame was
decrypted by hardware or not.
required for a future fix.
|
|
MIN() and MAX() are macros that can evaluate their arguments twice
but it is safe in this context.
following a post from miod@ about the harmfulness of min() and max()
in the kernel.
|
|
handshake protocols (both supplicant and authenticator state
machines) as defined in the IEEE 802.11i standard.
Software implementation of the TKIP (Temporal Key Integrity
Protocol) and CCMP (CTR with CBC-MAC Protocol) protocols.
This diff doesn't implement any of the 802.1X authentication
protocols and thus only PSK authentication (using pre-shared
keys) is currently supported.
In concrete terms, this adds support for WPA-PSK and WPA2-PSK
protocols, both in station and hostap modes.
The following drivers are marked as WPA-capable and should
work: bwi(4), malo(4), ral(4), iwn(4), wpi(4), ural(4),
rum(4), upgt(4), and zyd(4)
The following options have been added to ifconfig(8):
wpa, wpapsk, wpaprotos, wpaakms, wpaciphers, wpagroupcipher
wpa-psk(8) can be used to generate keys from passphrases.
tested by many@
ok deraadt@
|
|
okay damien@
|
|
configurable so simplify rings allocation a bit.
|
|
panic when resetting the device - requested by many
fix ifconfig -M (the interface still has to be down though ie it won't
work while the interface is up).
fix AMPDU window for 4965AGN (has no effect since 802.11n is not
supported yet).
|
|
- tweaks to make it look more like iwn(4).
|
|
|
|
for EDCA support).
- remove an unused function.
- fix scan command.
- detect if the hardware radio switch is on instead of failing in the
calibration of the thermal sensor with an obscure message.
|
|
remove <malloc.h> from files where malloc is not used.
|
|
|
|
buffer into it using m_copym2() instead of just dropping the received
frame. otherwise, it may happen that all rx buffers are queued by
tcp_input() waiting for a frame that will never arrive because we are
dropping it. when it happens, rx stop working and it is hard to
recover from this.
the problem is not visible when using WEP because WEP decryption is
currently done by software and that rx buffers are copied into mbufs
by the software decryption code.
while i'm here, increase the number of rx buffers allocated by wpi(4)
from 80 to 96 to limit the number of copies.
problem and solution found by bluhm@ - thanks.
|
|
by using "0 - 285" instead of "0..285"
ok damien@
|
|
make sure to clear the SCAN lock in case the scan is interrupted.
|
|
|
|
while i'm here, fix allocation of the Rx ring descriptors so we don't
waste memory.
IMPORTANT: you must upgrade your wpi-firmware package to rev. 2.14.4
or the driver will stop working.
|
|
needed or not to the callers (instead of doing nothing in add_xrates).
|
|
this queue is used to load the firmware and the descriptors are written
differently (in wpi_load_segment()).
so the DMA descriptors were actually unused.
saves 16KB of memory.
|
|
the WPI_CMD_ADD_NODE command in wpi_config().
Fixes mp kernels.
Tested by jasper@, deanna@, fkr@
|
|
fix typo in a comment.
|
|
i do not plan to add support for independant bss or hostap modes.
|
|
- improve a comment
|
|
|
|
1/ Update the driver to use the new firmware images from Intel (2.14.3.)
2/ Read the list of supported channels from the EEPROM instead of having
it hard-coded in the driver.
3/ Limit output power to what is specified in EEPROM.
4/ Decrease output power for highest OFDM rates to reduce distortion.
5/ Automatically adjust output power to temperature changes for increased
throughput and range.
6/ Attach the adapter's onboard thermal sensor to the sensor framework.
7/ Replace 'magic' fields in structures with their correct definitions.
NOTE1: you must upgrade your wpi-firmware package to rev 2.14.3 or the
driver will stop working.
NOTE2: if you are using a channel not allowed by the regulatory domain
of your adapter, you will no longer be able to associate.
|
|
See similar commit to dev/usb/if_rum.c for more info. With this commit
all drivers have been switched away from the incorrect M_DUP_PKTHDR() usage.
OK mglocker@
|
|
the standard rates, use some defined by net80211 itself. kernel shrinks a bit
ok jsg mglocker
|
|
- use the newly introduced ieee80211_get_rts() and
ieee80211_get_cts_to_self() functions.
- use CTS-to-self instead of RTS/CTS to protect OFDM frames in
a mixed 11b/g BSS.
- make sure multicast frames are sent using CCK modulation.
remove support for 5GHz radios in ral(4) RT2560 and ural(4).
i'm not aware of any such adapters on the market and 11a code
is known to be broken.
some cleanup while i'm here.
|
|
reported and tested by Marc Winiger and dhartmei@
|
|
|
|
simplify wpi_dma_contig_alloc().
various cosmetic tweaks while i'm here.
|
|
use IFQ_POLL()/IFQ_DEQUEUE() logic instead as described in altq(4).
|
|
The firmware expects 3KB Rx buffers so we can't just map mbuf clusters
which are only 2KB. Also it seems that Rx buffers must be aligned on
a 1KB boundary which is not necessary the case with mbuf clusters.
We want to make damn sure the firmware will not DMA anything outside the
mapped Rx buffers. The size of the Rx buffers is probably configurable
but Intel will refuse to answer to any question regarding the
programmation of the chipset, and a dump of the device registers led to
nowhere.
|