#include <libsze2.h>
#include <rte_mbuf.h>
-#include <rte_ethdev_driver.h>
-#include <rte_ethdev_pci.h>
+#include <ethdev_driver.h>
+#include <ethdev_pci.h>
#include <rte_malloc.h>
#include <rte_memcpy.h>
#include <rte_kvargs.h>
eth_dev_configure(struct rte_eth_dev *dev)
{
struct rte_eth_dev_data *data = dev->data;
- if (data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_SCATTER) {
+ if (data->dev_conf.rxmode.offloads & RTE_ETH_RX_OFFLOAD_SCATTER) {
dev->rx_pkt_burst = eth_szedata2_rx_scattered;
data->scattered_rx = 1;
} else {
dev_info->max_rx_queues = internals->max_rx_queues;
dev_info->max_tx_queues = internals->max_tx_queues;
dev_info->min_rx_bufsize = 0;
- dev_info->rx_offload_capa = DEV_RX_OFFLOAD_SCATTER;
+ dev_info->rx_offload_capa = RTE_ETH_RX_OFFLOAD_SCATTER;
dev_info->tx_offload_capa = 0;
dev_info->rx_queue_offload_capa = 0;
dev_info->tx_queue_offload_capa = 0;
- dev_info->speed_capa = ETH_LINK_SPEED_100G;
+ dev_info->speed_capa = RTE_ETH_LINK_SPEED_100G;
return 0;
}
}
static void
-eth_rx_queue_release(void *q)
+eth_rx_queue_release(struct rte_eth_dev *dev, uint16_t qid)
{
- struct szedata2_rx_queue *rxq = (struct szedata2_rx_queue *)q;
+ struct szedata2_rx_queue *rxq = dev->data->rx_queues[qid];
if (rxq != NULL) {
if (rxq->sze != NULL)
szedata_close(rxq->sze);
rte_free(rxq);
+ dev->data->rx_queues[qid] = NULL;
}
}
static void
-eth_tx_queue_release(void *q)
+eth_tx_queue_release(struct rte_eth_dev *dev, uint16_t qid)
{
- struct szedata2_tx_queue *txq = (struct szedata2_tx_queue *)q;
+ struct szedata2_tx_queue *txq = dev->data->tx_queues[qid];
if (txq != NULL) {
if (txq->sze != NULL)
szedata_close(txq->sze);
rte_free(txq);
+ dev->data->tx_queues[qid] = NULL;
}
}
free(internals->sze_dev_path);
- for (i = 0; i < nb_rx; i++) {
- eth_rx_queue_release(dev->data->rx_queues[i]);
- dev->data->rx_queues[i] = NULL;
- }
+ for (i = 0; i < nb_rx; i++)
+ eth_rx_queue_release(dev, i);
dev->data->nb_rx_queues = 0;
- for (i = 0; i < nb_tx; i++) {
- eth_tx_queue_release(dev->data->tx_queues[i]);
- dev->data->tx_queues[i] = NULL;
- }
+ for (i = 0; i < nb_tx; i++)
+ eth_tx_queue_release(dev, i);
dev->data->nb_tx_queues = 0;
return ret;
memset(&link, 0, sizeof(link));
- link.link_speed = ETH_SPEED_NUM_100G;
- link.link_duplex = ETH_LINK_FULL_DUPLEX;
- link.link_status = ETH_LINK_UP;
- link.link_autoneg = ETH_LINK_FIXED;
+ link.link_speed = RTE_ETH_SPEED_NUM_100G;
+ link.link_duplex = RTE_ETH_LINK_FULL_DUPLEX;
+ link.link_status = RTE_ETH_LINK_UP;
+ link.link_autoneg = RTE_ETH_LINK_FIXED;
rte_eth_linkstatus_set(dev, &link);
return 0;
PMD_INIT_FUNC_TRACE();
- if (dev->data->rx_queues[rx_queue_id] != NULL) {
- eth_rx_queue_release(dev->data->rx_queues[rx_queue_id]);
- dev->data->rx_queues[rx_queue_id] = NULL;
- }
+ if (dev->data->rx_queues[rx_queue_id] != NULL)
+ eth_rx_queue_release(dev, rx_queue_id);
rxq = rte_zmalloc_socket("szedata2 rx queue",
sizeof(struct szedata2_rx_queue),
}
rxq->priv = internals;
+ dev->data->rx_queues[rx_queue_id] = rxq;
+
rxq->sze = szedata_open(internals->sze_dev_path);
if (rxq->sze == NULL) {
PMD_INIT_LOG(ERR, "szedata_open() failed for rx queue id "
"%" PRIu16 "!", rx_queue_id);
- eth_rx_queue_release(rxq);
+ eth_rx_queue_release(dev, rx_queue_id);
return -EINVAL;
}
ret = szedata_subscribe3(rxq->sze, &rx, &tx);
if (ret != 0 || rx == 0) {
PMD_INIT_LOG(ERR, "szedata_subscribe3() failed for rx queue id "
"%" PRIu16 "!", rx_queue_id);
- eth_rx_queue_release(rxq);
+ eth_rx_queue_release(dev, rx_queue_id);
return -EINVAL;
}
rxq->rx_channel = rx_channel;
rxq->rx_bytes = 0;
rxq->err_pkts = 0;
- dev->data->rx_queues[rx_queue_id] = rxq;
-
PMD_INIT_LOG(DEBUG, "Configured rx queue id %" PRIu16 " on socket "
"%u (channel id %u).", rxq->qid, socket_id,
rxq->rx_channel);
PMD_INIT_FUNC_TRACE();
- if (dev->data->tx_queues[tx_queue_id] != NULL) {
- eth_tx_queue_release(dev->data->tx_queues[tx_queue_id]);
- dev->data->tx_queues[tx_queue_id] = NULL;
- }
+ if (dev->data->tx_queues[tx_queue_id] != NULL)
+ eth_tx_queue_release(dev, tx_queue_id);
txq = rte_zmalloc_socket("szedata2 tx queue",
sizeof(struct szedata2_tx_queue),
}
txq->priv = internals;
+ dev->data->tx_queues[tx_queue_id] = txq;
+
txq->sze = szedata_open(internals->sze_dev_path);
if (txq->sze == NULL) {
PMD_INIT_LOG(ERR, "szedata_open() failed for tx queue id "
"%" PRIu16 "!", tx_queue_id);
- eth_tx_queue_release(txq);
+ eth_tx_queue_release(dev, tx_queue_id);
return -EINVAL;
}
ret = szedata_subscribe3(txq->sze, &rx, &tx);
if (ret != 0 || tx == 0) {
PMD_INIT_LOG(ERR, "szedata_subscribe3() failed for tx queue id "
"%" PRIu16 "!", tx_queue_id);
- eth_tx_queue_release(txq);
+ eth_tx_queue_release(dev, tx_queue_id);
return -EINVAL;
}
txq->tx_channel = tx_channel;
txq->tx_bytes = 0;
txq->err_pkts = 0;
- dev->data->tx_queues[tx_queue_id] = txq;
-
PMD_INIT_LOG(DEBUG, "Configured tx queue id %" PRIu16 " on socket "
"%u (channel id %u).", txq->qid, socket_id,
txq->tx_channel);
RTE_PMD_REGISTER_PCI_TABLE(RTE_SZEDATA2_DRIVER_NAME, rte_szedata2_pci_id_table);
RTE_PMD_REGISTER_KMOD_DEP(RTE_SZEDATA2_DRIVER_NAME,
"* combo6core & combov3 & szedata2 & ( szedata2_cv3 | szedata2_cv3_fdt )");
-RTE_LOG_REGISTER(szedata2_logtype_init, pmd.net.szedata2.init, NOTICE);
-RTE_LOG_REGISTER(szedata2_logtype_driver, pmd.net.szedata2.driver, NOTICE);
+RTE_LOG_REGISTER_SUFFIX(szedata2_logtype_init, init, NOTICE);
+RTE_LOG_REGISTER_SUFFIX(szedata2_logtype_driver, driver, NOTICE);