netjsonconfig icon indicating copy to clipboard operation
netjsonconfig copied to clipboard

BATMAN-adv and 802.11s Mesh Interface Support

Open OliverKruecken opened this issue 2 months ago • 1 comments

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.

OliverKruecken avatar Oct 18 '25 17:10 OliverKruecken

@OliverKruecken thanks for contributing, at the moment we're busy with publishing the new major release of openwisp. As soon as we're done with this task I'll look into this.

nemesifier avatar Oct 24 '25 07:10 nemesifier