1. 31 7月, 2020 6 次提交
  2. 25 6月, 2020 2 次提交
  3. 28 5月, 2020 1 次提交
  4. 27 5月, 2020 1 次提交
  5. 01 5月, 2020 1 次提交
  6. 29 4月, 2020 1 次提交
  7. 24 4月, 2020 1 次提交
  8. 30 3月, 2020 1 次提交
  9. 26 3月, 2020 3 次提交
  10. 20 3月, 2020 1 次提交
  11. 24 2月, 2020 3 次提交
  12. 21 2月, 2020 1 次提交
  13. 07 2月, 2020 3 次提交
  14. 15 1月, 2020 2 次提交
  15. 14 12月, 2019 1 次提交
  16. 13 12月, 2019 2 次提交
    • T
      mac80211: Turn AQL into an NL80211_EXT_FEATURE · 911bde0f
      Toke Høiland-Jørgensen 提交于
      Instead of just having an airtime flag in debugfs, turn AQL into a proper
      NL80211_EXT_FEATURE, so drivers can turn it on when they are ready, and so
      we also expose the presence of the feature to userspace.
      
      This also has the effect of flipping the default, so drivers have to opt in
      to using AQL instead of getting it by default with TXQs. To keep
      functionality the same as pre-patch, we set this feature for ath10k (which
      is where it is needed the most).
      
      While we're at it, split out the debugfs interface so AQL gets its own
      per-station debugfs file instead of using the 'airtime' file.
      
      [Johannes:]
      This effectively disables AQL for iwlwifi, where it fixes a number of
      issues:
       * TSO in iwlwifi is causing underflows and associated warnings in AQL
       * HE (802.11ax) rates aren't reported properly so at HE rates, AQL could
         never have a valid estimate (it'd use 6 Mbps instead of up to 2400!)
      Signed-off-by: NToke Høiland-Jørgensen <toke@redhat.com>
      Link: https://lore.kernel.org/r/20191212111437.224294-1-toke@redhat.com
      Fixes: 3ace10f5 ("mac80211: Implement Airtime-based Queue Limit (AQL)")
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      911bde0f
    • F
      mac80211: fix TID field in monitor mode transmit · 753ffad3
      Fredrik Olofsson 提交于
      Fix overwriting of the qos_ctrl.tid field for encrypted frames injected on
      a monitor interface. While qos_ctrl.tid is not encrypted, it's used as an
      input into the encryption algorithm so it's protected, and thus cannot be
      modified after encryption. For injected frames, the encryption may already
      have been done in userspace, so we cannot change any fields.
      
      Before passing the frame to the driver, the qos_ctrl.tid field is updated
      from skb->priority. Prior to dbd50a85 skb->priority was updated in
      ieee80211_select_queue_80211(), but this function is no longer always
      called.
      
      Update skb->priority in ieee80211_monitor_start_xmit() so that the value
      is stored, and when later code 'modifies' the TID it really sets it to
      the same value as before, preserving the encryption.
      
      Fixes: dbd50a85 ("mac80211: only allocate one queue when using iTXQs")
      Signed-off-by: NFredrik Olofsson <fredrik.olofsson@anyfinetworks.com>
      Link: https://lore.kernel.org/r/20191119133451.14711-1-fredrik.olofsson@anyfinetworks.com
      [rewrite commit message based on our discussion]
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      753ffad3
  17. 22 11月, 2019 3 次提交
    • T
      mac80211: Use Airtime-based Queue Limits (AQL) on packet dequeue · 7a89233a
      Toke Høiland-Jørgensen 提交于
      The previous commit added the ability to throttle stations when they queue
      too much airtime in the hardware. This commit enables the functionality by
      calculating the expected airtime usage of each packet that is dequeued from
      the TXQs in mac80211, and accounting that as pending airtime.
      
      The estimated airtime for each skb is stored in the tx_info, so we can
      subtract the same amount from the running total when the skb is freed or
      recycled. The throttling mechanism relies on this accounting to be
      accurate (i.e., that we are not freeing skbs without subtracting any
      airtime they were accounted for), so we put the subtraction into
      ieee80211_report_used_skb(). As an optimisation, we also subtract the
      airtime on regular TX completion, zeroing out the value stored in the
      packet afterwards, to avoid having to do an expensive lookup of the station
      from the packet data on every packet.
      
      This patch does *not* include any mechanism to wake a throttled TXQ again,
      on the assumption that this will happen anyway as a side effect of whatever
      freed the skb (most commonly a TX completion).
      Signed-off-by: NToke Høiland-Jørgensen <toke@redhat.com>
      Link: https://lore.kernel.org/r/20191119060610.76681-5-kyan@google.comSigned-off-by: NJohannes Berg <johannes.berg@intel.com>
      7a89233a
    • K
      mac80211: Implement Airtime-based Queue Limit (AQL) · 3ace10f5
      Kan Yan 提交于
      In order for the Fq_CoDel algorithm integrated in mac80211 layer to operate
      effectively to control excessive queueing latency, the CoDel algorithm
      requires an accurate measure of how long packets stays in the queue, AKA
      sojourn time. The sojourn time measured at the mac80211 layer doesn't
      include queueing latency in the lower layer (firmware/hardware) and CoDel
      expects lower layer to have a short queue. However, most 802.11ac chipsets
      offload tasks such TX aggregation to firmware or hardware, thus have a deep
      lower layer queue.
      
      Without a mechanism to control the lower layer queue size, packets only
      stay in mac80211 layer transiently before being sent to firmware queue.
      As a result, the sojourn time measured by CoDel in the mac80211 layer is
      almost always lower than the CoDel latency target, hence CoDel does little
      to control the latency, even when the lower layer queue causes excessive
      latency.
      
      The Byte Queue Limits (BQL) mechanism is commonly used to address the
      similar issue with wired network interface. However, this method cannot be
      applied directly to the wireless network interface. "Bytes" is not a
      suitable measure of queue depth in the wireless network, as the data rate
      can vary dramatically from station to station in the same network, from a
      few Mbps to over Gbps.
      
      This patch implements an Airtime-based Queue Limit (AQL) to make CoDel work
      effectively with wireless drivers that utilized firmware/hardware
      offloading. AQL allows each txq to release just enough packets to the lower
      layer to form 1-2 large aggregations to keep hardware fully utilized and
      retains the rest of the frames in mac80211 layer to be controlled by the
      CoDel algorithm.
      Signed-off-by: NKan Yan <kyan@google.com>
      [ Toke: Keep API to set pending airtime internal, fix nits in commit msg ]
      Signed-off-by: NToke Høiland-Jørgensen <toke@redhat.com>
      Link: https://lore.kernel.org/r/20191119060610.76681-4-kyan@google.comSigned-off-by: NJohannes Berg <johannes.berg@intel.com>
      3ace10f5
    • J
      mac80211: add a comment about monitor-to-dev injection · b226a826
      Johannes Berg 提交于
      Add a note with a use-case for the monitor-to-dev injection
      mechanism in mac80211, reported by Ben Greear.
      
      Change-Id: I6456997ef9bc40b24ede860b6ef2fed5af49cf44
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      b226a826
  18. 08 11月, 2019 2 次提交
  19. 04 10月, 2019 1 次提交
  20. 21 8月, 2019 1 次提交
  21. 26 7月, 2019 2 次提交
  22. 19 6月, 2019 1 次提交