30 Jun, 2016
2 commits
-
Previously, the action frames to group address was not encrypted. But
[1] "Table 8-38 Category values" indicates "Mesh" and "Multihop" category
action frames should be encrypted (Group addressed privacy == yes). And the
encyption key should be MGTK ([1] 10.13 Group addressed robust management frame
procedures). So this patch modifies the code to make it suitable for spec.[1] IEEE Std 802.11-2012
Signed-off-by: Masashi Honma
Signed-off-by: Johannes Berg -
Use IEEE80211_MIN_ACTION_SIZE macro for robust management frame check.
Signed-off-by: Masashi Honma
Signed-off-by: Johannes Berg
06 Apr, 2016
2 commits
-
Requires software tx queueing and fast-xmit support. For good
performance, drivers need frag_list support as well. This avoids the
need for copying data of aggregated frames. Running without it is only
supported for debugging purposes.To avoid performance and packet size issues, the rate control module or
driver needs to limit the maximum A-MSDU size by setting
max_rc_amsdu_len in struct ieee80211_sta.Signed-off-by: Felix Fietkau
[fix locking issue]
Signed-off-by: Johannes Berg -
The regular RX path has a lot of code, but with a few
assumptions on the hardware it's possible to reduce the
amount of code significantly. Currently the assumptions
on the driver are the following:
* hardware/driver reordering buffer (if supporting aggregation)
* hardware/driver decryption & PN checking (if using encryption)
* hardware/driver did de-duplication
* hardware/driver did A-MSDU deaggregation
* AP_LINK_PS is used (in AP mode)
* no client powersave handling in mac80211 (in client mode)of which some are actually checked per packet:
* de-duplication
* PN checking
* decryption
and additionally packets must
* not be A-MSDU (have been deaggregated by driver/device)
* be data packets
* not be fragmented
* be unicast
* have RFC 1042 headerAdditionally dynamically we assume:
* no encryption or CCMP/GCMP, TKIP/WEP/other not allowed
* station must be authorized
* 4-addr format not enabledSome data needed for the RX path is cached in a new per-station
"fast_rx" structure, so that we only need to look at this and
the packet, no other memory when processing packets on the fast
RX path.After doing the above per-packet checks, the data path collapses
down to a pretty simple conversion function taking advantage of
the data cached in the small fast_rx struct.This should speed up the RX processing, and will make it easier
to reason about parallelizing RX (for which statistics will need
to be per-CPU still.)Signed-off-by: Johannes Berg
05 Apr, 2016
1 commit
-
Add definition for Fine Timing Measurement (FTM) frame format
as defined in IEEE802.11-REVmcD5.0 section 9.6.8.33Signed-off-by: Avraham Stern
Signed-off-by: Emmanuel Grumbach
Signed-off-by: Johannes Berg
24 Feb, 2016
1 commit
-
In VHT, the specification allows to limit the number of
MSDUs in an A-MSDU in the Extended Capabilities IE. There
is also a limitation on the byte size in the VHT IE.
In HT, the only limitation is on the byte size.
Parse the capabilities from the peer and make them
available to the driver.In HT, there is another limitation when a BA agreement
is active: the byte size can't be greater than 4095.
This is not enforced here.Signed-off-by: Emmanuel Grumbach
Signed-off-by: Johannes Berg
14 Jan, 2016
1 commit
-
The Group ID Management frame is an Action frame of
category VHT. It is transmitted by the AP to assign
or change the user position of a STA for one or more
group IDs.
Process and save the group membership data. Notify
underlying driver of changes.Signed-off-by: Sara Sharon
Signed-off-by: Emmanuel Grumbach
Signed-off-by: Johannes Berg
13 Oct, 2015
2 commits
-
Add the WNM and unprotected WNM categories and mark the latter
as not robust.Signed-off-by: Johannes Berg
-
Unprotected DMG and VHT action frames are not protected, reflect
that in the list.Signed-off-by: Johannes Berg
09 Oct, 2015
1 commit
-
This patch makes ieee80211_is_* return bool to improve
readability due to these particular functions only using either
one or zero as their return value.No functional change.
Signed-off-by: Yaowei Bai
Signed-off-by: David S. Miller
22 Sep, 2015
2 commits
-
These were never used in the tree, and are marked as reserved
in the IEEE 802.11 documentation (ANA).Signed-off-by: Johannes Berg
-
Advertise the capability to send A-MSDU within A-MPDU
in the AddBA request sent by mac80211. Let the driver
know about the peer's capabilities.Signed-off-by: Emmanuel Grumbach
Signed-off-by: Johannes Berg
14 Aug, 2015
1 commit
-
The bit was not according to ieee80211 specification.
Fix that.Reviewed-by: Arik Nemtsov
Signed-off-by: Emmanuel Grumbach
Signed-off-by: Johannes Berg
27 Jan, 2015
2 commits
-
This allows mac80211 to configure BIP-CMAC-256 to the driver and also
use software-implementation within mac80211 when the driver does not
support this with hardware accelaration.Signed-off-by: Jouni Malinen
Signed-off-by: Johannes Berg -
This makes cfg80211 aware of the GCMP, GCMP-256, CCMP-256, BIP-GMAC-128,
BIP-GMAC-256, and BIP-CMAC-256 cipher suites. These new cipher suites
were defined in IEEE Std 802.11ac-2013.Signed-off-by: Jouni Malinen
Signed-off-by: Johannes Berg
20 Nov, 2014
4 commits
-
These are used in TDLS channel switching code.
Signed-off-by: Arik Nemtsov
Signed-off-by: Arik Nemtsov
Signed-off-by: Johannes Berg -
Define some related TDLS protocol constants and advertise channel switch
support in the extended-capabilities IE when the feature bit is defined.Actually supporting TDLS channel-switching also requires support for
some new nl80211 commands, to be introduced by future patches.Signed-off-by: Arik Nemtsov
Signed-off-by: Arik Nemtsov
Signed-off-by: Johannes Berg -
Add the BSS coex IE in case we support HT40 channels, as mandated by
section 8.5.13 in IEEE802.11 2012.Signed-off-by: Arik Nemtsov
Signed-off-by: Arik Nemtsov
Signed-off-by: Johannes Berg -
Since the TDLS peer station might not receive the teardown
packet (e.g., when in PS), this makes sure the packet is
retransmitted - this time through the AP - if the TDLS peer
didn't ACK the packet.Signed-off-by: Liad Kaufman
Signed-off-by: Arik Nemtsov
Signed-off-by: Johannes Berg
04 Nov, 2014
1 commit
-
Maximum length of AMPDU that an STA can receive in VHT.
length = 2 ^ (13 + max_ampdu_length_exp) - 1.Signed-off-by: Eran Harary
Signed-off-by: Emmanuel Grumbach
Signed-off-by: Johannes Berg
09 Oct, 2014
1 commit
-
The Extended Channel Switching capability bit in the extended
capabilities element must be set if the driver supports CSA on
non-beaconing interfaces.Since this capability needs to be set during driver registration, the
extended_capabiliities global variable needs to be moved to the local
structure so that it can be modified.Signed-off-by: Luciano Coelho
Signed-off-by: Johannes Berg
11 Sep, 2014
1 commit
-
Add nl80211 and driver API to validate, add and delete traffic
streams with appropriate settings.The API calls for userspace doing the action frame handshake
with the peer, and then allows only to set up the parameters
in the driver. To avoid setting up a session only to tear it
down again, the validate API is provided, but the real usage
later can still fail so userspace must be prepared for that.Signed-off-by: Johannes Berg
08 Sep, 2014
1 commit
-
Linux already supports 802.11h, where the access point can tell the
client to reduce its transmission power. However, 802.11h is only
defined for 5 GHz, where the need for this is much smaller than on
2.4 GHz.Cisco has their own solution, called DTPC (Dynamic Transmit Power
Control). Cisco APs on a controller sometimes but not always send
802.11h; they always send DTPC, even on 2.4 GHz. This patch adds support
for parsing and honoring the DTPC IE in addition to the 802.11h
element (they do not always contain the same limits, so both must
be honored); the format is not documented, but very simple.Tested (on top of wireless.git and on 3.16.1) against a Cisco Aironet
1142 joined to a Cisco 2504 WLC, by setting various transmit power
levels for the given access points and observing the results.
The Wireshark 802.11 dissector agrees with the interpretation of the
element, except for negative numbers, which seem to never happen
anyway.Signed-off-by: Steinar H. Gunderson
Signed-off-by: Johannes Berg
05 Sep, 2014
1 commit
-
Our legal structure changed at some point (see wikipedia), but
we forgot to immediately switch over to the new copyright
notice.For files that we have modified in the time since the change,
add the proper copyright notice now.Signed-off-by: Johannes Berg
Signed-off-by: Emmanuel Grumbach
Signed-off-by: Johannes Berg
26 Aug, 2014
1 commit
-
TPC report element is contained in spectrum management's tpc report
action frames and in radio measurement's link measurement report
action frames. Add a function which checks whether an action frame
contains this element. This may be needed by the drivers in order
to set the correct tx power value in these frames.Signed-off-by: Andrei Otcheretianski
Signed-off-by: Emmanuel Grumbach
Signed-off-by: Johannes Berg
21 Jul, 2014
1 commit
-
When TDLS QoS is supported by the the peer and the local card, add
the WMM parameter IE to the setup-confirm frame. Take the QoS settings
from the current AP, or if unsupported, use the default values from
the specification. This behavior is mandated by IEEE802.11-2012 section
10.22.4.Signed-off-by: Arik Nemtsov
Reviewed-by: Liad Kaufman
Reviewed-by: Johannes Berg
Signed-off-by: Johannes Berg
23 Jun, 2014
1 commit
-
Write a mac80211 to the cfg80211 API for requesting a userspace TDLS
operation. Define TDLS specific reason codes that can be used here.Signed-off-by: Arik Nemtsov
Signed-off-by: Johannes Berg
28 May, 2014
1 commit
-
Signed-off-by: Jes Sorensen
Signed-off-by: Johannes Berg
20 Mar, 2014
2 commits
-
In the 802.11ad, aka DMG (Dynamic Multi-Gigabit), aka 60Ghz
spec, maximum MSDU size extended to 7920 bytes.
add #define for this.Signed-off-by: Vladimir Kondratiev
Signed-off-by: Johannes Berg
01 Mar, 2014
1 commit
-
Function ieee80211_{dsss_chan_to_freq, freq_to_dsss_chan} have been
replaced with ieee80211_{channel_to_frequency, frequency_to_channel}.There should be no users of the two functions now. So remove them.
Cc: Johannes Berg
Signed-off-by: Zhao, Gang
Signed-off-by: John W. Linville
05 Feb, 2014
3 commits
-
The element ID list is currently almost sorted by amendment
or similar topic, but the order is difficult to maintain and
not very transparent. Sort the list by ID instead, and add
a lot of missing IDs.Signed-off-by: Johannes Berg
-
Action, disassoc and deauth frames are bufferable, and as such don't
have the PM bit in the frame control field reserved which means we
need to react to the bit when receiving in such a frame.Fix this by introducing a new helper ieee80211_is_bufferable_mmpdu()
and using it for the RX path that currently ignores the PM bit in
any non-data frames for doze->wake transitions, but listens to it in
all frames for wake->doze transitions, both of which are wrong.Also use the new helper in the TX path to clean up the code.
Signed-off-by: Johannes Berg
-
A few places weren't checking that the frame passed to the
function actually has enough data even though the function
clearly documents it must have a payload byte. Make this
safer by changing the function to take an skb and checking
the length inside. The old version is preserved for now as
the rtl* drivers use it and don't have a correct skb.Signed-off-by: Johannes Berg
11 Jan, 2014
1 commit
-
Add SMS4 key length definition to ieee80211_key_len enum.
It's used by WAPI.Signed-off-by: Avinash Patil
Signed-off-by: Bing Zhao
Signed-off-by: Johannes Berg
10 Jan, 2014
1 commit
-
Seventh bit of 8th byte of extended capabilities specifies wide
bandwidth support for TDLS links. Add this definition to ieee80211.Signed-off-by: Avinash Patil
Signed-off-by: Bing Zhao
Signed-off-by: Johannes Berg
26 Nov, 2013
1 commit
-
Introduce shift and mask defines for beamformee STS cap and number
of sounding dimensions cap as these can take any 3 bit value.
While at it also cleanup an unrequired parenthesis.Signed-off-by: Eyal Shapira
Reviewed-by: Johannes Berg
Signed-off-by: Emmanuel Grumbach
Signed-off-by: Johannes Berg
28 Oct, 2013
1 commit
-
Process the CSA frame according to the procedures define in IEEE Std
802.11-2012 section 10.9.8.4.3 as follow:
* The mesh channel switch parameters element (MCSP) must be availabe.
* If the MCSP's TTL is 1, drop the frame but still process the CSA.
* If the MCSP's precedence value is less than or equal to the current
precedence value, drop the frame and do not process the CSA.
* The CSA frame is forwarded after TTL is decremented by 1 and the
initiator field is set to 0. Transmit restrict field and others
are maintained as is.
* No beacon or probe response frame are handled here.Also, introduce the debug message used for mesh CSA purpose.
Signed-off-by: Chun-Yeow Yeoh
Signed-off-by: Johannes Berg
01 Oct, 2013
1 commit
-
VHT_CAP_BEAMFORMER_ANTENNAS cap is actually defined in the draft as
VHT_CAP_BEAMFORMEE_STS_MAX, and its size is 3 bits long.VHT_CAP_SOUNDING_DIMENSIONS is also 3 bits long.
Fix the definitions and change the cap masking accordingly.
Signed-off-by: Eliad Peller
Signed-off-by: Johannes Berg
30 Aug, 2013
1 commit
-
…wireless-next into for-davem
Conflicts:
drivers/net/wireless/iwlwifi/pcie/trans.c