fastd v20

New features

  • The OpenWrt init script has been migrated to USE_PROCD. This allows automatic restarts of fastd in the case of crashes.
    • The UCI options up and down have been removed, as their implementation was incompatible with procd-managed services. Use the options on_up and on_down instead.
  • Stale status sockets are deleted automatically now, so a restart after a crash does not fail. To avoid deleting active status sockets, a lock file is created next to the socket file.

Bugfixes

  • The forward feature was implemented incorrectly for configurations that use different encryption methods for different peers. As forward is generally disabled when running mesh routing protocols over fastd, affected configurations are very uncommon.
    • Packets forwarded from peers using the null method were not aligned correctly, which could lead to inferior performance or crashes on non-x86 platforms.
    • Certain combinations of encryption methods led to crashes due to insuffucient buffer space, triggering an assertion failure.

Other changes

  • The CMake-based build system of fastd has been replaced with the more modern Meson. Updated build instructions can be found in the Building fastd section.
  • Memory management of fastd’s packet buffers has been optimized, increasing throughput by 5~10% for many encryption methods, especially on low-end hardware.
  • The fastd build requires at least Bison 2.6 now.