1. 10 Oct, 2007 3 commits
    • Daniel Drake's avatar
      [MAC80211]: improved short preamble handling · 7e9ed188
      Daniel Drake authored
      
      
      Similarly to CTS protection, whether short preambles are used for 802.11b
      transmissions should be a per-subif setting, not device global.
      
      For STAs, this patch makes short preamble handling automatic based on the ERP
      IE. For APs, hostapd still uses the prism ioctls, but the write ioctl has been
      restricted to AP-only subifs.
      
      ieee80211_txrx_data.short_preamble (an unused field) was removed.
      
      Unfortunately, some API changes were required for the following functions:
       - ieee80211_generic_frame_duration
       - ieee80211_rts_duration
       - ieee80211_ctstoself_duration
       - ieee80211_rts_get
       - ieee80211_ctstoself_get
      Affected drivers were updated accordingly.
      Signed-off-by: default avatarDaniel Drake <dsd@gentoo.org>
      Signed-off-by: default avatarJiri Benc <jbenc@suse.cz>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      7e9ed188
    • Daniel Drake's avatar
      [MAC80211]: STA reassociation improvements · 8a69aa93
      Daniel Drake authored
      
      
      My cheapy D-Link AP behaves strangely w.r.t reassociations.
      
      The following sequence of commands causes me to lose association and to be
      unable to regain it:
      
      	ifconfig eth8 down
      	ifconfig eth8 up
      	iwconfig eth8 essid <x>
      
      This is because mac80211 tries to reassociate, rather than just associate.
      My AP replies with an association response (not a reassociation response...)
      denying the association with code 12: "Association denied due to reason
      outside the scope of this standard"
      
      mac80211 tries this reassociation another 4 times or so before finally giving
      up.
      
      I see 2 problems here:
       1. bringing the interface down and up again should be resetting interface state
          i.e. after the interface is brought down, it should have no memory of if or
               where it was previously associated
       2. after the first reassociation fails, mac80211 should fall back to
          standard association for the next attempt
      Signed-off-by: default avatarDaniel Drake <dsd@gentoo.org>
      Signed-off-by: default avatarJiri Benc <jbenc@suse.cz>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      8a69aa93
    • Michael Wu's avatar
      [MAC80211]: improve locking of sta_info related structures · be8755e1
      Michael Wu authored
      
      
      The sta_info code has some awkward locking which prevents some driver
      callbacks from being allowed to sleep. This patch makes the locking more
      focused so code that calls driver callbacks are allowed to sleep. It also
      converts sta_lock to a rwlock.
      Signed-off-by: default avatarMichael Wu <flamingice@sourmilk.net>
      Signed-off-by: default avatarJiri Benc <jbenc@suse.cz>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      be8755e1
  2. 14 Aug, 2007 1 commit
  3. 19 Jul, 2007 1 commit
  4. 18 Jul, 2007 1 commit
  5. 12 Jul, 2007 3 commits
    • Daniel Drake's avatar
      [PATCH] mac80211: improved 802.11g CTS protection · 63fc33ce
      Daniel Drake authored
      
      
      Currently, CTS protection is partially implemented twice:
       1. via prism2 ioctls, only used by hostapd
       2. via STA beacon parsing, recorded in sta.use_protection but never used
          (other than printed in debugfs)
      
      Protection control should be implemented on a per-subif basis. For example,
      a single physical device may be running a soft AP on one channel, and a STA
      on another. The AP interface should use protection based on what hostapd told
      it, and the STA interface should use protection based on beacon parsing.
      These should operate independantly: one subif using protection should not
      influence the other.
      
      To implement this, I moved the use_protection flag into ieee80211_sub_if_data
      and removed the device-global cts_protect_erp_frames flag.
      
      I also made the PRISM2_PARAM_CTS_PROTECT_ERP_FRAMES write operation only
      available for AP interfaces, to avoid any possibility of the user messing with
      the behaviour of a STA.
      Signed-off-by: default avatarDaniel Drake <dsd@gentoo.org>
      Signed-off-by: default avatarJiri Benc <jbenc@suse.cz>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      63fc33ce
    • Daniel Drake's avatar
      [PATCH] mac80211: ERP IE handling improvements · 5628221c
      Daniel Drake authored
      
      
      The "protection needed" flag is currently parsed out of the ERP IE in
      beacons. This patch allows the ERP IE to be available at assocation time
      and causes the appropriate actions to be performed earlier.
      
      It is slightly complicated by the fact that most APs don't include the
      ERP IE in association responses. To work around this, we store ERP
      values in the ieee80211_sta_bss structure.
      
      Also added some WLAN_ERP defines for use by upcoming patches.
      Signed-off-by: default avatarJiri Benc <jbenc@suse.cz>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      5628221c
    • Johannes Berg's avatar
      [PATCH] mac80211: conserve stack space due to padding · 5558235c
      Johannes Berg authored
      
      
      This patch reorders some fields in struct ieee802_11_elems to save 17*7
      or 17*3 bytes (on 64/32-bit machines respectively) stack space in a few
      functions.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJiri Benc <jbenc@suse.cz>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      5558235c
  6. 11 Jun, 2007 1 commit
  7. 29 May, 2007 2 commits
  8. 11 May, 2007 1 commit
  9. 05 May, 2007 1 commit