02 Nov, 2017
1 commit
-
Many source files in the tree are missing licensing information, which
makes it harder for compliance tools to determine the correct license.By default all files without license information are under the default
license of the kernel, which is GPL version 2.Update the files which contain no license information with the 'GPL-2.0'
SPDX license identifier. The SPDX identifier is a legally binding
shorthand, which can be used instead of the full boiler plate text.This patch is based on work done by Thomas Gleixner and Kate Stewart and
Philippe Ombredanne.How this work was done:
Patches were generated and checked against linux-4.14-rc6 for a subset of
the use cases:
- file had no licensing information it it.
- file was a */uapi/* one with no licensing information in it,
- file was a */uapi/* one with existing licensing information,Further patches will be generated in subsequent months to fix up cases
where non-standard license headers were used, and references to license
had to be inferred by heuristics based on keywords.The analysis to determine which SPDX License Identifier to be applied to
a file was done in a spreadsheet of side by side results from of the
output of two independent scanners (ScanCode & Windriver) producing SPDX
tag:value files created by Philippe Ombredanne. Philippe prepared the
base worksheet, and did an initial spot review of a few 1000 files.The 4.13 kernel was the starting point of the analysis with 60,537 files
assessed. Kate Stewart did a file by file comparison of the scanner
results in the spreadsheet to determine which SPDX license identifier(s)
to be applied to the file. She confirmed any determination that was not
immediately clear with lawyers working with the Linux Foundation.Criteria used to select files for SPDX license identifier tagging was:
- Files considered eligible had to be source code files.
- Make and config files were included as candidates if they contained >5
lines of source
- File already had some variant of a license header in it (even if
Reviewed-by: Philippe Ombredanne
Reviewed-by: Thomas Gleixner
Signed-off-by: Greg Kroah-Hartman
16 Dec, 2016
1 commit
-
That's the default now, no need for makefiles to set it.
Signed-off-by: Michael S. Tsirkin
Acked-by: Kalle Valo
Acked-by: Marcel Holtmann
Acked-by: Marc Kleine-Budde
Acked-by: Greg Kroah-Hartman
Acked-by: Arend van Spriel
27 Oct, 2016
1 commit
-
This adds support for encrypting (Re)Association Request frame and
decryption (Re)Association Response frame when using FILS in station
mode.Signed-off-by: Jouni Malinen
Signed-off-by: Johannes Berg
15 Oct, 2015
1 commit
-
That file contains just a single function, which itself is just a
single statement to call a different function. Remove it.Signed-off-by: Johannes Berg
17 Jul, 2015
1 commit
-
With this .config: http://busybox.net/~vda/kernel_config,
after deinlining the function size is 3132 bytes and there are
7 callsites.Total size reduction: about 20 kbytes.
Signed-off-by: Denys Vlasenko
CC: John Linville
CC: Michal Kazior
Cc: Johannes Berg
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
CC: linux-kernel@vger.kernel.org
Signed-off-by: Johannes Berg
27 Jan, 2015
2 commits
-
This allows mac80211 to configure BIP-GMAC-128 and BIP-GMAC-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 allows mac80211 to configure GCMP and GCMP-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
[remove a spurious newline]
Signed-off-by: Johannes Berg
04 Nov, 2014
1 commit
-
This patch adds 802.11p OCB (Outside the Context of a BSS) mode
support.When communicating in OCB mode a mandatory wildcard BSSID
(48 '1' bits) is used.The EDCA parameters handling function was changed to support
802.11p specific values.The insertion of a newly discovered STAs is done in the similar way
as in the IBSS mode -- through the deferred insertion.The OCB mode uses a periodic 'housekeeping task' for expiration of
disconnected STAs (in the similar manner as in the MESH mode).New Kconfig option for verbose OCB debugging outputs is added.
Signed-off-by: Rostislav Lisovy
Signed-off-by: Johannes Berg
23 Jun, 2014
2 commits
-
Currently, cfg80211 tries to implement ethtool, but that doesn't
really scale well, with all the different operations. Make the
lower-level driver responsible for it, which currently only has
an effect on mac80211. It will similarly not scale well at that
level though, since mac80211 also has many drivers.To cleanly implement this in mac80211, introduce a new file and
move some code to appropriate places.Signed-off-by: Johannes Berg
-
Minstrel has long since proven its worth.
Signed-off-by: John W. Linville
Signed-off-by: Johannes Berg
05 May, 2014
1 commit
-
With new additions planned, this code is getting too big for cfg.c.
Signed-off-by: Arik Nemtsov
Signed-off-by: Johannes Berg
05 Feb, 2013
1 commit
-
Add routines to
- maintain a PS mode for each peer and a non-peer PS mode
- indicate own PS mode in transmitted frames
- track neighbor STAs power modes
- buffer frames when neighbors are in PS mode
- add TIM and Awake Window IE to beacons
- release frames in Mesh Peer Service PeriodsAdd local_pm to sta_info to represent the link-specific power
mode at this station towards the remote station. When a peer
link is established, use the default power mode stored in mesh
config. Update the PS status if the peering status of a neighbor
changes.
Maintain a mesh power mode for non-peer mesh STAs. Set the
non-peer power mode to active mode during peering. Authenticated
mesh peering is currently not working when either node is
configured to be in power save mode.Indicate the current power mode in transmitted frames. Use QoS
Nulls to indicate mesh power mode transitions.
For performance reasons, calls to the function setting the frame
flags are placed in HWMP routing routines, as there the STA
pointer is already available.Add peer_pm to sta_info to represent the peer's link-specific
power mode towards the local station. Add nonpeer_pm to
represent the peer's power mode towards all non-peer stations.
Track power modes based on received frames.Add the ps_data structure to ieee80211_if_mesh (for TIM map, PS
neighbor counter and group-addressed frame buffer).Set WLAN_STA_PS flag for STA in PS mode to use the unicast frame
buffering routines in the tx path. Update num_sta_ps to buffer
and release group-addressed frames after DTIM beacons.Announce the awake window duration in beacons if in light or
deep sleep mode towards any peer or non-peer. Create a TIM IE
similarly to AP mode and add it to mesh beacons. Parse received
Awake Window IEs and check TIM IEs for buffered frames.Release frames towards peers in mesh Peer Service Periods. Use
the corresponding trigger frames and monitor the MPSP status.
Append a QoS Null as trigger frame if neccessary to properly end
the MPSP. Currently, in HT channels MPSPs behave imperfectly and
show large delay spikes and frame losses.Signed-off-by: Marco Porsch
Signed-off-by: Ivan Bezyazychnyy
Signed-off-by: Mike Krinkin
Signed-off-by: Max Filippov
Signed-off-by: Johannes Berg
17 Oct, 2012
1 commit
-
Save the AP's VHT capabilities (in managed
mode) and make them available to the driver
in the station information.Unlike HT capabilities, they aren't restricted
to the common capabilities, so drivers must be
aware of their own capabilities.Signed-off-by: Mahesh Palivela
[fix endian conversion bug ...]
Signed-off-by: Johannes Berg
24 Jun, 2012
2 commits
-
This file will contain more soon, so
rename it to just trace.Signed-off-by: Johannes Berg
-
There are a few things that make the logging and
debugging in mac80211 less useful than it should
be right now:
* a lot of messages should be pr_info, not pr_debug
* wholesale use of pr_debug makes it require *both*
Kconfig and dynamic configuration
* there are still a lot of ifdefs
* the style is very inconsistent, sometimes the
sdata->name is printed in frontClean up everything, introducing new macros and
separating out the station MLME debugging into
a new Kconfig symbol.Signed-off-by: Johannes Berg
07 Jun, 2012
1 commit
-
Redesign all the off-channel code, getting rid of
the generic off-channel work concept, replacing
it with a simple remain-on-channel list.This fixes a number of small issues with the ROC
implementation:
* offloaded remain-on-channel couldn't be queued,
now we can queue it as well, if needed
* in iwlwifi (the only user) offloaded ROC is
mutually exclusive with scanning, use the new
queue to handle that case -- I expect that it
will later depend on a HW flagThe bigger issue though is that there's a bad bug
in the current implementation: if we get a mgmt
TX request while HW roc is active, and this new
request has a wait time, we actually schedule a
software ROC instead since we can't guarantee the
existing offloaded ROC will still be that long.
To fix this, the queuing mechanism was needed.The queuing mechanism for offloaded ROC isn't yet
optimal, ideally we should add API to have the HW
extend the ROC if needed. We could add that later
but for now use a software implementation.Overall, this unifies the behaviour between the
offloaded and software-implemented case as much
as possible.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
11 Apr, 2012
1 commit
-
This patch adds MBSS extensible synchronization framework (Sec.
13.13.2 of IEEE Std. 802.11-2012).The framework is implemented via an ops table which defines the
following functions:rx_bcn_presp() - this is called every time a mesh beacon is
received.
adjust_tbtt() - this is called immediately before a beacon is about
to be transmitted.The default neighbor offset synchronization defined in the standard is
implemented. We also provide template functions for vendor specific
methods.When neighbor offset synchronization is active (which is the default)
mesh neighbors in the same MBSS will track timing offsets to each other
and compensate clock drift.In our tests we observed that this mesh synchronization implementation
successfully corrected drifts between stations of ~2PPM while
introducing a jitter of ~20us.It is also possible to test this framework on mac80211_hwsim simulated
phys to see how it behaves under different topologies, over poor links,
etc.Signed-off-by: Marco Porsch
Signed-off-by: Pavel Zubarev
Signed-off-by: Javier Cardona
Signed-off-by: John W. Linville
07 Feb, 2012
1 commit
-
This is the second part of the auth/assoc redesign,
the mac80211 part. This moves the auth/assoc code
out of the work abstraction and into the MLME, so
that we don't flip channels all the time etc.The only downside is that when we are associated,
we need to drop the association in order to create
a connection to another AP, but for most drivers
this is actually desirable and the ability to do
was never used by any applications. If we want to
implement resource reservation with FT-OTA, we'd
probably best do it with explicit R-O-C in wpa_s.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
29 Nov, 2011
1 commit
-
There's little point in this config symbol, if
tracing is disabled the overhead is negligible
and if you think it's too bad you can always
turn off tracing completely.Also remove the part where we don't have sparse
check the tracing code -- it seems that it can
now deal with it (or the code changed).Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
03 Jun, 2010
1 commit
-
Signed-off-by: Felix Fietkau
Signed-off-by: John W. Linville
08 May, 2010
1 commit
-
Currently (all tested with hwsim) you can do stupid
things like setting up an AP on a certain channel,
then adding another virtual interface and making
that associate on another channel -- this will make
the beaconing to move channel but obviously without
the necessary IEs data update.In order to improve this situation, first make the
configuration APIs (cfg80211 and nl80211) aware of
multi-channel operation -- we'll eventually need
that in the future anyway. There's one userland API
change and one API addition. The API change is that
now SET_WIPHY must be called with virtual interface
index rather than only wiphy index in order to take
effect for that interface -- luckily all current
users (hostapd) do that. For monitor interfaces, the
old setting is preserved, but monitors are always
slaved to other devices anyway so no guarantees.The second userland API change is the introduction
of a per virtual interface SET_CHANNEL command, that
hostapd should use going forward to make it easier
to understand what's going on (it can automatically
detect a kernel with this command).Other than mac80211, no existing cfg80211 drivers
are affected by this change because they only allow
a single virtual interface.mac80211, however, now needs to be aware that the
channel settings are per interface now, and needs
to disallow (for now) real multi-channel operation,
which is another important part of this patch.One of the immediate benefits is that you can now
start hostapd to operate on a hardware that already
has a connection on another virtual interface, as
long as you specify the same channel.Note that two things are left unhandled (this is an
improvement -- not a complete fix):* different HT/no-HT modes
currently you could start an HT AP and then
connect to a non-HT network on the same channel
which would configure the hardware for no HT;
that can be fixed fairly easily* CSA
An AP we're connected to on a virtual interface
might indicate switching channels, and in that
case we would follow it, regardless of how many
other interfaces are operating; this requires
more effort to fix but is pretty rare after allSigned-off-by: Johannes Berg
Signed-off-by: John W. Linville
29 Dec, 2009
2 commits
-
The off-channel operations for going into power save mode (station
mode) or stop beaconing (AP/IBSS) are not limited to scanning. Move
these into a separate file and allow them to be used for other
purposes, too.Signed-off-by: Jouni Malinen
Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
In order to use auth/assoc for different purposes
other than MLME, it needs to be split up. For other
purposes, a generic work handling (potentially on
another channel) will be useful.To achieve that, this patch moves much of the MLME
work handling out of mlme into a new work API. The
API can currently handle probing a specific AP,
authentication and association. The MLME previously
handled probe/authentication as one step and will
continue to do so, but they are separate in the new
work handling.Work items are RCU-managed to be able to check for
existence of an item for a specific frame in the RX
path, but they can be re-used which the MLME right
now will do for its combined probe/auth step.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
19 Nov, 2009
1 commit
-
It's enough code to have its own file, I think.
Especially since I'm going to add to it.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
30 Jul, 2009
1 commit
-
Finally! This is what you've all been waiting for!
This patch makes cfg80211 take care of wext emulation
_completely_ by itself, drivers that don't need things
cfg80211 doesn't do yet don't even need to be aware of
wireless extensions.
This means we can also clean up mac80211's and iwm's
Kconfig and make it possible to build them w/o wext
now!RIP wext.
Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
25 Jul, 2009
1 commit
-
This makes mac80211 use the event tracing framework
to log all operations as given to the driver. This
will need to be extended with more information, but
as a start it should be good.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
28 Feb, 2009
1 commit
-
This patch splits out the ibss code and data from managed (station) mode.
The reason to do this is to better separate the state machines, and have
the code be contained better so it gets easier to determine what exactly
a given change will affect, that in turn makes it easier to understand.This is quite some churn, especially because I split sdata->u.sta into
sdata->u.mgd and sdata->u.ibss, but I think it's easier to maintain that
way. I've also shuffled around some code -- null function sending is only
applicable to managed interfaces so put that into that file, some other
functions are needed from various places so put them into util, and also
rearranged the prototypes in ieee80211_i.h accordingly.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
14 Feb, 2009
1 commit
-
Create two new files, agg-tx.c and agg-rx.c to make it clearer
which code is common (ht.c) and which is specific (agg-*.c).Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
30 Jan, 2009
2 commits
-
This patch introduces suspend and resume callbacks to mac80211,
allowing mac80211 to quiesce its state (bringing down interfaces,
removing keys, etc) in preparation for suspend. cfg80211 will call
the suspend hook before the device suspend, and resume hook after
the device resume.Signed-off-by: Bob Copeland
Acked-by: Johannes Berg
Signed-off-by: John W. Linville -
Implement Broadcast/Multicast Integrity Protocol for management frame
protection. This patch adds the needed definitions for the new
information element (MMIE) and implementation for the new "encryption"
type (though, BIP is actually not encrypting data, it provides only
integrity protection). These routines will be used by a follow-on patch
that enables BIP for multicast/broadcast robust management frames.Signed-off-by: Jouni Malinen
Acked-by: Johannes Berg
Signed-off-by: John W. Linville
13 Dec, 2008
1 commit
-
Make sure sparse checks endianness when run on mac80211/cfg80211.
Signed-off-by: Johannes Berg
Cc: Sam Ravnborg
Signed-off-by: John W. Linville
07 Oct, 2008
1 commit
-
Signed-off-by: Felix Fietkau
Signed-off-by: John W. Linville
12 Sep, 2008
3 commits
-
Like the HT code, this doesn't depend on the STA-mode implementation
and can be handled entirely independently. There's only stub code
for now, but when it gets filled having it in its own file will be
beneficial.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
Some of the HT code in mlme.c is misplaced:
* constants/definitions belong to the ieee80211.h header
* code being used in other modes as well shouldn't be thereSigned-off-by: Johannes Berg
Signed-off-by: John W. Linville -
Here's a first patch to move some code from mlme.c to a
new file called scan.c. The end result will hopefully be
a more manageable mlme.c.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
18 Jul, 2008
1 commit
-
The only behavior change is that we do not drop packets under any
circumstances. If that is absolutely needed, we could easily add it
back.With cleanups and help from Johannes Berg.
Signed-off-by: David S. Miller
01 Jul, 2008
1 commit
-
The old infrastructure was:
- the default algorithm is built into mac80211
- other algorithms get into their own modulesThe implementation of this complicated scheme was horrible
(just look at net/mac80211/Makefile), and anyone adding a new
algorithm would most likely not get it right at his first attempt.This patch therefore builds all enabled algorithms into the mac80211
module.The user interface for the rate control algorithms changes as follows:
- first the user can choose which algorithms to enable (currently only
MAC80211_RC_PID is available)
- if more than one algorithm is enabled (currently not possible since
only one algorithm is present) the user then chooses the default oneNote:
- MAC80211_RC_PID is always enables for CONFIG_EMBEDDED=nTechnical changes:
- all selected algorithms get into the mac80211 module
- net/mac80211/Makefile can now become much less complicated
- support for rc80211_pid_algo.c being modular is no longer required
- this includes unexporting mesh_plink_brokenSigned-off-by: Adrian Bunk
Signed-off-by: John W. Linville
22 May, 2008
1 commit
-
This patch updates mac80211 and drivers to be multi-queue aware and
use that instead of the internal queue mapping. Also does a number
of cleanups in various pieces of the code that fall out and reduces
internal mac80211 state size.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
09 Apr, 2008
1 commit
-
This patch renames all mac80211 files (except ieee80211_i.h) to get rid
of the useless ieee80211_ prefix.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
14 Mar, 2008
1 commit
-
Signed-off-by: Adrian Bunk
Signed-off-by: Andrew Morton
Signed-off-by: John W. Linville