1. 10 2月, 2009 1 次提交
  2. 31 1月, 2009 1 次提交
  3. 30 1月, 2009 13 次提交
  4. 20 12月, 2008 2 次提交
    • K
      mac80211: implement dynamic power save · 520eb820
      Kalle Valo 提交于
      This patch implements dynamic power save for mac80211. Basically it
      means enabling power save mode after an idle period. Implementing it
      dynamically gives a good compromise of low power consumption and low
      latency. Some hardware have support for this in firmware, but some
      require the host to do it.
      
      The dynamic power save is implemented by adding an timeout to
      ieee80211_subif_start_xmit(). The timeout can be enabled from userspace
      with Wireless Extensions. For example, the command below enables the
      dynamic power save and sets the time timeout to 500 ms:
      
      iwconfig wlan0 power timeout 500m
      
      Power save now only works with devices which handle power save in firmware.
      It's also disabled by default and the heuristics when and how to enable is
      considered as a policy decision and will be left for the userspace to handle.
      In case the firmware has support for this, drivers can disable this feature
      with IEEE80211_HW_NO_STACK_DYNAMIC_PS.
      
      Big thanks to Johannes Berg for the help with the design and code.
      Signed-off-by: NKalle Valo <kalle.valo@nokia.com>
      Acked-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      520eb820
    • K
      mac80211: enable IEEE80211_CONF_PS only when associated · e0cb686f
      Kalle Valo 提交于
      Also disable power save when disassociated. It makes no sense to have
      power save enabled while disassociated.
      
      iwlwifi seems to have this check in the driver, but it's better to do this
      in mac80211 instead.
      Signed-off-by: NKalle Valo <kalle.valo@nokia.com>
      Acked-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e0cb686f
  5. 13 12月, 2008 2 次提交
    • J
      mac80211: Disable requests for new scans in AP mode · b7a530d8
      Jouni Malinen 提交于
      AP mode operations are seriously affected if mac80211 runs through a
      multi-second scan while the AP is trying to send Beacon frames on the
      operation channel. While this could be implemented in a way that does
      not cause too many problems, it is not very simple and will require
      synchronization with Beacon frame scheduling in the drivers (scan one
      channel at a time between Beacon frames). Furthermore, such scanning
      takes quite a bit longer time and existing userspace applications
      would be likely to timeout while waiting for the results.
      
      For now, just refuse requests for new scans (SIOCSIWSCAN) when in AP
      mode. In practice, this moves the rejection from iwl* drivers into
      mac80211 to make it apply to every mac80211-based driver.
      
      This issue shows up in associated stations getting disconnected when
      something (e.g., Network Manager) requests a scan while the interface
      is in AP mode. When doing this continuously (e.g., NM does it every 120
      seconds), the network gets close to useless.
      Signed-off-by: NJouni Malinen <jouni.malinen@atheros.com>
      Acked-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      b7a530d8
    • J
      mac80211: remove fragmentation offload functionality · f546638c
      Johannes Berg 提交于
      There's no driver that actually does fragmentation on the
      device, and the callback is buggy (when it returns an error,
      mac80211's fragmentation status is changed so reading the
      frag threshold from userspace reads the new value despite
      the error). Let's just remove it, if we really find some
      hardware supporting it we can add it back later.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f546638c
  6. 05 12月, 2008 2 次提交
  7. 26 11月, 2008 1 次提交
  8. 11 11月, 2008 1 次提交
  9. 01 11月, 2008 6 次提交
  10. 15 10月, 2008 1 次提交
  11. 16 9月, 2008 4 次提交
  12. 23 8月, 2008 2 次提交
  13. 15 7月, 2008 4 次提交
    • J
      mac80211: revamp beacon configuration · 9d139c81
      Johannes Berg 提交于
      This patch changes mac80211's beacon configuration handling
      to never pass skbs to the driver directly but rather always
      require the driver to use ieee80211_beacon_get(). Additionally,
      it introduces "change flags" on the config_interface() call
      to enable drivers to figure out what is changing. Finally, it
      removes the beacon_update() driver callback in favour of
      having IBSS beacon delivered by ieee80211_beacon_get() as well.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      9d139c81
    • J
      mac80211: push interface checks down · f3947e2d
      Johannes Berg 提交于
      This patch pushes the "netif_running()" and "same type as before"
      checks down into ieee80211_if_change_type() to centralise the
      logic instead of duplicating it for cfg80211 and wext.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f3947e2d
    • J
      mac80211: revamp virtual interface handling · 75636525
      Johannes Berg 提交于
      This patch revamps the virtual interface handling and makes the
      code much easier to follow. Fewer functions, better names, less
      spaghetti code.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      75636525
    • J
      mac80211: make master netdev handling sane · 3e122be0
      Johannes Berg 提交于
      Currently, almost every interface type has a 'bss' pointer
      pointing to BSS information. This BSS information, however,
      is for a _local_ BSS, not for the BSS we joined, so having
      it on a STA mode interface makes little sense, but now they
      have it pointing to the master device, which is an AP mode
      virtual interface. However, except for some bitrate control
      data, this pointer is only used in AP/VLAN modes (for power
      saving stations.)
      
      Overall, it is not necessary to even have the master netdev
      be a valid virtual interface, and it doesn't have to be on
      the list of interfaces either.
      
      This patch changes the master netdev to be special, it now
       - no longer is on the list of virtual interfaces, which
         lets me remove a lot of tests for that
       - no longer has sub_if_data attached, since that isn't used
      
      Additionally, this patch changes some vlan/ap mode handling
      that is related to these 'bss' pointers described above (but
      in the VLAN case they actually make sense because there they
      point to the AP they belong to); it also adds some debugging
      code to IEEE80211_DEV_TO_SUB_IF to validate it is not called
      on the master netdev any more.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      3e122be0