mirror of https://github.com/openwrt/packages.git
mesh11sd: add new package
Mesh11sd autonomously manages all aspects of an 802.11s mesh network, with dynamic mesh parameters across all nodes and point to multi-point vxlan tunneling. Moved from the openwrt/routing feed, as discussed in https://github.com/openwrt/routing/issues/184. Carries three backports on top of the routing feed's copy, all from the 7.2.0 development cycle and all pointed out by upstream: - 443cdb4c handles the informational options before get_current_setup() runs. The setup pass waits for br-lan through wait_for_interface(), so on a host without that bridge "mesh11sd -v" took the full interface_timeout, ten seconds by default. That is invisible on a running router and fatal in the package CI, which kills each version probe after ten seconds. - 9d18091f makes the script header agree with the LICENSE file the project ships. It claimed GPL version 3 or later while the file is GPL version 2, so PKG_LICENSE follows it to GPL-2.0-or-later. - d0db5353 fixes a typo in get_current_setup(): the length came from $apmon_cgi_dir, which is never set, so strlen was always 0 and the trailing slash check read the wrong character. The submenu is Mesh rather than the Network top level the feed copy used; the other mesh packages follow once the move from the routing feed is complete. Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>pull/30296/head
parent
2312f86f7e
commit
cf71e9d2b3
|
|
@ -0,0 +1,60 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
# Copyright (C) 2022 - 2026 BlueWave Projects and Services <licence@blue-wave.net>
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mesh11sd
|
||||
PKG_VERSION:=6.2.1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_MAINTAINER:=Rob White <rob@blue-wave.net>
|
||||
PKG_LICENSE:=GPL-2.0-or-later
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/opennds/mesh11sd/tar.gz/v$(PKG_VERSION)?
|
||||
PKG_HASH:=8ee36f12873a4648edc0ba5ac991a93ae79c6cd48940d9b7e999bb845cf78471
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/mesh11sd
|
||||
SUBMENU:=Mesh
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE:=Dynamic 802.11s Mesh Management Daemon
|
||||
PKGARCH:=all
|
||||
URL:=https://github.com/opennds/mesh11sd
|
||||
endef
|
||||
|
||||
define Package/mesh11sd/description
|
||||
Mesh11sd autonomously manages all aspects of an 802.11s mesh network.
|
||||
It acts as a service daemon.
|
||||
Mesh parameters are dynamically set across all nodes.
|
||||
Point to multi-point vxlan tunneling is provided by default.
|
||||
Custom vlan trunking over the vxlan tunnel is fully supported.
|
||||
Cabled sections of backhaul are fully supported.
|
||||
Access Point usage data is collected in a central database.
|
||||
A command line interface is provided for many functions.
|
||||
An optional Customer/Client Premises Equipment (CPE) mode is provided
|
||||
CPE mode greatly simplifies rollout of community WISP projects.
|
||||
endef
|
||||
|
||||
define Package/mesh11sd/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(INSTALL_DIR) $(1)/etc/config
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/mesh11sd $(1)/usr/sbin
|
||||
$(INSTALL_CONF) $(PKG_BUILD_DIR)/linux_openwrt/mesh11sd/files/etc/config/mesh11sd $(1)/etc/config/
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/linux_openwrt/mesh11sd/files/etc/init.d/mesh11sd $(1)/etc/init.d/
|
||||
endef
|
||||
|
||||
define Package/mesh11sd/conffiles
|
||||
/etc/config/mesh11sd
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,mesh11sd))
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
From 443cdb4c9f0ca20466f6ae31a81047bfeb95825c Mon Sep 17 00:00:00 2001
|
||||
From: Rob White <rob@blue-wave.net>
|
||||
Date: Thu, 6 Aug 2026 21:57:14 +0000
|
||||
Subject: [PATCH] Fix - do not run get_current_setup until after version
|
||||
argument
|
||||
|
||||
get_current_setup() runs before any argument is parsed, so mesh11sd -v
|
||||
and mesh11sd -h collect the whole runtime environment first. That
|
||||
includes refresh_bridgemac(), which calls wait_for_interface() for
|
||||
br-lan; when that interface is not up, the poll loop runs for the full
|
||||
interface_timeout, ten seconds by default.
|
||||
|
||||
On a running router br-lan is up, the loop exits on its first iteration
|
||||
and the delay is invisible. It shows up wherever the interface is absent
|
||||
or still coming up, such as the OpenWrt package CI, which probes every
|
||||
installed executable for its version with a ten second timeout.
|
||||
|
||||
Handle the informational options first and exit, then run the setup for
|
||||
the options that need it.
|
||||
|
||||
Upstream-Status: Backport [https://github.com/openNDS/mesh11sd/commit/443cdb4c9f0ca20466f6ae31a81047bfeb95825c]
|
||||
---
|
||||
--- a/src/mesh11sd
|
||||
+++ b/src/mesh11sd
|
||||
@@ -5976,8 +5976,6 @@ else
|
||||
mesh11sdpid=$(pgrep -f "/bin/sh /usr/sbin/mesh11sd")
|
||||
fi
|
||||
|
||||
-get_current_setup 2> /dev/null
|
||||
-
|
||||
if [ -z "$1" ] || [ "$1" = "-h" ] || [ $1 = "--help" ] || [ $1 = "help" ]; then
|
||||
echo "
|
||||
Usage: mesh11sd [option] [argument...]]
|
||||
@@ -6153,11 +6151,16 @@ if [ -z "$1" ] || [ "$1" = "-h" ] || [ $
|
||||
For further documentation, see: https://github.com/openNDS/mesh11sd#readme
|
||||
|
||||
"
|
||||
+ exit 0
|
||||
|
||||
elif [ "$1" = "-v" ] || [ $1 = "--version" ] || [ $1 = "version" ]; then
|
||||
echo "mesh11sd version $version"
|
||||
+ exit 0
|
||||
+fi
|
||||
+
|
||||
+get_current_setup 2> /dev/null
|
||||
|
||||
-elif [ "$1" = "debuglevel" ]; then
|
||||
+if [ "$1" = "debuglevel" ]; then
|
||||
|
||||
if [ -z "$2" ];then
|
||||
echo "$debuglevel"
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
From 9d18091f27e5fdd9406c6ac03267199a059fc8f5 Mon Sep 17 00:00:00 2001
|
||||
From: Rob White <rob@blue-wave.net>
|
||||
Date: Thu, 6 Aug 2026 21:46:37 +0000
|
||||
Subject: [PATCH] Fix -licence discrepancy
|
||||
|
||||
The script header claimed GPL version 3 or later, while the LICENSE file
|
||||
the project ships is GPL version 2. Make the header agree with it.
|
||||
|
||||
Upstream-Status: Backport [https://github.com/openNDS/mesh11sd/commit/9d18091f27e5fdd9406c6ac03267199a059fc8f5]
|
||||
---
|
||||
--- a/src/mesh11sd
|
||||
+++ b/src/mesh11sd
|
||||
@@ -1,9 +1,9 @@
|
||||
#!/bin/sh
|
||||
# Copyright (C) BlueWave Projects and Services 2015-2026
|
||||
#
|
||||
-# This software is released under the GNU General Public License version 3 or any later version.
|
||||
+# This software is released under the GNU General Public License version 2 or any later version.
|
||||
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation,
|
||||
-# either version 3 of the License, or (at your option) any later version.
|
||||
+# either version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the GNU General Public License for more details.
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
From d0db5353ffc8574c30620fae1f54b13f7f873c6f Mon Sep 17 00:00:00 2001
|
||||
From: Rob White <rob@blue-wave.net>
|
||||
Date: Thu, 6 Aug 2026 22:05:02 +0000
|
||||
Subject: [PATCH] Fix - typo in get_current_setup() getting apmond_cgi_dir
|
||||
|
||||
The length was taken from $apmon_cgi_dir, which is never set, so strlen
|
||||
was always 0 and the trailing slash check read the wrong character.
|
||||
|
||||
Upstream-Status: Backport [https://github.com/openNDS/mesh11sd/commit/d0db5353ffc8574c30620fae1f54b13f7f873c6f]
|
||||
---
|
||||
--- a/src/mesh11sd
|
||||
+++ b/src/mesh11sd
|
||||
@@ -989,7 +989,7 @@ get_current_setup() {
|
||||
apmond_cgi_dir="/www/cgi-bin"
|
||||
fi
|
||||
|
||||
- strlen=$((${#apmon_cgi_dir}));
|
||||
+ strlen=$((${#apmond_cgi_dir}));
|
||||
lastchar=${apmond_cgi_dir:$strlen -1 :1}
|
||||
|
||||
if [ "$lastchar" != "/" ]; then
|
||||
Loading…
Reference in New Issue