X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest-pipeline%2Finit.c;h=fe37d63730c6b78fd9bc748514fa8eb98c8d3b3a;hb=39f7b298fe5cb6c4f8506edf44dc5047d553642c;hp=12b104ae9688bf3c6b21619eb85ce7adac39ce3b;hpb=48f31ca50cc4b1c4e1b2dc073189f3603aae85cc;p=dpdk.git diff --git a/app/test-pipeline/init.c b/app/test-pipeline/init.c index 12b104ae96..fe37d63730 100644 --- a/app/test-pipeline/init.c +++ b/app/test-pipeline/init.c @@ -1,34 +1,5 @@ -/*- - * BSD LICENSE - * - * Copyright(c) 2010-2014 Intel Corporation. All rights reserved. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Intel Corporation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2010-2014 Intel Corporation */ #include @@ -47,8 +18,6 @@ #include #include #include -#include -#include #include #include #include @@ -56,7 +25,6 @@ #include #include #include -#include #include #include #include @@ -86,8 +54,7 @@ struct app_params app = { .ring_tx_size = 128, /* Buffer pool */ - .pool_buffer_size = 2048 + sizeof(struct rte_mbuf) + - RTE_PKTMBUF_HEADROOM, + .pool_buffer_size = 2048 + RTE_PKTMBUF_HEADROOM, .pool_size = 32 * 1024, .pool_cache_size = 256, @@ -103,16 +70,12 @@ struct app_params app = { static struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .header_split = 0, /* Header Split disabled */ - .hw_ip_checksum = 1, /* IP checksum offload enabled */ - .hw_vlan_filter = 0, /* VLAN filtering disabled */ - .jumbo_frame = 0, /* Jumbo Frame Support disabled */ - .hw_strip_crc = 0, /* CRC stripped by hardware */ + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { .rss_key = NULL, - .rss_hf = ETH_RSS_IPV4 | ETH_RSS_IPV6, + .rss_hf = ETH_RSS_IP, }, }, .txmode = { @@ -145,16 +108,8 @@ app_init_mbuf_pools(void) { /* Init the buffer pool */ RTE_LOG(INFO, USER1, "Creating the mbuf pool ...\n"); - app.pool = rte_mempool_create( - "mempool", - app.pool_size, - app.pool_buffer_size, - app.pool_cache_size, - sizeof(struct rte_pktmbuf_pool_private), - rte_pktmbuf_pool_init, NULL, - rte_pktmbuf_init, NULL, - rte_socket_id(), - 0); + app.pool = rte_pktmbuf_pool_create("mempool", app.pool_size, + app.pool_cache_size, 0, app.pool_buffer_size, rte_socket_id()); if (app.pool == NULL) rte_panic("Cannot create mbuf pool\n"); } @@ -167,7 +122,7 @@ app_init_rings(void) for (i = 0; i < app.n_ports; i++) { char name[32]; - rte_snprintf(name, sizeof(name), "app_ring_rx_%u", i); + snprintf(name, sizeof(name), "app_ring_rx_%u", i); app.rings_rx[i] = rte_ring_create( name, @@ -182,7 +137,7 @@ app_init_rings(void) for (i = 0; i < app.n_ports; i++) { char name[32]; - rte_snprintf(name, sizeof(name), "app_ring_tx_%u", i); + snprintf(name, sizeof(name), "app_ring_tx_%u", i); app.rings_tx[i] = rte_ring_create( name, @@ -200,22 +155,30 @@ static void app_ports_check_link(void) { uint32_t all_ports_up, i; - + char link_status_text[RTE_ETH_LINK_MAX_STR_LEN]; all_ports_up = 1; for (i = 0; i < app.n_ports; i++) { struct rte_eth_link link; - uint8_t port; + uint16_t port; + int ret; - port = (uint8_t) app.ports[i]; + port = app.ports[i]; memset(&link, 0, sizeof(link)); - rte_eth_link_get_nowait(port, &link); - RTE_LOG(INFO, USER1, "Port %u (%u Gbps) %s\n", + ret = rte_eth_link_get_nowait(port, &link); + if (ret < 0) { + RTE_LOG(INFO, USER1, + "Failed to get port %u link status: %s\n", + port, rte_strerror(-ret)); + all_ports_up = 0; + continue; + } + rte_eth_link_to_str(link_status_text, sizeof(link_status_text), + &link); + RTE_LOG(INFO, USER1, "Port %u %s\n", port, - link.link_speed / 1000, - link.link_status ? "UP" : "DOWN"); - - if (link.link_status == 0) + link_status_text); + if (link.link_status == ETH_LINK_DOWN) all_ports_up = 0; } @@ -228,17 +191,12 @@ app_init_ports(void) { uint32_t i; - /* Init driver */ - RTE_LOG(INFO, USER1, "Initializing the PMD driver ...\n"); - if (rte_eal_pci_probe() < 0) - rte_panic("Cannot probe PCI\n"); - /* Init NIC ports, then start the ports */ for (i = 0; i < app.n_ports; i++) { - uint8_t port; + uint16_t port; int ret; - port = (uint8_t) app.ports[i]; + port = app.ports[i]; RTE_LOG(INFO, USER1, "Initializing NIC port %u ...\n", port); /* Init port */ @@ -250,7 +208,10 @@ app_init_ports(void) if (ret < 0) rte_panic("Cannot init NIC port %u (%d)\n", port, ret); - rte_eth_promiscuous_enable(port); + ret = rte_eth_promiscuous_enable(port); + if (ret != 0) + rte_panic("Cannot enable promiscuous mode for port %u: %s\n", + port, rte_strerror(-ret)); /* Init RX queues */ ret = rte_eth_rx_queue_setup(