zfec usage on embedded microcontrollers
Stuart Longland
stuartl at longlandclan.yi.org
Tue Dec 30 10:29:37 UTC 2014
Hi all,
I've been fiddling with the zfec Python code and while it looks great
for introducing some robustness in data transmission on desktop
computers, I was wondering if there was a good guide on the underlying
algorithm that would enable its implementation on microcontrollers.
I dabble a bit in packet radio on the amateur radio bands. The standard
way of communicating is via the AX.25 protocol which operates via
standard FM radios using 1200-baud AFSK (aka "Bell 203") modulation.
AFSK when transmitted through a single-sideband set produces plain FSK
which works reasonably well, however performance isn't so great on FM.
However, it's what was chosen for AX.25 back in the late 80's, and so
for legacy reasons, it's what we're stuck with.
I've been contemplating the idea of using AX.25 as a dumb media access
control layer for IP(v6?) datagrams, breaking up the 1280-byte MTU
frames into zfec-encoded sub-frames that are sent as individual AX.25
"UI" frames.
This is easily doable on a desktop computer or laptop. zfec can be
adjusted depending on the packet loss, with redundancy dialled up or
down based on link performance.
To improve coverage, we sometimes install temporary repeaters which are
basically just dumb nodes that repeat frames when asked.
These dumb repeaters would have no knowledge of zfec or TCP/IP, and so
it'd be nice to have a cheap AVR microcontroller that could be plugged
into the back of them and be able to make some decisions without having
to be explicitly instructed to forward frames.
e.g. think of what an Ethernet switch does versus an Ethernet hub.
This favours an implementation of zfec that uses minimal RAM and
preferably can take RAM allocations from the stack or static blocks
instead of using malloc/free.
Has anyone tried or thought of a small implementation of zfec that would
be suited to this sort of environment?
Regards,
--
Stuart Longland (aka Redhatter, VK4MSL)
I haven't lost my mind...
...it's backed up on a tape somewhere.
More information about the tahoe-dev
mailing list