Lines Matching full:cqe
623 * the (IPv4 | IPv6) bits are set in cqe->status.
625 static int check_csum(struct mlx4_cqe *cqe, struct sk_buff *skb, void *va, in check_csum() argument
631 /* CQE csum doesn't cover padding octets in short ethernet in check_csum()
643 hw_checksum = csum_unfold((__force __sum16)cqe->checksum); in check_csum()
645 if (cqe->vlan_my_qpn & cpu_to_be32(MLX4_CQE_CVLAN_PRESENT_MASK) && in check_csum()
652 if (cqe->status & cpu_to_be16(MLX4_CQE_STATUS_IPV6)) in check_csum()
666 struct mlx4_cqe *cqe; member
680 mlx4_en_get_cqe_ts(_ctx->cqe)); in mlx4_en_xdp_rx_timestamp()
688 struct mlx4_cqe *cqe = _ctx->cqe; in mlx4_en_xdp_rx_hash() local
695 *hash = be32_to_cpu(cqe->immed_rss_invalid); in mlx4_en_xdp_rx_hash()
696 status = cqe->status; in mlx4_en_xdp_rx_hash()
705 if (cqe->ipv6_ext_mask) in mlx4_en_xdp_rx_hash()
723 struct mlx4_cqe *cqe; in mlx4_en_process_rx_cq() local
738 * descriptor offset can be deduced from the CQE index instead of in mlx4_en_process_rx_cq()
739 * reading 'cqe->index' */ in mlx4_en_process_rx_cq()
741 cqe = mlx4_en_get_cqe(cq->buf, index, priv->cqe_size) + factor; in mlx4_en_process_rx_cq()
744 while (XNOR(cqe->owner_sr_opcode & MLX4_CQE_OWNER_MASK, in mlx4_en_process_rx_cq()
758 * make sure we read the CQE after we read the ownership bit in mlx4_en_process_rx_cq()
763 if (unlikely((cqe->owner_sr_opcode & MLX4_CQE_OPCODE_MASK) == in mlx4_en_process_rx_cq()
765 en_err(priv, "CQE completed in error - vendor syndrom:%d syndrom:%d\n", in mlx4_en_process_rx_cq()
766 ((struct mlx4_err_cqe *)cqe)->vendor_err_syndrome, in mlx4_en_process_rx_cq()
767 ((struct mlx4_err_cqe *)cqe)->syndrome); in mlx4_en_process_rx_cq()
770 if (unlikely(cqe->badfcs_enc & MLX4_CQE_BAD_FCS)) { in mlx4_en_process_rx_cq()
812 length = be32_to_cpu(cqe->byte_cnt); in mlx4_en_process_rx_cq()
831 mxbuf.cqe = cqe; in mlx4_en_process_rx_cq()
888 u64 timestamp = mlx4_en_get_cqe_ts(cqe); in mlx4_en_process_rx_cq()
898 * actually check cqe IPOK status bit and report in mlx4_en_process_rx_cq()
901 if ((cqe->status & cpu_to_be16(MLX4_CQE_STATUS_TCP | in mlx4_en_process_rx_cq()
903 (cqe->status & cpu_to_be16(MLX4_CQE_STATUS_IPOK)) && in mlx4_en_process_rx_cq()
904 cqe->checksum == cpu_to_be16(0xffff)) { in mlx4_en_process_rx_cq()
908 (cqe->vlan_my_qpn & cpu_to_be32(MLX4_CQE_L2_TUNNEL)); in mlx4_en_process_rx_cq()
916 (cqe->status & cpu_to_be16(MLX4_CQE_STATUS_IP_ANY)))) in mlx4_en_process_rx_cq()
918 if (check_csum(cqe, skb, va, dev->features)) in mlx4_en_process_rx_cq()
933 be32_to_cpu(cqe->immed_rss_invalid), in mlx4_en_process_rx_cq()
936 if ((cqe->vlan_my_qpn & in mlx4_en_process_rx_cq()
940 be16_to_cpu(cqe->sl_vid)); in mlx4_en_process_rx_cq()
941 else if ((cqe->vlan_my_qpn & in mlx4_en_process_rx_cq()
945 be16_to_cpu(cqe->sl_vid)); in mlx4_en_process_rx_cq()
960 cqe = mlx4_en_get_cqe(cq->buf, index, priv->cqe_size) + factor; in mlx4_en_process_rx_cq()