07 Feb, 2012

1 commit

  • To track authenticated state seems to have been
    a design mistake in cfg80211. It is possible to
    have out of band authentication (FT), tracking
    multiple authentications caused more problems
    than it ever helped, and the implementation in
    mac80211 is too complex.

    Remove all this complexity, and let userspace
    do whatever it wants to, mac80211 can deal with
    that just fine. Association is still tracked of
    course, but authentication no longer is. Local
    auth state changes are thus no longer of value,
    so ignore them completely.

    This will also help implement SAE -- asking the
    driver to do an authentication is now almost
    equivalent to sending an authentication frame,
    with the exception of shared key authentication
    which is still handled completely.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

31 Jan, 2012

1 commit


28 Jan, 2012

2 commits

  • Fix new kernel-doc warnings:

    Warning(include/net/cfg80211.h:1165): No description found for parameter 'channel_type'
    Warning(include/net/cfg80211.h:2090): No description found for parameter 'probe_resp_offload'

    Signed-off-by: Randy Dunlap
    Cc: Johannes Berg
    Cc: linux-wireless@vger.kernel.org
    Signed-off-by: John W. Linville

    Randy Dunlap
     
  • A mesh node that joins the mesh network is by default a forwarding entity. This patch allows
    the mesh node to set as non-forwarding entity. Whenever dot11MeshForwarding is set to 0, the
    mesh node can prevent itself from forwarding the traffic which is not destined to him.

    Signed-off-by: Chun-Yeow Yeoh
    Signed-off-by: John W. Linville

    Chun-Yeow Yeoh
     

25 Jan, 2012

1 commit

  • … of the local maximum transmit power

    The local maximum transmit power is the maximum power a wireless device
    allowed to transmit. If Power Constraint is presented, the local maximum
    power equals to the maximum allowed power defined in regulatory domain
    minus power constraint.

    The maximum transmit power is maximum power a wireless device capable of
    transmitting, and should be used in Power Capability element (7.3.2.16
    IEEE802.11 2007).

    The transmit power from a wireless device should not greater than the
    local maximum transmit power.

    The maximum transmit power was not calculated correctly in the current
    Linux wireless/mac80211 when Power Constraint is presented.

    Signed-off-by: Hong Wu <hong.wu@dspg.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>

    Hong Wu
     

20 Dec, 2011

1 commit


16 Dec, 2011

2 commits

  • By definition WIPHY_FLAG_STRICT_REGULATORY was intended to allow the
    wiphy to adjust itself to the country IE power information if the
    card had no regulatory data but we had no way to tell cfg80211 that if
    the card also had its own custom regulatory domain (these are typically
    custom world regulatory domains) that we want to follow the country IE's
    noted values for power for each channel. We add support for this and
    document it.

    This is not a critical fix but a performance optimization for cards
    with custom regulatory domains that associate to an AP with sends
    out country IEs with a higher EIRP than the one on the custom
    regulatory domain. In practice the only driver affected right now
    are the Atheros drivers as they are the only drivers using both
    WIPHY_FLAG_STRICT_REGULATORY and WIPHY_FLAG_CUSTOM_REGULATORY --
    used on cards that have an Atheros world regulatory domain. Cards
    that have been programmed to follow a country specifically will not
    follow the country IE power. So although not a stable fix distributions
    should consider cherry picking this.

    Cc: compat@orbit-lab.org
    Cc: Paul Stewart
    Cc: Rajkumar Manoharan
    Cc: Senthilkumar Balasubramanian
    Reported-by: Rajkumar Manoharan
    Signed-off-by: Luis R. Rodriguez
    Signed-off-by: John W. Linville

    Luis R. Rodriguez
     
  • The nl80211 station handling code is a bit messy
    and doesn't do a lot of validation. It seems like
    this could be an issue for drivers that don't use
    mac80211 to validate everything.

    As cfg80211 doesn't keep station state, move the
    validation of allowing supported_rates to change
    for TDLS only in station mode to mac80211.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

14 Dec, 2011

1 commit

  • It is quite possible to run into a race in bss timeout where
    the drivers see the bss entry just before notifying cfg80211
    of a roaming event but it got timed out by the time rdev->event_work
    got scehduled from cfg80211_wq. This would result in the following
    WARN-ON() along with the failure to notify the user space of
    the roaming. The other situation which is happening with ath6kl
    that runs into issue is when the driver reports roam to same AP
    event where the AP bss entry already got expired. To fix this,
    move cfg80211_get_bss() from __cfg80211_roamed() to cfg80211_roamed().

    [158645.538384] WARNING: at net/wireless/sme.c:586
    __cfg80211_roamed+0xc2/0x1b1()
    [158645.538810] Call Trace:
    [158645.538838] [] warn_slowpath_common+0x65/0x7a
    [158645.538917] [] ? __cfg80211_roamed+0xc2/0x1b1
    [158645.538946] [] warn_slowpath_null+0xf/0x13
    [158645.539055] [] __cfg80211_roamed+0xc2/0x1b1
    [158645.539086] [] cfg80211_process_rdev_events+0x153/0x1cc
    [158645.539166] [] cfg80211_event_work+0x26/0x36
    [158645.539195] [] process_one_work+0x219/0x38b
    [158645.539273] [] ? wiphy_new+0x419/0x419
    [158645.539301] [] worker_thread+0xf6/0x1bf
    [158645.539379] [] ? rescuer_thread+0x1b5/0x1b5
    [158645.539407] [] kthread+0x62/0x67
    [158645.539484] [] ? __init_kthread_worker+0x42/0x42
    [158645.539514] [] kernel_thread_helper+0x6/0xd

    Reported-by: Kalle Valo
    Signed-off-by: Vasanthakumar Thiagarajan
    Signed-off-by: John W. Linville

    Vasanthakumar Thiagarajan
     

