net/pcap: convert config option to a macro
[dpdk.git] / drivers / net / pcap / rte_eth_pcap.c
index c657951..595d4f8 100644 (file)
@@ -1,7 +1,7 @@
 /*-
  *   BSD LICENSE
  *
- *   Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
+ *   Copyright(c) 2010-2016 Intel Corporation. All rights reserved.
  *   Copyright(c) 2014 6WIND S.A.
  *   All rights reserved.
  *
@@ -40,7 +40,7 @@
 #include <rte_string_fns.h>
 #include <rte_cycles.h>
 #include <rte_kvargs.h>
-#include <rte_dev.h>
+#include <rte_vdev.h>
 
 #include <net/if.h>
 
@@ -58,6 +58,8 @@
 
 #define ETH_PCAP_ARG_MAXLEN    64
 
+#define RTE_PMD_PCAP_MAX_QUEUES 16
+
 static char errbuf[PCAP_ERRBUF_SIZE];
 static unsigned char tx_pcap_data[RTE_ETH_PCAP_SNAPLEN];
 static struct timeval start_time;
@@ -87,22 +89,22 @@ struct pcap_tx_queue {
 
 struct rx_pcaps {
        unsigned num_of_rx;
-       pcap_t *pcaps[RTE_PMD_RING_MAX_RX_RINGS];
-       const char *names[RTE_PMD_RING_MAX_RX_RINGS];
-       const char *types[RTE_PMD_RING_MAX_RX_RINGS];
+       pcap_t *pcaps[RTE_PMD_PCAP_MAX_QUEUES];
+       const char *names[RTE_PMD_PCAP_MAX_QUEUES];
+       const char *types[RTE_PMD_PCAP_MAX_QUEUES];
 };
 
 struct tx_pcaps {
        unsigned num_of_tx;
-       pcap_dumper_t *dumpers[RTE_PMD_RING_MAX_TX_RINGS];
-       pcap_t *pcaps[RTE_PMD_RING_MAX_RX_RINGS];
-       const char *names[RTE_PMD_RING_MAX_RX_RINGS];
-       const char *types[RTE_PMD_RING_MAX_RX_RINGS];
+       pcap_dumper_t *dumpers[RTE_PMD_PCAP_MAX_QUEUES];
+       pcap_t *pcaps[RTE_PMD_PCAP_MAX_QUEUES];
+       const char *names[RTE_PMD_PCAP_MAX_QUEUES];
+       const char *types[RTE_PMD_PCAP_MAX_QUEUES];
 };
 
 struct pmd_internals {
-       struct pcap_rx_queue rx_queue[RTE_PMD_RING_MAX_RX_RINGS];
-       struct pcap_tx_queue tx_queue[RTE_PMD_RING_MAX_TX_RINGS];
+       struct pcap_rx_queue rx_queue[RTE_PMD_PCAP_MAX_QUEUES];
+       struct pcap_tx_queue tx_queue[RTE_PMD_PCAP_MAX_QUEUES];
        int if_index;
        int single_iface;
 };
@@ -126,6 +128,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_FIXED,
 };
 
 static int
@@ -821,7 +824,7 @@ rte_pmd_init_internals(const char *name, const unsigned nb_rx_queues,
                goto error;
 
        /* reserve an ethdev entry */
-       *eth_dev = rte_eth_dev_allocate(name, RTE_ETH_DEV_VIRTUAL);
+       *eth_dev = rte_eth_dev_allocate(name);
        if (*eth_dev == NULL)
                goto error;
 
@@ -977,8 +980,8 @@ rte_pmd_pcap_devinit(const char *name, const char *params)
        unsigned numa_node, using_dumpers = 0;
        int ret;
        struct rte_kvargs *kvlist;
-       struct rx_pcaps pcaps;
-       struct tx_pcaps dumpers;
+       struct rx_pcaps pcaps = {0};
+       struct tx_pcaps dumpers = {0};
 
        RTE_LOG(INFO, PMD, "Initializing pmd_pcap for %s\n", name);
 
@@ -1082,11 +1085,15 @@ rte_pmd_pcap_devuninit(const char *name)
        return 0;
 }
 
-static struct rte_driver pmd_pcap_drv = {
-       .name = "eth_pcap",
-       .type = PMD_VDEV,
+static struct rte_vdev_driver pmd_pcap_drv = {
        .init = rte_pmd_pcap_devinit,
        .uninit = rte_pmd_pcap_devuninit,
 };
 
-PMD_REGISTER_DRIVER(pmd_pcap_drv);
+DRIVER_REGISTER_VDEV(net_pcap, pmd_pcap_drv);
+DRIVER_REGISTER_PARAM_STRING(net_pcap,
+       "rx_pcap=<string> "
+       "tx_pcap=<string> "
+       "rx_iface=<ifc> "
+       "tx_iface=<ifc> "
+       "iface=<ifc>");