X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fsample_app_ug%2Fkeep_alive.rst;h=38856d2c6e03208005d263c429feecb97b566fa9;hb=f714a18885a6d25275b776d6131f5fc728bd522a;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..38856d2c6e 100644 --- a/doc/guides/sample_app_ug/keep_alive.rst +++ b/doc/guides/sample_app_ug/keep_alive.rst @@ -1,6 +1,6 @@ .. BSD LICENSE - Copyright(c) 2015 Intel Corporation. All rights reserved. + Copyright(c) 2015-2016 Intel Corporation. All rights reserved. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -66,27 +66,9 @@ of the L2 forwarding application. Compiling the Application ------------------------- -To compile the application: +To compile the sample application see :doc:`compiling`. -#. 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 - - make +The application is located in the ``l2fwd_keep_alive`` sub-directory. Running the Application ----------------------- @@ -114,7 +96,7 @@ To run the application in linuxapp environment with 4 lcores, 16 ports .. 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 +123,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 +142,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 +166,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->state_flags[rte_lcore_id()] = ALIVE; }