IB/core: Add IP checksum offload support

Add a device capability to show when it can handle checksum offload.
Also add a send flag for inserting checksums and a csum_ok field to
the completion record.

Signed-off-by: Eli Cohen <eli@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>

authored by Eli Cohen and committed by Roland Dreier e0605d91 7143740d

+12 -2
+12 -2
include/rdma/ib_verbs.h
··· 95 IB_DEVICE_N_NOTIFY_CQ = (1<<14), 96 IB_DEVICE_ZERO_STAG = (1<<15), 97 IB_DEVICE_SEND_W_INV = (1<<16), 98 - IB_DEVICE_MEM_WINDOW = (1<<17) 99 }; 100 101 enum ib_atomic_cap { ··· 439 u8 sl; 440 u8 dlid_path_bits; 441 u8 port_num; /* valid only for DR SMPs on switches */ 442 }; 443 444 enum ib_cq_notify_flags { ··· 624 IB_SEND_FENCE = 1, 625 IB_SEND_SIGNALED = (1<<1), 626 IB_SEND_SOLICITED = (1<<2), 627 - IB_SEND_INLINE = (1<<3) 628 }; 629 630 struct ib_sge {
··· 95 IB_DEVICE_N_NOTIFY_CQ = (1<<14), 96 IB_DEVICE_ZERO_STAG = (1<<15), 97 IB_DEVICE_SEND_W_INV = (1<<16), 98 + IB_DEVICE_MEM_WINDOW = (1<<17), 99 + /* 100 + * Devices should set IB_DEVICE_UD_IP_SUM if they support 101 + * insertion of UDP and TCP checksum on outgoing UD IPoIB 102 + * messages and can verify the validity of checksum for 103 + * incoming messages. Setting this flag implies that the 104 + * IPoIB driver may set NETIF_F_IP_CSUM for datagram mode. 105 + */ 106 + IB_DEVICE_UD_IP_CSUM = (1<<18), 107 }; 108 109 enum ib_atomic_cap { ··· 431 u8 sl; 432 u8 dlid_path_bits; 433 u8 port_num; /* valid only for DR SMPs on switches */ 434 + int csum_ok; 435 }; 436 437 enum ib_cq_notify_flags { ··· 615 IB_SEND_FENCE = 1, 616 IB_SEND_SIGNALED = (1<<1), 617 IB_SEND_SOLICITED = (1<<2), 618 + IB_SEND_INLINE = (1<<3), 619 + IB_SEND_IP_CSUM = (1<<4) 620 }; 621 622 struct ib_sge {