1. 23 6月, 2014 1 次提交
  2. 11 6月, 2014 2 次提交
    • H
      iw_cxgb4: Choose appropriate hw mtu index and ISS for iWARP connections · 92e7ae71
      Hariprasad Shenai 提交于
      Select the appropriate hw mtu index and initial sequence number to optimize
      hw memory performance.
      
      Add new cxgb4_best_aligned_mtu() which allows callers to provide enough
      information to be used to [possibly] select an MTU which will result in the
      TCP Data Segment Size (AKA Maximum Segment Size) to be an aligned value.
      
      If an RTR message exhange is required, then align the ISS to 8B - 1 + 4, so
      that after the SYN the send seqno will align on a 4B boundary. The RTR
      message exchange will leave the send seqno aligned on an 8B boundary.
      If an RTR is not required, then align the ISS to 8B - 1.  The goal is
      to have the send seqno be 8B aligned when we send the first FPDU.
      
      Based on original work by Casey Leedom <leeedom@chelsio.com> and
      Steve Wise <swise@opengridcomputing.com>
      Signed-off-by: NCasey Leedom <leedom@chelsio.com>
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      Signed-off-by: NHariprasad Shenai <hariprasad@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      92e7ae71
    • H
      iw_cxgb4: Allocate and use IQs specifically for indirect interrupts · cf38be6d
      Hariprasad Shenai 提交于
      Currently indirect interrupts for RDMA CQs funnel through the LLD's RDMA
      RXQs, which also handle direct interrupts for offload CPLs during RDMA
      connection setup/teardown.  The intended T4 usage model, however, is to
      have indirect interrupts flow through dedicated IQs. IE not to mix
      indirect interrupts with CPL messages in an IQ.  This patch adds the
      concept of RDMA concentrator IQs, or CIQs, setup and maintained by the
      LLD and exported to iw_cxgb4 for use when creating CQs. RDMA CPLs will
      flow through the LLD's RDMA RXQs, and CQ interrupts flow through the
      CIQs.
      
      Design:
      
      cxgb4 creates and exports an array of CIQs for the RDMA ULD.  These IQs
      are sized according to the max available CQs available at adapter init.
      In addition, these IQs don't need FL buffers since they only service
      indirect interrupts.  One CIQ is setup per RX channel similar to the
      RDMA RXQs.
      
      iw_cxgb4 will utilize these CIQs based on the vector value passed into
      create_cq().  The num_comp_vectors advertised by iw_cxgb4 will be the
      number of CIQs configured, and thus the vector value will be the index
      into the array of CIQs.
      
      Based on original work by Steve Wise <swise@opengridcomputing.com>
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      Signed-off-by: NHariprasad Shenai <hariprasad@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cf38be6d
  3. 19 2月, 2014 1 次提交
  4. 23 12月, 2013 1 次提交
  5. 13 8月, 2013 1 次提交
    • V
      cxgb4: Add routines to create and remove listening IPv6 servers · 80f40c1f
      Vipul Pandya 提交于
      Add cxgb4_create_server6 and cxgb4_remove_server routines to create
      and remove listening IPv6 servers.
      
      Return success (0) from cxgb4_create_server in case of ctrl queue
      congestion since in case of congestion, passive open request gets
      queued and gets processed later.  If a non-zero value were returned it
      would be treated as an error and the ULD would free STID, which can
      result in an error in passive open reply.
      
      Add cpl structure for active open request with IPv6 address for T5.
      Signed-off-by: NVipul Pandya <vipul@chelsio.com>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      80f40c1f
  6. 14 3月, 2013 1 次提交
  7. 20 12月, 2012 3 次提交
    • V
      RDMA/cxgb4: Fix bug for active and passive LE hash collision path · 793dad94
      Vipul Pandya 提交于
      Retries active opens for INUSE errors.
      
      Logs any active ofld_connect_wr error replies.
      
      Sends ofld_connect_wr on same ctrlq. It needs to go  on the same control txq as
      regular CPL active/passive messages.
      
      Retries on active open replies with EADDRINUSE.
      
      Uses active open fw wr only if active filter region is set.
      
      Adds stat for ofld_connect_wr failures.
      
      This patch also adds debugfs file to show endpoints.
      Signed-off-by: NVipul Pandya <vipul@chelsio.com>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      793dad94
    • V
      cxgb4: Add LE hash collision bug fix path in LLD driver · dca4faeb
      Vipul Pandya 提交于
      It supports establishing passive open connection through firmware filter work
      request. Passive open connection will go through this path as now instead of
      listening server we create a server filter which will redirect the incoming SYN
      packet to the offload queue.
      
      It divides filter region into regular filters and server filter portion. It
      introduces new server filter region which will be exclusively used for creating
      server filters. This region will not overlap with regular filter region.
      
      It provides new API cxgb4_alloc_sftid in LLD for getting stid in case of LE
      hash collision path. This new stid will be used to open server filter in the
      filter region.
      Signed-off-by: NVipul Pandya <vipul@chelsio.com>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      dca4faeb
    • V
      cxgb4: Add T4 filter support · f2b7e78d
      Vipul Pandya 提交于
      The T4 architecture is capable of filtering ingress packets at line rate
      using the rule in TCAM. If packet hits a rule in the TCAM then it can be either
      dropped or passed to the receive queues based on a rule settings.
      
      This patch adds framework for managing filters and to use T4's filter
      capabilities. It constructs a Firmware Filter Work Request which writes the
      filter at a specified index to get the work done. It hosts shadow copy of
      ingress filter entry to check field size limitations and save memory in the
      case where the filter table is large.
      Signed-off-by: NVipul Pandya <vipul@chelsio.com>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      f2b7e78d
  8. 22 10月, 2012 1 次提交
  9. 28 9月, 2012 1 次提交
    • V
      cxgb4: Add support for T4 configuration file · 636f9d37
      Vipul Pandya 提交于
      Starting with T4 firmware version 1.3.11.0 the firmware now supports device
      configuration via a Firmware Configuration File. The Firmware Configuration
      File was primarily developed in order to centralize all of the configuration,
      resource allocation, etc. for Unified Wire operation where multiple
      Physical / Virtual Function Drivers would be using a T4 adapter simultaneously.
      
      The Firmware Configuration file can live in three locations as shown below
      in order of precedence.
      1) User defined configuration file: /lib/firmware/cxgb4/t4-config.txt
      2) Factory Default configuration file written to FLASH within
         the manufacturing process.
      3) Hardwired driver configuration.
      Signed-off-by: NJay Hernandez <jay@chelsio.com>
      Signed-off-by: NVipul Pandya <vipul@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      636f9d37
  10. 19 5月, 2012 2 次提交
  11. 11 8月, 2011 1 次提交
  12. 27 7月, 2011 1 次提交
  13. 21 10月, 2010 1 次提交
  14. 03 8月, 2010 1 次提交
  15. 19 6月, 2010 1 次提交
  16. 02 4月, 2010 1 次提交