29 Nov, 2011

1 commit


08 Nov, 2011

2 commits


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

3 commits

  • When adding a TDLS peer STA, mark it with a new flag in both nl80211 and
    mac80211. Before adding a peer, make sure the wiphy supports TDLS and
    our operating mode is appropriate (managed).

    In addition, make sure all peers are removed on disassociation.

    A TDLS peer is first added just before link setup is initiated. In later
    setup stages we have more info about peer supported rates, capabilities,
    etc. This info is reported via nl80211_set_station().

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

    Arik Nemtsov
     
  • 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

6 commits

  • Conflicts:
    drivers/net/wireless/iwlwifi/iwl-scan.c
    net/wireless/nl80211.c

    John W. Linville
     
  • Correct flag usage - use it as a bit index instead of a bit value.

    Signed-off-by: Arik Nemtsov
    Signed-off-by: John W. Linville

    Arik Nemtsov
     
  • tx params are currently configured per hw, although they
    should be configured per interface.

    Signed-off-by: Eliad Peller
    Signed-off-by: John W. Linville

    Eliad Peller
     
  • Add a new nl80211 attribute to specify whether to send the management
    frames in CCK rate or not. As of now the wpa_supplicant is disabling
    CCK rate at P2P init itself. So this patch helps to send P2P probe
    request/probe response/action frames being sent at non CCK rate in 2GHz
    without disabling 11b rates.

    This attribute is used with NL80211_CMD_TRIGGER_SCAN and
    NL80211_CMD_FRAME commands to disable CCK rate for management frame
    transmission.

    Cc: Jouni Malinen
    Signed-off-by: Rajkumar Manoharan
    Signed-off-by: John W. Linville

    Rajkumar Manoharan
     
  • Instead of using a hardcoded list of cipher suites in nl80211.c, use a
    shared function in util.c to verify that the driver advertises support
    for the specified cipher. This provides more accurate validation of the
    values and allows vendor-specific cipher suites to be added in drivers.

    Signed-off-by: Jouni Malinen
    Signed-off-by: John W. Linville

    Jouni Malinen
     
  • NL80211_ATTR_AKM_SUITES can be used to configure new AKMs, like FT or
    the SHA-256 -based AKMs or FT from 802.11r/802.11w. In addition, vendor
    specific AKMs could be used. The current validation code for the connect
    command prevents cfg80211-based drivers from using these mechanisms even
    if the driver would not actually use this AKM value (i.e., it uses
    WPA/RSN IE from user space). mac80211-based drivers allow any AKM to be
    used since this value is not used there.

    Remove the unnecessary validation step in cfg80211 to allow drivers to
    decide what AKMs are supported. In theory, we could handle this by
    advertising supported AKMs, but that would not be very effective unless
    we enforce all drivers (including mac80211) to advertise the set of
    supported AKMs. This would require additional changes in many places
    whenever a new AKM is introduced even though no actually functionality
    changes may be required in most drivers.

    Signed-off-by: Jouni Malinen
    Signed-off-by: John W. Linville

    Jouni Malinen
     

22 Sep, 2011

1 commit

  • Incorrect variable was used in validating the akm_suites array from
    NL80211_ATTR_AKM_SUITES. In addition, there was no explicit
    validation of the array length (we only have room for
    NL80211_MAX_NR_AKM_SUITES).

    This can result in a buffer write overflow for stack variables with
    arbitrary data from user space. The nl80211 commands using the affected
    functionality require GENL_ADMIN_PERM, so this is only exposed to admin
    users.

    Cc: stable@kernel.org
    Signed-off-by: Jouni Malinen
    Signed-off-by: John W. Linville

    Jouni Malinen
     

20 Sep, 2011

2 commits


15 Sep, 2011

1 commit


14 Sep, 2011

3 commits

  • 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
     
  • add WIPHY_FLAG_AP_UAPSD flag to indicate uapsd support on
    AP mode.

    Advertise it to userspace by including a new
    NL80211_ATTR_SUPPORT_AP_UAPSD attribute.

    Signed-off-by: Eliad Peller
    Signed-off-by: John W. Linville

    Eliad Peller
     
  • When the rssi of the current AP drops, both wpa_supplicant and the
    firmware may do a background scan to find a better AP and try to
    associate. Since firmware based roaming is faster, inform
    wpa_supplicant to avoid roaming and let the firmware decide to
    roam if necessary.

    For fullmac drivers like ath6kl, it is just enough to provide the
    ESSID and the firmware will decide on the BSSID. Since it is not
    possible to do pre-auth during roaming for fullmac drivers, the
    wpa_supplicant needs to completely disconnect with the old AP and
    reconnect with the new AP. This consumes lot of time and it is
    better to leave the roaming decision to the firmware.

    Signed-off-by: Vivek Natarajan
    Signed-off-by: John W. Linville

    Vivek Natarajan
     

