examples: use SPDX tag for Intel copyright files
[dpdk.git] / examples / bond / main.c
index 9a4ec80..0df8c8e 100644 (file)
@@ -1,34 +1,5 @@
-/*-
- *   BSD LICENSE
- *
- *   Copyright(c) 2010-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) 2010-2015 Intel Corporation
  */
 
 #include <stdint.h>
@@ -51,9 +22,7 @@
 #include <rte_log.h>
 #include <rte_memory.h>
 #include <rte_memcpy.h>
-#include <rte_memzone.h>
 #include <rte_eal.h>
-#include <rte_per_lcore.h>
 #include <rte_launch.h>
 #include <rte_atomic.h>
 #include <rte_cycles.h>
 #include <rte_per_lcore.h>
 #include <rte_branch_prediction.h>
 #include <rte_interrupts.h>
-#include <rte_pci.h>
 #include <rte_random.h>
 #include <rte_debug.h>
 #include <rte_ether.h>
 #include <rte_ethdev.h>
-#include <rte_log.h>
 #include <rte_mempool.h>
 #include <rte_mbuf.h>
-#include <rte_memcpy.h>
 #include <rte_ip.h>
 #include <rte_tcp.h>
 #include <rte_arp.h>
                addr.addr_bytes[0], addr.addr_bytes[1], addr.addr_bytes[2], \
                addr.addr_bytes[3], addr.addr_bytes[4], addr.addr_bytes[5])
 
-uint8_t slaves[RTE_MAX_ETHPORTS];
-uint8_t slaves_count;
+uint16_t slaves[RTE_MAX_ETHPORTS];
+uint16_t slaves_count;
 
-static uint8_t BOND_PORT = 0xff;
+static uint16_t BOND_PORT = 0xffff;
 
 static struct rte_mempool *mbuf_pool;
 
@@ -174,9 +140,11 @@ static struct rte_eth_conf port_conf = {
 };
 
 static void
-slave_port_init(uint8_t portid, struct rte_mempool *mbuf_pool)
+slave_port_init(uint16_t portid, struct rte_mempool *mbuf_pool)
 {
        int retval;
+       uint16_t nb_rxd = RTE_RX_DESC_DEFAULT;
+       uint16_t nb_txd = RTE_TX_DESC_DEFAULT;
 
        if (portid >= rte_eth_dev_count())
                rte_exit(EXIT_FAILURE, "Invalid port\n");
@@ -186,8 +154,13 @@ slave_port_init(uint8_t portid, struct rte_mempool *mbuf_pool)
                rte_exit(EXIT_FAILURE, "port %u: configuration failed (res=%d)\n",
                                portid, retval);
 
+       retval = rte_eth_dev_adjust_nb_rx_tx_desc(portid, &nb_rxd, &nb_txd);
+       if (retval != 0)
+               rte_exit(EXIT_FAILURE, "port %u: rte_eth_dev_adjust_nb_rx_tx_desc "
+                               "failed (res=%d)\n", portid, retval);
+
        /* RX setup */
-       retval = rte_eth_rx_queue_setup(portid, 0, RTE_RX_DESC_DEFAULT,
+       retval = rte_eth_rx_queue_setup(portid, 0, nb_rxd,
                                        rte_eth_dev_socket_id(portid), NULL,
                                        mbuf_pool);
        if (retval < 0)
@@ -195,7 +168,7 @@ slave_port_init(uint8_t portid, struct rte_mempool *mbuf_pool)
                                portid, retval);
 
        /* TX setup */
-       retval = rte_eth_tx_queue_setup(portid, 0, RTE_TX_DESC_DEFAULT,
+       retval = rte_eth_tx_queue_setup(portid, 0, nb_txd,
                                rte_eth_dev_socket_id(portid), NULL);
 
        if (retval < 0)
@@ -211,7 +184,7 @@ slave_port_init(uint8_t portid, struct rte_mempool *mbuf_pool)
        struct ether_addr addr;
 
        rte_eth_macaddr_get(portid, &addr);
-       printf("Port %u MAC: ", (unsigned)portid);
+       printf("Port %u MAC: ", portid);
        PRINT_MAC(addr);
        printf("\n");
 }
@@ -221,6 +194,8 @@ bond_port_init(struct rte_mempool *mbuf_pool)
 {
        int retval;
        uint8_t i;
+       uint16_t nb_rxd = RTE_RX_DESC_DEFAULT;
+       uint16_t nb_txd = RTE_TX_DESC_DEFAULT;
 
        retval = rte_eth_bond_create("bond0", BONDING_MODE_ALB,
                        0 /*SOCKET_ID_ANY*/);
@@ -228,15 +203,20 @@ bond_port_init(struct rte_mempool *mbuf_pool)
                rte_exit(EXIT_FAILURE,
                                "Faled to create bond port\n");
 
-       BOND_PORT = (uint8_t)retval;
+       BOND_PORT = retval;
 
        retval = rte_eth_dev_configure(BOND_PORT, 1, 1, &port_conf);
        if (retval != 0)
                rte_exit(EXIT_FAILURE, "port %u: configuration failed (res=%d)\n",
                                BOND_PORT, retval);
 
+       retval = rte_eth_dev_adjust_nb_rx_tx_desc(BOND_PORT, &nb_rxd, &nb_txd);
+       if (retval != 0)
+               rte_exit(EXIT_FAILURE, "port %u: rte_eth_dev_adjust_nb_rx_tx_desc "
+                               "failed (res=%d)\n", BOND_PORT, retval);
+
        /* RX setup */
-       retval = rte_eth_rx_queue_setup(BOND_PORT, 0, RTE_RX_DESC_DEFAULT,
+       retval = rte_eth_rx_queue_setup(BOND_PORT, 0, nb_rxd,
                                        rte_eth_dev_socket_id(BOND_PORT), NULL,
                                        mbuf_pool);
        if (retval < 0)
@@ -244,7 +224,7 @@ bond_port_init(struct rte_mempool *mbuf_pool)
                                BOND_PORT, retval);
 
        /* TX setup */
-       retval = rte_eth_tx_queue_setup(BOND_PORT, 0, RTE_TX_DESC_DEFAULT,
+       retval = rte_eth_tx_queue_setup(BOND_PORT, 0, nb_txd,
                                rte_eth_dev_socket_id(BOND_PORT), NULL);
 
        if (retval < 0)
@@ -550,7 +530,7 @@ static void cmd_help_parsed(__attribute__((unused)) void *parsed_result,
 {
        cmdline_printf(cl,
                        "ALB - link bonding mode 6 example\n"
-                       "send IP        - sends one ARPrequest thru bonding for IP.\n"
+                       "send IP        - sends one ARPrequest through bonding for IP.\n"
                        "start          - starts listening ARPs.\n"
                        "stop           - stops lcore_main.\n"
                        "show           - shows some bond info: ex. active slaves etc.\n"
@@ -664,10 +644,10 @@ static void cmd_show_parsed(__attribute__((unused)) void *parsed_result,
                            struct cmdline *cl,
                            __attribute__((unused)) void *data)
 {
-       uint8_t slaves[16] = {0};
+       uint16_t slaves[16] = {0};
        uint8_t len = 16;
        struct ether_addr addr;
-       uint8_t i = 0;
+       uint16_t i = 0;
 
        while (i < slaves_count)        {
                rte_eth_macaddr_get(i, &addr);