test: add devargs test cases
[dpdk.git] / examples / server_node_efd / server / init.c
index 7dfe2fa..a19934d 100644 (file)
@@ -15,7 +15,6 @@
 #include <rte_memzone.h>
 #include <rte_eal.h>
 #include <rte_byteorder.h>
-#include <rte_atomic.h>
 #include <rte_launch.h>
 #include <rte_per_lcore.h>
 #include <rte_lcore.h>
@@ -97,7 +96,6 @@ init_port(uint16_t port_num)
        struct rte_eth_conf port_conf = {
                .rxmode = {
                        .mq_mode = ETH_MQ_RX_RSS,
-                       .ignore_offload_bitfield = 1,
                },
        };
        const uint16_t rx_rings = 1, tx_rings = num_nodes;
@@ -112,7 +110,10 @@ init_port(uint16_t port_num)
        printf("Port %u init ... ", port_num);
        fflush(stdout);
 
-       rte_eth_dev_info_get(port_num, &dev_info);
+       retval = rte_eth_dev_info_get(port_num, &dev_info);
+       if (retval != 0)
+               return retval;
+
        if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE)
                port_conf.txmode.offloads |=
                        DEV_TX_OFFLOAD_MBUF_FAST_FREE;
@@ -139,7 +140,6 @@ init_port(uint16_t port_num)
        }
 
        txconf = dev_info.default_txconf;
-       txconf.txq_flags = ETH_TXQ_FLAGS_IGNORE;
        txconf.offloads = port_conf.txmode.offloads;
        for (q = 0; q < tx_rings; q++) {
                retval = rte_eth_tx_queue_setup(port_num, q, tx_ring_size,
@@ -149,7 +149,9 @@ init_port(uint16_t port_num)
                        return retval;
        }
 
-       rte_eth_promiscuous_enable(port_num);
+       retval = rte_eth_promiscuous_enable(port_num);
+       if (retval != 0)
+               return retval;
 
        retval = rte_eth_dev_start(port_num);
        if (retval < 0)
@@ -197,6 +199,8 @@ init_shm_rings(void)
  * Create EFD table which will contain all the flows
  * that will be distributed among the nodes
  */
+
+/* Create EFD table. 8< */
 static void
 create_efd_table(void)
 {
@@ -233,6 +237,7 @@ populate_efd_table(void)
 
        printf("EFD table: Adding 0x%x keys\n", num_flows);
 }
+/* >8 End of creation EFD table. */
 
 /* Check the link status of all ports in up to 9s, and print them finally */
 static void
@@ -243,6 +248,8 @@ check_all_ports_link_status(uint16_t port_num, uint32_t port_mask)
        uint8_t count, all_ports_up, print_flag = 0;
        uint16_t portid;
        struct rte_eth_link link;
+       int ret;
+       char link_status_text[RTE_ETH_LINK_MAX_STR_LEN];
 
        printf("\nChecking link status");
        fflush(stdout);
@@ -252,19 +259,20 @@ check_all_ports_link_status(uint16_t port_num, uint32_t port_mask)
                        if ((port_mask & (1 << info->id[portid])) == 0)
                                continue;
                        memset(&link, 0, sizeof(link));
-                       rte_eth_link_get_nowait(info->id[portid], &link);
+                       ret = rte_eth_link_get_nowait(info->id[portid], &link);
+                       if (ret < 0) {
+                               all_ports_up = 0;
+                               if (print_flag == 1)
+                                       printf("Port %u link get failed: %s\n",
+                                               portid, rte_strerror(-ret));
+                               continue;
+                       }
                        /* print link status if flag set */
                        if (print_flag == 1) {
-                               if (link.link_status)
-                                       printf(
-                                       "Port%d Link Up. Speed %u Mbps - %s\n",
-                                               info->id[portid],
-                                               link.link_speed,
-                               (link.link_duplex == ETH_LINK_FULL_DUPLEX) ?
-                                       ("full-duplex") : ("half-duplex\n"));
-                               else
-                                       printf("Port %d Link Down\n",
-                                               info->id[portid]);
+                               rte_eth_link_to_str(link_status_text,
+                                       sizeof(link_status_text), &link);
+                               printf("Port %d %s\n", info->id[portid],
+                                      link_status_text);
                                continue;
                        }
                        /* clear all_ports_up flag if any link down */