*/
#include <rte_mbuf.h>
-#include <rte_ethdev_driver.h>
-#include <rte_ethdev_vdev.h>
+#include <ethdev_driver.h>
+#include <ethdev_vdev.h>
#include <rte_malloc.h>
#include <rte_memcpy.h>
#include <rte_bus_vdev.h>
.link_autoneg = ETH_LINK_FIXED,
};
-RTE_LOG_REGISTER(eth_null_logtype, pmd.net.null, NOTICE);
+RTE_LOG_REGISTER_DEFAULT(eth_null_logtype, NOTICE);
#define PMD_LOG(level, fmt, args...) \
rte_log(RTE_LOG_ ## level, eth_null_logtype, \
return 0;
}
-static void
+static int
eth_dev_stop(struct rte_eth_dev *dev)
{
if (dev == NULL)
- return;
+ return 0;
dev->data->dev_link.link_status = ETH_LINK_DOWN;
+
+ return 0;
}
static int
}
static void
-eth_queue_release(void *q)
+eth_rx_queue_release(struct rte_eth_dev *dev, uint16_t qid)
+{
+ struct null_queue *nq = dev->data->rx_queues[qid];
+
+ if (nq == NULL)
+ return;
+
+ rte_free(nq->dummy_packet);
+}
+
+static void
+eth_tx_queue_release(struct rte_eth_dev *dev, uint16_t qid)
{
- struct null_queue *nq;
+ struct null_queue *nq = dev->data->tx_queues[qid];
- if (q == NULL)
+ if (nq == NULL)
return;
- nq = q;
rte_free(nq->dummy_packet);
}
.dev_infos_get = eth_dev_info,
.rx_queue_setup = eth_rx_queue_setup,
.tx_queue_setup = eth_tx_queue_setup,
- .rx_queue_release = eth_queue_release,
- .tx_queue_release = eth_queue_release,
+ .rx_queue_release = eth_rx_queue_release,
+ .tx_queue_release = eth_tx_queue_release,
.mtu_set = eth_mtu_set,
.link_update = eth_link_update,
.mac_addr_set = eth_mac_address_set,
data->mac_addrs = &internals->eth_addr;
data->promiscuous = 1;
data->all_multicast = 1;
+ data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS;
eth_dev->dev_ops = &ops;