Lines Matching defs:rxq

702 	struct vmxnet3_rxqueue *rxq;
723 rxq = &sc->vmx_rxq[i];
725 vmxnet3_rxq_intr, rxq, &intr->vmxi_handler);
730 rxq->vxrxq_intr_idx = intr->vmxi_rid - 1;
768 struct vmxnet3_rxqueue *rxq;
781 rxq = &sc->vmx_rxq[i];
782 rxs = rxq->vxrxq_rs;
783 rxs->intr_idx = rxq->vxrxq_intr_idx;
960 struct vmxnet3_rxqueue *rxq;
964 rxq = &sc->vmx_rxq[q];
966 snprintf(rxq->vxrxq_name, sizeof(rxq->vxrxq_name), "%s-rx%d",
968 mtx_init(&rxq->vxrxq_mtx, rxq->vxrxq_name, NULL, MTX_DEF);
970 rxq->vxrxq_sc = sc;
971 rxq->vxrxq_id = q;
974 rxr = &rxq->vxrxq_cmd_ring[i];
982 rxq->vxrxq_comp_ring.vxcr_ndesc += sc->vmx_nrxdescs;
1064 vmxnet3_destroy_rxq(struct vmxnet3_rxqueue *rxq)
1069 rxq->vxrxq_sc = NULL;
1070 rxq->vxrxq_id = -1;
1073 rxr = &rxq->vxrxq_cmd_ring[i];
1081 if (mtx_initialized(&rxq->vxrxq_mtx) != 0)
1082 mtx_destroy(&rxq->vxrxq_mtx);
1318 struct vmxnet3_rxqueue *rxq;
1327 rxq = &sc->vmx_rxq[q];
1328 rxc = &rxq->vxrxq_comp_ring;
1332 rxr = &rxq->vxrxq_cmd_ring[i];
1379 rxr = &rxq->vxrxq_cmd_ring[i];
1411 struct vmxnet3_rxqueue *rxq;
1420 rxq = &sc->vmx_rxq[q];
1421 rxc = &rxq->vxrxq_comp_ring;
1424 rxr = &rxq->vxrxq_cmd_ring[i];
1448 rxr = &rxq->vxrxq_cmd_ring[i];
1521 struct vmxnet3_rxqueue *rxq;
1587 rxq = &sc->vmx_rxq[i];
1588 rxs = rxq->vxrxq_rs;
1590 rxs->cmd_ring[0] = rxq->vxrxq_cmd_ring[0].vxrxr_dma.dma_paddr;
1591 rxs->cmd_ring_len[0] = rxq->vxrxq_cmd_ring[0].vxrxr_ndesc;
1592 rxs->cmd_ring[1] = rxq->vxrxq_cmd_ring[1].vxrxr_dma.dma_paddr;
1593 rxs->cmd_ring_len[1] = rxq->vxrxq_cmd_ring[1].vxrxr_ndesc;
1594 rxs->comp_ring = rxq->vxrxq_comp_ring.vxcr_dma.dma_paddr;
1595 rxs->comp_ring_len = rxq->vxrxq_comp_ring.vxcr_ndesc;
1596 rxs->driver_data = vtophys(rxq);
1997 vmxnet3_rxq_eof_discard(struct vmxnet3_rxqueue *rxq,
2008 vmxnet3_rxq_discard_chain(struct vmxnet3_rxqueue *rxq)
2016 sc = rxq->vxrxq_sc;
2017 rxc = &rxq->vxrxq_comp_ring;
2033 rxr = &rxq->vxrxq_cmd_ring[0];
2035 rxr = &rxq->vxrxq_cmd_ring[1];
2036 vmxnet3_rxq_eof_discard(rxq, rxr, idx);
2060 vmxnet3_rxq_input(struct vmxnet3_rxqueue *rxq,
2066 sc = rxq->vxrxq_sc;
2070 rxq->vxrxq_stats.vmrxs_ierrors++;
2094 m->m_pkthdr.flowid = rxq->vxrxq_id;
2099 m->m_pkthdr.flowid = rxq->vxrxq_id;
2110 rxq->vxrxq_stats.vmrxs_ipackets++;
2111 rxq->vxrxq_stats.vmrxs_ibytes += m->m_pkthdr.len;
2113 VMXNET3_RXQ_UNLOCK(rxq);
2115 VMXNET3_RXQ_LOCK(rxq);
2119 vmxnet3_rxq_eof(struct vmxnet3_rxqueue *rxq)
2130 sc = rxq->vxrxq_sc;
2132 rxc = &rxq->vxrxq_comp_ring;
2137 if (netmap_rx_irq(ifp, rxq - sc->vmx_rxq, &dummy) !=
2143 VMXNET3_RXQ_LOCK_ASSERT(rxq);
2148 m_head = rxq->vxrxq_mhead;
2149 rxq->vxrxq_mhead = NULL;
2150 m_tail = rxq->vxrxq_mtail;
2151 rxq->vxrxq_mtail = NULL;
2157 rxq->vxrxq_mhead = m_head;
2158 rxq->vxrxq_mtail = m_tail;
2171 rxr = &rxq->vxrxq_cmd_ring[0];
2173 rxr = &rxq->vxrxq_cmd_ring[1];
2196 KASSERT(rxr == &rxq->vxrxq_cmd_ring[0],
2206 vmxnet3_rxq_eof_discard(rxq, rxr, idx);
2211 rxq->vxrxq_stats.vmrxs_iqdrops++;
2212 vmxnet3_rxq_eof_discard(rxq, rxr, idx);
2214 vmxnet3_rxq_discard_chain(rxq);
2234 vmxnet3_rxq_eof_discard(rxq, rxr, idx);
2236 vmxnet3_rxq_discard_chain(rxq);
2244 rxq->vxrxq_stats.vmrxs_iqdrops++;
2245 vmxnet3_rxq_eof_discard(rxq, rxr, idx);
2247 vmxnet3_rxq_discard_chain(rxq);
2260 vmxnet3_rxq_input(rxq, rxcd, m_head);
2269 if (__predict_false(rxq->vxrxq_rs->update_rxhead)) {
2288 struct vmxnet3_rxqueue *rxq;
2292 rxq = &sc->vmx_rxq[0];
2305 VMXNET3_RXQ_LOCK(rxq);
2306 vmxnet3_rxq_eof(rxq);
2307 VMXNET3_RXQ_UNLOCK(rxq);
2341 struct vmxnet3_rxqueue *rxq;
2343 rxq = xrxq;
2344 sc = rxq->vxrxq_sc;
2347 vmxnet3_disable_intr(sc, rxq->vxrxq_intr_idx);
2349 VMXNET3_RXQ_LOCK(rxq);
2350 vmxnet3_rxq_eof(rxq);
2351 VMXNET3_RXQ_UNLOCK(rxq);
2353 vmxnet3_enable_intr(sc, rxq->vxrxq_intr_idx);
2396 vmxnet3_rxstop(struct vmxnet3_softc *sc, struct vmxnet3_rxqueue *rxq)
2402 if (rxq->vxrxq_mhead != NULL) {
2403 m_freem(rxq->vxrxq_mhead);
2404 rxq->vxrxq_mhead = NULL;
2405 rxq->vxrxq_mtail = NULL;
2409 rxr = &rxq->vxrxq_cmd_ring[i];
2429 struct vmxnet3_rxqueue *rxq;
2438 rxq = &sc->vmx_rxq[i];
2439 VMXNET3_RXQ_LOCK(rxq);
2440 VMXNET3_RXQ_UNLOCK(rxq);
2502 vmxnet3_rxinit(struct vmxnet3_softc *sc, struct vmxnet3_rxqueue *rxq)
2544 slot = netmap_reset(na, NR_RX, rxq - sc->vmx_rxq, 0);
2548 rxr = &rxq->vxrxq_cmd_ring[i];
2555 vmxnet3_netmap_rxq_init(sc, rxq, rxr, slot);
2569 rxr = &rxq->vxrxq_cmd_ring[i];
2576 rxc = &rxq->vxrxq_comp_ring;
3656 vmxnet3_setup_rxq_sysctl(struct vmxnet3_rxqueue *rxq,
3665 stats = &rxq->vxrxq_stats;
3666 rxstats = &rxq->vxrxq_rs->stats;
3668 snprintf(namebuf, sizeof(namebuf), "rxq%d", rxq->vxrxq_id);
3671 rxq->vxrxq_sysctl = list = SYSCTL_CHILDREN(node);
3743 struct vmxnet3_rxqueue *rxq = &sc->vmx_rxq[i];
3745 node = SYSCTL_ADD_NODE(ctx, rxq->vxrxq_sysctl, OID_AUTO,
3750 &rxq->vxrxq_cmd_ring[0].vxrxr_fill, 0, "");
3752 &rxq->vxrxq_cmd_ring[0].vxrxr_ndesc, 0, "");
3754 &rxq->vxrxq_cmd_ring[0].vxrxr_gen, 0, "");
3756 &rxq->vxrxq_cmd_ring[1].vxrxr_fill, 0, "");
3758 &rxq->vxrxq_cmd_ring[1].vxrxr_ndesc, 0, "");
3760 &rxq->vxrxq_cmd_ring[1].vxrxr_gen, 0, "");
3762 &rxq->vxrxq_comp_ring.vxcr_next, 0, "");
3764 &rxq->vxrxq_comp_ring.vxcr_ndesc, 0,"");
3766 &rxq->vxrxq_comp_ring.vxcr_gen, 0, "");