X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest%2Ftest_link_bonding_rssconf.c;h=1a9571e5c6a201f7961dcb58e5416c60321e3fa2;hb=e847fc5128170c5cc2b729738eaf15b71bc859da;hp=e6714b46c803d56ddd2e0a78825c2b4570089b09;hpb=43b630244e7ea44b6fe47ce3c94f450e091bb138;p=dpdk.git diff --git a/app/test/test_link_bonding_rssconf.c b/app/test/test_link_bonding_rssconf.c index e6714b46c8..1a9571e5c6 100644 --- a/app/test/test_link_bonding_rssconf.c +++ b/app/test/test_link_bonding_rssconf.c @@ -1,34 +1,5 @@ -/*- - * BSD LICENSE - * - * Copyright(c) 2015 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) 2015 Intel Corporation */ #include @@ -48,11 +19,11 @@ #include #include #include +#include #include #include #include -#include #include "test.h" @@ -61,13 +32,13 @@ #define RXTX_RING_SIZE 1024 #define RXTX_QUEUE_COUNT 4 -#define BONDED_DEV_NAME ("rssconf_bond_dev") +#define BONDED_DEV_NAME ("net_bonding_rss") -#define SLAVE_DEV_NAME_FMT ("rssconf_slave%d") +#define SLAVE_DEV_NAME_FMT ("net_null%d") #define SLAVE_RXTX_QUEUE_FMT ("rssconf_slave%d_q%d") #define NUM_MBUFS 8191 -#define MBUF_SIZE (1600 + sizeof(struct rte_mbuf) + RTE_PKTMBUF_HEADROOM) +#define MBUF_SIZE (1600 + RTE_PKTMBUF_HEADROOM) #define MBUF_CACHE_SIZE 250 #define BURST_SIZE 32 @@ -76,7 +47,7 @@ #define INVALID_BONDING_MODE (-1) struct slave_conf { - uint8_t port_id; + uint16_t port_id; struct rte_eth_dev_info dev_info; struct rte_eth_rss_conf rss_conf; @@ -110,13 +81,8 @@ static struct link_bonding_rssconf_unittest_params test_params = { static struct rte_eth_conf default_pmd_conf = { .rxmode = { .mq_mode = ETH_MQ_RX_NONE, - .max_rx_pkt_len = ETHER_MAX_LEN, + .max_rx_pkt_len = RTE_ETHER_MAX_LEN, .split_hdr_size = 0, - .header_split = 0, /**< Header Split disabled */ - .hw_ip_checksum = 0, /**< 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 */ }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, @@ -127,13 +93,8 @@ static struct rte_eth_conf default_pmd_conf = { static struct rte_eth_conf rss_pmd_conf = { .rxmode = { .mq_mode = ETH_MQ_RX_RSS, - .max_rx_pkt_len = ETHER_MAX_LEN, + .max_rx_pkt_len = RTE_ETHER_MAX_LEN, .split_hdr_size = 0, - .header_split = 0, /**< Header Split disabled */ - .hw_ip_checksum = 0, /**< 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 */ }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, @@ -160,7 +121,8 @@ static struct rte_eth_conf rss_pmd_conf = { RTE_DIM(test_params.slave_ports)) static int -configure_ethdev(uint8_t port_id, struct rte_eth_conf *eth_conf, uint8_t start) +configure_ethdev(uint16_t port_id, struct rte_eth_conf *eth_conf, + uint8_t start) { int rxq, txq; @@ -244,7 +206,7 @@ bond_slaves(void) * Set all RETA values in port_id to value */ static int -reta_set(uint8_t port_id, uint8_t value, int reta_size) +reta_set(uint16_t port_id, uint8_t value, int reta_size) { struct rte_eth_rss_reta_entry64 reta_conf[512/RTE_RETA_GROUP_SIZE]; int i, j; @@ -367,7 +329,11 @@ test_propagate(void) uint64_t rss_hf = 0; uint64_t default_rss_hf = 0; - rte_eth_dev_info_get(test_params.bond_port_id, &test_params.bond_dev_info); + retval = rte_eth_dev_info_get(test_params.bond_port_id, + &test_params.bond_dev_info); + TEST_ASSERT((retval == 0), + "Error during getting device (port %u) info: %s\n", + test_params.bond_port_id, strerror(-retval)); /* * Test hash function propagation @@ -481,10 +447,16 @@ test_rss(void) /** * Configure bonding port in RSS mq mode */ + int ret; + TEST_ASSERT_SUCCESS(configure_ethdev(test_params.bond_port_id, &rss_pmd_conf, 0), "Failed to configure bonding device\n"); - rte_eth_dev_info_get(test_params.bond_port_id, &test_params.bond_dev_info); + ret = rte_eth_dev_info_get(test_params.bond_port_id, + &test_params.bond_dev_info); + TEST_ASSERT((ret == 0), + "Error during getting device (port %u) info: %s\n", + test_params.bond_port_id, strerror(-ret)); TEST_ASSERT_SUCCESS(bond_slaves(), "Bonding slaves failed"); @@ -506,10 +478,16 @@ test_rss(void) static int test_rss_lazy(void) { + int ret; + TEST_ASSERT_SUCCESS(configure_ethdev(test_params.bond_port_id, &default_pmd_conf, 0), "Failed to configure bonding device\n"); - rte_eth_dev_info_get(test_params.bond_port_id, &test_params.bond_dev_info); + ret = rte_eth_dev_info_get(test_params.bond_port_id, + &test_params.bond_dev_info); + TEST_ASSERT((ret == 0), + "Error during getting device (port %u) info: %s\n", + test_params.bond_port_id, strerror(-ret)); TEST_ASSERT_SUCCESS(bond_slaves(), "Bonding slaves failed"); @@ -533,26 +511,26 @@ test_setup(void) int port_id; char name[256]; struct slave_conf *port; + struct rte_ether_addr mac_addr = { .addr_bytes = {0} }; if (test_params.mbuf_pool == NULL) { - test_params.mbuf_pool = rte_mempool_create("RSS_MBUF_POOL", NUM_MBUFS * - SLAVE_COUNT, MBUF_SIZE, MBUF_CACHE_SIZE, - sizeof(struct rte_pktmbuf_pool_private), rte_pktmbuf_pool_init, - NULL, rte_pktmbuf_init, NULL, rte_socket_id(), 0); + test_params.mbuf_pool = rte_pktmbuf_pool_create( + "RSS_MBUF_POOL", NUM_MBUFS * SLAVE_COUNT, + MBUF_CACHE_SIZE, 0, MBUF_SIZE, rte_socket_id()); TEST_ASSERT(test_params.mbuf_pool != NULL, - "rte_mempool_create failed\n"); + "rte_pktmbuf_pool_create failed\n"); } /* Create / initialize ring eth devs. */ FOR_EACH_PORT(n, port) { port = &test_params.slave_ports[n]; - port_id = rte_eth_dev_count(); + port_id = rte_eth_dev_count_avail(); snprintf(name, sizeof(name), SLAVE_DEV_NAME_FMT, port_id); - retval = eth_dev_null_create(name, 0, 64, 0); + retval = rte_vdev_init(name, "size=64,copy=0"); TEST_ASSERT_SUCCESS(retval, "Failed to create null device '%s'\n", name); @@ -565,7 +543,15 @@ test_setup(void) TEST_ASSERT_SUCCESS(retval, "Failed to configure virtual ethdev %s\n", name); + /* assign a non-zero MAC */ + mac_addr.addr_bytes[5] = 0x10 + port->port_id; + rte_eth_dev_default_mac_addr_set(port->port_id, &mac_addr); + rte_eth_dev_info_get(port->port_id, &port->dev_info); + retval = rte_eth_dev_info_get(port->port_id, &port->dev_info); + TEST_ASSERT((retval == 0), + "Error during getting device (port %u) info: %s\n", + test_params.bond_port_id, strerror(-retval)); } if (test_params.bond_port_id == INVALID_PORT_ID) { @@ -579,14 +565,17 @@ test_setup(void) TEST_ASSERT_SUCCESS(configure_ethdev(test_params.bond_port_id, &default_pmd_conf, 0), "Failed to configure bonding device\n"); - rte_eth_dev_info_get(test_params.bond_port_id, - &test_params.bond_dev_info); + retval = rte_eth_dev_info_get(test_params.bond_port_id, + &test_params.bond_dev_info); + TEST_ASSERT((retval == 0), + "Error during getting device (port %u) info: %s\n", + test_params.bond_port_id, strerror(-retval)); } return TEST_SUCCESS; } -static int +static void testsuite_teardown(void) { struct slave_conf *port; @@ -600,8 +589,6 @@ testsuite_teardown(void) FOR_EACH_PORT(i, port) rte_eth_dev_stop(port->port_id); - - return 0; } static int @@ -661,7 +648,8 @@ static struct unit_test_suite link_bonding_rssconf_test_suite = { TEST_CASE_NAMED("test_setup", test_setup_wrapper), TEST_CASE_NAMED("test_rss", test_rss_wrapper), TEST_CASE_NAMED("test_rss_lazy", test_rss_lazy_wrapper), - { NULL, NULL, NULL, NULL, NULL } /**< NULL terminate unit test array */ + + TEST_CASES_END() } }; @@ -671,9 +659,4 @@ test_link_bonding_rssconf(void) return unit_test_suite_runner(&link_bonding_rssconf_test_suite); } -static struct test_command test_link_bonding_rssconf_cmd = { - .command = "link_bonding_rssconf_autotest", - .callback = test_link_bonding_rssconf, -}; - -REGISTER_TEST_COMMAND(test_link_bonding_rssconf_cmd); +REGISTER_TEST_COMMAND(link_bonding_rssconf_autotest, test_link_bonding_rssconf);