| 1734 | } |
| 1735 | |
| 1736 | int |
| 1737 | i40e_dev_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id) |
| 1738 | { |
| 1739 | struct i40e_rx_queue *rxq; |
| 1740 | int err; |
| 1741 | struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private); |
| 1742 | |
| 1743 | rxq = dev->data->rx_queues[rx_queue_id]; |
| 1744 | if (!rxq || !rxq->q_set) { |
| 1745 | PMD_DRV_LOG(ERR, "RX queue %u not available or setup", |
| 1746 | rx_queue_id); |
| 1747 | return -EINVAL; |
| 1748 | } |
| 1749 | |
| 1750 | /* |
| 1751 | * rx_queue_id is queue id application refers to, while |
| 1752 | * rxq->reg_idx is the real queue index. |
| 1753 | */ |
| 1754 | err = i40e_switch_rx_queue(hw, rxq->reg_idx, FALSE); |
| 1755 | if (err) { |
| 1756 | PMD_DRV_LOG(ERR, "Failed to switch RX queue %u off", |
| 1757 | rx_queue_id); |
| 1758 | return err; |
| 1759 | } |
| 1760 | i40e_rx_queue_release_mbufs(rxq); |
| 1761 | i40e_reset_rx_queue(rxq); |
| 1762 | dev->data->rx_queue_state[rx_queue_id] = RTE_ETH_QUEUE_STATE_STOPPED; |
| 1763 | |
| 1764 | return 0; |
| 1765 | } |
| 1766 | |
| 1767 | int |
| 1768 | i40e_dev_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id) |
no test coverage detected