An error occurred fetching the project authors.
  1. 23 Jun, 2014 2 commits
  2. 05 May, 2014 1 commit
  3. 04 Feb, 2013 1 commit
    • Marco Porsch's avatar
      mac80211: mesh power save basics · 3f52b7e3
      Marco Porsch authored
      Add routines to
      - maintain a PS mode for each peer and a non-peer PS mode
      - indicate own PS mode in transmitted frames
      - track neighbor STAs power modes
      - buffer frames when neighbors are in PS mode
      - add TIM and Awake Window IE to beacons
      - release frames in Mesh Peer Service Periods
      
      Add local_pm to sta_info to represent the link-specific power
      mode at this station towards the remote station. When a peer
      link is established, use the default power mode stored in mesh
      config. Update the PS status if the peering status of a neighbor
      changes.
      Maintain a mesh power mode for non-peer mesh STAs. Set the
      non-peer power mode to active mode during peering. Authenticated
      mesh peering is currently not working when either node is
      configured to be in power save mode.
      
      Indicate the current power mode in transmitted frames. Use QoS
      Nulls to indicate mesh power mode transitions.
      For performance reasons, calls to the function setting the frame
      flags are placed in HWMP routing routines, as there the STA
      pointer is already available.
      
      Add peer_pm to sta_info to represent the peer's link-specific
      power mode towards the local station. Add nonpeer_pm to
      represent the peer's power mode towards all non-peer stations.
      Track power modes based on received frames.
      
      Add the ps_data structure to ieee80211_if_mesh (for TIM map, PS
      neighbor counter and group-addressed frame buffer).
      
      Set WLAN_STA_PS flag for STA in PS mode to use the unicast frame
      buffering routines in the tx path. Update num_sta_ps to buffer
      and release group-addressed frames after DTIM beacons.
      
      Announce the awake window duration in beacons if in light or
      deep sleep mode towards any peer or non-peer. Create a TIM IE
      similarly to AP mode and add it to mesh beacons. Parse received
      Awake Window IEs and check TIM IEs for buffered frames.
      
      Release frames towards peers in mesh Peer Service Periods. Use
      the corresponding trigger frames and monitor the MPSP status.
      Append a QoS Null as trigger frame if neccessary to properly end
      the MPSP. Currently, in HT channels MPSPs behave imperfectly and
      show large delay spikes and frame losses.
      Signed-off-by: default avatarMarco Porsch <marco@cozybit.com>
      Signed-off-by: default avatarIvan Bezyazychnyy <ivan.bezyazychnyy@gmail.com>
      Signed-off-by: default avatarMike Krinkin <krinkin.m.u@gmail.com>
      Signed-off-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      3f52b7e3
  4. 17 Oct, 2012 1 commit
  5. 24 Jun, 2012 2 commits
    • Johannes Berg's avatar
      mac80211: rename driver-trace file · 011ad0e9
      Johannes Berg authored
      This file will contain more soon, so
      rename it to just trace.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      011ad0e9
    • Johannes Berg's avatar
      mac80211: clean up debugging · bdcbd8e0
      Johannes Berg authored
      There are a few things that make the logging and
      debugging in mac80211 less useful than it should
      be right now:
       * a lot of messages should be pr_info, not pr_debug
       * wholesale use of pr_debug makes it require *both*
         Kconfig and dynamic configuration
       * there are still a lot of ifdefs
       * the style is very inconsistent, sometimes the
         sdata->name is printed in front
      
      Clean up everything, introducing new macros and
      separating out the station MLME debugging into
      a new Kconfig symbol.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      bdcbd8e0
  6. 06 Jun, 2012 1 commit
    • Johannes Berg's avatar
      mac80211: unify SW/offload remain-on-channel · 2eb278e0
      Johannes Berg authored
      Redesign all the off-channel code, getting rid of
      the generic off-channel work concept, replacing
      it with a simple remain-on-channel list.
      
      This fixes a number of small issues with the ROC
      implementation:
       * offloaded remain-on-channel couldn't be queued,
         now we can queue it as well, if needed
       * in iwlwifi (the only user) offloaded ROC is
         mutually exclusive with scanning, use the new
         queue to handle that case -- I expect that it
         will later depend on a HW flag
      
      The bigger issue though is that there's a bad bug
      in the current implementation: if we get a mgmt
      TX request while HW roc is active, and this new
      request has a wait time, we actually schedule a
      software ROC instead since we can't guarantee the
      existing offloaded ROC will still be that long.
      To fix this, the queuing mechanism was needed.
      
      The queuing mechanism for offloaded ROC isn't yet
      optimal, ideally we should add API to have the HW
      extend the ROC if needed. We could add that later
      but for now use a software implementation.
      
      Overall, this unifies the behaviour between the
      offloaded and software-implemented case as much
      as possible.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      2eb278e0
  7. 10 Apr, 2012 1 commit
    • Javier Cardona's avatar
      mac80211: Implement mesh synchronization framework · dbf498fb
      Javier Cardona authored
      This patch adds MBSS extensible synchronization framework (Sec.
      13.13.2 of IEEE Std. 802.11-2012).
      
      The framework is implemented via an ops table which defines the
      following functions:
      
          rx_bcn_presp() - this is called every time a mesh beacon is
      received.
          adjust_tbtt() - this is called immediately before a beacon is about
      to be transmitted.
      
      The default neighbor offset synchronization defined in the standard is
      implemented.  We also provide template functions for vendor specific
      methods.
      
      When neighbor offset synchronization is active (which is the default)
      mesh neighbors in the same MBSS will track timing offsets to each other
      and compensate clock drift.
      
      In our tests we observed that this mesh synchronization implementation
      successfully corrected drifts between stations of ~2PPM while
      introducing a jitter of ~20us.
      
      It is also possible to test this framework on mac80211_hwsim simulated
      phys to see how it behaves under different topologies, over poor links,
      etc.
      Signed-off-by: default avatarMarco Porsch <marco.porsch@s2005.tu-chemnitz.de>
      Signed-off-by: default avatarPavel Zubarev <pavel.zubarev@gmail.com>
      Signed-off-by: default avatarJavier Cardona <javier@cozybit.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      dbf498fb
  8. 06 Feb, 2012 1 commit
    • Johannes Berg's avatar
      mac80211: redesign auth/assoc · 66e67e41
      Johannes Berg authored
      This is the second part of the auth/assoc redesign,
      the mac80211 part. This moves the auth/assoc code
      out of the work abstraction and into the MLME, so
      that we don't flip channels all the time etc.
      
      The only downside is that when we are associated,
      we need to drop the association in order to create
      a connection to another AP, but for most drivers
      this is actually desirable and the ability to do
      was never used by any applications. If we want to
      implement resource reservation with FT-OTA, we'd
      probably best do it with explicit R-O-C in wpa_s.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      66e67e41
  9. 28 Nov, 2011 1 commit
  10. 02 Jun, 2010 1 commit
  11. 07 May, 2010 1 commit
    • Johannes Berg's avatar
      cfg80211/mac80211: better channel handling · f444de05
      Johannes Berg authored
      Currently (all tested with hwsim) you can do stupid
      things like setting up an AP on a certain channel,
      then adding another virtual interface and making
      that associate on another channel -- this will make
      the beaconing to move channel but obviously without
      the necessary IEs data update.
      
      In order to improve this situation, first make the
      configuration APIs (cfg80211 and nl80211) aware of
      multi-channel operation -- we'll eventually need
      that in the future anyway. There's one userland API
      change and one API addition. The API change is that
      now SET_WIPHY must be called with virtual interface
      index rather than only wiphy index in order to take
      effect for that interface -- luckily all current
      users (hostapd) do that. For monitor interfaces, the
      old setting is preserved, but monitors are always
      slaved to other devices anyway so no guarantees.
      
      The second userland API change is the introduction
      of a per virtual interface SET_CHANNEL command, that
      hostapd should use going forward to make it easier
      to understand what's going on (it can automatically
      detect a kernel with this command).
      
      Other than mac80211, no existing cfg80211 drivers
      are affected by this change because they only allow
      a single virtual interface.
      
      mac80211, however, now needs to be aware that the
      channel settings are per interface now, and needs
      to disallow (for now) real multi-channel operation,
      which is another important part of this patch.
      
      One of the immediate benefits is that you can now
      start hostapd to operate on a hardware that already
      has a connection on another virtual interface, as
      long as you specify the same channel.
      
      Note that two things are left unhandled (this is an
      improvement -- not a complete fix):
      
       * different HT/no-HT modes
      
         currently you could start an HT AP and then
         connect to a non-HT network on the same channel
         which would configure the hardware for no HT;
         that can be fixed fairly easily
      
       * CSA
      
         An AP we're connected to on a virtual interface
         might indicate switching channels, and in that
         case we would follow it, regardless of how many
         other interfaces are operating; this requires
         more effort to fix but is pretty rare after all
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      f444de05
  12. 28 Dec, 2009 2 commits
  13. 18 Nov, 2009 1 commit
  14. 29 Jul, 2009 1 commit
  15. 24 Jul, 2009 1 commit
  16. 27 Feb, 2009 1 commit
    • Johannes Berg's avatar
      mac80211: split IBSS/managed code · 46900298
      Johannes Berg authored
      This patch splits out the ibss code and data from managed (station) mode.
      The reason to do this is to better separate the state machines, and have
      the code be contained better so it gets easier to determine what exactly
      a given change will affect, that in turn makes it easier to understand.
      
      This is quite some churn, especially because I split sdata->u.sta into
      sdata->u.mgd and sdata->u.ibss, but I think it's easier to maintain that
      way. I've also shuffled around some code -- null function sending is only
      applicable to managed interfaces so put that into that file, some other
      functions are needed from various places so put them into util, and also
      rearranged the prototypes in ieee80211_i.h accordingly.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      46900298
  17. 13 Feb, 2009 1 commit
  18. 29 Jan, 2009 2 commits
  19. 12 Dec, 2008 1 commit
  20. 06 Oct, 2008 1 commit
  21. 11 Sep, 2008 3 commits
  22. 18 Jul, 2008 1 commit
  23. 30 Jun, 2008 1 commit
    • Adrian Bunk's avatar
      build algorithms into the mac80211 module · e5f5e733
      Adrian Bunk authored
      The old infrastructure was:
      - the default algorithm is built into mac80211
      - other algorithms get into their own modules
      
      The implementation of this complicated scheme was horrible
      (just look at net/mac80211/Makefile), and anyone adding a new
      algorithm would most likely not get it right at his first attempt.
      
      This patch therefore builds all enabled algorithms into the mac80211
      module.
      
      The user interface for the rate control algorithms changes as follows:
      - first the user can choose which algorithms to enable (currently only
        MAC80211_RC_PID is available)
      - if more than one algorithm is enabled (currently not possible since
        only one algorithm is present) the user then chooses the default one
      
      Note:
      - MAC80211_RC_PID is always enables for CONFIG_EMBEDDED=n
      
      Technical changes:
      - all selected algorithms get into the mac80211 module
      - net/mac80211/Makefile can now become much less complicated
      - support for rc80211_pid_algo.c being modular is no longer required
      - this includes unexporting mesh_plink_broken
      Signed-off-by: default avatarAdrian Bunk <bunk@kernel.org>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      e5f5e733
  24. 22 May, 2008 1 commit
  25. 08 Apr, 2008 1 commit
  26. 13 Mar, 2008 1 commit
  27. 06 Mar, 2008 1 commit
  28. 29 Feb, 2008 1 commit
    • Johannes Berg's avatar
      cfg80211 API for channels/bitrates, mac80211 and driver conversion · 8318d78a
      Johannes Berg authored
      This patch creates new cfg80211 wiphy API for channel and bitrate
      registration and converts mac80211 and drivers to the new API. The
      old mac80211 API is completely ripped out. All drivers (except ath5k)
      are updated to the new API, in many cases I expect that optimisations
      can be done.
      
      Along with the regulatory code I've also ripped out the
      IEEE80211_HW_DEFAULT_REG_DOMAIN_CONFIGURED flag, I believe it to be
      unnecessary if the hardware simply gives us whatever channels it wants
      to support and we then enable/disable them as required, which is pretty
      much required for travelling.
      
      Additionally, the patch adds proper "basic" rate handling for STA
      mode interface, AP mode interface will have to have new API added
      to allow userspace to set the basic rate set, currently it'll be
      empty... However, the basic rate handling will need to be moved to
      the BSS conf stuff.
      
      I do expect there to be bugs in this, especially wrt. transmit
      power handling where I'm basically clueless about how it should work.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      8318d78a
  29. 28 Jan, 2008 4 commits
  30. 11 Nov, 2007 1 commit
  31. 10 Oct, 2007 1 commit