Lines Matching refs:rxq

764 rx_desc_hlen_type_rss_to_pkt_flags(struct igb_rx_queue *rxq, uint32_t hl_tp_rs)  in rx_desc_hlen_type_rss_to_pkt_flags()  argument
774 struct rte_eth_dev dev = rte_eth_devices[rxq->port_id]; in rx_desc_hlen_type_rss_to_pkt_flags()
783 RTE_SET_USED(rxq); in rx_desc_hlen_type_rss_to_pkt_flags()
827 struct igb_rx_queue *rxq; in eth_igb_recv_pkts() local
846 rxq = rx_queue; in eth_igb_recv_pkts()
847 rx_id = rxq->rx_tail; in eth_igb_recv_pkts()
848 rx_ring = rxq->rx_ring; in eth_igb_recv_pkts()
849 sw_ring = rxq->sw_ring; in eth_igb_recv_pkts()
893 (unsigned) rxq->port_id, (unsigned) rxq->queue_id, in eth_igb_recv_pkts()
897 nmb = rte_mbuf_raw_alloc(rxq->mb_pool); in eth_igb_recv_pkts()
900 "queue_id=%u", (unsigned) rxq->port_id, in eth_igb_recv_pkts()
901 (unsigned) rxq->queue_id); in eth_igb_recv_pkts()
902 rte_eth_devices[rxq->port_id].data->rx_mbuf_alloc_failed++; in eth_igb_recv_pkts()
909 if (rx_id == rxq->nb_rx_desc) in eth_igb_recv_pkts()
946 rxq->crc_len); in eth_igb_recv_pkts()
953 rxm->port = rxq->port_id; in eth_igb_recv_pkts()
963 (rxq->flags & IGB_RXQ_FLAG_LB_BSWAP_VLAN)) { in eth_igb_recv_pkts()
968 pkt_flags = rx_desc_hlen_type_rss_to_pkt_flags(rxq, hlen_type_rss); in eth_igb_recv_pkts()
981 rxq->rx_tail = rx_id; in eth_igb_recv_pkts()
992 nb_hold = (uint16_t) (nb_hold + rxq->nb_rx_hold); in eth_igb_recv_pkts()
993 if (nb_hold > rxq->rx_free_thresh) { in eth_igb_recv_pkts()
996 (unsigned) rxq->port_id, (unsigned) rxq->queue_id, in eth_igb_recv_pkts()
1000 (rxq->nb_rx_desc - 1) : (rx_id - 1)); in eth_igb_recv_pkts()
1001 E1000_PCI_REG_WRITE(rxq->rdt_reg_addr, rx_id); in eth_igb_recv_pkts()
1004 rxq->nb_rx_hold = nb_hold; in eth_igb_recv_pkts()
1012 struct igb_rx_queue *rxq; in eth_igb_recv_scattered_pkts() local
1033 rxq = rx_queue; in eth_igb_recv_scattered_pkts()
1034 rx_id = rxq->rx_tail; in eth_igb_recv_scattered_pkts()
1035 rx_ring = rxq->rx_ring; in eth_igb_recv_scattered_pkts()
1036 sw_ring = rxq->sw_ring; in eth_igb_recv_scattered_pkts()
1041 first_seg = rxq->pkt_first_seg; in eth_igb_recv_scattered_pkts()
1042 last_seg = rxq->pkt_last_seg; in eth_igb_recv_scattered_pkts()
1084 (unsigned) rxq->port_id, (unsigned) rxq->queue_id, in eth_igb_recv_scattered_pkts()
1088 nmb = rte_mbuf_raw_alloc(rxq->mb_pool); in eth_igb_recv_scattered_pkts()
1091 "queue_id=%u", (unsigned) rxq->port_id, in eth_igb_recv_scattered_pkts()
1092 (unsigned) rxq->queue_id); in eth_igb_recv_scattered_pkts()
1093 rte_eth_devices[rxq->port_id].data->rx_mbuf_alloc_failed++; in eth_igb_recv_scattered_pkts()
1100 if (rx_id == rxq->nb_rx_desc) in eth_igb_recv_scattered_pkts()
1172 if (unlikely(rxq->crc_len > 0)) { in eth_igb_recv_scattered_pkts()
1195 first_seg->port = rxq->port_id; in eth_igb_recv_scattered_pkts()
1203 (rxq->flags & IGB_RXQ_FLAG_LB_BSWAP_VLAN)) { in eth_igb_recv_scattered_pkts()
1211 pkt_flags = rx_desc_hlen_type_rss_to_pkt_flags(rxq, hlen_type_rss); in eth_igb_recv_scattered_pkts()
1237 rxq->rx_tail = rx_id; in eth_igb_recv_scattered_pkts()
1242 rxq->pkt_first_seg = first_seg; in eth_igb_recv_scattered_pkts()
1243 rxq->pkt_last_seg = last_seg; in eth_igb_recv_scattered_pkts()
1254 nb_hold = (uint16_t) (nb_hold + rxq->nb_rx_hold); in eth_igb_recv_scattered_pkts()
1255 if (nb_hold > rxq->rx_free_thresh) { in eth_igb_recv_scattered_pkts()
1258 (unsigned) rxq->port_id, (unsigned) rxq->queue_id, in eth_igb_recv_scattered_pkts()
1262 (rxq->nb_rx_desc - 1) : (rx_id - 1)); in eth_igb_recv_scattered_pkts()
1263 E1000_PCI_REG_WRITE(rxq->rdt_reg_addr, rx_id); in eth_igb_recv_scattered_pkts()
1266 rxq->nb_rx_hold = nb_hold; in eth_igb_recv_scattered_pkts()
1617 igb_rx_queue_release_mbufs(struct igb_rx_queue *rxq) in igb_rx_queue_release_mbufs() argument
1621 if (rxq->sw_ring != NULL) { in igb_rx_queue_release_mbufs()
1622 for (i = 0; i < rxq->nb_rx_desc; i++) { in igb_rx_queue_release_mbufs()
1623 if (rxq->sw_ring[i].mbuf != NULL) { in igb_rx_queue_release_mbufs()
1624 rte_pktmbuf_free_seg(rxq->sw_ring[i].mbuf); in igb_rx_queue_release_mbufs()
1625 rxq->sw_ring[i].mbuf = NULL; in igb_rx_queue_release_mbufs()
1632 igb_rx_queue_release(struct igb_rx_queue *rxq) in igb_rx_queue_release() argument
1634 if (rxq != NULL) { in igb_rx_queue_release()
1635 igb_rx_queue_release_mbufs(rxq); in igb_rx_queue_release()
1636 rte_free(rxq->sw_ring); in igb_rx_queue_release()
1637 rte_memzone_free(rxq->mz); in igb_rx_queue_release()
1638 rte_free(rxq); in igb_rx_queue_release()
1649 igb_reset_rx_queue(struct igb_rx_queue *rxq) in igb_reset_rx_queue() argument
1655 for (i = 0; i < rxq->nb_rx_desc; i++) { in igb_reset_rx_queue()
1656 rxq->rx_ring[i] = zeroed_desc; in igb_reset_rx_queue()
1659 rxq->rx_tail = 0; in igb_reset_rx_queue()
1660 rxq->pkt_first_seg = NULL; in igb_reset_rx_queue()
1661 rxq->pkt_last_seg = NULL; in igb_reset_rx_queue()
1719 struct igb_rx_queue *rxq; in eth_igb_rx_queue_setup() local
1747 rxq = rte_zmalloc("ethdev RX queue", sizeof(struct igb_rx_queue), in eth_igb_rx_queue_setup()
1749 if (rxq == NULL) in eth_igb_rx_queue_setup()
1751 rxq->offloads = offloads; in eth_igb_rx_queue_setup()
1752 rxq->mb_pool = mp; in eth_igb_rx_queue_setup()
1753 rxq->nb_rx_desc = nb_desc; in eth_igb_rx_queue_setup()
1754 rxq->pthresh = rx_conf->rx_thresh.pthresh; in eth_igb_rx_queue_setup()
1755 rxq->hthresh = rx_conf->rx_thresh.hthresh; in eth_igb_rx_queue_setup()
1756 rxq->wthresh = rx_conf->rx_thresh.wthresh; in eth_igb_rx_queue_setup()
1757 if (rxq->wthresh > 0 && in eth_igb_rx_queue_setup()
1759 rxq->wthresh = 1; in eth_igb_rx_queue_setup()
1760 rxq->drop_en = rx_conf->rx_drop_en; in eth_igb_rx_queue_setup()
1761 rxq->rx_free_thresh = rx_conf->rx_free_thresh; in eth_igb_rx_queue_setup()
1762 rxq->queue_id = queue_idx; in eth_igb_rx_queue_setup()
1763 rxq->reg_idx = (uint16_t)((RTE_ETH_DEV_SRIOV(dev).active == 0) ? in eth_igb_rx_queue_setup()
1765 rxq->port_id = dev->data->port_id; in eth_igb_rx_queue_setup()
1767 rxq->crc_len = RTE_ETHER_CRC_LEN; in eth_igb_rx_queue_setup()
1769 rxq->crc_len = 0; in eth_igb_rx_queue_setup()
1780 igb_rx_queue_release(rxq); in eth_igb_rx_queue_setup()
1784 rxq->mz = rz; in eth_igb_rx_queue_setup()
1785 rxq->rdt_reg_addr = E1000_PCI_REG_ADDR(hw, E1000_RDT(rxq->reg_idx)); in eth_igb_rx_queue_setup()
1786 rxq->rdh_reg_addr = E1000_PCI_REG_ADDR(hw, E1000_RDH(rxq->reg_idx)); in eth_igb_rx_queue_setup()
1787 rxq->rx_ring_phys_addr = rz->iova; in eth_igb_rx_queue_setup()
1788 rxq->rx_ring = (union e1000_adv_rx_desc *) rz->addr; in eth_igb_rx_queue_setup()
1791 rxq->rx_ring_phys_addr = igb_gbd_addr_r_p[index]; in eth_igb_rx_queue_setup()
1792 rxq->rx_ring = (union e1000_adv_rx_desc *)igb_gbd_addr_r_v[index]; in eth_igb_rx_queue_setup()
1796 rxq->rx_ring_phys_addr, in eth_igb_rx_queue_setup()
1797 rxq->rx_ring); in eth_igb_rx_queue_setup()
1800 rxq->sw_ring = rte_zmalloc("rxq->sw_ring", in eth_igb_rx_queue_setup()
1803 if (rxq->sw_ring == NULL) { in eth_igb_rx_queue_setup()
1804 igb_rx_queue_release(rxq); in eth_igb_rx_queue_setup()
1808 rxq->sw_ring, rxq->rx_ring, rxq->rx_ring_phys_addr); in eth_igb_rx_queue_setup()
1810 dev->data->rx_queues[queue_idx] = rxq; in eth_igb_rx_queue_setup()
1811 igb_reset_rx_queue(rxq); in eth_igb_rx_queue_setup()
1821 struct igb_rx_queue *rxq; in eth_igb_rx_queue_count() local
1824 rxq = rx_queue; in eth_igb_rx_queue_count()
1825 rxdp = &(rxq->rx_ring[rxq->rx_tail]); in eth_igb_rx_queue_count()
1827 while ((desc < rxq->nb_rx_desc) && in eth_igb_rx_queue_count()
1831 if (rxq->rx_tail + desc >= rxq->nb_rx_desc) in eth_igb_rx_queue_count()
1832 rxdp = &(rxq->rx_ring[rxq->rx_tail + in eth_igb_rx_queue_count()
1833 desc - rxq->nb_rx_desc]); in eth_igb_rx_queue_count()
1842 struct igb_rx_queue *rxq = rx_queue; in eth_igb_rx_descriptor_status() local
1846 if (unlikely(offset >= rxq->nb_rx_desc)) in eth_igb_rx_descriptor_status()
1849 if (offset >= rxq->nb_rx_desc - rxq->nb_rx_hold) in eth_igb_rx_descriptor_status()
1852 desc = rxq->rx_tail + offset; in eth_igb_rx_descriptor_status()
1853 if (desc >= rxq->nb_rx_desc) in eth_igb_rx_descriptor_status()
1854 desc -= rxq->nb_rx_desc; in eth_igb_rx_descriptor_status()
1856 status = &rxq->rx_ring[desc].wb.upper.status_error; in eth_igb_rx_descriptor_status()
1889 struct igb_rx_queue *rxq; in igb_dev_clear_queues() local
1900 rxq = dev->data->rx_queues[i]; in igb_dev_clear_queues()
1901 if (rxq != NULL) { in igb_dev_clear_queues()
1902 igb_rx_queue_release_mbufs(rxq); in igb_dev_clear_queues()
1903 igb_reset_rx_queue(rxq); in igb_dev_clear_queues()
2275 igb_alloc_rx_queue_mbufs(struct igb_rx_queue *rxq) in igb_alloc_rx_queue_mbufs() argument
2277 struct igb_rx_entry *rxe = rxq->sw_ring; in igb_alloc_rx_queue_mbufs()
2282 for (i = 0; i < rxq->nb_rx_desc; i++) { in igb_alloc_rx_queue_mbufs()
2284 struct rte_mbuf *mbuf = rte_mbuf_raw_alloc(rxq->mb_pool); in igb_alloc_rx_queue_mbufs()
2288 "queue_id=%hu", rxq->queue_id); in igb_alloc_rx_queue_mbufs()
2293 rxd = &rxq->rx_ring[i]; in igb_alloc_rx_queue_mbufs()
2347 struct igb_rx_queue *rxq; in eth_igb_rx_init() local
2394 rxq = dev->data->rx_queues[i]; in eth_igb_rx_init()
2396 rxq->flags = 0; in eth_igb_rx_init()
2401 rxq->flags |= IGB_RXQ_FLAG_LB_BSWAP_VLAN; in eth_igb_rx_init()
2408 ret = igb_alloc_rx_queue_mbufs(rxq); in eth_igb_rx_init()
2417 rxq->crc_len = RTE_ETHER_CRC_LEN; in eth_igb_rx_init()
2419 rxq->crc_len = 0; in eth_igb_rx_init()
2421 bus_addr = rxq->rx_ring_phys_addr; in eth_igb_rx_init()
2422 E1000_WRITE_REG(hw, E1000_RDLEN(rxq->reg_idx), in eth_igb_rx_init()
2423 rxq->nb_rx_desc * in eth_igb_rx_init()
2425 E1000_WRITE_REG(hw, E1000_RDBAH(rxq->reg_idx), in eth_igb_rx_init()
2427 E1000_WRITE_REG(hw, E1000_RDBAL(rxq->reg_idx), (uint32_t)bus_addr); in eth_igb_rx_init()
2434 buf_size = (uint16_t)(rte_pktmbuf_data_room_size(rxq->mb_pool) - in eth_igb_rx_init()
2471 if (rxq->drop_en) in eth_igb_rx_init()
2474 E1000_WRITE_REG(hw, E1000_SRRCTL(rxq->reg_idx), srrctl); in eth_igb_rx_init()
2477 rxdctl = E1000_READ_REG(hw, E1000_RXDCTL(rxq->reg_idx)); in eth_igb_rx_init()
2480 rxdctl |= (rxq->pthresh & 0x1F); in eth_igb_rx_init()
2481 rxdctl |= ((rxq->hthresh & 0x1F) << 8); in eth_igb_rx_init()
2482 rxdctl |= ((rxq->wthresh & 0x1F) << 16); in eth_igb_rx_init()
2483 E1000_WRITE_REG(hw, E1000_RXDCTL(rxq->reg_idx), rxdctl); in eth_igb_rx_init()
2556 rxq = dev->data->rx_queues[i]; in eth_igb_rx_init()
2558 E1000_DVMOLR(rxq->reg_idx)); in eth_igb_rx_init()
2560 E1000_WRITE_REG(hw, E1000_DVMOLR(rxq->reg_idx), dvmolr); in eth_igb_rx_init()
2572 rxq = dev->data->rx_queues[i]; in eth_igb_rx_init()
2574 E1000_DVMOLR(rxq->reg_idx)); in eth_igb_rx_init()
2576 E1000_WRITE_REG(hw, E1000_DVMOLR(rxq->reg_idx), dvmolr); in eth_igb_rx_init()
2600 rxq = dev->data->rx_queues[i]; in eth_igb_rx_init()
2601 E1000_WRITE_REG(hw, E1000_RDH(rxq->reg_idx), 0); in eth_igb_rx_init()
2602 E1000_WRITE_REG(hw, E1000_RDT(rxq->reg_idx), rxq->nb_rx_desc - 1); in eth_igb_rx_init()
2671 struct igb_rx_queue *rxq; in eth_igbvf_rx_init() local
2692 rxq = dev->data->rx_queues[i]; in eth_igbvf_rx_init()
2694 rxq->flags = 0; in eth_igbvf_rx_init()
2699 rxq->flags |= IGB_RXQ_FLAG_LB_BSWAP_VLAN; in eth_igbvf_rx_init()
2706 ret = igb_alloc_rx_queue_mbufs(rxq); in eth_igbvf_rx_init()
2710 bus_addr = rxq->rx_ring_phys_addr; in eth_igbvf_rx_init()
2712 rxq->nb_rx_desc * in eth_igbvf_rx_init()
2723 buf_size = (uint16_t)(rte_pktmbuf_data_room_size(rxq->mb_pool) - in eth_igbvf_rx_init()
2760 if (rxq->drop_en) in eth_igbvf_rx_init()
2769 rxdctl |= (rxq->pthresh & 0x1F); in eth_igbvf_rx_init()
2770 rxdctl |= ((rxq->hthresh & 0x1F) << 8); in eth_igbvf_rx_init()
2781 rxdctl |= ((rxq->wthresh & 0x1F) << 16); in eth_igbvf_rx_init()
2797 rxq = dev->data->rx_queues[i]; in eth_igbvf_rx_init()
2799 E1000_WRITE_REG(hw, E1000_RDT(i), rxq->nb_rx_desc - 1); in eth_igbvf_rx_init()
2862 struct igb_rx_queue *rxq; in igb_rxq_info_get() local
2864 rxq = dev->data->rx_queues[queue_id]; in igb_rxq_info_get()
2866 qinfo->mp = rxq->mb_pool; in igb_rxq_info_get()
2868 qinfo->nb_desc = rxq->nb_rx_desc; in igb_rxq_info_get()
2870 qinfo->conf.rx_free_thresh = rxq->rx_free_thresh; in igb_rxq_info_get()
2871 qinfo->conf.rx_drop_en = rxq->drop_en; in igb_rxq_info_get()
2872 qinfo->conf.offloads = rxq->offloads; in igb_rxq_info_get()