1. 27 7月, 2017 1 次提交
  2. 27 6月, 2017 3 次提交
    • I
      net/mlx5e: IPSec, Innova IPSec offload infrastructure · 547eede0
      Ilan Tayari 提交于
      Add Innova IPSec ESP crypto offload configuration paths.
      Detect Innova IPSec device and set the NETIF_F_HW_ESP flag.
      Configure Security Associations using the API introduced in a previous
      patch.
      
      Add Software-parser hardware descriptor layout
      Software-Parser (swp) is a hardware feature in ConnectX which allows the
      host software to specify protocol header offsets in the TX path, thus
      overriding the hardware parser.
      This is useful for protocols that the ASIC may not be able to parse on
      its own.
      
      Note that due to inline metadata, XDP is not supported in Innova IPSec.
      Signed-off-by: NIlan Tayari <ilant@mellanox.com>
      Signed-off-by: NYossi Kuperman <yossiku@mellanox.com>
      Signed-off-by: NYevgeny Kliteynik <kliteyn@mellanox.com>
      Signed-off-by: NBoris Pismenny <borisp@mellanox.com>
      Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
      547eede0
    • I
      net/mlx5: FPGA, Add SBU infrastructure · a9956d35
      Ilan Tayari 提交于
      Add interface to initialize and interact with Innova FPGA SBU
      connections.
      A client driver may use these functions to set up a high-speed DMA
      connection with its SBU hardware logic, and send/receive messages
      over this connection.
      
      A later patch in this patchset will make use of these functions for
      Innova IPSec offload in mlx5 Ethernet driver.
      
      Add commands to retrieve Innova FPGA SBU capabilities, and to
      read/write Innova FPGA configuration space registers and memory,
      over internal I2C.
      
      At high level, the FPGA configuration space is divided such:
       0x00000000 - 0x007fffff is reserved for the SBU
       0x00800000 - 0xffffffff is reserved for the Shell
      0x400000000 - ...        is DDR memory
      
      A later patchset will add support for accessing FPGA CrSpace and memory
      over a high-speed connection. This is the reason for the ACCESS_TYPE
      enumeration, which currently only supports I2C.
      Signed-off-by: NIlan Tayari <ilant@mellanox.com>
      Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
      a9956d35
    • I
      net/mlx5: FPGA, Add FW commands for FPGA QPs · 6062118d
      Ilan Tayari 提交于
      The FPGA QP is a high-bandwidth communication channel between the host
      CPU and the FPGA device. It allows performing DMA operations between
      host memory and the FPGA logic via the ConnectX chip.
      
      Add ConnectX FW commands which create and manipulate FPGA QPs.
      Signed-off-by: NIlan Tayari <ilant@mellanox.com>
      Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
      6062118d
  3. 22 6月, 2017 5 次提交
  4. 16 6月, 2017 2 次提交
  5. 08 6月, 2017 2 次提交
  6. 02 6月, 2017 1 次提交
  7. 14 5月, 2017 1 次提交
    • I
      net/mlx5: FPGA, Add basic support for Innova · e29341fb
      Ilan Tayari 提交于
      Mellanox Innova is a NIC with ConnectX and an FPGA on the same
      board. The FPGA is a bump-on-the-wire and thus affects operation of
      the mlx5_core driver on the ConnectX ASIC.
      
      Add basic support for Innova in mlx5_core.
      
      This allows using the Innova card as a regular NIC, by detecting
      the FPGA capability bit, and verifying its load state before
      initializing ConnectX interfaces.
      
      Also detect FPGA fatal runtime failures and enter error state if
      they ever happen.
      
      All new FPGA-related logic is placed in its own subdirectory 'fpga',
      which may be built by selecting CONFIG_MLX5_FPGA.
      This prepares for further support of various Innova features in later
      patchsets.
      Additional details about hardware architecture will be provided as
      more features get submitted.
      Signed-off-by: NIlan Tayari <ilant@mellanox.com>
      Reviewed-by: NBoris Pismenny <borisp@mellanox.com>
      Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
      e29341fb
  8. 02 5月, 2017 1 次提交
  9. 22 4月, 2017 2 次提交
    • P
      IB/mlx5: Support congestion related counters · e1f24a79
      Parav Pandit 提交于
      This patch adds support to query the congestion related hardware counters
      through new command and links them with other hw counters being available
      in hw_counters sysfs location.
      
      In order to reuse existing infrastructure it renames related q_counter
      data structures to more generic counters to reflect q_counters and
      congestion counters and maybe some other counters in the future.
      
      New hardware counters:
       * rp_cnp_handled - CNP packets handled by the reaction point
       * rp_cnp_ignored - CNP packets ignored by the reaction point
       * np_cnp_sent    - CNP packets sent by notification point to respond to
                           CE marked RoCE packets
       * np_ecn_marked_roce_packets - CE marked RoCE packets received by
                                      notification point
      
      It also avoids returning ENOSYS which is specific for invalid
      system call and produces the following checkpatch.pl warning.
      
      WARNING: ENOSYS means 'invalid syscall nr' and nothing else
      +		return -ENOSYS;
      Signed-off-by: NParav Pandit <parav@mellanox.com>
      Reviewed-by: NEli Cohen <eli@mellanox.com>
      Reviewed-by: NDaniel Jurgens <danielj@mellanox.com>
      Signed-off-by: NLeon Romanovsky <leon@kernel.org>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      e1f24a79
    • A
      IB/mlx5: Use IP version matching to classify IP traffic · 19cc7524
      Ariel Levkovich 提交于
      This change adds the ability for flow steering to classify IPv4/6
      packets with MPLS tag (Ethertype 0x8847 and 0x8848) as standard IP
      packets and hit IPv4/6 classifed steering rules.
      
      When user added a flow rule with IP classification, driver was
      implicitly adding ethertype matching to the created rule in order
      to distinguish between IPv4 and IPv6 protocols.
      Since IP packets with MPLS tag header have MPLS ethertype, they missed
      the rule and ended up hitting the default filters.
      Such behavior prevented from MPLS packets to undergo inbound traffic
      load balancing flows (if such were defined by configuring RSS) to
      achieve higher throughput - the way that non-MPLS IP packets performed.
      
      Since our device is able to look past the MPLS tag and identify the
      next protocol we introduce this solution which replaces Ethertype
      matching by the device's capability to perform IP version parsing
      and matching in order to distinguish between IPv4 and IPv6.
      Therefore, whenever a flow with IP spec is added and device support IP
      version matching, driver will implicitly add IP version matching to the
      rule (Based on the IP spec type) without Ethertype matching which will
      cause relevant MPLS tagged packets to hit this rule as well.
      Otherwise (device doesn't support IP version matching), we fall back to
      setting Ethertype matching.
      
      If the user's filters specify an L2 ethertype and an IP spec
      the rule will then match both the ethertype and the IP version.
      
      The device's support for IP version matching is reported by the
      device via dedicated capability bit in query_device_cap and named
      outer/inner_ip_version.
      Signed-off-by: NAriel Levkovich <lariel@mellanox.com>
      Signed-off-by: NLeon Romanovsky <leon@kernel.org>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      19cc7524
  10. 17 4月, 2017 1 次提交
  11. 07 4月, 2017 1 次提交
  12. 28 3月, 2017 1 次提交
  13. 15 2月, 2017 1 次提交
  14. 07 2月, 2017 2 次提交
    • S
      net/mlx5: TX WQE update · 2b31f7ae
      Saeed Mahameed 提交于
      Add new TX WQE fields for Connect-X5 vlan insertion support,
      type and vlan_tci, when type = MLX5_ETH_WQE_INSERT_VLAN the
      HW will insert the vlan and prio fields (vlan_tci) to the packet.
      
      Those bits and the inline header fields are mutually exclusive, and
      valid only when:
      MLX5_CAP_ETH(mdev, wqe_inline_mode) == MLX5_CAP_INLINE_MODE_NOT_REQUIRED
      and MLX5_CAP_ETH(mdev, wqe_vlan_insert),
      who will be set in ConnectX-5 and later HW generations.
      Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
      Reviewed-by: NTariq Toukan <tariqt@mellanox.com>
      2b31f7ae
    • D
      net/mlx5: Configure cache line size for start and end padding · f32f5bd2
      Daniel Jurgens 提交于
      There is a hardware feature that will pad the start or end of a DMA to
      be cache line aligned to avoid RMWs on the last cache line. The default
      cache line size setting for this feature is 64B. This change configures
      the hardware to use 128B alignment on systems with 128B cache lines.
      
      In addition we lower bound MPWRQ stride by HCA cacheline in mlx5e,
      MPWRQ stride should be at least the HCA cacheline, the current default
      is 64B and in case HCA_CAP.cach_line_128byte capability is set, MPWRQ RX
      stride will automatically be aligned to 128B.
      Signed-off-by: NDaniel Jurgens <danielj@mellanox.com>
      Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
      f32f5bd2
  15. 25 1月, 2017 1 次提交
  16. 20 1月, 2017 5 次提交
  17. 08 1月, 2017 1 次提交
    • E
      net/mlx5: Introduce blue flame register allocator · a6d51b68
      Eli Cohen 提交于
      Here is an implementation of an allocator that allocates blue flame
      registers. A blue flame register is used for generating send doorbells.
      A blue flame register can be used to generate either a regular doorbell
      or a blue flame doorbell where the data to be sent is written to the
      device's I/O memory hence saving the need to read the data from memory.
      For blue flame kind of doorbells to succeed, the blue flame register
      need to be mapped as write combining. The user can specify what kind of
      send doorbells she wishes to use. If she requested write combining
      mapping but that failed, the allocator will fall back to non write
      combining mapping and will indicate that to the user.
      Subsequent patches in this series will make use of this allocator.
      Signed-off-by: NEli Cohen <eli@mellanox.com>
      Reviewed-by: NMatan Barak <matanb@mellanox.com>
      Signed-off-by: NLeon Romanovsky <leon@kernel.org>
      Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
      a6d51b68
  18. 03 1月, 2017 4 次提交
  19. 29 12月, 2016 1 次提交
  20. 14 12月, 2016 1 次提交
  21. 19 11月, 2016 3 次提交