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

Eli Cohen eli at mellanox.co.il
Wed Jan 16 08:38:01 PST 2008


Add core 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 2498083..8412566 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 or NETIF_F_IPV6_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