Skip to content
  1. Oct 18, 2018
    • Paul Blakey's avatar
      net/mlx5: Split FDB fast path prio to multiple namespaces · 328edb49
      Paul Blakey authored
      
      
      Towards supporting multi-chains and priorities, split the FDB fast path
      to multiple namespaces (sub namespaces), each with multiple priorities.
      
      This patch adds a new flow steering type, FS_TYPE_PRIO_CHAINS, which is
      like current FS_TYPE_PRIO, but may contain only namespaces, and those
      will be in parallel to one another in terms of managing of the flow
      tables connections inside them. Meaning, while searching for the next
      or previous flow table to connect for a new table inside such namespace
      we skip the parallel namespaces in the same level under the
      FS_TYPE_PRIO_CHAINS prio we originated from.
      
      We use this new type for splitting the fast path prio into multiple
      parallel namespaces, each containing normal prios.
      The prios inside them (and their tables) will be connected to one
      another, but not from one parallel namespace to another, instead the
      last prio in each namespace will be connected to the next prio in
      the containing FDB namespace, which is the slow path prio.
      
      Signed-off-by: default avatarPaul Blakey <paulb@mellanox.com>
      Acked-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      328edb49
    • Paul Blakey's avatar
      net/mlx5: Add cap bits for multi fdb encap · b9aa0ba1
      Paul Blakey authored
      
      
      If set, the firmware supports creating of flow tables with encap
      enabled while VFs are configured, if we already created one
      (restriction still applies on the first creation).
      
      Signed-off-by: default avatarPaul Blakey <paulb@mellanox.com>
      Reviewed-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      b9aa0ba1
    • Roi Dayan's avatar
      net/mlx5e: Split TC add rule path for nic vs e-switch · a88780a9
      Roi Dayan authored
      
      
      Move to have clear separation on the code path to add nic vs e-switch
      flows. While here we break the code that deals with adding offloaded
      TC tool to few smaller stages, each on helper function.
      
      Besides getting us simpler and readable code, these are pre-steps
      for being able to have two HW flows serving one SW TC flow for some
      e-switch use cases.
      
      Signed-off-by: default avatarRoi Dayan <roid@mellanox.com>
      Reviewed-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      a88780a9
    • Rabie Loulou's avatar
      net/mlx5e: Change return type of tc add flow functions · c83954ab
      Rabie Loulou authored
      
      
      Refactor the flow add utility functions to return err code instead of rule
      pointers. This will allow for simpler logic when one tc rule is
      duplicated to two HW rules in downstream patches.
      
      Signed-off-by: default avatarRabie Loulou <rabiel@mellanox.com>
      Signed-off-by: default avatarShahar Klein <shahark@mellanox.com>
      Reviewed-by: default avatarRoi Dayan <roid@mellanox.com>
      Reviewed-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      c83954ab
    • Mark Bloch's avatar
      net/mlx5: Use flow counter IDs and not the wrapping cache object · 171c7625
      Mark Bloch authored
      
      
      Currently, when a flow rule is created using the FS core layer, the caller
      has to pass the entire flow counter object and not just the counter HW
      handle (ID). This requires both the FS core and the caller to have
      knowledge about the inner implementation of the FS layer flow counters
      cache and limits the possible users.
      
      Move to use the counter ID across the place when dealing with flows.
      
      Doing this decoupling, now can we privatize the inner implementation
      of the flow counters.
      
      Signed-off-by: default avatarMark Bloch <markb@mellanox.com>
      Reviewed-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      171c7625
    • Mark Bloch's avatar
      net/mlx5: E-Switch, Get counters for offloaded flows from callers · b8aee822
      Mark Bloch authored
      
      
      There's no real reason for the e-switch logic to manage the creation of
      counters for offloaded flows. The API already has the directive for the
      caller to denote they want to attach a counter to the created flow.
      As such, we go and move the management of flow counters to the mlx5e
      tc offload logic. This also lets us remove an inelegant interface where
      the FS layer had to provide a way to retrieve a counter from a flow rule.
      
      Signed-off-by: default avatarMark Bloch <markb@mellanox.com>
      Reviewed-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      b8aee822
    • Saeed Mahameed's avatar
      Merge branch 'mlx5-next' of... · 186daf0c
      Saeed Mahameed authored
      
      Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux into net-next
      
      mlx5 updates for both net-next and rdma-next
      
      * 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux: (21 commits)
        net/mlx5: Expose DC scatter to CQE capability bit
        net/mlx5: Update mlx5_ifc with DEVX UID bits
        net/mlx5: Set uid as part of DCT commands
        net/mlx5: Set uid as part of SRQ commands
        net/mlx5: Set uid as part of SQ commands
        net/mlx5: Set uid as part of RQ commands
        net/mlx5: Set uid as part of QP commands
        net/mlx5: Set uid as part of CQ commands
        net/mlx5: Rename incorrect naming in IFC file
        net/mlx5: Export packet reformat alloc/dealloc functions
        net/mlx5: Pass a namespace for packet reformat ID allocation
        net/mlx5: Expose new packet reformat capabilities
        {net, RDMA}/mlx5: Rename encap to reformat packet
        net/mlx5: Move header encap type to IFC header file
        net/mlx5: Break encap/decap into two separated flow table creation flags
        net/mlx5: Add support for more namespaces when allocating modify header
        net/mlx5: Export modify header alloc/dealloc functions
        net/mlx5: Add proper NIC TX steering flow tables support
        net/mlx5: Cleanup flow namespace getter switch logic
        net/mlx5: Add memic command opcode to command checker
        ...
      
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      186daf0c
  2. Oct 17, 2018
  3. Oct 16, 2018