X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fpcap%2Frte_eth_pcap.c;h=595d4f8c05f7e95aff34a565a34fc721a8a778f1;hb=3c8870f8ff2f0f9c7cd00eb2fcc3f7221ef7be13;hp=c657951736a54c60ba6d1975c54676797b2275ab;hpb=39fd068a27237ff0f825d8efd9ba9ed9a28cacb0;p=dpdk.git diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c index c657951736..595d4f8c05 100644 --- a/drivers/net/pcap/rte_eth_pcap.c +++ b/drivers/net/pcap/rte_eth_pcap.c @@ -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 #include #include -#include +#include #include @@ -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= " + "tx_pcap= " + "rx_iface= " + "tx_iface= " + "iface=");