05 Jan, 2012
1 commit
-
ieee80211_offchannel_enable_all_ps function is no longer used
and looks like its logic is extensively handled in
ieee80211_offchannel_stop_vifsSigned-off-by: Mohammed Shafi Shajakhan
Signed-off-by: John W. Linville
16 Dec, 2011
4 commits
-
Currently BAR, ADDBA and DELBA frames are always sent using AC_VO. If
the TID for which a BA session is established is assigned to a different
queue BAR, ADDBA and DELBA frames can "overtake" frames of the according
BA session.Hence, always put BA session related frames into the same queue as the
BA sessions data frames.Signed-off-by: Helmut Schaa
Signed-off-by: John W. Linville -
Now that IBSS no longer needs to insert stations
from atomic context, we can get rid of all the
special cases for that, and even get rid of the
sta_lock (though it needs to stay as tim_lock.)This makes the station management code much more
straight-forward.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
In order to notify drivers and simplify the station
management code, defer IBSS station insertion to a
work item and don't do it directly while receiving
a frame.This increases the complexity in IBSS a little bit,
but it's pretty straight forward and it allows us
to reduce the station management complexity (next
patch) considerably.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
Currently, each AP interface will send multicast
traffic if any interface has a station entry even
if that station entry is allocated only. With the
new station state management we can easily fix it
by adding a counter that counts each authorized
station only and send multicast traffic only when
the correct interface has at least one authorized
station.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
07 Dec, 2011
1 commit
-
The HT mode is set by iw (previous patchsets).
The interface is set into the specified HT mode.
HT mode and capabilities are announced in beacons.If we add a station that uses HT also, the fastest matching HT mode will
be used for transmission. That means if we are using HT40+ and we add a station
running on HT40-, we would transfer at HT20.If we join an IBSS with HT40, but the secondary channel is not
available, we will fall back into HT20 as well.Allow frame aggregation to start in IBSS mode.
Signed-off-by: Alexander Simon
[siwu@hrz.tu-chemnitz.de: Updates]
* remove implicit channel_type enum assumptions
* use rate_control_rate_init() if channel type changed
* remove channel flags check
* activate HT IBSS feature support
* slightly reword commit message
* rebase on wireless-testingSigned-off-by: Simon Wunderlich
Signed-off-by: Mathias Kretschmer
Reviewed-by: Johannes Berg
Signed-off-by: John W. Linville
01 Dec, 2011
1 commit
-
The on-channel work optimisations have caused a
number of issues, and the code is unfortunately
very complex and almost impossible to follow.
Instead of attempting to put in more workarounds
let's just remove those optimisations, we can
work on them again later, after we change the
whole auth/assoc design.This should fix rate_control_send_low() warnings,
see RH bug 731365.Cc: stable@vger.kernel.org
Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
29 Nov, 2011
3 commits
-
As per 802.11mb 13.9.11.3
Signed-off-by: Thomas Pedersen
Signed-off-by: Javier Cardona
Signed-off-by: John W. Linville -
This patch contains the processing changes in mac80211.
Signed-off-by: Simon Wunderlich
Signed-off-by: Mathias Kretschmer
Signed-off-by: John W. Linville -
This feature has been superseded by the NoAck per Queue feature.
Signed-off-by: Simon Wunderlich
Signed-off-by: Mathias Kretschmer
Signed-off-by: John W. Linville
22 Nov, 2011
3 commits
-
This implements ht-cap over-rides for mac80211 drivers.
HT may be disabled, making an /a/b/g/n station act like an
a/b/g station. HT40 may be disabled forcing the station to
be HT20 even if the AP and local hardware support HT40.MAX-AMSDU may be disabled.
AMPDU-Density may be increased.
AMPDU-Factor may be decreased.This has been successfully tested with ath9k using patched
wpa_supplicant and iw.Signed-off-by: Ben Greear
Signed-off-by: John W. Linville -
No other driver ever ended up using this, and
the commit forgot to move the prototype so no
driver could have used it. Revert it, if any
driver shows up and needs it it can be moved
again, but until then it's more efficient to
have it in mac80211 where the only user is.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
We are currently linking the skbs by using skb->next
directly. This works, but the preferred way is to use
a struct sk_buff_head instead. That also prepares for
passing that to drivers directly.While at it I noticed we calculate the duration for
fragments twice -- remove one of them.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
12 Nov, 2011
2 commits
-
Allow setting a probe response template for an interface operating in
AP mode. Low level drivers are notified about changes in the probe
response template and are able to retrieve a copy of the current probe
response. This data can, for example, be uploaded to hardware as a
template.Signed-off-by: Guy Eilam
Signed-off-by: Arik Nemtsov
Signed-off-by: John W. Linville -
Attempting to micro-optimise the scan by going
fully live again when scanning the operating
channel just made the code extremely complex
and has little gain in most use cases. Remove
all that code and simplify the state machine
again.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
10 Nov, 2011
4 commits
-
Implement the socket wifi TX status error
queue reflection in mac80211.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 -
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
09 Nov, 2011
1 commit
-
Some refactoring for IBSS HT.
Move HT info and capability IEs building code into separate functions.
Add function to get the channel type from an HT info IE.
Signed-off-by: Alexander Simon
Signed-off-by: John W. Linville
03 Nov, 2011
1 commit
-
Only AID values 1-2007 are valid, but some APs have been
found to send random bogus values, in the reported case an
AP that was sending the AID field value 0xffff, an AID of
0x3fff (16383).There isn't much we can do but disable powersave since
there's no way it can work properly in this case.Cc: stable@vger.kernel.org
Reported-by: Bill C Riemers
Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
15 Oct, 2011
1 commit
-
Get rid of the ieee80211_tx_status_rtap_hdr struct and instead build the
rtap header dynamically. This makes it easier to extend the rtap header
generation in the future.Add ieee80211_tx_radiotap_len to calculate the expected size of the
rtap header before generating it. Since we can't check if the rtap
header fits into the requested headroom during compile time anymore
add a WARN_ON_ONCE.Also move the actual rtap header generation into its own function.
Signed-off-by: Helmut Schaa
Signed-off-by: John W. Linville
12 Oct, 2011
3 commits
-
The purpose of this is two-fold:
1) by moving it out of tx_data.flags, we can in
another patch move the radiotap parsing so it
no longer is in the hotpath
2) if a device implements fragmentation but can
optionally skip it, the radiotap request for
not doing fragmentation may be honouredSigned-off-by: Johannes Berg
Signed-off-by: John W. Linville -
It's set, but never used, so kill it.
Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
When I introduced in-kernel off-channel TX I
introduced a bug -- the work can't be canceled
again because the code clear the skb pointer.
Fix this by keeping track separately of whether
TX status has already been reported.Cc: stable@kernel.org [2.6.38+]
Reported-by: Jouni Malinen
Tested-by: Jouni Malinen
Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
01 Oct, 2011
3 commits
-
iwlwifi has a separate EOSP notification from
the device, and to make use of that properly
it needs to be passed to mac80211. To be able
to mix with tx_status_irqsafe and rx_irqsafe
it also needs to be an "_irqsafe" version in
the sense that it goes through the tasklet,
the actual flag clearing would be IRQ-safe
but doing it directly would cause reordering
issues.This is needed in the case of a P2P GO going
into an absence period without transmitting
any frames that should be driver-released as
in this case there's no other way to inform
mac80211 that the service period ended. Note
that for drivers that don't use the _irqsafe
functions another version of this function
will be required.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
For PS-poll, there's a possible race between
us expiring a frame and the station polling
for it -- send it a null frame in that case.For uAPSD, the standard says that we have to
send a frame in each SP, so send null if we
don't have any other frames.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
Now that we no longer use the return value, we no
longer need to maintain it either, so remove it.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
28 Sep, 2011
2 commits
-
save and configure tx param per sdata, rather than
per hardware.Signed-off-by: Eliad Peller
Signed-off-by: John W. Linville -
Whenever the scan request or tx_mgmt is requesting not to
use CCK rate for managemet frames through
NL80211_ATTR_TX_NO_CCK_RATE attribute, then mac80211 should
select appropriate least non-CCK rate. This could help to
send P2P probes and P2P action frames at non 11b rates
without diabling 11b rates globally.Cc: Jouni Malinen
Signed-off-by: Rajkumar Manoharan
Signed-off-by: John W. Linville
15 Sep, 2011
3 commits
-
The assumption is that during the hw config, transmission was
already stopped by mac80211. Sometimes the AP can be switching
b/w the ht modes due to intolerant or etc where STA is in
the middle of transmission. In such scenario, buffer overflow
was observed at driver side. And also before updating the rate
control, the frames are continued to xmited with older rates.
This patch ensures that the frames are always xmitted with
updated rates and avoid buffer overflow.Signed-off-by: Rajkumar Manoharan
Reviewed-by: Johannes Berg
Signed-off-by: John W. Linville -
Tx flow control for non-mesh modes of operation only needs to act on the
net device queues: when the hardware queues are full we stop accepting
traffic from the net device. In mesh, however, we also need to stop
forwarding traffic. This patch checks the hardware queues before
attempting to forward a mesh frame.Signed-off-by: Javier Cardona
Signed-off-by: John W. Linville -
To properly maintain the peer's block ack window, the driver needs to be
able to control the new starting sequence number that is sent along with
the BlockAckReq frame.Signed-off-by: Felix Fietkau
Signed-off-by: John W. Linville
25 Aug, 2011
1 commit
-
In this implementation, a mesh gate is a root node with a certain bit
set in its RANN flags. The mpath to this root node is marked as a path
to a gate, and added to our list of known gates for this if_mesh. Once a
path discovery process fails, we forward the unresolved frames to a
known gate. Thanks to Luis Rodriguez for refactoring and bug fix help.Signed-off-by: Javier Cardona
Signed-off-by: John W. Linville
13 Aug, 2011
1 commit
-
Moving the parsing logic for retrieving the information elements
stored in management frames, e.g. beacons or probe responses,
and making it available to other cfg80211 drivers.Signed-off-by: Yogesh Ashok Powar
Signed-off-by: Amitkumar Karwar
Signed-off-by: Bing Zhao
Signed-off-by: John W. Linville
09 Aug, 2011
1 commit
-
For iwlwifi, I decided not to use this API since
it just increased the complexity for little gain.
Since nobody else intends to use it, let's kill
it again. If anybody later needs to have it, we
can always revive it then.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
21 Jul, 2011
1 commit
-
In P2P client mode, the GO (AP) to connect to might
have periods of time where it is not available due
to powersave. To allow the driver to sync with it
and send frames to the GO only when it is available
add a new callback tx_sync (and the corresponding
finish_tx_sync). These callbacks can sleep unlike
the actual TX.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
20 Jul, 2011
1 commit
-
Scanning currently uses the TX rate mask to
restrict the rate set, which is bogus. Make
it use the new set of rates from userspace.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
19 Jul, 2011
1 commit
-
Add tx_conf array to save the current tx queues
configuration, and reconfig it on resume (ieee80211_reconfig).On resume, the driver is being reconfigured. Without
reconfiguring the tx queues as well, the driver might
configure the device to use wrong ac params (e.g. ps-poll
instead of uapsd).Signed-off-by: Eliad Peller
Signed-off-by: John W. Linville
14 Jul, 2011
1 commit
-
In WoWLAN, devices may use crypto keys for TX/RX
and could also implement GTK rekeying. If the
driver isn't able to retrieve replay counters and
similar information from the device upon resume,
or if the device isn't responsive due to platform
issues, it isn't safe to keep the connection up
as GTK rekey messages from during the sleep time
could be replayed against it.The only protection against that is disconnecting
from the AP. Modifying mac80211 to do that while
it is resuming would be very complex and invasive
in the case that the driver requires a reconfig,
so do it after it has resumed completely. In that
case, however, packets might be replayed since it
can then only happen after TX/RX are up again, so
mark keys for interfaces that need to disconnect
as "tainted" and drop all packets that are sent
or received with those keys.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville