Lines Matching full:cqe
626 * the (IPv4 | IPv6) bits are set in cqe->status.
628 static int check_csum(struct mlx4_cqe *cqe, struct sk_buff *skb, void *va, in check_csum() argument
634 /* CQE csum doesn't cover padding octets in short ethernet in check_csum()
646 hw_checksum = csum_unfold((__force __sum16)cqe->checksum); in check_csum()
648 if (cqe->vlan_my_qpn & cpu_to_be32(MLX4_CQE_CVLAN_PRESENT_MASK) && in check_csum()
655 if (cqe->status & cpu_to_be16(MLX4_CQE_STATUS_IPV6)) in check_csum()
669 struct mlx4_cqe *cqe; member
683 mlx4_en_get_cqe_ts(_ctx->cqe)); in mlx4_en_xdp_rx_timestamp()
691 struct mlx4_cqe *cqe = _ctx->cqe; in mlx4_en_xdp_rx_hash() local
698 *hash = be32_to_cpu(cqe->immed_rss_invalid); in mlx4_en_xdp_rx_hash()
699 status = cqe->status; in mlx4_en_xdp_rx_hash()
708 if (cqe->ipv6_ext_mask) in mlx4_en_xdp_rx_hash()
726 struct mlx4_cqe *cqe; in mlx4_en_process_rx_cq() local
741 * descriptor offset can be deduced from the CQE index instead of in mlx4_en_process_rx_cq()
742 * reading 'cqe->index' */ in mlx4_en_process_rx_cq()
744 cqe = mlx4_en_get_cqe(cq->buf, index, priv->cqe_size) + factor; in mlx4_en_process_rx_cq()
747 while (XNOR(cqe->owner_sr_opcode & MLX4_CQE_OWNER_MASK, in mlx4_en_process_rx_cq()
761 * make sure we read the CQE after we read the ownership bit in mlx4_en_process_rx_cq()
766 if (unlikely((cqe->owner_sr_opcode & MLX4_CQE_OPCODE_MASK) == in mlx4_en_process_rx_cq()
768 en_err(priv, "CQE completed in error - vendor syndrome:%d syndrome:%d\n", in mlx4_en_process_rx_cq()
769 ((struct mlx4_err_cqe *)cqe)->vendor_err_syndrome, in mlx4_en_process_rx_cq()
770 ((struct mlx4_err_cqe *)cqe)->syndrome); in mlx4_en_process_rx_cq()
773 if (unlikely(cqe->badfcs_enc & MLX4_CQE_BAD_FCS)) { in mlx4_en_process_rx_cq()
815 length = be32_to_cpu(cqe->byte_cnt); in mlx4_en_process_rx_cq()
834 mxbuf.cqe = cqe; in mlx4_en_process_rx_cq()
891 u64 timestamp = mlx4_en_get_cqe_ts(cqe); in mlx4_en_process_rx_cq()
901 * actually check cqe IPOK status bit and report in mlx4_en_process_rx_cq()
904 if ((cqe->status & cpu_to_be16(MLX4_CQE_STATUS_TCP | in mlx4_en_process_rx_cq()
906 (cqe->status & cpu_to_be16(MLX4_CQE_STATUS_IPOK)) && in mlx4_en_process_rx_cq()
907 cqe->checksum == cpu_to_be16(0xffff)) { in mlx4_en_process_rx_cq()
911 (cqe->vlan_my_qpn & cpu_to_be32(MLX4_CQE_L2_TUNNEL)); in mlx4_en_process_rx_cq()
919 (cqe->status & cpu_to_be16(MLX4_CQE_STATUS_IP_ANY)))) in mlx4_en_process_rx_cq()
921 if (check_csum(cqe, skb, va, dev->features)) in mlx4_en_process_rx_cq()
936 be32_to_cpu(cqe->immed_rss_invalid), in mlx4_en_process_rx_cq()
939 if ((cqe->vlan_my_qpn & in mlx4_en_process_rx_cq()
943 be16_to_cpu(cqe->sl_vid)); in mlx4_en_process_rx_cq()
944 else if ((cqe->vlan_my_qpn & in mlx4_en_process_rx_cq()
948 be16_to_cpu(cqe->sl_vid)); in mlx4_en_process_rx_cq()
963 cqe = mlx4_en_get_cqe(cq->buf, index, priv->cqe_size) + factor; in mlx4_en_process_rx_cq()