Hello Marek and folks,
chasing a race condition, I might have delved a little too deep into
openwrt boot sequence :(
AFAICU, currently there's a /etc/hotplug.d/net/99-batman-adv script
which tries to configure both bat0 , and any interfaces coming up that
might have to be included there. Problem is, hotplug.d/net scripts are
called when interface is "added" but not necessarilly brought up yet.
So there's a "sleep 3s" that works in most cases as a window for slow
hardware bring up the interface.
...in most cases :(
on an old nanoloco2, creating 2 wifi-ifaces in ap mode and 1 in ibss
mode, managed with batman-adv, the sleep 3s is not enough. A 6s
timeout works around it, but maybe there's a better solution?
I've divided the script, putting the "add candidate interfaces to
bat0" into /etc/hotplug.d/*iface*/99-batman-adv , which gets called
precisely after an interface is actually brought up.
This works as expected, and i could even eliminate the original 3s sleep.
hotplug.d/iface script adds candidate interfaces to batX after they
are brought up
hotplug.d/net script configures batX as they appear,
Would that work in general? Or was the single hotplug.d/net
implemented that way, for a reason i'm missing?
I hereby bring you network coding in batman-adv. (Changed accoring
to Antonios partlial review). This allows a relay to send two packets
(to two destinations) in a single transmission. Tests 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
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 | 13 +-
network-coding.c | 1817 ++++++++++++++++++++++++++++++++++++++++++++++++
network-coding.h | 123 ++++
originator.c | 6 +
packet.h | 33 +
routing.c | 26 +-
send.c | 5 +
soft-interface.c | 14 +
sysfs-class-net-mesh | 8 +
sysfs.c | 6 +
types.h | 123 ++++
19 files changed, 2209 insertions(+), 9 deletions(-)
create mode 100644 network-coding.c
create mode 100644 network-coding.h