MCPcopy Create free account
hub / github.com/F-Stack/f-stack / i40e_dev_tx_queue_start

Function i40e_dev_tx_queue_start

dpdk/drivers/net/i40e/i40e_rxtx.c:1767–1800  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1765}
1766
1767int
1768i40e_dev_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id)
1769{
1770 int err;
1771 struct i40e_tx_queue *txq;
1772 struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
1773
1774 PMD_INIT_FUNC_TRACE();
1775
1776 txq = dev->data->tx_queues[tx_queue_id];
1777 if (!txq || !txq->q_set) {
1778 PMD_DRV_LOG(ERR, "TX queue %u is not available or setup",
1779 tx_queue_id);
1780 return -EINVAL;
1781 }
1782
1783 if (txq->tx_deferred_start)
1784 PMD_DRV_LOG(WARNING, "TX queue %u is deferred start",
1785 tx_queue_id);
1786
1787 /*
1788 * tx_queue_id is queue id application refers to, while
1789 * rxq->reg_idx is the real queue index.
1790 */
1791 err = i40e_switch_tx_queue(hw, txq->reg_idx, TRUE);
1792 if (err) {
1793 PMD_DRV_LOG(ERR, "Failed to switch TX queue %u on",
1794 tx_queue_id);
1795 return err;
1796 }
1797 dev->data->tx_queue_state[tx_queue_id] = RTE_ETH_QUEUE_STATE_STARTED;
1798
1799 return 0;
1800}
1801
1802int
1803i40e_dev_tx_queue_stop(struct rte_eth_dev *dev, uint16_t tx_queue_id)

Callers 1

i40e_dev_startFunction · 0.85

Calls 1

i40e_switch_tx_queueFunction · 0.85

Tested by

no test coverage detected