Skip to content

BATMAN-adv and 802.11s Mesh Interface Support #368

@OliverKruecken

Description

@OliverKruecken

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions