net/cnxk: add device start and stop
[dpdk.git] / doc / guides / prog_guide / packet_distrib_lib.rst
index c95291d..3c3b746 100644 (file)
@@ -1,44 +1,24 @@
-..  BSD LICENSE
-    Copyright(c) 2010-2014 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) 2010-2014 Intel Corporation.
 
 Packet Distributor Library
 ==========================
 
 
 Packet Distributor Library
 ==========================
 
-The IntelĀ® DPDK Packet Distributor library is a library designed to be used for dynamic load balancing of traffic
+The DPDK Packet Distributor library is a library designed to be used for dynamic load balancing of traffic
 while supporting single packet at a time operation.
 When using this library, the logical cores in use are to be considered in two roles: firstly a distributor lcore,
 which is responsible for load balancing or distributing packets,
 and a set of worker lcores which are responsible for receiving the packets from the distributor and operating on them.
 The model of operation is shown in the diagram below.
 
 while supporting single packet at a time operation.
 When using this library, the logical cores in use are to be considered in two roles: firstly a distributor lcore,
 which is responsible for load balancing or distributing packets,
 and a set of worker lcores which are responsible for receiving the packets from the distributor and operating on them.
 The model of operation is shown in the diagram below.
 
-|packet_distributor1|
+.. figure:: img/packet_distributor1.*
+
+   Packet Distributor mode of operation
+
+There are two modes of operation of the API in the distributor library,
+one which sends one packet at a time to workers using 32-bits for flow_id,
+and an optimized mode which sends bursts of up to 8 packets at a time to workers, using 15 bits of flow_id.
+The mode is selected by the type field in the ``rte_distributor_create()`` function.
 
 Distributor Core Operation
 --------------------------
 
 Distributor Core Operation
 --------------------------
@@ -91,13 +71,15 @@ No packet ordering guarantees are made about packets which do not share a common
 Using the process and returned_pkts API, the following application workflow can be used,
 while allowing packet order within a packet flow -- identified by a tag -- to be maintained.
 
 Using the process and returned_pkts API, the following application workflow can be used,
 while allowing packet order within a packet flow -- identified by a tag -- to be maintained.
 
-.. image41_png has been renamed
 
 
-|packet_distributor2|
+.. figure:: img/packet_distributor2.*
+
+   Application workflow
+
 
 The flush and clear_returns API calls, mentioned previously,
 are likely of less use that the process and returned_pkts APIS, and are principally provided to aid in unit testing of the library.
 
 The flush and clear_returns API calls, mentioned previously,
 are likely of less use that the process and returned_pkts APIS, and are principally provided to aid in unit testing of the library.
-Descriptions of these functions and their use can be found in the IntelĀ® DPDK API Reference document.
+Descriptions of these functions and their use can be found in the DPDK API Reference document.
 
 Worker Operation
 ----------------
 
 Worker Operation
 ----------------
@@ -110,7 +92,3 @@ Since it may be desirable to vary the number of worker cores, depending on the t
 i.e. to save power at times of lighter load,
 it is possible to have a worker stop processing packets by calling "rte_distributor_return_pkt()" to indicate that
 it has finished the current packet and does not want a new one.
 i.e. to save power at times of lighter load,
 it is possible to have a worker stop processing packets by calling "rte_distributor_return_pkt()" to indicate that
 it has finished the current packet and does not want a new one.
-
-.. |packet_distributor1| image:: img/packet_distributor1.png
-
-.. |packet_distributor2| image:: img/packet_distributor2.png