Age | Commit message (Collapse) | Author |
|
In particular, add Tx block ack session management to net80211, with
enough funcionality to support Tx aggregation on devices which perform
A-MPDU subframe scheduling in firmware.
Make use of the iwn(4) firmware Tx scheduler to build A-MPDUs.
net80211's QoS support code is now enabled and used by Tx aggregation.
A-MSDU frames inside A-MPDUs have been tested and work in principle.
For now, this feature is disabled because unfair TCP connection sharing
was observed during testing, where bursts of TCP Ack frames for a single
tcpbench(1) connection arriving in A-MSDUs made other TCP connections stall.
Switch off support for A-MSDUs inside A-MPDUs on the Rx side as well.
Tested on iwn chipsets 1000, 4965, 5100, 5300, 2200, 6200, 6205, 6300
(committed version of tested diff has all debug printfs removed)
tests/ok benno kmos mlarkin kevlo
|
|
by actually overwriting the relevant bits in ni_htop1.
ok tedu@ phessler@ kettenis@
|
|
Fixes stalling TCP connections on wifi in some situations.
testing jmatthew@, jmc@, Bruno Flueckiger, Micah Muer, Matthias Schmidt
|
|
The 'mode' command is supposed to force a wireless interface into 11a/b/g/n
media mode. This stopped working some time ago, probably during my work on
background scanning. Problem spotted by mlarkin@ who noticed that interfaces
were using 11g mode while forced to 11b mode.
ok phessler, jmatthew (earlier version)
relentless testing by krw@
|
|
The "recursion in end_scan()" problem is apparently still present in
the committed version of the diff (reported by krw@).
|
|
The 'mode' command is supposed to force a wireless interface into 11a/b/g/n
media mode. This stopped working some time ago, probably during my work on
background scanning. Problem spotted by mlarkin@ who noticed that interfaces
were using 11g mode while forced to 11b mode.
ok phessler, jmatthew
|
|
ok kettenis@
|
|
in ieee80211com's ic_flags because we haven't been paying attention to
them (they're not in the same place in the code and hence easy to miss).
Move them to a dedicated variable to avoid this problem in the future.
Add a new 'stayauth' nwflag which can be set to let net80211 ignore
deauth frames. This can be useful when deauth frames are being
persistently spoofed by an attacker. Idea from beck@
ok beck@ phessler@
|
|
ok mpi@
|
|
in contiguous memory. Taking the pointer to the data and simply
looking at the IP header by adding an offset can lead to an out-
of-bounds access. Make the ieee80211 classify function copy the
ethernet and ip header into stack variables to fix it.
Fixes a panic for florian@
Discussed with claudio@
ok stsp@
|
|
This redefines the ifp <-> bridge relationship. No lock can be
currently used across the multiples contexts where the bridge has
tentacles to protect a pointer, use an interface index.
Tested by various, ok dlg@, visa@
|
|
Don't accept A-MPDUs if not in RUN state, and don't accept them from
unassociated clients in hostap mode.
ok jmatthew@ kevlo@
|
|
discovered while attempting to autojoin WEP networks
|
|
Consider the mere presence of HTCAP IEs as indicator of 11n support,
rather than checking advertised Rx MCS. Fixes some devices being
misclassified as 11a/g, causing HT protection to be enabled even
though it is not needed.
Use CTS-to-self frames for HT protection instead of RTS/CTS.
These changes make my athn(4) AR9280 hostap perform much better.
ok phessler@
|
|
ok phessler@
|
|
helped us on a loaded hackathon wifi network. In 11n mode we are now
using a heuristic for this. Disable RTS threshold for all other modes
again because it can do more harm than good in many situations.
This change may increase Tx throughput in 11a/g modes, though results depend
on the driver. Some drivers, e.g. urtwn(4), keep using RTS regardless for
unknown reasons and may need to be fixed separately. And we will keep using
RTS if the AP enables 11g protection while 11b clients are around.
|
|
Improves throughput and latency on 11n networks.
Tested by myself, jmc@, jcs@, phessler@, benno@
|
|
|
|
ok patrick@ mpi@
|
|
net80211 and drivers in general. Add ratesets for 'short guard interval'
(SGI) rates, and add SGI support to MiRA. SGI is currently only used by
iwm(4), and of course internally by bwfm(4) firmware.
Ratesets for 11n 40 MHz channels and 11ac will come later.
ok mpi@ phessler@
|
|
from it as well
OK stsp@
|
|
us properly match, instead of hoping we got lucky when selecting it.
OK stsp@
|
|
if a known network is visible, always prefer that instead.
requested by many, OK stsp@
|
|
Previously such frames would be counted as decryption failures which is
nonsense because they don't carry any data which could be encrypted.
Problem analyzed by, and fix developed together with, Lauri Tirkkonen.
|
|
"data" and "no data" frames more obvious. These renamed macros aren't
actually used anywhere in net80211 yet.
cross-checked with 802.11 specs by myself and Lauri Tirkkonen
|
|
OK bluhm@
|
|
ifconfig if joinlist
OK stsp@
|
|
|
|
dropped as the sequence number matches the initial value of the
cached last sequence number (zero). On some APs (notably Android
WIFI hotspots) this hits the first packet of the WPA2 4-way
handshake. This causes connection delays and in some cases
connection to the AP fails completely. Initialize the cached last
sequence numbers for received packets to an invalid value instead.
From Christian Ehrhardt
ok gerhard@ stsp@
|
|
802.11 interface state changes (e.g. SSID) to interested parties.
Original diff from phessler@. Many suggestions and tweaks from
claudio@, stsp@, anton@.
ok claudio@ stsp@ anton@ phessler@
|
|
m_leadingspace() and m_trailingspace(). Convert all callers to call
directly the functions and remove the defines.
OK krw@, mpi@
|
|
These have served no useful purpose in practice; all reported instances were
legitimate group key retransmissions by the AP, e.g. after laptop suspend.
We fixed KRACK long ago; re-used group key messages are nothing to worry about.
|
|
of rediscovering them (possibly badly).
OK stsp@
|
|
based on the state of the joinlist
OK stsp@
|
|
OK stsp@
|
|
key (IGTK) if a node doesn't have management frame protection (MFP) enabled.
The IGTK is not initialized if MFP is disabled, so using it triggers this
panic in ieee80211_encrypt(): panic("invalid key cipher 0x%x", k->k_cipher)
(As far as I can tell, at present, MFP is never enabled.)
Problem reported and fix tested by tj@ on athn(4) hostap
|
|
OK phessler@ jsg@
|
|
ok stsp@ phessler@
|
|
reminded by stsp@
|
|
ok stsp@
|
|
crosshairs.
|
|
consider during auto-join. This can help users determine why a specific
network was chosen.
OK stsp@
|
|
the list.
makes /etc/netstart very fast when ran while the interface is up
OK stsp@
|
|
found with and OK stsp@
|
|
|
|
pointed out by stsp@
|
|
to switch to.
pointed out by stsp@
|
|
settings over multiple calls was risky and racy. Pass essid, wpa, and wep
paramaters in a single ioctl and process it atomically.
no change for 'nwid' users
OK stsp@ benno@
|
|
|
|
There was no way to override a decision made by join's network
selection algorithm (apart from disabling the feature by clearing
the join list). Automatic selection is based on heuristics which
cannot always guess correctly so we need to provide an override.
One specific problem was that if 'nwid foo' and 'nwid bar' were
both visible in the scan and only 'nwid foo' was a member of the
join list, then there was no way at all to connect to 'nwid bar'.
The wireless stack would keep selecting 'nwid foo' instead.
'ifconfig iwm0 nwid bar' command will now disable automatic
network selection and force the use of ESSID 'bar'.
Any of these commands will re-enable automatic network selection:
ifconfig iwm0 -nwid
ifconfig iwm0 nwid ''
ifconfig iwm0 join some-network-id
ok phessler@ deraadt@
|