Skip to content

Creates a map of OpenWrt mesh nodes and clients connected via WiFi using paramiko (SSH), matplotlib and networkx including link quality information

License

Notifications You must be signed in to change notification settings

CodeFinder2/python-openwrt-mesh-map

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

Creates a map of OpenWrt mesh nodes and clients connected via WiFi using paramiko (SSH), matplotlib and networkx, and adds information (signal strength, throughput and latency) to the mesh links. Client links only have signal strength (%). Requires Python v3. Hopefully, this helps in setting up a better mesh topology.

Terminology

A mesh node (blue) is an OpenWrt router configured to be part of a 802.11s mesh. A mesh link (dashed line) is a connection between two mesh nodes. A client (e.g., your smartphone) is represented as a yellow circle. A client link is a connection between a client and a mesh node.

Usage

To use this:

  • Clone this repo: git clone git@github.com:CodeFinder2/python-openwrt-mesh-map.git && cd python-openwrt-mesh-map.
  • Create a virtual environment: python3 -m venv env && source env/bin/activate.
  • Install dependencies: pip install -r requirements.txt.
  • Add your router setup (hostnames, username, passwords) in mesh_nodes.py. To use SSH keys, set an empty password.
  • Run python main.py and wait for the resulting diagram. You must be connected to one of the routers.

This has been tested with OpenWrt 24.10.4 on four Linksys MX5300 devices forming a pure 802.11s mesh:

example

Notes

  • It has been observed that a client has been displayed with more than one connection, i.e., there were multiple client links (lines from one client to more than one mesh node). This seems to be related to the update interval of the kernel (network driver stack). That is, in such cases, the client was also listed in the OpenWrt Status page of the respective mesh nodes. After some time, it should disappear.

About

Creates a map of OpenWrt mesh nodes and clients connected via WiFi using paramiko (SSH), matplotlib and networkx including link quality information

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages