Go to file
Daniel Mrzyglod 7c76a747e6 bond: add mode 5
Add support for mode 5 (Transmit load balancing) into pmd driver

This patch add support for Adaptive transmit load balancing (mode 5) to the
librte_pmd_bond library. This mode provides an adaptive transmit load
balancing. It dynamically changes the transmitting slave, according to the
computed load.

Further details are described here:
https://www.kernel.org/doc/Documentation/networking/bonding.txt
In implementation callback is used for sorting slave order - providing
statistics for burst function about slave bandwith usage  and sort
interfaces due to usage.

Difference in this implementation vs Linux implementation:
- We Are trying send all pkts – If one interface hasn’t send packets we are
trying to send rest of packets by other slaves sorted previously by callback
function.

Some implementation details:
- Every 100ms is taken obytes statistics from every slave.
- Every 10 ms the slaves in  table are sorted and updated by callback -
bandwidth and successfully transmitted bytes from previous iteration which
happens every 100 ms
- There is callback function which updates this statistics for transparency and
for rather intensive computation involved in this mode.

Test report: http://dpdk.org/ml/archives/dev/2014-November/008729.html

Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>
Tested-by: SunX Jiajia <sunx.jiajia@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
2014-11-27 21:38:57 +01:00
app net: fix conflict with libc 2014-11-27 19:03:27 +01:00
config config: disable enic driver on Power 2014-11-27 19:12:43 +01:00
doc add prefix to cache line macros 2014-11-27 16:21:11 +01:00
examples add prefix to cache line macros 2014-11-27 16:21:11 +01:00
lib bond: add mode 5 2014-11-27 21:38:57 +01:00
mk add prefix to cache line macros 2014-11-27 16:21:11 +01:00
pkg version: 1.7.1 2014-09-03 13:28:26 +02:00
scripts scripts: fix symbol overriding in configuration 2014-11-27 19:12:43 +01:00
tools tools: fix setup script for Fedora 21 2014-10-10 17:50:31 +02:00
.gitignore init DPDK repository 2013-03-07 10:57:42 +01:00
GNUmakefile remove trailing whitespaces 2014-06-11 00:29:34 +02:00
LICENSE.GPL doc: GPL/LGPL licenses 2013-07-25 14:43:06 +02:00
LICENSE.LGPL doc: fix file format (dos to unix) 2013-09-06 11:43:07 +02:00
Makefile remove trailing whitespaces 2014-06-11 00:29:34 +02:00