1. 26 10月, 2010 3 次提交
    • E
      IB/mlx4: Add support for IBoE · fa417f7b
      Eli Cohen 提交于
      Add support for IBoE to mlx4_ib.  The bulk of the code is handling the
      new address vector fields; mlx4 needs the MAC address of a remote node
      to include it in a WQE (for datagrams) or in the QP context (for
      connected QPs).  Address resolution is done by assuming all unicast
      GIDs are either link-local IPv6 addresses.
      
      Multicast group attach/detach needs to update the NIC's multicast
      filters; but since attaching a QP to a multicast group can be done
      before the QP is bound to a port, for IBoE we need to keep track of
      all multicast groups that a QP is attached too before it transitions
      from INIT to RTR (since it does not have a port in the INIT state).
      Signed-off-by: NEli Cohen <eli@mellanox.co.il>
      
      [ Many things cleaned up and otherwise monkeyed with; hope I didn't
        introduce too many bugs.  - Roland ]
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      fa417f7b
    • E
      mlx4_core: Update data structures and constants for IBoE · 96dfa684
      Eli Cohen 提交于
      Add fields to hardware data structures and add new constants required for IBoE
      support.
      Signed-off-by: NEli Cohen <eli@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      96dfa684
    • E
      mlx4_core: Allow protocol drivers to find corresponding interfaces · 33c87f0a
      Eli Cohen 提交于
      Add a mechanism for mlx4 protocol drivers to get a pointer to other
      drivers's device objects.  For this, an exported function,
      mlx4_get_protocol_dev() is added, which allows a driver to get some
      other driver's device based on the protocol that the driver
      implements.  Two protocols are added: MLX4_PROTOCOL_IB and
      MLX4_PROTOCOL_EN.
      
      This will be used in mlx4 IBoE support so that mlx4_ib can find the
      corresponding mlx4_en netdev.
      Signed-off-by: NEli Cohen <eli@mellanox.co.il>
      
      [ Clean up and rename a few things.  - Roland ]
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      33c87f0a
  2. 22 4月, 2010 1 次提交
  3. 13 11月, 2009 1 次提交
    • E
      IB/mlx4: Remove limitation on LSO header size · 417608c2
      Eli Cohen 提交于
      Current code has a limitation: an LSO header is not allowed to cross a
      64 byte boundary.  This patch removes this limitation by setting the
      WQE RR for large headers thus allowing LSO headers of any size.  The
      extra buffer reserved for MLX4_IB_QP_LSO QPs has been doubled, from 64
      to 128 bytes, assuming this is reasonable upper limit for header
      length.  Also, this patch will cause IB_DEVICE_UD_TSO to be set only
      for HCA FW versions that set MLX4_DEV_CAP_FLAG_BLH; e.g. FW version
      2.6.000 and higher.
      Signed-off-by: NEli Cohen <eli@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      417608c2
  4. 06 6月, 2009 1 次提交
  5. 28 5月, 2009 1 次提交
  6. 19 3月, 2009 1 次提交
  7. 22 12月, 2008 1 次提交
  8. 29 11月, 2008 1 次提交
  9. 23 10月, 2008 4 次提交
  10. 11 10月, 2008 1 次提交
  11. 16 9月, 2008 1 次提交
  12. 07 8月, 2008 1 次提交
  13. 26 7月, 2008 1 次提交
  14. 23 7月, 2008 2 次提交
  15. 15 7月, 2008 1 次提交
  16. 30 4月, 2008 1 次提交
  17. 26 4月, 2008 2 次提交
  18. 24 4月, 2008 1 次提交
  19. 17 4月, 2008 5 次提交
  20. 09 2月, 2008 1 次提交
    • J
      IB/mlx4: Use multiple WQ blocks to post smaller send WQEs · ea54b10c
      Jack Morgenstein 提交于
      ConnectX HCA supports shrinking WQEs, so that a single work request
      can be made of multiple units of wqe_shift.  This way, WRs can differ
      in size, and do not have to be a power of 2 in size, saving memory and
      speeding up send WR posting.  Unfortunately, if we do this then the
      wqe_index field in CQEs can't be used to look up the WR ID anymore, so
      our implementation does this only if selective signaling is off.
      
      Further, on 32-bit platforms, we can't use vmap() to make the QP
      buffer virtually contigious. Thus we have to use constant-sized WRs to
      make sure a WR is always fully within a single page-sized chunk.
      
      Finally, we use WRs with the NOP opcode to avoid wrapping around the
      queue buffer in the middle of posting a WR, and we set the
      NoErrorCompletion bit to avoid getting completions with error for NOP
      WRs.  However, NEC is only supported starting with firmware 2.2.232,
      so we use constant-sized WRs for older firmware.  And, since MLX QPs
      only support SEND, we use constant-sized WRs in this case.
      
      When stamping during NOP posting, do stamping following setting of the
      NOP WQE valid bit.
      Signed-off-by: NMichael S. Tsirkin <mst@dev.mellanox.co.il>
      Signed-off-by: NJack Morgenstein <jackm@dev.mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      ea54b10c
  21. 07 2月, 2008 3 次提交
  22. 15 10月, 2007 1 次提交
  23. 10 10月, 2007 2 次提交
  24. 13 7月, 2007 2 次提交
  25. 10 7月, 2007 1 次提交