Lines Matching defs:rcd
317 # define vmxnet3_getRxComp(dstrcd, rcd, tmp) do { \
319 vmxnet3_RxCompToCPU((rcd), (tmp)); \
332 # define vmxnet3_getRxComp(dstrcd, rcd, tmp) (dstrcd) = (rcd)
719 vmxnet3_append_frag(struct sk_buff *skb, struct Vmxnet3_RxCompDesc *rcd,
726 skb_frag_fill_page_desc(frag, rbi->page, 0, rcd->len);
727 skb->data_len += rcd->len;
1378 if (!gdesc->rcd.cnc && adapter->netdev->features & NETIF_F_RXCSUM) {
1379 if (gdesc->rcd.v4 &&
1387 WARN_ON_ONCE(!(gdesc->rcd.tcp || gdesc->rcd.udp) &&
1390 WARN_ON_ONCE(gdesc->rcd.frg &&
1393 } else if (gdesc->rcd.v6 && (le32_to_cpu(gdesc->dword[3]) &
1400 WARN_ON_ONCE(!(gdesc->rcd.tcp || gdesc->rcd.udp) &&
1403 WARN_ON_ONCE(gdesc->rcd.frg &&
1407 if (gdesc->rcd.csum) {
1408 skb->csum = htons(gdesc->rcd.csum);
1421 vmxnet3_rx_error(struct vmxnet3_rx_queue *rq, struct Vmxnet3_RxCompDesc *rcd,
1425 if (!rcd->fcs)
1460 BUG_ON(gdesc->rcd.tcp == 0);
1473 if (gdesc->rcd.v4) {
1480 } else if (gdesc->rcd.v6) {
1512 struct Vmxnet3_RxCompDesc *rcd;
1522 vmxnet3_getRxComp(rcd, &rq->comp_ring.base[rq->comp_ring.next2proc].rcd,
1524 while (rcd->gen == rq->comp_ring.gen) {
1540 /* Prevent any rcd field from being (speculatively) read before
1541 * rcd->gen is read.
1545 BUG_ON(rcd->rqID != rq->qid && rcd->rqID != rq->qid2 &&
1546 rcd->rqID != rq->dataRingQid);
1547 idx = rcd->rxdIdx;
1548 ring_idx = VMXNET3_GET_RING_IDX(adapter, rcd->rqID);
1557 if (unlikely(rcd->eop && rcd->err)) {
1558 vmxnet3_rx_error(rq, rcd, ctx, adapter);
1562 if (rcd->sop && rcd->eop && vmxnet3_xdp_enabled(adapter)) {
1566 if (VMXNET3_RX_DATA_RING(adapter, rcd->rqID)) {
1574 act = vmxnet3_process_xdp(adapter, rq, rcd, rbi, rxd,
1587 if (rcd->sop) { /* first buf of the pkt */
1592 (rcd->rqID != rq->qid &&
1593 rcd->rqID != rq->dataRingQid));
1599 if (unlikely(rcd->len == 0)) {
1601 BUG_ON(!(rcd->sop && rcd->eop));
1612 VMXNET3_RX_DATA_RING(adapter, rcd->rqID);
1613 len = rxDataRingUsed ? rcd->len : rbi->len;
1620 sz = rcd->rxdIdx * rq->data_ring.desc_size;
1623 rcd->len,
1649 BUG_ON(rcd->len > rq->data_ring.desc_size);
1652 sz = rcd->rxdIdx * rq->data_ring.desc_size;
1654 &rq->data_ring.base[sz], rcd->len);
1689 skb_put(ctx->skb, rcd->len);
1692 rcd->type == VMXNET3_CDTYPE_RXCOMP_LRO) {
1696 rcdlro = (struct Vmxnet3_RxCompDescExt *)rcd;
1697 gdesc = (union Vmxnet3_GenericDesc *)rcd;
1722 if (rcd->len) {
1754 vmxnet3_append_frag(ctx->skb, rcd, rbi);
1767 if (rcd->eop) {
1772 if (rcd->rssType != VMXNET3_RCD_RSS_TYPE_NONE &&
1776 switch (rcd->rssType) {
1792 le32_to_cpu(rcd->rssHash),
1797 (union Vmxnet3_GenericDesc *)rcd);
1799 if ((!rcd->tcp && !encap_lro) ||
1804 skb_shinfo(skb)->gso_type = rcd->v4 ?
1812 (union Vmxnet3_GenericDesc *)rcd);
1817 rcd->v4 ? SKB_GSO_TCPV4 : SKB_GSO_TCPV6;
1828 if (unlikely(rcd->ts))
1829 __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), rcd->tci);
1899 vmxnet3_getRxComp(rcd,
1900 &rq->comp_ring.base[rq->comp_ring.next2proc].rcd, &rxComp);