X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=sidebyside;f=doc%2Fguides%2Fsample_app_ug%2Fkeep_alive.rst;h=865ba69e5c4769e1b6091eaa085522c9a8482a03;hb=9eb974221f44cf210fe5d883bdccfcb48de75fc6;hp=b00f43bc23a9ffa962af9e8c87064d3b7ba2b52e;hpb=513b07238abf86c796c55d697bc40558583793ef;p=dpdk.git diff --git a/doc/guides/sample_app_ug/keep_alive.rst b/doc/guides/sample_app_ug/keep_alive.rst index b00f43bc23..865ba69e5c 100644 --- a/doc/guides/sample_app_ug/keep_alive.rst +++ b/doc/guides/sample_app_ug/keep_alive.rst @@ -1,33 +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-2016 Intel Corporation. Keep Alive Sample Application ============================= @@ -66,27 +38,9 @@ of the L2 forwarding application. Compiling the Application ------------------------- -To compile the application: - -#. Go to the sample application directory: - - .. code-block:: console - - export RTE_SDK=/path/to/rte_sdk cd ${RTE_SDK}/examples/keep_alive - -#. Set the target (a default target is used if not specified). For example: - - .. code-block:: console - - export RTE_TARGET=x86_64-native-linuxapp-gcc - - See the *DPDK Getting Started Guide* for possible RTE_TARGET values. - -#. Build the application: - - .. code-block:: console +To compile the sample application see :doc:`compiling`. - make +The application is located in the ``l2fwd_keep_alive`` sub-directory. Running the Application ----------------------- @@ -109,12 +63,12 @@ where, * ``T PERIOD``: statistics will be refreshed each PERIOD seconds (0 to disable, 10 default, 86400 maximum). -To run the application in linuxapp environment with 4 lcores, 16 ports +To run the application in linux environment with 4 lcores, 16 ports 8 RX queues per lcore and a ping interval of 10ms, issue the command: .. code-block:: console - ./build/l2fwd-keepalive -c f -n 4 -- -q 8 -p ffff -K 10 + ./build/l2fwd-keepalive -l 0-3 -n 4 -- -q 8 -p ffff -K 10 Refer to the *DPDK Getting Started Guide* for general information on running applications and the Environment Abstraction Layer (EAL) @@ -141,17 +95,17 @@ The Keep-Alive/'Liveliness' conceptual scheme: The following sections provide some explanation of the code aspects that are specific to the Keep Alive sample application. -The heartbeat functionality is initialized with a struct -rte_heartbeat and the callback function to invoke in the +The keepalive functionality is initialized with a struct +rte_keepalive and the callback function to invoke in the case of a timeout. .. code-block:: c rte_global_keepalive_info = rte_keepalive_create(&dead_core, NULL); - if (rte_global_hbeat_info == NULL) + if (rte_global_keepalive_info == NULL) rte_exit(EXIT_FAILURE, "keepalive_create() failed"); -The function that issues the pings hbeat_dispatch_pings() +The function that issues the pings keepalive_dispatch_pings() is configured to run every check_period milliseconds. .. code-block:: c @@ -160,18 +114,19 @@ is configured to run every check_period milliseconds. (check_period * rte_get_timer_hz()) / 1000, PERIODICAL, rte_lcore_id(), - &hbeat_dispatch_pings, rte_global_keepalive_info + &rte_keepalive_dispatch_pings, + rte_global_keepalive_info ) != 0 ) rte_exit(EXIT_FAILURE, "Keepalive setup failure.\n"); The rest of the initialization and run-time path follows -the same paths as the the L2 forwarding application. The only +the same paths as the L2 forwarding application. The only addition to the main processing loop is the mark alive functionality and the example random failures. .. code-block:: c - rte_keepalive_mark_alive(&rte_global_hbeat_info); + rte_keepalive_mark_alive(&rte_global_keepalive_info); cur_tsc = rte_rdtsc(); /* Die randomly within 7 secs for demo purposes.. */ @@ -183,7 +138,7 @@ The rte_keepalive_mark_alive function simply sets the core state to alive. .. code-block:: c static inline void - rte_keepalive_mark_alive(struct rte_heartbeat *keepcfg) + rte_keepalive_mark_alive(struct rte_keepalive *keepcfg) { - keepcfg->state_flags[rte_lcore_id()] = 1; + keepcfg->live_data[rte_lcore_id()].core_state = RTE_KA_STATE_ALIVE; }