1. 21 Jan, 2011 37 commits
  2. 19 Jan, 2011 3 commits
    • Felix Fietkau's avatar
      mac80211: drop non-auth 3-addr data frames when running as a 4-addr station · fbb327c5
      Felix Fietkau authored
      When running as a 4-addr station against an AP that has the 4-addr VLAN
      interface and the main 3-addr AP interface bridged together, sometimes
      frames originating from the station were looping back from the 3-addr AP
      interface, causing the bridge code to emit warnings about receiving frames
      with its own source address.
      I'm not sure why this is happening yet, but I think it's a good idea to
      drop all frames (except 802.1x/EAP frames) that do not match the configured
      addressing mode, including 4-address frames sent to a 3-address station.
      User test reports indicate that the problem goes away with this patch.
      Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      fbb327c5
    • Johannes Berg's avatar
      mac80211: allow advertising correct maximum aggregate size · 5dd36bc9
      Johannes Berg authored
      Currently, mac80211 always advertises that it may send
      up to 64 subframes in an aggregate. This is fine, since
      it's the max, but might as well be set to zero instead
      since it doesn't have any information.
      
      However, drivers might have that information, so allow
      them to set a variable giving it, which will then be
      used. The default of zero will be fine since to the
      peer that means we don't know and it will just use its
      own limit for the buffer size.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      5dd36bc9
    • Johannes Berg's avatar
      mac80211: track receiver's aggregation reorder buffer size · 0b01f030
      Johannes Berg authored
      The aggregation code currently doesn't implement the
      buffer size negotiation. It will always request a max
      buffer size (which is fine, if a little pointless, as
      the mac80211 code doesn't know and might just use 0
      instead), but if the peer requests a smaller size it
      isn't possible to honour this request.
      
      In order to fix this, look at the buffer size in the
      addBA response frame, keep track of it and pass it to
      the driver in the ampdu_action callback when called
      with the IEEE80211_AMPDU_TX_OPERATIONAL action. That
      way the driver can limit the number of subframes in
      aggregates appropriately.
      
      Note that this doesn't fix any drivers apart from the
      addition of the new argument -- they all need to be
      updated separately to use this variable!
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      0b01f030