1. 27 Mar, 2009 1 commit
  2. 16 Mar, 2009 1 commit
    • Herton Ronaldo Krzesinski's avatar
      mac80211: deauth before flushing STA information · 1a28c78b
      Herton Ronaldo Krzesinski authored
      Even after commit "mac80211: deauth when interface is marked down"
      (e327b847 on Linus tree), userspace still isn't notified when interface
      goes down. There isn't a problem with this commit, but because of other
      code changes it doesn't work on kernels >= 2.6.28 (works if same/similar
      change applied on 2.6.27 for example).
      
      The issue is as follows: after commit "mac80211: restructure disassoc/deauth
      flows" in 2.6.28, the call to ieee80211_sta_deauthenticate added by
      commit e327b847
      
       will not work: because we do sta_info_flush(local, sdata)
      inside ieee80211_stop (iface.c), all stations in interface are cleared, so
      when calling ieee80211_sta_deauthenticate->ieee80211_set_disassoc (mlme.c),
      inside ieee80211_set_disassoc we have this in the beginning:
      
               sta = sta_info_get(local, ifsta->bssid);
               if (!sta) {
      
      The !sta check triggers, thus the function returns early and
      ieee80211_sta_send_apinfo(sdata, ifsta) later isn't called, so
      wpa_supplicant/userspace isn't notified with SIOCGIWAP.
      
      This commit moves deauthentication to before flushing STA info
      (sta_info_flush), thus the above can't happen and userspace is really
      notified when interface goes down.
      Signed-off-by: default avatarHerton Ronaldo Krzesinski <herton@mandriva.com.br>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      1a28c78b
  3. 27 Feb, 2009 2 commits
    • 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
    • Johannes Berg's avatar
      mac80211: disallow moving netns · 076ae609
      Johannes Berg authored
      
      
      mac80211 currently assumes init_net for all interfaces,
      so really will not cope well with network namespaces,
      at least at this time.
      
      To change this, we would have keep track of the netns
      in addition to the ifindex, which is not something I
      want to think about right now.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Cc: Eric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      076ae609
  4. 13 Feb, 2009 2 commits
  5. 09 Feb, 2009 1 commit
  6. 29 Jan, 2009 5 commits
  7. 12 Jan, 2009 1 commit
  8. 05 Dec, 2008 2 commits
  9. 21 Nov, 2008 1 commit
  10. 31 Oct, 2008 2 commits
  11. 30 Sep, 2008 1 commit
  12. 24 Sep, 2008 1 commit
  13. 15 Sep, 2008 7 commits
  14. 11 Sep, 2008 1 commit
  15. 22 Aug, 2008 1 commit
  16. 14 Jul, 2008 4 commits
    • Johannes Berg's avatar
      mac80211: fix TX sequence numbers · f591fa5d
      Johannes Berg authored
      
      
      This patch makes mac80211 assign proper sequence numbers to
      QoS-data frames. It also removes the old sequence number code
      because we noticed that only the driver or hardware can assign
      sequence numbers to non-QoS-data and especially management
      frames in a race-free manner because beacons aren't passed
      through mac80211's TX path.
      
      This patch also adds temporary code to the rt2x00 drivers to
      not break them completely, that code will have to be reworked
      for proper sequence numbers on beacons.
      
      It also moves sequence number assignment down in the TX path
      so no sequence numbers are assigned to frames that are dropped.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      f591fa5d
    • Johannes Berg's avatar
      mac80211: push interface checks down · f3947e2d
      Johannes Berg authored
      
      
      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: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      f3947e2d
    • Johannes Berg's avatar
      mac80211: revamp virtual interface handling · 75636525
      Johannes Berg authored
      
      
      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: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      75636525
    • Johannes Berg's avatar
      mac80211: make master netdev handling sane · 3e122be0
      Johannes Berg authored
      
      
      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: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      3e122be0
  17. 02 Jul, 2008 1 commit
  18. 21 May, 2008 1 commit
  19. 14 May, 2008 1 commit
  20. 12 May, 2008 1 commit
  21. 07 May, 2008 1 commit
  22. 08 Apr, 2008 1 commit
  23. 06 Mar, 2008 1 commit
    • Johannes Berg's avatar
      mac80211: remove STA entries when taking down interface · 44213b5e
      Johannes Berg authored
      
      
      When we take down an interface, we need to remove the STA info
      items that belong to it because otherwise we might invoke a
      sta_notify() callback in the driver when we later delete the
      STA entries, but in that case the driver will already have
      removed its knowledge of the interface they belonged to leading
      to confusion. Also, we could invoke the set_tim() callback after
      the driver removed its knowledge of the interface, which can
      lead to a crash if it requests a beacon with a then-invalid vif
      pointer!
      
      A side effect of this patch is that, because it was easier, it
      disallows changing the WDS peer while an interface is up. Should
      that actually be necessary, it can be added back, but the WDS
      peer STA entry may not be added while the interface is UP so for
      now I've simplified the WDS peer's STA entry lifetime management.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      44213b5e