I hereby bring you network coding in batman-adv (in its fourth 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-…
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 | 136 ++++
19 files changed, 2240 insertions(+), 10 deletions(-)
create mode 100644 network-coding.c
create mode 100644 network-coding.h
--
1.8.1.1