path: root/drivers/net/mlx5/mlx5_prm.h
diff options
authorMatan Azrad <>2019-07-22 14:52:22 +0000
committerFerruh Yigit <>2019-07-23 14:31:36 +0200
commite4c2a16eb1dee83f945abc2d5be68b8841de4e78 (patch)
treedc73fac676db85fff95fd09571d32485e42398ff /drivers/net/mlx5/mlx5_prm.h
parent8b8f7994f11cd29c49fed0b43dcb782512dc6418 (diff)
net/mlx5: handle LRO packets in Rx queue
When LRO offload is configured in Rx queue, the HW may coalesce TCP packets from same TCP connection into single packet. In this case the SW should fix the relevant packet headers because the HW doesn't update them according to the new created packet characteristics. Add update header code to the mprq Rx burst function to support LRO feature. Signed-off-by: Matan Azrad <> Acked-by: Viacheslav Ovsiienko <>
Diffstat (limited to 'drivers/net/mlx5/mlx5_prm.h')
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/net/mlx5/mlx5_prm.h b/drivers/net/mlx5/mlx5_prm.h
index 3f73a28..32bc7a6 100644
--- a/drivers/net/mlx5/mlx5_prm.h
+++ b/drivers/net/mlx5/mlx5_prm.h
@@ -155,6 +155,21 @@
/* Tunnel packet bit in the CQE. */
#define MLX5_CQE_RX_TUNNEL_PACKET (1u << 0)
+/* Mask for LRO push flag in the CQE lro_tcppsh_abort_dupack field. */
+#define MLX5_CQE_LRO_PUSH_MASK 0x40
+/* Mask for L4 type in the CQE hdr_type_etc field. */
+#define MLX5_CQE_L4_TYPE_MASK 0x70
+/* The bit index of L4 type in CQE hdr_type_etc field. */
+#define MLX5_CQE_L4_TYPE_SHIFT 0x4
+/* L4 type to indicate TCP packet without acknowledgment. */
+/* L4 type to indicate TCP packet with acknowledgment. */
+#define MLX5_L4_HDR_TYPE_TCP_WITH_ACL 0x4
/* Inner L3 checksum offload (Tunneled packets only). */
#define MLX5_ETH_WQE_L3_INNER_CSUM (1u << 4)