Release 24.08
Changes:
- [core] Using raw sockets for injection instead of pcap
- [core] Added TX injection measurements
- [core] Added SNR, frequency and MCS reporting for RX.
- [core] Added initial support for using wfb_rx as shared library (used by external projects like android client with userspace wifi driver)
- [core] Added support for VHT modes
- [core] Added support for 8812eu card. Comparing to 8812au it supports 10MHz channels and thermal state reporting
- [core] Added experimental support for large packets. Now max MTU is 3993 instead of 1445, but for mavlink and tunnel it use old value by default for compatibility with old clients.
- [cli] Large UI refactoring:
- Show MCS, bandwidth and used FEC scheme
- Show Radio and UDP flow rates
- Show TX injection measurements
- Support live terminal resize
- [core] Added optional logging for radio channel stats and mavlink messages. Now you have full telemetry and link state log for offline debug
- [core] Added optional delay between sending each FEC packet. This is needed if you don't want to loose all FEC packets due to radio interference
- [core] Added experimental traffic shaper support. You can use standard linux
tc
infrastructure for wfb-ng traffic management. For example add different priority to different streams. See example inscripts/tc.sh
- [core] Added ability to add optional attributes to session packet without breaking protocol format. This is reserved for future use.
- [core] Added dynamic FEC and MCS change in wfb_tx. You can use wfb_tx_cmd or write your own client to switch FEC and/or MCS settings without stream interruption.
- [core] Changed TX card selection algorithm. Now only cards with near-maximum RX packet counter will be used in RSSI filtering. This will allow to ignore cards which reports high RSSI, but loose a lot of packets.
- [core] Encode frequency field in wrxfwd_t in the network byte order
- [core] Use only ip address of forwarder in antenna_id inside of aggregator.
Bug fixes:
- Fixed compatibility with python-3.12
- Fixed option name collision in config file.
mirror
url (used for OSD) renamed toosd
to prevent conflict with boolmirror
option ( mirror packets via all cards for redundancy)
Compatibility:
Radio protocol should be compatible with 23.08 if now tags added to session packets (default behavior for 24.08 but can change in future releases) and using MTU <= 1445
Supported WiFi harware:
- RTL8812au. (stable) 802.11ac capable. Requires external patched driver! System was tested with ALPHA AWUS036ACH on both sides in 5GHz mode.
- RTL8812eu. (stable) 802.11ac capable. Requires external patched driver! System was tested with LB-LINK's BL-M8812EU2 module
Supported platforms:
WFB-ng should work on any linux based (little or big-endian) machines with usb port.
All builds are automatically tested on debian-11,12 and ubuntu-20.04, 22.04, 24.04 on following hardware platforms:
arm32v7
- debian and ubuntuarm64v8
- debian and ubuntuamd64
- debian and ubuntumips64le
- debians390x
- debianppc64le
- debian
See .github/workflows
for reference
Large packets note:
#define WIFI_MTU 4045
// Max injected packet size including all wfb-headers.
// Please note, that resulting data packet size depends from input UDP packet size
// and FEC packet size is max of all UDP packet sizes in this block.
// I.e. you can have WIFI_MTU=4045 but if you will not feed large UDP packets
// then resulting radio packets will be small.
// I've set it to 4045 to allow wfb_rx compatibility with custom wfb_tx builds that can
// have maximum allowed mtu value, but I don't recommend to feed UDP packets
// larger that 1448 bytes in production.
// You can increase it if your card allow larger packets,
// but this can lead to interoperability issues and/or kernel crashes.
// Use values > 1500 with caution!
// If you use non-default MTU then you need to configure proper MTU on WiFi cards manually
// (but 8812au and 8812eu drivers set max mtu by default)
// Also you may update radio_mtu in master.cfg - set it to not more than MAX_PAYLOAD_SIZE
// or see in output of wfb_tx (Radio MTU)
// Experemental max allowed WIFI_MTU for: rtl8812au -- 4049, rtl8812eu -- 4045
Raspberry PI 3B ready to use image:
Changes:
- Added support of 8812eu cards
- Added support of cameras used libcamera protocol
Image notes:
- This image was tested on RPI3b + Alfa AWUS036ACH + PI Camera. Use native ("thick") USB3 cable from this card. If you have issues with different HW setup then try to test this setup first before issuing bug report.
- OSD will not work on RPI4 due to dropped OpenVG support.
- If you use high-power cards like "taobao card" then you must use external high-current power supply and low-esr capacitor on the card. Don't power them from USB!
Gallery
Telegram group: (wfb-ng support) https://t.me/wfb_ng
Please note, that it is only one official group.