=====================================
In addition to Poll Mode Drivers (PMDs) for physical and virtual hardware,
-Intel® DPDK also includes a pure-software library that
+DPDK also includes a pure-software library that
allows physical PMD's to be bonded together to create a single logical PMD.
-|bond-overview|
+.. figure:: img/bond-overview.*
+
+ Bonded PMDs
+
The Link Bonding PMD library(librte_pmd_bond) supports bonding of groups of
``rte_eth_dev`` ports of the same speed and duplex to provide
The Link Bonding PMD Library is enabled by default in the build
configuration files, the library can be disabled by setting
- ``CONFIG_RTE_LIBRTE_PMD_BOND=n`` and recompiling the Intel® DPDK.
+ ``CONFIG_RTE_LIBRTE_PMD_BOND=n`` and recompiling the DPDK.
Link Bonding Modes Overview
---------------------------
* **Round-Robin (Mode 0):**
-|bond-mode-0|
+.. figure:: img/bond-mode-0.*
+
+ Round-Robin (Mode 0)
+
This mode provides load balancing and fault tolerance by transmission of
packets in sequential order from the first available slave device through
* **Active Backup (Mode 1):**
-|bond-mode-1|
+.. figure:: img/bond-mode-1.*
+
+ Active Backup (Mode 1)
+
In this mode only one slave in the bond is active at any time, a different
slave becomes active if, and only if, the primary active slave fails,
* **Balance XOR (Mode 2):**
-|bond-mode-2|
+.. figure:: img/bond-mode-2.*
+
+ Balance XOR (Mode 2)
+
This mode provides transmit load balancing (based on the selected
transmission policy) and fault tolerance. The default policy (layer2) uses
a simple calculation based on the packet flow source and destination MAC
- addresses aswell as the number of active slaves available to the bonded
+ addresses as well as the number of active slaves available to the bonded
device to classify the packet to a specific slave to transmit on. Alternate
transmission policies supported are layer 2+3, this takes the IP source and
destination addresses into the calculation of the transmit slave port and
destination addresses as well as the TCP/UDP source and destination port.
.. note::
- The colouring differences of the packets are used to identify different flow
+ The coloring differences of the packets are used to identify different flow
classification calculated by the selected transmit policy
* **Broadcast (Mode 3):**
-|bond-mode-3|
+.. figure:: img/bond-mode-3.*
+
+ Broadcast (Mode 3)
+
This mode provides fault tolerance by transmission of packets on all slave
ports.
* **Link Aggregation 802.3AD (Mode 4):**
-|bond-mode-4|
+.. figure:: img/bond-mode-4.*
+
+ Link Aggregation 802.3AD (Mode 4)
+
This mode provides dynamic link aggregation according to the 802.3ad
specification. It negotiates and monitors aggregation groups that share the
* **Transmit Load Balancing (Mode 5):**
-|bond-mode-5|
+.. figure:: img/bond-mode-5.*
+
+ Transmit Load Balancing (Mode 5)
+
This mode provides an adaptive transmit load balancing. It dynamically
changes the transmitting slave, according to the computed load. Statistics
----------------------
The librte_pmd_bond bonded device are compatible with the Ethernet device API
-exported by the Ethernet PMDs described in the *Intel® DPDK API Reference*.
+exported by the Ethernet PMDs described in the *DPDK API Reference*.
The Link Bonding Library supports the creation of bonded devices at application
startup time during EAL initialization using the ``--vdev`` option as well as
.. code-block:: console
$RTE_TARGET/app/testpmd -c '0xf' -n 4 --vdev 'eth_bond0,mode=2, slave=0000:00a:00.01,slave=0000:004:00.00,xmit_policy=l34' -- --port-topology=chained
-
-.. |bond-overview| image:: img/bond-overview.svg
-.. |bond-mode-0| image:: img/bond-mode-0.svg
-.. |bond-mode-1| image:: img/bond-mode-1.svg
-.. |bond-mode-2| image:: img/bond-mode-2.svg
-.. |bond-mode-3| image:: img/bond-mode-3.svg
-.. |bond-mode-4| image:: img/bond-mode-4.svg
-.. |bond-mode-5| image:: img/bond-mode-5.svg