1. 28 3月, 2018 1 次提交
  2. 20 3月, 2018 1 次提交
    • B
      net/mlx5: Packet pacing enhancement · 05d3ac97
      Bodong Wang 提交于
      Add two new parameters: max_burst_sz and typical_pkt_size (both
      in bytes) to rate limit configurations.
      
      max_burst_sz: The device will schedule bursts of packets for an
      SQ connected to this rate, smaller than or equal to this value.
      Value 0x0 indicates packet bursts will be limited to the device
      defaults. This field should be used if bursts of packets must be
      strictly kept under a certain value.
      
      typical_pkt_size: When the rate limit is intended for a stream of
      similar packets, stating the typical packet size can improve the
      accuracy of the rate limiter. The expected packet size will be
      the same for all SQs associated with the same rate limit index.
      
      Ethernet driver is updated according to this change, but these two
      parameters will be kept as 0 due to lacking of proper way to get the
      configurations from user space which requires to change
      ndo_set_tx_maxrate interface.
      Signed-off-by: NBodong Wang <bodong@mellanox.com>
      Reviewed-by: NDaniel Jurgens <danielj@mellanox.com>
      Reviewed-by: NYishai Hadas <yishaih@mellanox.com>
      Signed-off-by: NLeon Romanovsky <leonro@mellanox.com>
      Signed-off-by: NJason Gunthorpe <jgg@mellanox.com>
      05d3ac97
  3. 07 3月, 2018 2 次提交
  4. 20 1月, 2018 1 次提交
  5. 18 1月, 2018 1 次提交
  6. 12 1月, 2018 1 次提交
    • E
      {net,ib}/mlx5: Don't disable local loopback multicast traffic when needed · 8978cc92
      Eran Ben Elisha 提交于
      There are systems platform information management interfaces (such as
      HOST2BMC) for which we cannot disable local loopback multicast traffic.
      
      Separate disable_local_lb_mc and disable_local_lb_uc capability bits so
      driver will not disable multicast loopback traffic if not supported.
      (It is expected that Firmware will not set disable_local_lb_mc if
      HOST2BMC is running for example.)
      
      Function mlx5_nic_vport_update_local_lb will do best effort to
      disable/enable UC/MC loopback traffic and return success only in case it
      succeeded to changed all allowed by Firmware.
      
      Adapt mlx5_ib and mlx5e to support the new cap bits.
      
      Fixes: 2c43c5a0 ("net/mlx5e: Enable local loopback in loopback selftest")
      Fixes: c85023e1 ("IB/mlx5: Add raw ethernet local loopback support")
      Fixes: bded747b ("net/mlx5: Add raw ethernet local loopback firmware command")
      Signed-off-by: NEran Ben Elisha <eranbe@mellanox.com>
      Cc: kernel-team@fb.com
      Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
      8978cc92
  7. 09 1月, 2018 3 次提交
    • O
      net/mlx5: Add hairpin definitions to the FW API · 40817cdb
      Or Gerlitz 提交于
      Add hairpin definitions to the IFC file.
      
      This includes the HCA ID, few HCA hairpin capabilities, new
      fields in RQ/SQ used later for the pairing and the WQ hairpin
      data size attribute.
      Signed-off-by: NOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
      40817cdb
    • D
      {net, IB}/mlx5: Manage port association for multiport RoCE · 32f69e4b
      Daniel Jurgens 提交于
      When mlx5_ib_add is called determine if the mlx5 core device being
      added is capable of dual port RoCE operation. If it is, determine
      whether it is a master device or a slave device using the
      num_vhca_ports and affiliate_nic_vport_criteria capabilities.
      
      If the device is a slave, attempt to find a master device to affiliate it
      with. Devices that can be affiliated will share a system image guid. If
      none are found place it on a list of unaffiliated ports. If a master is
      found bind the port to it by configuring the port affiliation in the NIC
      vport context.
      
      Similarly when mlx5_ib_remove is called determine the port type. If it's
      a slave port, unaffiliate it from the master device, otherwise just
      remove it from the unaffiliated port list.
      
      The IB device is registered as a multiport device, even if a 2nd port is
      not available for affiliation. When the 2nd port is affiliated later the
      GID cache must be refreshed in order to get the default GIDs for the 2nd
      port in the cache. Export roce_rescan_device to provide a mechanism to
      refresh the cache after a new port is bound.
      
      In a multiport configuration all IB object (QP, MR, PD, etc) related
      commands should flow through the master mlx5_core_dev, other commands
      must be sent to the slave port mlx5_core_mdev, an interface is provide
      to get the correct mdev for non IB object commands.
      Signed-off-by: NDaniel Jurgens <danielj@mellanox.com>
      Reviewed-by: NParav Pandit <parav@mellanox.com>
      Signed-off-by: NLeon Romanovsky <leon@kernel.org>
      Signed-off-by: NJason Gunthorpe <jgg@mellanox.com>
      32f69e4b
    • D
      net/mlx5: Set software owner ID during init HCA · 8737f818
      Daniel Jurgens 提交于
      Generate a unique 128bit identifier for each host and pass that value to
      firmware in the INIT_HCA command if it reports the sw_owner_id
      capability. Each device bound to the mlx5_core driver will have the same
      software owner ID.
      
      In subsequent patches mlx5_core devices will be bound via a new VPort
      command so that they can operate together under a single InfiniBand
      device. Only devices that have the same software owner ID can be bound,
      to prevent traffic intended for one host arriving at another.
      
      The INIT_HCA command length was expanded by 128 bits. The command
      length is provided as an input FW commands. Older FW does not have a
      problem receiving this command in the new longer form.
      Signed-off-by: NDaniel Jurgens <danielj@mellanox.com>
      Reviewed-by: NParav Pandit <parav@mellanox.com>
      Signed-off-by: NLeon Romanovsky <leon@kernel.org>
      Signed-off-by: NJason Gunthorpe <jgg@mellanox.com>
      8737f818
  8. 20 12月, 2017 1 次提交
  9. 05 11月, 2017 2 次提交
  10. 26 10月, 2017 3 次提交
  11. 28 9月, 2017 1 次提交
  12. 31 8月, 2017 1 次提交
  13. 29 8月, 2017 1 次提交
  14. 25 8月, 2017 3 次提交
  15. 20 8月, 2017 3 次提交
  16. 07 8月, 2017 2 次提交
  17. 27 7月, 2017 2 次提交
  18. 24 7月, 2017 6 次提交
    • P
      IB/mlx5: Expose extended error counters · 58dcb60a
      Parav Pandit 提交于
      This patch adds below requester and responder side error counters,
      which will be exposed by hardware counters interface and are supported
      as part of query Q counters command extension.
      
       +---------------------------+-------------------------------------+
       |      Name                 |           Description               |
       |---------------------------+-------------------------------------|
       |resp_local_length_error    | Number of times responder detected  |
       |                           | local length errors                 |
       |---------------------------+-------------------------------------|
       |resp_cqe_error             | Number of CQEs completed with error |
       |                           | at responder                        |
       |---------------------------+-------------------------------------|
       |req_cqe_error              | Number of CQEs completed with error |
       |                           | at requester                        |
       |---------------------------+-------------------------------------|
       |req_remote_invalid_request | Number of times requester detected  |
       |                           | remote invalid request error        |
       |---------------------------+-------------------------------------|
       |req_remote_access_error    | Number of times requester detected  |
       |                           | remote access error                 |
       |---------------------------+-------------------------------------|
       |resp_remote_access_error   | Number of times responder detected  |
       |                           | remote access error                 |
       |---------------------------+-------------------------------------|
       |resp_cqe_flush_error       | Number of CQEs completed with       |
       |                           | flushed with error at responder     |
       |---------------------------+-------------------------------------|
       |req_cqe_flush_error        | Number of CQEs completed with       |
       |                           | flushed with error at requester     |
       +---------------------------+-------------------------------------+
      Signed-off-by: NParav Pandit <parav@mellanox.com>
      Reviewed-by: NDaniel Jurgens <danielj@mellanox.com>
      Reviewed-by: NEli Cohen <eli@mellanox.com>
      Signed-off-by: NLeon Romanovsky <leon@kernel.org>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      58dcb60a
    • M
      IB/mlx5: Add support to dropless RQ · 03404e8a
      Maor Gottlieb 提交于
      RQs that were configured for "delay drop" will prevent packet drops
      when their WQEs are depleted.
      Marking an RQ to be drop-less is done by setting delay_drop_en in RQ
      context using CREATE_RQ command.
      
      Since this feature is globally activated/deactivated by using the
      SET_DELAY_DROP command on all the marked RQs, we activated/deactivated
      it according to the number of RQs with 'delay_drop' enabled.
      
      When timeout is expired, then the feature is deactivated. Therefore
      the driver handles the delay drop timeout event and reactivate it.
      Signed-off-by: NMaor Gottlieb <maorg@mellanox.com>
      Reviewed-by: NYishai Hadas <yishaih@mellanox.com>
      Signed-off-by: NLeon Romanovsky <leon@kernel.org>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      03404e8a
    • M
      net/mlx5: Introduce general notification event · 246ac981
      Maor Gottlieb 提交于
      When delay drop timeout is expired, the firmware raises
      general notification event of DELAY_DROP_TIMEOUT subtype.
      In addition the feature is disable so the driver have to
      reactivate the timeout.
      Signed-off-by: NMaor Gottlieb <maorg@mellanox.com>
      Reviewed-by: NYishai Hadas <yishaih@mellanox.com>
      Signed-off-by: NLeon Romanovsky <leon@kernel.org>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      246ac981
    • M
      net/mlx5: Introduce set delay drop command · c1e0bfc1
      Maor Gottlieb 提交于
      Add support to SET_DELAY_DROP command.
      
      This command will be used in downstream patches for delay packet drop.
      The timeout value should be indicated by delay_drop_timeout field.
      Packet processing will be delayed till timeout value passed or until
      more WQEs are posted.
      
      Setting this value to 0 disables the feature.
      Signed-off-by: NMaor Gottlieb <maorg@mellanox.com>
      Reviewed-by: NYishai Hadas <yishaih@mellanox.com>
      Signed-off-by: NLeon Romanovsky <leon@kernel.org>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      c1e0bfc1
    • P
      IB/mlx5: Add debug control parameters for congestion control · 4a2da0b8
      Parav Pandit 提交于
      This patch adds debug control parameters for congestion control which
      can be read or written through debugfs. They are for reaction point and
      notification point nodes.
      
      These control parameters are as below:
       +------------------------------+-----------------------------------------+
       |      Name                    |           Description                   |
       |------------------------------+-----------------------------------------|
       |rp_clamp_tgt_rate             | When set target rate is updated to      |
       |                              | current rate                            |
       |------------------------------+-----------------------------------------|
       |rp_clamp_tgt_rate_ati         | When set update target rate based on    |
       |                              | timer as well                           |
       |------------------------------+-----------------------------------------|
       |rp_time_reset                 | time between rate increase if no        |
       |                              | CNP is received unit in usec            |
       |------------------------------+-----------------------------------------|
       |rp_byte_reset                 | Number of bytes between rate inease if  |
       |                              | no CNP is received                      |
       |------------------------------+-----------------------------------------|
       |rp_threshold                  | Threshold for reaction point rate       |
       |                              | control                                 |
       |------------------------------+-----------------------------------------|
       |rp_ai_rate                    | Rate for target rate, unit in Mbps      |
       |------------------------------+-----------------------------------------|
       |rp_hai_rate                   | Rate for hyper increase state           |
       |                              | unit in Mbps                            |
       |------------------------------+-----------------------------------------|
       |rp_min_dec_fac                | Minimum factor by which the current     |
       |                              | transmit rate can be changed when       |
       |                              | processing a CNP, unit is percerntage   |
       |------------------------------+-----------------------------------------|
       |rp_min_rate                   | Minimum value for rate limit,           |
       |                              | unit in Mbps                            |
       |------------------------------+-----------------------------------------|
       |rp_rate_to_set_on_first_cnp   | Rate that is set when first CNP is      |
       |                              | received, unit is Mbps                  |
       |------------------------------+-----------------------------------------|
       |rp_dce_tcp_g                  | Used to calculate alpha                 |
       |------------------------------+-----------------------------------------|
       |rp_dce_tcp_rtt                | Time between updates of alpha value,    |
       |                              | unit is usec                            |
       |------------------------------+-----------------------------------------|
       |rp_rate_reduce_monitor_period | Minimum time between consecutive rate   |
       |                              | reductions                              |
       |------------------------------+-----------------------------------------|
       |rp_initial_alpha_value        | Initial value of alpha                  |
       |------------------------------+-----------------------------------------|
       |rp_gd                         | When CNP is received, flow rate is      |
       |                              | reduced based on gd, rp_gd is given as  |
       |                              | log2(rp_gd)                             |
       |------------------------------+-----------------------------------------|
       |np_cnp_dscp                   | dscp code point for generated cnp       |
       |------------------------------+-----------------------------------------|
       |np_cnp_prio_mode              | 802.1p priority for generated cnp       |
       |------------------------------+-----------------------------------------|
       |np_cnp_prio                   | cnp priority mode                       |
       +------------------------------+-----------------------------------------+
      Signed-off-by: NParav Pandit <parav@mellanox.com>
      Reviewed-by: NDaniel Jurgens <danielj@mellanox.com>
      Reviewed-by: NEli Cohen <eli@mellanox.com>
      Signed-off-by: NLeon Romanovsky <leon@kernel.org>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      4a2da0b8
    • H
      net/mlx5: Add raw ethernet local loopback firmware command · bded747b
      Huy Nguyen 提交于
      Add support for raw ethernet local loopback firmware command.
      Signed-off-by: NHuy Nguyen <huyn@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>
      bded747b
  19. 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
  20. 22 6月, 2017 2 次提交