1. 21 Dec, 2009 2 commits
    • Johannes Berg's avatar
      mac80211: reduce reliance on netdev · 47846c9b
      Johannes Berg authored
      
      
      For bluetooth 3, we will most likely not have
      a netdev for a virtual interface (sdata), so
      prepare for that by reducing the reliance on
      having a netdev. This patch moves the name
      and address fields into the sdata struct and
      uses them from there all over. Some work is
      needed to keep them sync'ed, but that's not
      a lot of work and in slow paths anyway.
      
      In doing so, this also reduces the number of
      pointer dereferences in many places, because
      of things like sdata->dev->dev_addr becoming
      sdata->vif.addr.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      47846c9b
    • Johannes Berg's avatar
      mac80211: make station management completely depend on vif · abe60632
      Johannes Berg authored
      
      
      The station management currently uses the virtual
      interface, but you cannot add the same station to
      multiple virtual interfaces if you're communicating
      with it in multiple ways.
      
      This restriction should be lifted so that in the
      future we can, for instance, support bluetooth 3
      with an access point that mac80211 is already
      associated to.
      
      We can do that by requiring all sta_info_get users
      to provide the virtual interface and making the RX
      code aware that an address may match more than one
      station struct. Thanks to the previous patches this
      one isn't all that large and except for the RX and
      TX status paths changes has low complexity.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      abe60632
  2. 23 Nov, 2009 1 commit
  3. 19 Nov, 2009 1 commit
    • Johannes Berg's avatar
      cfg80211: introduce capability for 4addr mode · 9bc383de
      Johannes Berg authored
      
      
      It's very likely that not many devices will support
      four-address mode in station or AP mode so introduce
      capability bits for both modes, set them in mac80211
      and check them when userspace tries to use the mode.
      Also, keep track of 4addr in cfg80211 (wireless_dev)
      and not in mac80211 any more. mac80211 can also be
      improved for the VLAN case by not looking at the
      4addr flag but maintaining the station pointer for
      it correctly. However, keep track of use_4addr for
      station mode in mac80211 to avoid all the derefs.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      9bc383de
  4. 18 Nov, 2009 1 commit
  5. 13 Nov, 2009 2 commits
  6. 11 Nov, 2009 1 commit
    • Felix Fietkau's avatar
      mac80211: implement support for 4-address frames for AP and client mode · f14543ee
      Felix Fietkau authored
      
      
      In some situations it might be useful to run a network with an
      Access Point and multiple clients, but with each client bridged
      to a network behind it. For this to work, both the client and the
      AP need to transmit 4-address frames, containing both source and
      destination MAC addresses.
      With this patch, you can configure a client to communicate using
      only 4-address frames for data traffic.
      On the AP side you can enable 4-address frames for individual
      clients by isolating them in separate AP VLANs which are configured
      in 4-address mode.
      Such an AP VLAN will be limited to one client only, and this client
      will be used as the destination for all traffic on its interface,
      regardless of the destination MAC address in the packet headers.
      The advantage of this mode compared to regular WDS mode is that it's
      easier to configure and does not require a static list of peer MAC
      addresses on any side.
      Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      f14543ee
  7. 02 Nov, 2009 1 commit
    • Johannes Berg's avatar
      mac80211: check interface is down before type change · c1f9a764
      Johannes Berg authored
      For some strange reason the netif_running() check
      ended up after the actual type change instead of
      before, potentially causing all kinds of problems
      if the interface is up while changing the type;
      one of the problems manifests itself as a warning:
      
      WARNING: at net/mac80211/iface.c:651 ieee80211_teardown_sdata+0xda/0x1a0 [mac80211]()
      Hardware name: Aspire one
      Pid: 2596, comm: wpa_supplicant Tainted: G        W  2.6.31-10-generic #32-Ubuntu
      Call Trace:
       [] warn_slowpath_common+0x6d/0xa0
       [] warn_slowpath_null+0x15/0x20
       [] ieee80211_teardown_sdata+0xda/0x1a0 [mac80211]
       [] ieee80211_if_change_type+0x4a/0xc0 [mac80211]
       [] ieee80211_change_iface+0x61/0xa0 [mac80211]
       [] cfg80211_wext_siwmode+0xc7/0x120 [cfg80211]
       [] ioctl_standard_call+0x58/0xf0
      
      (http://www.kerneloops.org/searchweek.php?search=ieee80211_teardown_sdata
      
      )
      
      Cc: Arjan van de Ven <arjan@infradead.org>
      Cc: stable@kernel.org
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      c1f9a764
  8. 30 Oct, 2009 1 commit
  9. 14 Aug, 2009 1 commit
    • Johannes Berg's avatar
      nl80211: add generation number to all dumps · f5ea9120
      Johannes Berg authored
      
      
      In order for userspace to be able to figure out whether
      it obtained a consistent snapshot of data or not when
      using netlink dumps, we need to have a generation number
      in each dump message that indicates whether the list has
      changed or not -- its value is arbitrary.
      
      This patch adds such a number to all dumps, this needs
      some mac80211 involvement to keep track of a generation
      number to start with when adding/removing mesh paths or
      stations.
      
      The wiphy and netdev lists can be fully handled within
      cfg80211, of course, but generation numbers need to be
      stored there as well.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      f5ea9120
  10. 27 Jul, 2009 1 commit
    • Johannes Berg's avatar
      cfg80211: make aware of net namespaces · 463d0183
      Johannes Berg authored
      
      
      In order to make cfg80211/nl80211 aware of network namespaces,
      we have to do the following things:
      
       * del_virtual_intf method takes an interface index rather
         than a netdev pointer - simply change this
      
       * nl80211 uses init_net a lot, it changes to use the sender's
         network namespace
      
       * scan requests use the interface index, hold a netdev pointer
         and reference instead
      
       * we want a wiphy and its associated virtual interfaces to be
         in one netns together, so
          - we need to be able to change ns for a given interface, so
            export dev_change_net_namespace()
          - for each virtual interface set the NETIF_F_NETNS_LOCAL
            flag, and clear that flag only when the wiphy changes ns,
            to disallow breaking this invariant
      
       * when a network namespace goes away, we need to reparent the
         wiphy to init_net
      
       * cfg80211 users that support creating virtual interfaces must
         create them in the wiphy's namespace, currently this affects
         only mac80211
      
      The end result is that you can now switch an entire wiphy into
      a different network namespace with the new command
      	iw phy#<idx> set netns <pid>
      and all virtual interfaces will follow (or the operation fails).
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      463d0183
  11. 24 Jul, 2009 1 commit
  12. 10 Jul, 2009 13 commits
  13. 10 Jun, 2009 1 commit
  14. 03 Jun, 2009 4 commits
  15. 13 May, 2009 3 commits
  16. 11 May, 2009 2 commits
  17. 06 May, 2009 3 commits
  18. 22 Apr, 2009 1 commit