IB/mlx4: Add IPoIB checksum offload support
[linux-2.6-block.git] / include / linux / mlx4 / cq.h
index 0181e0a57cbfaa532e444d6c22ec44a134ef7fa4..1243ebace561d334d30cc332f2aac6f1a567ef8d 100644 (file)
@@ -45,11 +45,11 @@ struct mlx4_cqe {
        u8                      sl;
        u8                      reserved1;
        __be16                  rlid;
-       u32                     reserved2;
+       __be32                  ipoib_status;
        __be32                  byte_cnt;
        __be16                  wqe_index;
        __be16                  checksum;
-       u8                      reserved3[3];
+       u8                      reserved2[3];
        u8                      owner_sr_opcode;
 };
 
@@ -85,6 +85,16 @@ enum {
        MLX4_CQE_SYNDROME_REMOTE_ABORTED_ERR            = 0x22,
 };
 
+enum {
+       MLX4_CQE_IPOIB_STATUS_IPV4                      = 1 << 22,
+       MLX4_CQE_IPOIB_STATUS_IPV4F                     = 1 << 23,
+       MLX4_CQE_IPOIB_STATUS_IPV6                      = 1 << 24,
+       MLX4_CQE_IPOIB_STATUS_IPV4OPT                   = 1 << 25,
+       MLX4_CQE_IPOIB_STATUS_TCP                       = 1 << 26,
+       MLX4_CQE_IPOIB_STATUS_UDP                       = 1 << 27,
+       MLX4_CQE_IPOIB_STATUS_IPOK                      = 1 << 28,
+};
+
 static inline void mlx4_cq_arm(struct mlx4_cq *cq, u32 cmd,
                               void __iomem *uar_page,
                               spinlock_t *doorbell_lock)