10 Nov, 2011
33 commits
-
The frames are used by AP/STA WDS mode, and hostapd
needs to know when such a frame was received to set
up the VLAN appropriately to allow using it.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
If there's an interface in AP mode, OBSS beacons
are needed by hostapd/wpa_s to implement logic to
enable/disable protection etc. Report the frames
and set the capability flag.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
Add the ability to register to received beacon frames
to allow implementing OLBC logic in userspace. The
registration is per wiphy since there's no point in
receiving the same frame multiple times.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
Support probing clients with null data frames
in AP mode.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
When the AP SME in hostapd is used it wants to
probe the clients when they have been idle for
some time. Add explicit API to support this.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
Add the ability to advertise that the device
contains the AP SME and what features it can
support. There are currently no features in
the bitmap -- probe response offload will be
advertised by a few patches Arik is working
on now (who took over from Guy Eilam) and a
device with AP SME will typically implement
and require response offload.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
Add support for the spurious class3 frame event
to mac80211 to enable AP w/o monitor mode.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
To implement AP mode without monitor interfaces we
need to be able to send a deauth to stations that
send frames without being associated. Enable this
by adding a new nl80211 event for such frames that
an application can subscribe to.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
This will allow us to support dynamic WEP with 802.1X
properly in mac80211 by not encrypting outgoing and
accepting unencrypted incoming frames.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
Drivers that need to drop a frame before it
can be transmitted will usually simply free
that frame. This is currently fine, but in
the future it'll be needed to tell mac80211
about this case, so add a new routine that
frees a TX skb.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
We only need to set the skb queue twice:
1. by the netdev, on local TX.
2. when forwarding a mesh frame.We only need to set the qos header twice:
1. by mac80211, on local TX.
2. when putting a frame on the mpath->frame_queueWe also don't need the RA in order to set the proper queue mapping since
all mesh STAs are QoS, indicate this and do it once when the frame is
received. Also fixes an issue where the QoS header and queue mapping was not
set for unicast forwarded frames.Signed-off-by: Javier Cardona
Signed-off-by: Thomas Pedersen
Signed-off-by: John W. Linville -
There was an an implicit assumption that any QoS data frame received
from a STA/TID with an active BA session was sent to this vif as part of
a BA. This is not true if IFF_PROMISC is enabled and the frame was
destined for a different peer, for example. Don't treat these frames as
part of a BA from the sending STA.Signed-off-by: Thomas Pedersen
Signed-off-by: John W. Linville -
Previously QoS multicast frames had the Normal Acknowledgment QoS
control bits set. This would cause broadcast frames to be discarded by
peers with which we have a BA session, since their sequence number would
fall outside the allowed range. Set No Ack QoS control bits on multicast
QoS frames and filter these in de-aggregation code.Signed-off-by: Thomas Pedersen
v2: Use proper QoS Ack Policy ctl field mask (Christian)
v3: Clean up conditional (Johannes)
Signed-off-by: John W. Linville -
Don't accept redundant PREQs for a given destination. This fixes a
problem under high load:kernel: [20386.250913] mesh_queue_preq: 235 callbacks suppressed
kernel: [20386.253335] Mesh HWMP (mesh0): PREQ node queue full
kernel: [20386.253352] Mesh HWMP (mesh0): PREQ node queue full
(...)The 802.11s protocol has a provision to limit the rate of path requests
(PREQs) are transmitted (dot11MeshHWMPpreqMinInterval) but there was no
limit on the rate at which PREQs were being queued up. There is a valid
reason for queuing PREQs: this way we can even out PREQ bursts. But
queueing multiple PREQs for the same destination is useless.Reported-by: Pedro Larbig
Signed-off-by: Javier Cardona
Signed-off-by: John W. Linville -
Add interface address so it can be mapped to a local
interface. Add max-ampdu and mpdu-density.Print out the tid->baw_size
Signed-off-by: Ben Greear
Signed-off-by: John W. Linville -
The driver is never informed about monitor or
AP_VLAN interfaces, so whenever we pass those
to it later this is a bug. Verify we don't as
there are some cases where this could happen.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
The 802.1X EAPOL handshake hostapd does requires
knowing whether the frame was ack'ed by the peer.
Currently, we fudge this pretty badly by not even
transmitting the frame as a normal data frame but
injecting it with radiotap and getting the status
out of radiotap monitor as well. This is rather
complex, confuses users (mon.wlan0 presence) and
doesn't work with all hardware.To get rid of that hack, introduce a real wifi TX
status option for data frame transmissions.This works similar to the existing TX timestamping
in that it reflects the SKB back to the socket's
error queue with a SCM_WIFI_STATUS cmsg that has
an int indicating ACK status (0/1).Since it is possible that at some point we will
want to have TX timestamping and wifi status in a
single errqueue SKB (there's little point in not
doing that), redefine SO_EE_ORIGIN_TIMESTAMPING
to SO_EE_ORIGIN_TXSTATUS which can collect more
than just the timestamp; keep the old constant
as an alias of course. Currently the internal APIs
don't make that possible, but it wouldn't be hard
to split them up in a way that makes it possible.Thanks to Neil Horman for helping me figure out
the functions that add the control messages.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
Since local->tmp_channel is always NULL in one branch, some code paths
will newer be taken in that branch, so remove them.Signed-off-by: Stanislaw Gruszka
Reviewed-by: Johannes Berg
Signed-off-by: John W. Linville -
Signed-off-by: Stanislaw Gruszka
Reviewed-by: Johannes Berg
Signed-off-by: John W. Linville -
Signed-off-by: Stanislaw Gruszka
Reviewed-by: Johannes Berg
Signed-off-by: John W. Linville -
Janusz reported that the EOSP bit in mac80211 was
getting cleared all the time. I had not found this
since I tested uAPSD with a device that always set
the bit itself. Preserve the bit when building the
QoS header.Reported-by: Janusz Dziedzic
Tested-by: Janusz Dziedzic
Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
WPI-SMS4 uses 16-octet PN field, so we need to allow longer key
sequence values to be configured.Signed-off-by: Jouni Malinen
Signed-off-by: John W. Linville -
This value is used for WPI-SMS4 in ISO/IEC JTC 1 N 9880.
Signed-off-by: Jouni Malinen
Signed-off-by: John W. Linville -
The vif might be busy while reconfiguring
(e.g. associated), so indicate BSS_CHANGED_IDLE as well.Reported-by: Eyal Shapira
Signed-off-by: Eliad Peller
Signed-off-by: John W. Linville -
Looks like no one uses it.
Signed-off-by: Stanislav Yakovlev
Signed-off-by: John W. Linville -
Based on a quick test, TDLS seemed to be working fine with ath9k, so
let's start advertising support for this in the driver.Signed-off-by: Jouni Malinen
Signed-off-by: John W. Linville -
The pointer returned by cfg80211_inform_bss is a referenced
struct. The orinoco driver does not need to keep the struct, so
we just release it.Signed-off-by: David Kilroy
Signed-off-by: John W. Linville -
Patch fixes rndis_wlan to release referenced BSS structure returned by
cfg80211_inform_bss().Signed-off-by: Jussi Kivilinna
Signed-off-by: John W. Linville -
This function returns a referenced BSS struct
(or NULL), annotate with __must_check. It seems
that a lot of drivers get this completely wrong
and leak all BSS structs as a result.Reported-by: Adam Mikuta
Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
802.11n-2009 extends the supported rates element with a
magic value which can be used to prevent legacy stations
from joining the BSS.However, this magic value is not a rate like the others
and the magic can simply be ignored/skipped at this late
stage.Signed-off-by: Christian Lamparter ---
Signed-off-by: John W. Linville -
Signed-off-by: John W. Linville
-
Conflicts:
net/bluetooth/l2cap_sock.c
net/bluetooth/mgmt.c
09 Nov, 2011
7 commits
-
Now that pending commands are hci_dev specific there's no need to check
whether a command matches hci_dev when iterating through them.Signed-off-by: Johan Hedberg
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
For consistency the integer type should be u16 and not __u16.
Signed-off-by: Johan Hedberg
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
The cancel_delayed_work_sync function should not be used if we hold any
locks. Luckily all places where this is the case it is also safe to use
the non-sync version.Signed-off-by: Johan Hedberg
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
Now that the pending commands are within struct hci_dev we can properly
control access to them throught the hci_dev locking mechanism.Signed-off-by: Johan Hedberg
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
This patch moves the pending management command list (previously global
to mgmt.c) into struct hci_dev. This makes it possible to do proper
locking when accessing it (through the existing hci_dev locks) and
thereby avoid race conditions.Signed-off-by: Johan Hedberg
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
The current global pending command list in mgmt.c is racy. Possibly the
simplest way to fix it is to have per-hci dev lists instead of a global
one (all commands that need a pending struct are hci_dev specific).
This way the list can be protected using the already existing per-hci
dev lock. To enable this refactoring the first thing that needs to be
done is to ensure that the mgmt functions have access to the hci_dev
struct (instead of just the dev id).Signed-off-by: Johan Hedberg
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
Signed-off-by: Thomas Pedersen
Signed-off-by: Ashok Nagarajan
Signed-off-by: John W. Linville