Lines Matching refs:pfpdu

1251 static u16 irdma_ieq_get_fpdu_len(struct irdma_pfpdu *pfpdu, u8 *datap,  in irdma_ieq_get_fpdu_len()  argument
1254 u8 marker_len = pfpdu->marker_len; in irdma_ieq_get_fpdu_len()
1258 blk_start = (pfpdu->rcv_start_seq - rcv_seq) & (IRDMA_MRK_BLK_SZ - 1); in irdma_ieq_get_fpdu_len()
1273 if (fpdu_len > pfpdu->max_fpdu_data) in irdma_ieq_get_fpdu_len()
1423 irdma_ieq_create_pbufl(struct irdma_pfpdu *pfpdu, in irdma_ieq_create_pbufl() argument
1443 pfpdu->bad_seq_num++; in irdma_ieq_create_pbufl()
1468 struct irdma_pfpdu *pfpdu, in irdma_ieq_handle_partial() argument
1477 struct list_head *rxlist = &pfpdu->rxlist; in irdma_ieq_handle_partial()
1484 status = irdma_ieq_create_pbufl(pfpdu, rxlist, &pbufl, buf, fpdu_len); in irdma_ieq_handle_partial()
1490 pfpdu->no_tx_bufs++; in irdma_ieq_handle_partial()
1506 pfpdu->mpa_crc_err = true; in irdma_ieq_handle_partial()
1514 txbuf->ah_id = pfpdu->ah->ah_info.ah_idx; in irdma_ieq_handle_partial()
1517 pfpdu->rcv_nxt = seqnum + fpdu_len; in irdma_ieq_handle_partial()
1539 struct irdma_pfpdu *pfpdu, in irdma_ieq_process_buf() argument
1553 struct list_head *rxlist = &pfpdu->rxlist; in irdma_ieq_process_buf()
1558 fpdu_len = irdma_ieq_get_fpdu_len(pfpdu, datap, buf->seqnum); in irdma_ieq_process_buf()
1563 pfpdu->mpa_crc_err = true; in irdma_ieq_process_buf()
1580 pfpdu->mpa_crc_err = true; in irdma_ieq_process_buf()
1584 pfpdu->fpdu_processed++; in irdma_ieq_process_buf()
1594 pfpdu->no_tx_bufs++; in irdma_ieq_process_buf()
1605 txbuf->ah_id = pfpdu->ah->ah_info.ah_idx; in irdma_ieq_process_buf()
1618 pfpdu->rcv_nxt = buf->seqnum + len; in irdma_ieq_process_buf()
1625 pfpdu->rcv_nxt = buf->seqnum; in irdma_ieq_process_buf()
1628 return irdma_ieq_handle_partial(ieq, pfpdu, buf, fpdu_len); in irdma_ieq_process_buf()
1642 struct irdma_pfpdu *pfpdu = &qp->pfpdu; in irdma_ieq_process_fpdus() local
1643 struct list_head *rxlist = &pfpdu->rxlist; in irdma_ieq_process_fpdus()
1656 if (buf->seqnum != pfpdu->rcv_nxt) { in irdma_ieq_process_fpdus()
1658 pfpdu->out_of_order++; in irdma_ieq_process_fpdus()
1663 status = irdma_ieq_process_buf(ieq, pfpdu, buf); in irdma_ieq_process_fpdus()
1664 if (status && pfpdu->mpa_crc_err) { in irdma_ieq_process_fpdus()
1668 pfpdu->crc_err++; in irdma_ieq_process_fpdus()
1687 qp->pfpdu.ah_buf = buf; in irdma_ieq_create_ah()
1691 &qp->pfpdu.ah); in irdma_ieq_create_ah()
1705 struct irdma_pfpdu *pfpdu = &qp->pfpdu; in irdma_ieq_handle_exception() local
1711 struct list_head *rxlist = &pfpdu->rxlist; in irdma_ieq_handle_exception()
1720 spin_lock_irqsave(&pfpdu->lock, flags); in irdma_ieq_handle_exception()
1721 pfpdu->total_ieq_bufs++; in irdma_ieq_handle_exception()
1722 if (pfpdu->mpa_crc_err) { in irdma_ieq_handle_exception()
1723 pfpdu->crc_err++; in irdma_ieq_handle_exception()
1726 if (pfpdu->mode && fps != pfpdu->fps) { in irdma_ieq_handle_exception()
1731 pfpdu->mode = false; in irdma_ieq_handle_exception()
1734 if (!pfpdu->mode) { in irdma_ieq_handle_exception()
1738 pfpdu->rcv_nxt = fps; in irdma_ieq_handle_exception()
1739 pfpdu->fps = fps; in irdma_ieq_handle_exception()
1740 pfpdu->mode = true; in irdma_ieq_handle_exception()
1741 pfpdu->max_fpdu_data = (buf->ipv4) ? in irdma_ieq_handle_exception()
1744 pfpdu->pmode_count++; in irdma_ieq_handle_exception()
1750 if (!(rcv_wnd >= (buf->seqnum - pfpdu->rcv_nxt))) { in irdma_ieq_handle_exception()
1751 pfpdu->bad_seq_num++; in irdma_ieq_handle_exception()
1771 pfpdu->nextseqnum = buf->seqnum + buf->datalen; in irdma_ieq_handle_exception()
1772 pfpdu->lastrcv_buf = buf; in irdma_ieq_handle_exception()
1773 if (hw_rev >= IRDMA_GEN_2 && !pfpdu->ah) { in irdma_ieq_handle_exception()
1775 if (!pfpdu->ah) in irdma_ieq_handle_exception()
1781 else if (pfpdu->ah && pfpdu->ah->ah_info.ah_valid) in irdma_ieq_handle_exception()
1784 spin_unlock_irqrestore(&pfpdu->lock, flags); in irdma_ieq_handle_exception()
1790 spin_unlock_irqrestore(&pfpdu->lock, flags); in irdma_ieq_handle_exception()
1844 struct irdma_pfpdu *pfpdu = &qp->pfpdu; in irdma_ieq_cleanup_qp() local
1845 struct list_head *rxlist = &pfpdu->rxlist; in irdma_ieq_cleanup_qp()
1847 if (qp->pfpdu.ah) { in irdma_ieq_cleanup_qp()
1848 irdma_puda_free_ah(ieq->dev, qp->pfpdu.ah); in irdma_ieq_cleanup_qp()
1849 qp->pfpdu.ah = NULL; in irdma_ieq_cleanup_qp()
1850 qp->pfpdu.ah_buf = NULL; in irdma_ieq_cleanup_qp()
1853 if (!pfpdu->mode) in irdma_ieq_cleanup_qp()