ethdev: add tracepoints
[dpdk.git] / examples / rxtx_callbacks / main.c
index c1abe9e..54d124b 100644 (file)
@@ -112,11 +112,27 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
        if (!rte_eth_dev_is_valid_port(port))
                return -1;
 
-       rte_eth_dev_info_get(port, &dev_info);
+       retval = rte_eth_dev_info_get(port, &dev_info);
+       if (retval != 0) {
+               printf("Error during getting device (port %u) info: %s\n",
+                               port, strerror(-retval));
+
+               return retval;
+       }
+
        if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE)
                port_conf.txmode.offloads |=
                        DEV_TX_OFFLOAD_MBUF_FAST_FREE;
 
+       if (hw_timestamping) {
+               if (!(dev_info.rx_offload_capa & DEV_RX_OFFLOAD_TIMESTAMP)) {
+                       printf("\nERROR: Port %u does not support hardware timestamping\n"
+                                       , port);
+                       return -1;
+               }
+               port_conf.rxmode.offloads |= DEV_RX_OFFLOAD_TIMESTAMP;
+       }
+
        retval = rte_eth_dev_configure(port, rx_rings, tx_rings, &port_conf);
        if (retval != 0)
                return retval;
@@ -127,15 +143,6 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
 
        rxconf = dev_info.default_rxconf;
 
-       if (hw_timestamping) {
-               if (!(dev_info.rx_offload_capa & DEV_RX_OFFLOAD_TIMESTAMP)) {
-                       printf("\nERROR: Port %u does not support hardware timestamping\n"
-                                       , port);
-                       return -1;
-               }
-               rxconf.offloads |= DEV_RX_OFFLOAD_TIMESTAMP;
-       }
-
        for (q = 0; q < rx_rings; q++) {
                retval = rte_eth_rx_queue_setup(port, q, nb_rxd,
                        rte_eth_dev_socket_id(port), &rxconf, mbuf_pool);
@@ -181,7 +188,12 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
 
        struct rte_ether_addr addr;
 
-       rte_eth_macaddr_get(port, &addr);
+       retval = rte_eth_macaddr_get(port, &addr);
+       if (retval < 0) {
+               printf("Failed to get MAC address on port %u: %s\n",
+                       port, rte_strerror(-retval));
+               return retval;
+       }
        printf("Port %u MAC: %02"PRIx8" %02"PRIx8" %02"PRIx8
                        " %02"PRIx8" %02"PRIx8" %02"PRIx8"\n",
                        (unsigned)port,
@@ -189,7 +201,10 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
                        addr.addr_bytes[2], addr.addr_bytes[3],
                        addr.addr_bytes[4], addr.addr_bytes[5]);
 
-       rte_eth_promiscuous_enable(port);
+       retval = rte_eth_promiscuous_enable(port);
+       if (retval != 0)
+               return retval;
+
        rte_eth_add_rx_callback(port, 0, add_timestamps, NULL);
        rte_eth_add_tx_callback(port, 0, calc_latency, NULL);
 
@@ -200,7 +215,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
  * Main thread that does the work, reading from INPUT_PORT
  * and writing to OUTPUT_PORT
  */
-static  __attribute__((noreturn)) void
+static  __rte_noreturn void
 lcore_main(void)
 {
        uint16_t port;