New upstream version 18.02
[deb_dpdk.git] / drivers / net / null / rte_eth_null.c
index 5aef059..d003b28 100644 (file)
  */
 
 #include <rte_mbuf.h>
-#include <rte_ethdev.h>
+#include <rte_ethdev_driver.h>
 #include <rte_ethdev_vdev.h>
 #include <rte_malloc.h>
 #include <rte_memcpy.h>
-#include <rte_vdev.h>
+#include <rte_bus_vdev.h>
 #include <rte_kvargs.h>
 #include <rte_spinlock.h>
 
@@ -68,7 +68,7 @@ struct null_queue {
 struct pmd_internals {
        unsigned packet_size;
        unsigned packet_copy;
-       uint8_t port_id;
+       uint16_t port_id;
 
        struct null_queue rx_null_queues[RTE_MAX_QUEUES_PER_PORT];
        struct null_queue tx_null_queues[RTE_MAX_QUEUES_PER_PORT];
@@ -91,7 +91,7 @@ static struct rte_eth_link pmd_link = {
        .link_speed = ETH_SPEED_NUM_10G,
        .link_duplex = ETH_LINK_FULL_DUPLEX,
        .link_status = ETH_LINK_DOWN,
-       .link_autoneg = ETH_LINK_SPEED_AUTONEG,
+       .link_autoneg = ETH_LINK_AUTONEG,
 };
 
 static uint16_t
@@ -278,6 +278,11 @@ eth_tx_queue_setup(struct rte_eth_dev *dev, uint16_t tx_queue_id,
        return 0;
 }
 
+static int
+eth_mtu_set(struct rte_eth_dev *dev __rte_unused, uint16_t mtu __rte_unused)
+{
+       return 0;
+}
 
 static void
 eth_dev_info(struct rte_eth_dev *dev,
@@ -298,7 +303,7 @@ eth_dev_info(struct rte_eth_dev *dev,
        dev_info->flow_type_rss_offloads = internals->flow_type_rss_offloads;
 }
 
-static void
+static int
 eth_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *igb_stats)
 {
        unsigned i, num_stats;
@@ -306,7 +311,7 @@ eth_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *igb_stats)
        const struct pmd_internals *internal;
 
        if ((dev == NULL) || (igb_stats == NULL))
-               return;
+               return -EINVAL;
 
        internal = dev->data->dev_private;
        num_stats = RTE_MIN((unsigned)RTE_ETHDEV_QUEUE_STAT_CNTRS,
@@ -333,6 +338,8 @@ eth_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *igb_stats)
        igb_stats->ipackets = rx_total;
        igb_stats->opackets = tx_total;
        igb_stats->oerrors = tx_err_total;
+
+       return 0;
 }
 
 static void
@@ -454,6 +461,12 @@ eth_rss_hash_conf_get(struct rte_eth_dev *dev,
        return 0;
 }
 
+static void
+eth_mac_address_set(__rte_unused struct rte_eth_dev *dev,
+                   __rte_unused struct ether_addr *addr)
+{
+}
+
 static const struct eth_dev_ops ops = {
        .dev_start = eth_dev_start,
        .dev_stop = eth_dev_stop,
@@ -463,7 +476,9 @@ static const struct eth_dev_ops ops = {
        .tx_queue_setup = eth_tx_queue_setup,
        .rx_queue_release = eth_queue_release,
        .tx_queue_release = eth_queue_release,
+       .mtu_set = eth_mtu_set,
        .link_update = eth_link_update,
+       .mac_addr_set = eth_mac_address_set,
        .stats_get = eth_stats_get,
        .stats_reset = eth_stats_reset,
        .reta_update = eth_rss_reta_update,
@@ -540,8 +555,6 @@ eth_dev_null_create(struct rte_vdev_device *dev,
        eth_dev->data = data;
        eth_dev->dev_ops = &ops;
 
-       data->dev_flags = RTE_ETH_DEV_DETACHABLE;
-
        /* finally assign rx and tx ops */
        if (packet_copy) {
                eth_dev->rx_pkt_burst = eth_null_copy_rx;