26 Aug, 2011

1 commit

  • Add new NL80211_ATTR_STA_WME nested attribute that contains
    wme params needed by the low-level driver (uapsd_queues and
    max_sp).

    Add these params to the station_parameters struct as well.

    Signed-off-by: Eliad Peller
    Signed-off-by: John W. Linville

    Eliad Peller
     

25 Aug, 2011

3 commits


13 Aug, 2011

3 commits


12 Aug, 2011

2 commits


11 Aug, 2011

2 commits


02 Aug, 2011

1 commit


21 Jul, 2011

1 commit

  • commit 58389c69150e6032504dfcd3edca6b1975c8b5bc
    Author: Johannes Berg
    Date: Mon Jul 18 18:08:35 2011 +0200

    cfg80211: allow userspace to control supported rates in scan

    made single-band cards crash since it would always
    access all wiphy->bands[]. Fix this and reject any
    attempts in the new helper ieee80211_get_ratemask()
    to do the same, rejecting rates configuration for
    unsupported bands.

    Reported-by: Pavel Roskin
    Tested-by: Pavel Roskin
    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

20 Jul, 2011

1 commit

  • Some P2P scans are not allowed to advertise
    11b rates, but that is a rather special case
    so instead of having that, allow userspace
    to request the rate sets (per band) that are
    advertised in scan probe request frames.

    Since it's needed in two places now, factor
    out some common code parsing a rate array.

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

    Johannes Berg
     

16 Jul, 2011

3 commits

  • Some chips may support different lengths of user-supplied IEs with a
    single scheduled scan command than with a single normal scan command.

    To support this, this patch creates a separate hardware description
    element that describes the maximum size of user-supplied information
    element data supported in scheduled scans.

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

    Luciano Coelho
     
  • Some chips can scan more SSIDs with a single scheduled scan command
    than with a single normal scan command (eg. wl12xx chips).

    To support this, this patch creates a separate hardware description
    element that describes the amount of SSIDs supported in scheduled
    scans.

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

    Luciano Coelho
     
  • Since we now have the necessary API in place to support
    GTK rekeying, applications will need to know whether it
    is supported by a device. Add a pseudo-trigger that is
    used only to advertise that capability. Also, add some
    new triggers that match what iwlagn devices can do.

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

    Johannes Berg
     

12 Jul, 2011

1 commit


07 Jul, 2011

1 commit

  • In certain circumstances, like WoWLAN scenarios,
    devices may implement (partial) GTK rekeying on
    the device to avoid waking up the host for it.

    In order to successfully go through GTK rekeying,
    the KEK, KCK and the replay counter are required.

    Add API to let the supplicant hand the parameters
    to the driver which may store it for future GTK
    rekey operations.

    Note that, of course, if GTK rekeying is done by
    the device, the EAP frame must not be passed up
    to userspace, instead a rekey event needs to be
    sent to let userspace update its replay counter.

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

    Johannes Berg
     

06 Jul, 2011

1 commit

  • There was a deadlock when rfkill-blocking a wireless interface,
    because we were locking the rdev mutex on NETDEV_GOING_DOWN to stop
    sched_scans that were eventually running. The rfkill block code was
    already holding a mutex under rdev:

    kernel: =======================================================
    kernel: [ INFO: possible circular locking dependency detected ]
    kernel: 3.0.0-rc1-00049-g1fa7b6a #57
    kernel: -------------------------------------------------------
    kernel: kworker/0:1/4525 is trying to acquire lock:
    kernel: (&rdev->mtx){+.+.+.}, at: [] cfg80211_netdev_notifier_call+0x131/0x5b0
    kernel:
    kernel: but task is already holding lock:
    kernel: (&rdev->devlist_mtx){+.+.+.}, at: [] cfg80211_rfkill_set_block+0x4f/0xa0
    kernel:
    kernel: which lock already depends on the new lock.

    To fix this, add a new mutex specifically for sched_scan, to protect
    the sched_scan_req element in the rdev struct, instead of using the
    global rdev mutex.

    Reported-by: Duane Griffin
    Signed-off-by: Luciano Coelho
    Signed-off-by: John W. Linville

    Luciano Coelho