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

Function i40e_dev_tx_queue_stop

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

Source from the content-addressed store, hash-verified

1800}
1801
1802int
1803i40e_dev_tx_queue_stop(struct rte_eth_dev *dev, uint16_t tx_queue_id)
1804{
1805 struct i40e_tx_queue *txq;
1806 int err;
1807 struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
1808
1809 txq = dev->data->tx_queues[tx_queue_id];
1810 if (!txq || !txq->q_set) {
1811 PMD_DRV_LOG(ERR, "TX queue %u is not available or setup",
1812 tx_queue_id);
1813 return -EINVAL;
1814 }
1815
1816 /*
1817 * tx_queue_id is queue id application refers to, while
1818 * txq->reg_idx is the real queue index.
1819 */
1820 err = i40e_switch_tx_queue(hw, txq->reg_idx, FALSE);
1821 if (err) {
1822 PMD_DRV_LOG(ERR, "Failed to switch TX queue %u of",
1823 tx_queue_id);
1824 return err;
1825 }
1826
1827 i40e_tx_queue_release_mbufs(txq);
1828 i40e_reset_tx_queue(txq);
1829 dev->data->tx_queue_state[tx_queue_id] = RTE_ETH_QUEUE_STATE_STOPPED;
1830
1831 return 0;
1832}
1833
1834const uint32_t *
1835i40e_dev_supported_ptypes_get(struct rte_eth_dev *dev)

Callers 2

i40e_dev_startFunction · 0.85
i40e_dev_stopFunction · 0.85

Calls 3

i40e_switch_tx_queueFunction · 0.85
i40e_reset_tx_queueFunction · 0.85

Tested by

no test coverage detected