-
-
Notifications
You must be signed in to change notification settings - Fork 81
Description
Summary
Add support for BATMAN-adv (Better Approach To Mobile Ad-hoc Networking) mesh networking protocol and 802.11s wireless mesh interfaces to the OpenWrt backend of
netjsonconfig.
Motivation
BATMAN-adv is a popular Layer 2 mesh networking protocol used in decentralized mesh networks, community networks, and IoT deployments. Currently, netjsonconfig lacks native
support for configuring BATMAN-adv interfaces, forcing users to manually configure mesh networks or use workarounds.
Requested Functionality
BATMAN-adv Main Interface Support
Support for configuring the main BATMAN-adv virtual mesh interface with options for:
- Routing algorithm selection (BATMAN_IV or BATMAN_V)
- Bridge loop avoidance
- Gateway mode configuration (off/client/server)
- Hop penalty tuning
- MTU configuration
- Fragmentation control
BATMAN-adv Hard Interface Support
Support for configuring physical/wireless interfaces that participate in the mesh network:
- Binding physical devices to the mesh
- Association with master BATMAN-adv interface
- Support for 802.11s wireless mesh interfaces
Mesh-Specific Wireless Properties
Support for 802.11s mesh-specific wireless configuration:
- Mesh forwarding control
- RSSI threshold configuration
- WPA3 encryption for mesh networks
Use Cases
This feature would enable:
- Community mesh network deployments
- Redundant wireless backhaul networks
- IoT mesh networks with automatic routing
- Disaster recovery communication networks
- Rural connectivity projects using mesh topologies
- OpenWISP-managed mesh network infrastructure
Expected Behavior
Users should be able to define BATMAN-adv mesh networks using NetJSON configuration, and netjsonconfig should automatically generate the correct OpenWrt UCI configuration
for mesh networking.
Example Use Case
A user wants to configure a mesh node with a BATMAN-adv interface and a wireless mesh hard interface. They should be able to express this declaratively in NetJSON format,
and netjsonconfig should generate the appropriate OpenWrt configuration files.