Skip to content

Commit

Permalink
IB/core: Add IPoIB UD LSO support
Browse files Browse the repository at this point in the history
LSO (large send offload) allows the networking stack to pass SKBs with
data size larger than the MTU to the IPoIB driver and have the HCA HW
fragment the data to multiple MSS-sized packets.  Add a device
capability flag IB_DEVICE_UD_TSO for devices that can perform TCP
segmentation offload, a new send work request opcode IB_WR_LSO,
header, hlen and mss fields for the work request structure, and a new
IB_WC_LSO completion type.

Signed-off-by: Eli Cohen <eli@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
  • Loading branch information
Eli Cohen authored and Roland Dreier committed Apr 17, 2008
1 parent b846f25 commit c93570f
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion include/rdma/ib_verbs.h
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ enum ib_device_cap_flags {
* IPoIB driver may set NETIF_F_IP_CSUM for datagram mode.
*/
IB_DEVICE_UD_IP_CSUM = (1<<18),
IB_DEVICE_UD_TSO = (1<<19),
};

enum ib_atomic_cap {
Expand Down Expand Up @@ -411,6 +412,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).
Expand Down Expand Up @@ -622,7 +624,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 {
Expand Down Expand Up @@ -660,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 */
Expand Down

0 comments on commit c93570f

Please sign in to comment.