09 Feb, 2017
1 commit
-
The nl80211_nan_dual_band_conf enumeration doesn't make much sense.
The default value is assigned to a bit, which makes it weird if the
default bit and other bits are set at the same time.To improve this, get rid of NL80211_NAN_BAND_DEFAULT and add a wiphy
configuration to let the drivers define which bands are supported.
This is exposed to the userspace, which then can make a decision on
which band(s) to use. Additionally, rename all "dual_band" elements
to "bands", to make things clearer.Signed-off-by: Luca Coelho
Signed-off-by: Johannes Berg
08 Feb, 2017
1 commit
-
Update the drivers to pass the RSSI level as a cfg80211_cqm_rssi_notify
parameter and pass this value to userspace in a new nl80211 attribute.
This helps both userspace and also helps in the implementation of the
multiple RSSI thresholds CQM mechanism.Note for marvell/mwifiex I pass 0 for the RSSI value because the new
RSSI value is not available to the driver at the time of the
cfg80211_cqm_rssi_notify call, but the driver queries the new value
immediately after that, so it is actually available just a moment later
if we wanted to defer caling cfg80211_cqm_rssi_notify until that moment.
Without this, the new cfg80211 code (patch 3) will call .get_station
which will send a duplicate HostCmd_CMD_RSSI_INFO command to the hardware.Signed-off-by: Andrew Zaborowski
Signed-off-by: Johannes Berg
27 Oct, 2016
2 commits
-
Add functionality to update the connection parameters when in connected
state, so that driver/firmware uses the updated parameters for
subsequent roaming. This is for drivers that support internal BSS
selection and roaming. The new command does not change the current
association state, i.e., it can be used to update IE contents for future
(re)associations without causing an immediate disassociation or
reassociation with the current BSS.This commit implements the required functionality for updating IEs for
(Re)Association Request frame only. Other parameters can be added in
future when required.Signed-off-by: vamsi krishna
Signed-off-by: Jouni Malinen
Signed-off-by: Johannes Berg -
Add the ability to configure if an AP (and associated VLANs) will
do multicast-to-unicast conversion for ARP, IPv4 and IPv6 frames
(possibly within 802.1Q). If enabled, such frames are to be sent
to each station separately, with the DA replaced by their own MAC
address rather than the group address.Note that this may break certain expectations of the receiver,
such as the ability to drop unicast IP packets received within
multicast L2 frames, or the ability to not send ICMP destination
unreachable messages for packets received in L2 multicast (which
is required, but the receiver can't tell the difference if this
new option is enabled.)This also doesn't implement the 802.11 DMS (directed multicast
service).Signed-off-by: Michael Braun
[fix disabling, add better documentation & commit message]
Signed-off-by: Johannes Berg
30 Sep, 2016
3 commits
-
Some NAN configuration paramaters may change during the operation of
the NAN device. For example, a user may want to update master preference
value when the device gets plugged/unplugged to the power.
Add API that allows to do so.Signed-off-by: Andrei Otcheretianski
Signed-off-by: Emmanuel Grumbach
Signed-off-by: Luca Coelho
Signed-off-by: Johannes Berg -
A NAN function can be either publish, subscribe or follow
up. Make all the necessary verifications and just pass the
request to the driver.
Allow the user space application that starts NAN to
forbid any other socket to add or remove functions.Signed-off-by: Andrei Otcheretianski
Signed-off-by: Emmanuel Grumbach
Signed-off-by: Ayala Beker
Signed-off-by: Luca Coelho
Signed-off-by: Johannes Berg -
This allows user space to start/stop NAN interface.
A NAN interface is like P2P device in a few aspects: it
doesn't have a netdev associated to it.
Add the new interface type and prevent operations that
can't be executed on NAN interface like scan.Define several attributes that may be configured by user space
when starting NAN functionality (master preference and dual
band operation)Signed-off-by: Andrei Otcheretianski
Signed-off-by: Emmanuel Grumbach
Signed-off-by: Luca Coelho
Signed-off-by: Johannes Berg
06 Jul, 2016
1 commit
-
Beacon report radio measurement requires reporting observed BSSs
on the channels specified in the beacon request. If the measurement
mode is set to passive or active, it requires actually performing a
scan (passive or active, accordingly), and reporting the time that
the scan was started and the time each beacon/probe was received
(both in terms of TSF of the BSS of the requesting AP). If the
request mode is table, this information is optional.
In addition, the radio measurement request specifies the channel
dwell time for the measurement.In order to use scan for beacon report when the mode is active or
passive, add a parameter to scan request that specifies the
channel dwell time, and add scan start time and beacon received time
to scan results information.Supporting beacon report is required for Multi Band Operation (MBO).
Signed-off-by: Assaf Krauss
Signed-off-by: David Spinadel
Signed-off-by: Avraham Stern
Signed-off-by: Luca Coelho
Signed-off-by: Johannes Berg
12 Apr, 2016
1 commit
-
This enum is already perfectly aliased to enum nl80211_band, and
the only reason for it is that we get IEEE80211_NUM_BANDS out of
it. There's no really good reason to not declare the number of
bands in nl80211 though, so do that and remove the cfg80211 one.Signed-off-by: Johannes Berg
06 Apr, 2016
1 commit
-
This extends NL80211_CMD_CONNECT to allow the NL80211_ATTR_PREV_BSSID
attribute to be used similarly to way this was already allowed with
NL80211_CMD_ASSOCIATE. This allows user space to request reassociation
(instead of association) when already connected to an AP. This provides
an option to reassociate within an ESS without having to disconnect and
associate with the AP.Signed-off-by: Jouni Malinen
Signed-off-by: Johannes Berg
04 Dec, 2015
3 commits
-
Implement new functionality for aborting an ongoing scan.
Add NL80211_CMD_ABORT_SCAN to the nl80211 interface. After
aborting the scan, driver shall provide the scan status by
calling cfg80211_scan_done().Reviewed-by: Jouni Malinen
Signed-off-by: Vidyullatha Kanchanapally
Signed-off-by: Sunil Dutt
[change command to take wdev instead of netdev so that it
can be used on p2p-device scans]
Signed-off-by: Johannes Berg -
Complete the tracepoint with the missing data - it's not printed
by default (a lot of it is dynamic arrays) but will be recorded
and be available during post-processing.Signed-off-by: Johannes Berg
-
Add missing tracing for:
1. start_radar_detection()
2. set_mcast_rates()
3. set_coalesce()Signed-off-by: Ilan Peer
Signed-off-by: Emmanuel Grumbach
Signed-off-by: Johannes Berg
13 Oct, 2015
1 commit
-
For location and connectivity services, userspace would often like
to know the time when the BSS was last seen. The current "last seen"
value is calculated in a way that makes it less useful, especially
if the system suspended in the meantime.Add the ability for the driver to report a real CLOCK_BOOTTIME stamp
that can then be reported to userspace (if present).Drivers wishing to use this must be converted to the new API to call
cfg80211_inform_bss_data() or cfg80211_inform_bss_frame_data(). They
need to ensure the reported value is accurate enough even when the
frame might have been buffered in the device (e.g. firmware.)Signed-off-by: Dmitry Shmidt
[modified to use struct, inlines]
Signed-off-by: Johannes Berg
17 Jul, 2015
1 commit
-
The RTNL is required to check for IR-relaxation conditions that allow
more channels to beacon. Export an RTNL locked version of reg_can_beacon
and use it where possible in AP/STA interface type flows, where
IR-relaxation may be applicable.Fixes: 06f207fc5418 ("cfg80211: change GO_CONCURRENT to IR_CONCURRENT for STA")
Signed-off-by: Arik Nemtsov
Signed-off-by: Emmanuel Grumbach
Signed-off-by: Johannes Berg
01 Apr, 2015
1 commit
-
…inux/kernel/git/jberg/mac80211-next
Johannes Berg says:
====================
Lots of updates for net-next; along with the usual flurry
of small fixes, cleanups and internal features we have:
* VHT support for TDLS and IBSS (conditional on drivers though)
* first TX performance improvements (the biggest will come later)
* many suspend/resume (race) fixes
* name_assign_type support from Tom Gundersen
====================Signed-off-by: David S. Miller <davem@davemloft.net>
21 Mar, 2015
1 commit
-
This helps debug issues with VLAN modifications that are otherwise
not really visible in any tracing/debugging.Signed-off-by: Johannes Berg
04 Mar, 2015
1 commit
-
Use the built-in function instead of memset.
Signed-off-by: Joe Perches
Signed-off-by: David S. Miller
03 Mar, 2015
1 commit
-
802.11ad adds new a network type (PBSS) and changes the capability
field interpretation for the DMG (60G) band.
The same 2 bits that were interpreted as "ESS" and "IBSS" before are
re-used as a 2-bit field with 3 valid values (and 1 reserved). Valid
values are: "IBSS", "PBSS" (new) and "AP".In order to get the BSS struct for the new PBSS networks, change the
cfg80211_get_bss() function to take a new enum ieee80211_bss_type
argument with the valid network types, as "capa_mask" and "capa_val"
no longer work correctly (the search must be band-aware now.)The remaining bits in "capa_mask" and "capa_val" are used only for
privacy matching so replace those two with a privacy enum as well.Signed-off-by: Dedy Lansky
[rewrite commit log, tiny fixes]
Signed-off-by: Johannes Berg
08 Jan, 2015
2 commits
-
Add the time spent scanning to the survey data so it can be
reported by drivers that collect such information.Signed-off-by: Johannes Berg
-
All of the survey data is (currently) per channel anyway,
so having the word "channel" in the name does nothing. In
the next patch I'll introduce global data to the survey,
where the word "channel" is actually confusing.Signed-off-by: Johannes Berg
20 Nov, 2014
1 commit
-
Introduce commands to initiate and cancel TDLS channel-switching. Once
TDLS channel-switching is started, the lower level driver is responsible
for continually initiating channel-switch operations and returning to
the base (AP) channel to listen for beacons from time to time.Upon cancellation of the channel-switch all communication between the
relevant TDLS peers will continue on the base channel.Signed-off-by: Arik Nemtsov
Signed-off-by: Johannes Berg
10 Nov, 2014
1 commit
-
Add a new NL80211_CH_SWITCH_STARTED_NOTIFY message that can be sent to
the userspace when a channel switch process has started. This allows
userspace to take action, for instance, by requesting other interfaces
to switch channel as necessary.This patch introduces a function that allows the drivers to send this
notification. It should be used when the driver starts processing a
channel switch initiated by a remote device (eg. when a STA receives a
CSA from the AP) and when it successfully starts a userspace-triggered
channel switch (eg. when hostapd triggers a channel swith in the AP).Signed-off-by: Luciano Coelho
Signed-off-by: Johannes Berg
04 Nov, 2014
1 commit
-
This patch adds new iface type (NL80211_IFTYPE_OCB) representing
the OCB (Outside the Context of a BSS) mode.
When establishing a connection to the network a cfg80211_join_ocb
function is called (particular nl80211_command is added as well).
A mandatory parameters during the ocb_join operation are 'center
frequency' and 'channel width (5/10 MHz)'.Changes done in mac80211 are minimal possible required to avoid
many warnings (warning: enumeration value 'NL80211_IFTYPE_OCB'
not handled in switch) during compilation. Full functionality
(where needed) is added in the following patch.Signed-off-by: Rostislav Lisovy
Signed-off-by: Johannes Berg
20 Oct, 2014
2 commits
-
The optional NL80211_ATTR_MGMT_SUBTYPE and NL80211_ATTR_REASON_CODE
attributes can now be included in NL80211_CMD_DEL_STATION to indicate to
the driver which frame (Deauthentication/Disassociation) and reason code
in that frame should be used to indicate removal to the specific
station. This is used by drivers that implement AP SME and generate
those frames internally.Signed-off-by: Jouni Malinen
Signed-off-by: Johannes Berg -
This makes it easier to add new parameters for the del_station calls
without having to modify all drivers that use this.Signed-off-by: Jouni Malinen
Signed-off-by: Johannes Berg
09 Oct, 2014
1 commit
-
Add two new cfg80211 operations for querying a table with proxied mesh
paths.Signed-off-by: Henning Rogge
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
25 Jul, 2014
1 commit
-
Conflicts:
net/mac80211/cfg.cSigned-off-by: John W. Linville
18 Jul, 2014
1 commit
-
tsc can be NULL (mac80211 currently always passes NULL),
resulting in NULL-dereference. check before copying it.Cc: stable@vger.kernel.org
Signed-off-by: Eliad Peller
Signed-off-by: Emmanuel Grumbach
Signed-off-by: Johannes Berg
23 Jun, 2014
2 commits
-
The TDLS initiator is set once during link setup. If determines the
address ordering in the link identifier IE.Fix dependent drivers - mwifiex and mac80211.
Signed-off-by: Arik Nemtsov
Signed-off-by: Johannes Berg -
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
15 May, 2014
1 commit
-
Change the type of NL80211_ATTR_CSA_C_OFF_BEACON and
NL80211_ATTR_CSA_C_OFF_PRESP to be NLA_BINARY which allows
userspace to use beacons and probe responses with
multiple CSA counters.
This isn't breaking the API since userspace can
continue to use nla_put_u16 for this attributes, which
is equivalent to a single element u16 array.
In addition advertise max number of supported CSA counters.
This is needed when using CSA and eCSA IEs together.Signed-off-by: Andrei Otcheretianski
Signed-off-by: Luciano Coelho
Signed-off-by: Johannes Berg
06 May, 2014
1 commit
-
This exports a new cfg80211_stop_iface() function.
This is intended for driver internal interface
combination management and channel switching.Due to locking issues (it re-enters driver) the
call is asynchronous and uses cfg80211 event
list/worker.Signed-off-by: Michal Kazior
Signed-off-by: Johannes Berg
29 Apr, 2014
1 commit
-
This extends NL80211_CMD_SET_CHANNEL to allow dynamic channel bandwidth
changes in AP mode (including P2P GO) during a lifetime of the BSS. This
can be used to implement, e.g., HT 20/40 MHz co-existence rules on the
2.4 GHz band.Signed-off-by: Jouni Malinen
Signed-off-by: Johannes Berg
09 Apr, 2014
1 commit
-
Allow GO operation on a channel marked with IEEE80211_CHAN_GO_CONCURRENT
iff there is an active station interface that is associated to
an AP operating on the same channel in the 2 GHz band or the same UNII band
(in the 5 GHz band). This relaxation is not allowed if the channel is
marked with IEEE80211_CHAN_RADAR.Note that this is a permissive approach to the FCC definitions,
that require a clear assessment that the device operating the AP is
an authorized master, i.e., with radar detection and DFS capabilities.It is assumed that such restrictions are enforced by user space.
Furthermore, it is assumed, that if the conditions that allowed for
the operation of the GO on such a channel change, i.e., the station
interface disconnected from the AP, it is the responsibility of user
space to evacuate the GO from the channel.Signed-off-by: Ilan Peer
Signed-off-by: Johannes Berg
20 Feb, 2014
1 commit
-
While framing the TDLS Setup Confirmation frame, the driver needs to
know if the TDLS peer is VHT/HT/WMM capable and thus shall construct
the VHT/HT operation / WMM parameter elements accordingly. Supplicant
determines if the TDLS peer is VHT/HT/WMM capable based on the
presence of the respective IEs in the received TDLS Setup Response frame.The host driver should not need to parse the received TDLS Response
frame and thus, should be able to rely on the supplicant to indicate
the capability of the peer through additional flags while transmitting
the TDLS Setup Confirmation frame through tdls_mgmt operations.Signed-off-by: Sunil Dutt Undekari
Signed-off-by: Johannes Berg
05 Feb, 2014
1 commit
-
When receiving an IBSS_JOINED event select the BSS object
based on the {bssid, channel} couple rather than the bssid
only.
With the current approach if another cell having the same
BSSID (but using a different channel) exists then cfg80211
picks up the wrong BSS object.
The result is a mismatching channel configuration between
cfg80211 and the driver, that can lead to any sort of
problem.The issue can be triggered by having an IBSS sitting on
given channel and then asking the driver to create a new
cell using the same BSSID but with a different frequency.
By passing the channel to cfg80211_get_bss() we can solve
this ambiguity and retrieve/create the correct BSS object.
All the users of cfg80211_ibss_joined() have been changed
accordingly.Moreover WARN when cfg80211_ibss_joined() gets a NULL
channel as argument and remove a bogus call of the same
function in ath6kl (it does not make sense to call
cfg80211_ibss_joined() with a zero BSSID on ibss-leave).Cc: Kalle Valo
Cc: Arend van Spriel
Cc: Bing Zhao
Cc: Jussi Kivilinna
Cc: libertas-dev@lists.infradead.org
Acked-by: Kalle Valo
Signed-off-by: Antonio Quartulli
[minor code cleanup in ath6kl]
Signed-off-by: Johannes Berg
19 Dec, 2013
1 commit
-
This allows QoS mapping from external networks to be implemented as
defined in IEEE Std 802.11-2012, 10.24.9. APs can use this to advertise
DSCP ranges and exceptions for mapping frames to a specific UP over
Wi-Fi.The payload of the QoS Map Set element (IEEE Std 802.11-2012, 8.4.2.97)
is sent to the driver through the new NL80211_ATTR_QOS_MAP attribute to
configure the local behavior either on the AP (based on local
configuration) or on a station (based on information received from the
AP).Signed-off-by: Kyeyoon Park
Signed-off-by: Jouni Malinen
Signed-off-by: Johannes Berg
02 Dec, 2013
1 commit
-
Change cfg80211 and mac80211 to use cfg80211_mgmt_tx_params
struct to aggregate parameters for mgmt_tx functions.
This makes the functions' signatures less clumsy and allows
less painful parameters extension.Signed-off-by: Andrei Otcheretianski
[fix all other drivers]
Signed-off-by: Johannes Berg