I hereby bring you network coding in batman-adv (in its third revision.
This allows a relay to send two packets (to two destinations) in a single
transmission. Tests[1] have shown an increase in throughput up to 1.6
under the right circumstances.

For this to work, you will need to compile batman-adv with
CONFIG_BATMAN_ADV_NC=y and a wireless interface with working
promiscuous mode. The rest is taken care of by batman-adv and the
following patches.

Patch 5/6 depends on my previous patch on the mailing list:
"Return reason for failure in batadv_check_unicast_packet()"

[1] 
http://www.open-mesh.org/projects/open-mesh/wiki/2011-08-18-network-coding-first-steps

Martin Hundebøll (6):
  batman-adv: Add the initial code for network coding.
  batman-adv: Detect coding nodes and remove these after timeout
  batman-adv: Buffer unicast packets before forward.
  batman-adv: Code and transmit packets if possible.
  batman-adv: Save overheard and tx packets for decoding.
  batman-adv: Receive coded packets and decode them.

 Makefile               |    2 +
 Makefile.kbuild        |    1 +
 bat_iv_ogm.c           |    5 +
 compat.c               |   10 +
 compat.h               |    1 +
 debugfs.c              |   18 +
 gen-compat-autoconf.sh |    1 +
 main.c                 |    6 +
 main.h                 |   12 +-
 network-coding.c       | 1832 ++++++++++++++++++++++++++++++++++++++++++++++++
 network-coding.h       |  123 ++++
 originator.c           |    6 +
 packet.h               |   33 +
 routing.c              |   31 +-
 send.c                 |    5 +
 soft-interface.c       |   14 +
 sysfs-class-net-mesh   |    8 +
 sysfs.c                |    6 +
 types.h                |  124 ++++
 19 files changed, 2228 insertions(+), 10 deletions(-)
 create mode 100644 network-coding.c
 create mode 100644 network-coding.h

-- 
1.8.1.1

Reply via email to