[ofa-general] [PATCH 8/16 v4] IB/core: Add support for LSO

Eli Cohen eli at mellanox.co.il
Wed Jan 30 08:31:24 PST 2008


IB/core: Add support for LSO

LSO allows to pass to the network driver SKBs with data larger
than MTU and let the HW fragment the packet to mss quantities.

Signed-off-by: Eli Cohen <eli at mellanox.co.il>
---
 include/rdma/ib_verbs.h |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 030f868..44a5713 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -103,6 +103,7 @@ enum ib_device_cap_flags {
 	 * may set NETIF_F_IP_CSUM.
 	 */
 	IB_DEVICE_IP_CSUM		= (1<<18),
+	IB_DEVICE_TCP_TSO               = (1<<19),
 };
 
 enum ib_atomic_cap {
@@ -410,6 +411,7 @@ enum ib_wc_opcode {
 	IB_WC_COMP_SWAP,
 	IB_WC_FETCH_ADD,
 	IB_WC_BIND_MW,
+	IB_WC_LSO,
 /*
  * Set value of IB_WC_RECV so consumers can test if a completion is a
  * receive by testing (opcode & IB_WC_RECV).
@@ -621,7 +623,8 @@ enum ib_wr_opcode {
 	IB_WR_SEND_WITH_IMM,
 	IB_WR_RDMA_READ,
 	IB_WR_ATOMIC_CMP_AND_SWP,
-	IB_WR_ATOMIC_FETCH_AND_ADD
+	IB_WR_ATOMIC_FETCH_AND_ADD,
+	IB_WR_LSO
 };
 
 enum ib_send_flags {
@@ -629,7 +632,8 @@ enum ib_send_flags {
 	IB_SEND_SIGNALED	= (1<<1),
 	IB_SEND_SOLICITED	= (1<<2),
 	IB_SEND_INLINE		= (1<<3),
-	IB_SEND_IP_CSUM         = (1<<4)
+	IB_SEND_IP_CSUM         = (1<<4),
+	IB_SEND_UDP_LSO		= (1<<5)
 };
 
 struct ib_sge {
@@ -659,6 +663,9 @@ struct ib_send_wr {
 		} atomic;
 		struct {
 			struct ib_ah *ah;
+			void   *header;
+			int     hlen;
+			int     mss;
 			u32	remote_qpn;
 			u32	remote_qkey;
 			u16	pkey_index; /* valid for GSI only */
-- 
1.5.3.8






More information about the general mailing list