1. 22 7月, 2021 5 次提交
  2. 03 6月, 2021 3 次提交
  3. 07 4月, 2021 1 次提交
  4. 31 3月, 2021 1 次提交
  5. 21 8月, 2020 2 次提交
  6. 14 7月, 2020 1 次提交
    • P
      net: sched: Pass qdisc reference in struct flow_block_offload · c40f4e50
      Petr Machata 提交于
      Previously, shared blocks were only relevant for the pseudo-qdiscs ingress
      and clsact. Recently, a qevent facility was introduced, which allows to
      bind blocks to well-defined slots of a qdisc instance. RED in particular
      got two qevents: early_drop and mark. Drivers that wish to offload these
      blocks will be sent the usual notification, and need to know which qdisc it
      is related to.
      
      To that end, extend flow_block_offload with a "sch" pointer, and initialize
      as appropriate. This prompts changes in the indirect block facility, which
      now tracks the scheduler in addition to the netdevice. Update signatures of
      several functions similarly.
      Signed-off-by: NPetr Machata <petrm@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c40f4e50
  7. 20 6月, 2020 2 次提交
  8. 02 6月, 2020 1 次提交
  9. 20 5月, 2020 2 次提交
  10. 20 12月, 2019 5 次提交
  11. 10 12月, 2019 1 次提交
  12. 07 8月, 2019 4 次提交
  13. 10 7月, 2019 1 次提交
  14. 15 6月, 2019 1 次提交
  15. 08 5月, 2019 1 次提交
  16. 06 5月, 2019 3 次提交
  17. 16 4月, 2019 6 次提交
    • J
      nfp: flower: offload merge flows · 8af56f40
      John Hurley 提交于
      A merge flow is formed from 2 sub flows. The match fields of the merge are
      the same as the first sub flow that has formed it, with the actions being
      a combination of the first and second sub flow. Therefore, a merge flow
      should replace sub flow 1 when offloaded.
      
      Offload valid merge flows by using a new 'flow mod' message type to
      replace an existing offloaded rule. Track the deletion of sub flows that
      are linked to a merge flow and revert offloaded merge rules if required.
      Signed-off-by: NJohn Hurley <john.hurley@netronome.com>
      Signed-off-by: NSimon Horman <simon.horman@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8af56f40
    • J
      nfp: flower: support stats update for merge flows · aa6ce2ea
      John Hurley 提交于
      With the merging of 2 sub flows, a new 'merge' flow will be created and
      written to FW. The TC layer is unaware that the merge flow exists and will
      request stats from the sub flows. Conversely, the FW treats a merge rule
      the same as any other rule and sends stats updates to the NFP driver.
      
      Add links between merge flows and their sub flows. Use these links to pass
      merge flow stats updates from FW to the underlying sub flows, ensuring TC
      stats requests are handled correctly. The updating of sub flow stats is
      done on (the less time critcal) TC stats requests rather than on FW stats
      update.
      Signed-off-by: NJohn Hurley <john.hurley@netronome.com>
      Signed-off-by: NSimon Horman <simon.horman@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      aa6ce2ea
    • J
      nfp: flower: generate merge flow rule · 1c6952ca
      John Hurley 提交于
      When combining 2 sub_flows to a single 'merge flow' (assuming the merge is
      valid), the merge flow should contain the same match fields as sub_flow 1
      with actions derived from a combination of sub_flows 1 and 2. This action
      list should have all actions from sub_flow 1 with the exception of the
      output action that triggered the 'implicit recirculation' by sending to
      an internal port, followed by all actions of sub_flow 2. Any pre-actions
      in either sub_flow should feature at the start of the action list.
      
      Add code to generate a new merge flow and populate the match and actions
      fields based on the sub_flows. The offloading of the flow is left to
      future patches.
      Signed-off-by: NJohn Hurley <john.hurley@netronome.com>
      Signed-off-by: NSimon Horman <simon.horman@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1c6952ca
    • J
      nfp: flower: handle merge hint messages · dbc2d68e
      John Hurley 提交于
      If a merge hint is received containing 2 flows that are matched via an
      implicit recirculation (sending to and matching on an internal port), fw
      reports that the flows (called sub_flows) may be able to be combined to a
      single flow.
      
      Add infastructure to accept and process merge hint messages. The actual
      merging of the flows is left as a stub call.
      Signed-off-by: NJohn Hurley <john.hurley@netronome.com>
      Signed-off-by: NSimon Horman <simon.horman@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      dbc2d68e
    • J
      nfp: flower: get flows by host context · cf4172d5
      John Hurley 提交于
      Each flow is given a context ID that the fw uses (along with its cookie)
      to identity the flow. The flows stats are updated by the fw via this ID
      which is a reference to a pre-allocated array entry.
      
      In preparation for flow merge code, enable the nfp_fl_payload structure to
      be accessed via this stats context ID. Rather than increasing the memory
      requirements of the pre-allocated array, add a new rhashtable to associate
      each active stats context ID with its rule payload.
      
      While adding new code to the compile metadata functions, slightly
      restructure the existing function to allow for cleaner, easier to read
      error handling.
      Signed-off-by: NJohn Hurley <john.hurley@netronome.com>
      Signed-off-by: NSimon Horman <simon.horman@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cf4172d5
    • J
      nfp: flower: allow offloading of matches on 'internal' ports · 4d12ba42
      John Hurley 提交于
      Recent FW modifications allow the offloading of non repr ports. These
      ports exist internally on the NFP. So if a rule outputs to an 'internal'
      port, then the packet will recirculate back into the system but will now
      have this internal port as it's incoming port. These ports are indicated
      by a specific type field combined with an 8 bit port id.
      
      Add private app data to assign additional port ids for use in offloads.
      Provide functions to lookup or create new ids when a rule attempts to
      match on an internal netdev - the only internal netdevs currently
      supported are of type openvswitch. Have a netdev notifier to release
      port ids on netdev unregister.
      
      OvS offloads rules that match on internal ports as TC egress filters.
      Ensure that such rules are accepted by the driver.
      Signed-off-by: NJohn Hurley <john.hurley@netronome.com>
      Signed-off-by: NSimon Horman <simon.horman@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4d12ba42