ionic_qcq_alloc(struct ionic_lif *lif,
uint8_t type,
size_t struct_size,
+ uint32_t socket_id,
uint32_t index,
const char *type_name,
uint16_t flags,
rte_iova_t q_base_pa = 0;
rte_iova_t cq_base_pa = 0;
rte_iova_t sg_base_pa = 0;
- uint32_t socket_id = rte_socket_id();
int err;
*qcq = NULL;
}
int
-ionic_rx_qcq_alloc(struct ionic_lif *lif, uint32_t index,
+ionic_rx_qcq_alloc(struct ionic_lif *lif, uint32_t socket_id, uint32_t index,
uint16_t nrxq_descs, struct ionic_rx_qcq **rxq_out)
{
struct ionic_rx_qcq *rxq;
err = ionic_qcq_alloc(lif,
IONIC_QTYPE_RXQ,
sizeof(struct ionic_rx_qcq),
+ socket_id,
index,
"rx",
flags,
}
int
-ionic_tx_qcq_alloc(struct ionic_lif *lif, uint32_t index,
+ionic_tx_qcq_alloc(struct ionic_lif *lif, uint32_t socket_id, uint32_t index,
uint16_t ntxq_descs, struct ionic_tx_qcq **txq_out)
{
struct ionic_tx_qcq *txq;
err = ionic_qcq_alloc(lif,
IONIC_QTYPE_TXQ,
sizeof(struct ionic_tx_qcq),
+ socket_id,
index,
"tx",
flags,
err = ionic_qcq_alloc(lif,
IONIC_QTYPE_ADMINQ,
sizeof(struct ionic_admin_qcq),
+ rte_socket_id(),
0,
"admin",
flags,
err = ionic_qcq_alloc(lif,
IONIC_QTYPE_NOTIFYQ,
sizeof(struct ionic_notify_qcq),
+ rte_socket_id(),
0,
"notify",
flags,
int ionic_dev_allmulticast_enable(struct rte_eth_dev *dev);
int ionic_dev_allmulticast_disable(struct rte_eth_dev *dev);
-int ionic_rx_qcq_alloc(struct ionic_lif *lif, uint32_t index,
- uint16_t nrxq_descs, struct ionic_rx_qcq **qcq_out);
-int ionic_tx_qcq_alloc(struct ionic_lif *lif, uint32_t index,
- uint16_t ntxq_descs, struct ionic_tx_qcq **qcq_out);
+int ionic_rx_qcq_alloc(struct ionic_lif *lif, uint32_t socket_id,
+ uint32_t index, uint16_t nrxq_descs,
+ struct ionic_rx_qcq **qcq_out);
+int ionic_tx_qcq_alloc(struct ionic_lif *lif, uint32_t socket_id,
+ uint32_t index, uint16_t ntxq_descs,
+ struct ionic_tx_qcq **qcq_out);
void ionic_qcq_free(struct ionic_qcq *qcq);
int ionic_qcq_enable(struct ionic_qcq *qcq);
eth_dev->data->tx_queue_state[tx_queue_id] =
RTE_ETH_QUEUE_STATE_STOPPED;
- err = ionic_tx_qcq_alloc(lif, tx_queue_id, nb_desc, &txq);
+ err = ionic_tx_qcq_alloc(lif, socket_id, tx_queue_id, nb_desc, &txq);
if (err) {
IONIC_PRINT(DEBUG, "Queue allocation failure");
return -EINVAL;
eth_dev->data->rx_queue_state[rx_queue_id] =
RTE_ETH_QUEUE_STATE_STOPPED;
- err = ionic_rx_qcq_alloc(lif, rx_queue_id, nb_desc,
+ err = ionic_rx_qcq_alloc(lif, socket_id, rx_queue_id, nb_desc,
&rxq);
if (err) {
IONIC_PRINT(ERR, "Queue %d allocation failure", rx_queue_id);