net/virtio: add missing driver name
[dpdk.git] / drivers / net / virtio / virtio_ethdev.c
index 1c2bf01..8631462 100644 (file)
@@ -125,8 +125,8 @@ static const struct rte_virtio_xstats_name_off rte_virtio_rxq_stat_strings[] = {
        {"size_128_255_packets",   offsetof(struct virtnet_rx, stats.size_bins[3])},
        {"size_256_511_packets",   offsetof(struct virtnet_rx, stats.size_bins[4])},
        {"size_512_1023_packets",  offsetof(struct virtnet_rx, stats.size_bins[5])},
-       {"size_1024_1517_packets", offsetof(struct virtnet_rx, stats.size_bins[6])},
-       {"size_1518_max_packets",  offsetof(struct virtnet_rx, stats.size_bins[7])},
+       {"size_1024_1518_packets", offsetof(struct virtnet_rx, stats.size_bins[6])},
+       {"size_1519_max_packets",  offsetof(struct virtnet_rx, stats.size_bins[7])},
 };
 
 /* [rt]x_qX_ is prepended to the name string here */
@@ -142,8 +142,8 @@ static const struct rte_virtio_xstats_name_off rte_virtio_txq_stat_strings[] = {
        {"size_128_255_packets",   offsetof(struct virtnet_tx, stats.size_bins[3])},
        {"size_256_511_packets",   offsetof(struct virtnet_tx, stats.size_bins[4])},
        {"size_512_1023_packets",  offsetof(struct virtnet_tx, stats.size_bins[5])},
-       {"size_1024_1517_packets", offsetof(struct virtnet_tx, stats.size_bins[6])},
-       {"size_1518_max_packets",  offsetof(struct virtnet_tx, stats.size_bins[7])},
+       {"size_1024_1518_packets", offsetof(struct virtnet_tx, stats.size_bins[6])},
+       {"size_1519_max_packets",  offsetof(struct virtnet_tx, stats.size_bins[7])},
 };
 
 #define VIRTIO_NB_RXQ_XSTATS (sizeof(rte_virtio_rxq_stat_strings) / \
@@ -652,6 +652,23 @@ virtio_dev_allmulticast_disable(struct rte_eth_dev *dev)
                PMD_INIT_LOG(ERR, "Failed to disable allmulticast");
 }
 
+#define VLAN_TAG_LEN           4    /* 802.3ac tag (not DMA'd) */
+static int
+virtio_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
+{
+       struct virtio_hw *hw = dev->data->dev_private;
+       uint32_t ether_hdr_len = ETHER_HDR_LEN + VLAN_TAG_LEN +
+                                hw->vtnet_hdr_size;
+       uint32_t frame_size = mtu + ether_hdr_len;
+
+       if (mtu < ETHER_MIN_MTU || frame_size > VIRTIO_MAX_RX_PKTLEN) {
+               PMD_INIT_LOG(ERR, "MTU should be between %d and %d\n",
+                       ETHER_MIN_MTU, VIRTIO_MAX_RX_PKTLEN - ether_hdr_len);
+               return -EINVAL;
+       }
+       return 0;
+}
+
 /*
  * dev_ops for virtio, bare necessities for basic operation
  */
@@ -664,7 +681,7 @@ static const struct eth_dev_ops virtio_eth_dev_ops = {
        .promiscuous_disable     = virtio_dev_promiscuous_disable,
        .allmulticast_enable     = virtio_dev_allmulticast_enable,
        .allmulticast_disable    = virtio_dev_allmulticast_disable,
-
+       .mtu_set                 = virtio_mtu_set,
        .dev_infos_get           = virtio_dev_info_get,
        .stats_get               = virtio_dev_stats_get,
        .xstats_get              = virtio_dev_xstats_get,
@@ -1304,7 +1321,9 @@ eth_virtio_dev_uninit(struct rte_eth_dev *eth_dev)
 
 static struct eth_driver rte_virtio_pmd = {
        .pci_drv = {
-               .name = "rte_virtio_pmd",
+               .driver = {
+                       .name = "net_virtio",
+               },
                .id_table = pci_id_virtio_map,
                .drv_flags = RTE_PCI_DRV_DETACHABLE,
                .probe = rte_eth_dev_pci_probe,
@@ -1534,7 +1553,7 @@ virtio_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
        struct virtio_hw *hw = dev->data->dev_private;
 
        if (dev->pci_dev)
-               dev_info->driver_name = dev->driver->pci_drv.name;
+               dev_info->driver_name = dev->driver->pci_drv.driver.name;
        else
                dev_info->driver_name = "virtio_user PMD";
        dev_info->max_rx_queues = (uint16_t)hw->max_rx_queues;