20 Jul, 2011

1 commit


28 Jun, 2011

1 commit


02 Jun, 2011

1 commit

  • Commit 0a35d36 ("cfg80211: Use capability info to detect mesh beacons")
    assumed that probe response with both ESS and IBSS bits cleared
    means that the frame was sent by a mesh sta.

    However, these capabilities are also being used in the p2p_find phase,
    and the mesh-validation broke it.

    Rename the WLAN_CAPABILITY_IS_MBSS macro, and verify that mesh ies
    exist before assuming this frame was sent by a mesh sta.

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

    Eliad Peller
     

12 May, 2011

3 commits


05 Apr, 2011

1 commit


10 Mar, 2011

1 commit


14 Jan, 2011

1 commit


21 Dec, 2010

2 commits

  • The Mesh Control header only includes 0, 1 or 2 addresses. If there is
    one address, it should be interpreted as Address 4. If there are 2,
    they are interpreted as Addresses 5 and 6 (Address 4 being the 4th
    address in the 802.11 header).

    The address extension used to hold up to 3 addresses instead of the current 2.
    I'm not sure which draft version changed this, but it is very unlikely that it
    will change again given the state of the approval process of this draft. See
    section 7.1.3.6.3 in current draft (8.0).

    Also, note that the extra address that I'm removing was not being used, so this
    change has no effect on over-the-air frame formats. But I thought I better
    remove it before someone does start using it.

    Signed-off-by: Javier Cardona
    Signed-off-by: John W. Linville

    Javier Cardona
     
  • Userspace will now be allowed to toggle between the default path
    selection algorithm (HWMP, implemented in the kernel), and a vendor
    specific alternative. Also in the same patch, allow userspace to add
    information elements to mesh beacons. This is accordance with the
    Extensible Path Selection Framework specified in version 7.0 of the
    802.11s draft.

    Signed-off-by: Javier Cardona
    Signed-off-by: John W. Linville

    Javier Cardona
     

14 Dec, 2010

1 commit


09 Dec, 2010

1 commit


12 Oct, 2010

1 commit

  • This patch updates IEEE802.11 mesh constants to be consistent with newly
    approved values. It modifies some values, as well as adds many new constants
    in preparation for updating mesh code to the current 802.11s drafts. ANA
    numbers were taken from:
    https://mentor.ieee.org/802.11/dcn/09/11-09-0031-12-0000-ana-database-assigned-number-authority.xls

    A few notes are in order:
    1. This will break backwards compatibility with existing Linux kernels as
    over-the-air constants have changed.
    2. Some old and obsolete constants have been retained for now as the mesh code
    itself hasn't been updated yet to the new 802.11s draft. This was desired to
    keep the existing mesh scheme working until it can be updated. Adding the
    approved values is the first step in updating the mesh code.
    3. Obsolete constants have been clearly marked.
    4. All ANA approved 802.11s constants have been added.

    Signed-off-by: Steve deRosier
    Signed-off-by: John W. Linville

    Steve deRosier
     

20 Apr, 2010

1 commit


09 Apr, 2010

1 commit


08 Apr, 2010

1 commit

  • The aggregation code has a number of quirks, like
    inventing an unneeded WLAN_BACK_TIMER value and
    leaking memory under certain circumstances during
    station destruction. Fix these issues by using
    the regular aggregation session teardown code and
    blocking new aggregation sessions, all before the
    station is really destructed.

    As a side effect, this gets rid of the long code
    block to destroy aggregation safely.

    Additionally, rename tid_state_rx which can only
    have the values IDLE and OPERATIONAL to
    tid_active_rx to make it easier to understand
    that there is no bitwise stuff going on on the
    RX side -- the TX side remains because it needs
    to keep track of the driver and peer states.

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

    Johannes Berg
     

23 Jan, 2010

1 commit

  • ieee80211_hdrlen() should account account new HT Control field in 802.11
    data frame header introduced by IEEE 802.11n standard.

    According to 802.11n-2009 HT Control field is present in data frames
    when both of following are met:

    1. It is QoS data frame.
    2. Order bit is set in Frame Control field.

    The change might be totally compatible with legacy non-11n aware frames,
    because 802.11-2007 standard states that "all QoS STAs set this subfield
    to 0".

    Signed-off-by: Andriy V. Tkachuk
    Acked-by : Benoit Papillault
    Signed-off-by: John W. Linville

    Andriy Tkachuk
     

13 Jan, 2010

