X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest-pipeline%2Finit.c;h=eee0719b67c947f4be67f60c7231c8352cc5e550;hb=81c2337e044dc16f1d93745d2a1668cdebc37c81;hp=17b6d23dced87524443d7bd343c518081079b471;hpb=68fa37e021a1c44c6b2a947cefc20eb61c729947;p=dpdk.git diff --git a/app/test-pipeline/init.c b/app/test-pipeline/init.c index 17b6d23dce..eee0719b67 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,16 +18,12 @@ #include #include #include -#include -#include #include #include #include -#include #include #include #include -#include #include #include #include @@ -86,8 +53,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,20 +69,16 @@ 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 = RTE_ETH_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { .rss_key = NULL, - .rss_hf = ETH_RSS_IPV4 | ETH_RSS_IPV6, + .rss_hf = RTE_ETH_RSS_IP, }, }, .txmode = { - .mq_mode = ETH_MQ_TX_NONE, + .mq_mode = RTE_ETH_MQ_TX_NONE, }, }; @@ -145,16 +107,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"); } @@ -200,22 +154,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 == RTE_ETH_LINK_DOWN) all_ports_up = 0; } @@ -230,10 +192,10 @@ app_init_ports(void) /* 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 */ @@ -245,7 +207,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(