X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fsample_app_ug%2Frxtx_callbacks.rst;h=62d1f39d7e25542946229f7632b6b0c75f4b67df;hb=769b2de7fb528607bee5cc443dbcddb905a8f61e;hp=81463d28da89fe1019c765786d9321aa7b72287e;hpb=218c4e68c1d9bd4a9281bc1dc4d0ab89859083bf;p=dpdk.git diff --git a/doc/guides/sample_app_ug/rxtx_callbacks.rst b/doc/guides/sample_app_ug/rxtx_callbacks.rst index 81463d28da..62d1f39d7e 100644 --- a/doc/guides/sample_app_ug/rxtx_callbacks.rst +++ b/doc/guides/sample_app_ug/rxtx_callbacks.rst @@ -13,6 +13,10 @@ In the sample application a user defined callback is applied to all received packets to add a timestamp. A separate callback is applied to all packets prior to transmission to calculate the elapsed time, in CPU cycles. +If hardware timestamping is supported by the NIC, the sample application will +also display the average latency since the packet was timestamped in hardware, +on top of the latency since the packet was received and processed by the RX +callback. Compiling the Application ------------------------- @@ -21,13 +25,6 @@ To compile the sample application see :doc:`compiling`. The application is located in the ``rxtx_callbacks`` sub-directory. -The callbacks feature requires that the ``CONFIG_RTE_ETHDEV_RXTX_CALLBACKS`` -setting is on in the ``config/common_`` config file that applies to the -target. This is generally on by default: - -.. code-block:: console - - CONFIG_RTE_ETHDEV_RXTX_CALLBACKS=y Running the Application ----------------------- @@ -36,7 +33,10 @@ To run the example in a ``linux`` environment: .. code-block:: console - ./build/rxtx_callbacks -l 1 -n 4 + .//examples/dpdk-rxtx_callbacks -l 1 -n 4 -- [-t] + +Use -t to enable hardware timestamping. If not supported by the NIC, an error +will be displayed. Refer to *DPDK Getting Started Guide* for general information on running applications and the Environment Abstraction Layer (EAL) options. @@ -79,7 +79,7 @@ comments: { struct rte_eth_conf port_conf = port_conf_default; const uint16_t rx_rings = 1, tx_rings = 1; - struct ether_addr addr; + struct rte_ether_addr addr; int retval; uint16_t q; @@ -110,8 +110,9 @@ comments: return retval; /* Enable RX in promiscuous mode for the Ethernet device. */ - rte_eth_promiscuous_enable(port); - + retval = rte_eth_promiscuous_enable(port); + if (retval != 0) + return retval; /* Add the callbacks for RX and TX.*/ rte_eth_add_rx_callback(port, 0, add_timestamps, NULL);