3 commits

  • The header can be used to create qos nullfunc frames, for example.

    Signed-off-by: Kalle Valo
    Signed-off-by: John W. Linville

    Kalle Valo
     
  • Add Unscheduled Automatic Power-Save Delivery (U-APSD) client support. The
    idea is that the data frames from the client trigger AP to send the buffered
    frames with ACs which have U-APSD enabled. This decreases latency and makes it
    possible to save even more power.

    Driver needs to use IEEE80211_HW_UAPSD to enable the feature. The current
    implementation assumes that firmware takes care of the wakeup and
    hardware needing IEEE80211_HW_PS_NULLFUNC_STACK is not yet supported.

    Tested with wl1251 on a Nokia N900 and Cisco Aironet 1231G AP and running
    various test traffic with ping.

    Signed-off-by: Kalle Valo
    Signed-off-by: John W. Linville

    Kalle Valo
     
  • Some hardware, for example wl1251 and wl1271, handle the transmission
    of power save related frames in hardware, but the driver is responsible
    for creating the templates. It's better to create the templates in mac80211,
    that way all drivers can benefit from this.

    Add two new functions, ieee80211_pspoll_get() and ieee80211_nullfunc_get()
    which drivers need to call to get the frame. Drivers are also responsible
    for updating the templates after each association.

    Also new struct ieee80211_hdr_3addr is added to ieee80211.h to make it
    easy to calculate length of the Nullfunc frame.

    Signed-off-by: Kalle Valo
    Signed-off-by: John W. Linville

    Kalle Valo
     

29 Dec, 2009

2 commits


23 Dec, 2009

2 commits

  • IEEE-802.11n spec says the RX highest data rate field does
    not specify the highest supported RX data rate if its not set.
    Ignore it if not set then. Refer to section 7.3.56.4

    Cc: johannes@sipsolutions.net
    Signed-off-by: Luis R. Rodriguez
    Signed-off-by: John W. Linville

    Luis R. Rodriguez
     
  • Enable spatial multiplexing in mac80211 by telling the
    driver what to do and, where necessary, sending action
    frames to the AP to update the requested SMPS mode.

    Also includes a trivial implementation for hwsim that
    just logs the requested mode.

    For now, the userspace interface is in debugfs only,
    and let you toggle the requested mode at any time.

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

    Johannes Berg
     

22 Dec, 2009

1 commit

  • I noticed yesterday, because Jeff had noticed
    a speed regression, cf. bug
    http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2138
    that the SM PS settings for peers were wrong.
    Instead of overwriting the SM PS settings with
    the local bits, we need to keep the remote bits.

    The bug was part of the original HT code from
    over two years ago, but unfortunately nobody
    noticed that it makes no sense -- we shouldn't
    be overwriting the peer's setting with our own
    but rather keep it intact when masking the peer
    capabilities with our own.

    While fixing that, I noticed that the masking of
    capabilities is completely useless for most of
    the bits, so also fix those other bits.

    Finally, I also noticed that PSMP_SUPPORT no
    longer exists in the final 802.11n version, so
    also remove that.

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

    Johannes Berg
     

29 Nov, 2009

1 commit

  • This is an interface to set, delete and flush PMKIDs through nl80211.
    Main users would be fullmac devices which firmwares are capable of
    generating the RSN IEs for the re-association requests, e.g. iwmc3200wifi.

    Signed-off-by: Samuel Ortiz
    Signed-off-by: John W. Linville

    Samuel Ortiz
     

19 Nov, 2009

1 commit


14 Nov, 2009

1 commit


12 Nov, 2009

1 commit

  • This updates the Mesh Configuration IE according to the latest
    draft (3.03).
    Notable changes include the simplified protocol IDs.

    Signed-off-by: Rui Paulo
    Signed-off-by: Javier Cardona
    Reviewed-by: Andrey Yurovsky
    Tested-by: Brian Cavagnolo
    Signed-off-by: John W. Linville

    Rui Paulo
     

31 Oct, 2009

1 commit


29 Aug, 2009

1 commit


28 Jul, 2009

1 commit


11 Jul, 2009

1 commit


04 Jun, 2009

1 commit


23 May, 2009

1 commit

  • The patch moves some utility functions from mac80211 to cfg80211.
    Because these functions are doing generic 802.11 operations so they
    are not mac80211 specific. The moving allows some fullmac drivers
    to be also benefit from these utility functions.

    Signed-off-by: Zhu Yi
    Signed-off-by: Samuel Ortiz
    Signed-off-by: John W. Linville

    Zhu Yi
     

12 May, 2009

1 commit

  • IEEE 802.11w/D9.0 introduces a mechanism for Action field Category
    values to be used to select which Action frames are Robust. Public and
    Vendor-specific categories are marked as not Robust in IEEE 802.11w;
    HT will be marked not Robust in IEEE 802.11n. A new Vendor-specific
    Protected category is allocated for Robust vendor-specific Action
    frames. Another new category, Protected Dual of Action, is introduced
    for protecting some existing Public Action frames (e.g., IEEE 802.11y
    protected enablement).

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

    Jouni Malinen
     

07 May, 2009

1 commit


23 Apr, 2009

2 commits

  • The TIM IE must not be shorter than 4 bytes, so verify that
    when parsing it and use the proper type. To ease that adjust
    struct ieee80211_tim_ie to have a virtual bitmap of size
    at least 1.

    Also check that the TIM IE is actually present before trying
    to parse it!

    Because other people may need the function, make it a static
    inline in ieee80211.h.

    (The original "mac80211: validate TIM IE length" was a minimal fix for
    2.6.30. This purports to be the full, correct fix. -- JWL)

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

    Johannes Berg
     
  • When an application asks for a latency lower than the beacon interval
    there's nothing we can do -- we need to stay awake and not have the
    AP buffer frames for us. Add code to automatically calculate this
    constraint in mac80211 so drivers need not concern themselves with it.

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

    Johannes Berg