07 Dec, 2011

1 commit

  • Prepare cfg80211 for IBSS HT:
    * extend cfg80211 ibss struct with channel_type
    * Check if extension channel can be used
    * Export can_beacon_sec_chan for use in mac80211 (will be called
    from ibss.c later).

    Signed-off-by: Alexander Simon
    [siwu@hrz.tu-chemnitz.de: Updates]
    * fix cfg80211_can_beacon_ext_chan comment
    * remove implicit channel_type enum assumptions
    * remove radar channel flags check
    * add HT IBSS feature flag
    * reword commit message

    Signed-off-by: Simon Wunderlich
    Signed-off-by: Mathias Kretschmer
    Reviewed-by: Johannes Berg
    Signed-off-by: John W. Linville

    Alexander Simon
     

01 Dec, 2011

1 commit


29 Nov, 2011

3 commits


22 Nov, 2011

3 commits

  • This allows users to disable features such as HT, HT40,
    and to modify the MCS, AMPDU, and AMSDU settings for
    drivers that support it.

    The MCS, AMPDU, and AMSDU features that may be disabled are
    are reported in the phy-info netlink message as a mask.

    Attemping to disable features that are not supported will
    take no affect, but will not return errors. This is to aid
    backwards compatibility in user-space apps that may not be
    clever enough to deal with parsing the the capabilities mask.

    This patch only enables the infrastructure. An additional
    patch will enable the feature in mac80211.

    Signed-off-by: Ben Greear
    Signed-off-by: John W. Linville

    Ben Greear
     
  • 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

    Johannes Berg
     
  • Currently mac80211 implements these for all devices,
    but given restrictions of some devices that isn't
    really true, so prepare for being able to remove the
    capability for some mac80211 devices.

    Signed-off-by: Johannes Berg
    Acked-by: Kalle Valo
    Signed-off-by: John W. Linville

    Johannes Berg
     

12 Nov, 2011

3 commits


10 Nov, 2011

8 commits

  • The new wifi socket TX capability should be
    supported by wifi drivers, let them advertise
    whether they do or not.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • For probe responses it can be useful to not wait for ACK to
    avoid retransmissions if the station that sent the probe is
    already on the next channel, so allow userspace to request
    not caring about the ACK with a new nl80211 flag.

    Since mac80211 needs to be updated for the new function
    prototype anyway implement it right away -- it's just a
    few lines of code.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • 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

    Johannes Berg
     
  • 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

    Johannes Berg
     
  • 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

    Johannes Berg
     
  • 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

    Johannes Berg
     
  • 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

    Johannes Berg
     
  • 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

    Johannes Berg
     

09 Nov, 2011

1 commit


15 Oct, 2011

1 commit

  • Reuse the already existing struct nl80211_sta_flag_update to specify
    both, a flag mask and the flag set itself. This means
    nl80211_sta_flag_update is now used for setting station flags and also
    for getting station flags.

    Signed-off-by: Helmut Schaa
    Signed-off-by: John W. Linville

    Helmut Schaa
     

01 Oct, 2011

2 commits

  • Add support for sending high-level TDLS commands and TDLS frames via
    NL80211_CMD_TDLS_OPER and NL80211_CMD_TDLS_MGMT, respectively. Add
    appropriate cfg80211 callbacks for lower level drivers.

    Add wiphy capability flags for TDLS support and advertise them via
    nl80211.

    Signed-off-by: Arik Nemtsov
    Cc: Kalyan C Gaddam
    Signed-off-by: John W. Linville

    Arik Nemtsov
     
  • Currently, when hostapd sets the station as authorized
    we also overwrite its uAPSD parameter. This obviously
    leads to buggy behaviour (later, with my patches that
    actually add uAPSD support). To fix this, only apply
    those parameters if they were actually set in nl80211,
    and to achieve that add a bitmap of things to apply.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

28 Sep, 2011

2 commits


21 Sep, 2011

1 commit


20 Sep, 2011

2 commits


17 Sep, 2011

1 commit


15 Sep, 2011

1 commit


14 Sep, 2011

1 commit

  • Introduce filtering for scheduled scans to reduce the number of
    unnecessary results (which cause useless wake-ups).

    Add a new nested attribute where sets of parameters to be matched can
    be passed when starting a scheduled scan. Only scan results that
    match any of the sets will be returned.

    At this point, the set consists of a single parameter, an SSID. This
    can be easily extended in the future to support more complex matches.

    Signed-off-by: Luciano Coelho
    Signed-off-by: John W. Linville

    Luciano Coelho