Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions net/mini-mwan/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
include $(TOPDIR)/rules.mk

PKG_NAME:=mini-mwan
PKG_VERSION:=1.0.0
PKG_RELEASE:=1

PKG_MAINTAINER:=Alex Schwartzman <[email protected]>
PKG_LICENSE:=GPL-2.0

include $(INCLUDE_DIR)/package.mk

define Package/mini-mwan
SECTION:=net
CATEGORY:=Network
TITLE:=Mini Multi-WAN daemon
DEPENDS:=+lua +libuci-lua +luci-lib-nixio +lua-cjson +libubus-lua +libubox-lua
PKGARCH:=all
endef

define Package/mini-mwan/description
Lightweight multi-WAN management daemon with failover and load balancing.
Monitors WAN interface connectivity and manages routing based on interface status.
Can be configured via UCI or LuCI (install luci-app-mini-mwan for web interface).
endef

define Build/Compile
endef

define Package/mini-mwan/conffiles
/etc/config/mini-mwan
endef

define Package/mini-mwan/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) ./files/mini-mwan.lua $(1)/usr/bin/mini-mwan

$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) ./files/mini-mwan.config $(1)/etc/config/mini-mwan

$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/mini-mwan.init $(1)/etc/init.d/mini-mwan
endef

$(eval $(call BuildPackage,mini-mwan))
21 changes: 21 additions & 0 deletions net/mini-mwan/files/mini-mwan.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
config settings 'settings'
option enabled '0'
option mode 'failover'
option check_interval '30'
option audit 'error'

config interface
option ping_target '9.9.9.9'
option device 'wg0'
option metric '20'
option weight '3'
option ping_count '3'
option ping_timeout '2'

config interface
option ping_target '1.0.0.1'
option device 'wg1'
option weight '3'
option ping_count '3'
option ping_timeout '2'
option metric '30'
41 changes: 41 additions & 0 deletions net/mini-mwan/files/mini-mwan.init
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#!/bin/sh /etc/rc.common

START=99
STOP=10

USE_PROCD=1
PROG=/usr/bin/mini-mwan

start_service() {
local enabled
config_load mini-mwan
config_get enabled settings enabled 0

[ "$enabled" -eq 0 ] && {
echo "Mini-MWAN is disabled"
return 1
}

procd_open_instance
procd_set_param command $PROG
procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param file /etc/config/mini-mwan
procd_close_instance

logger -t mini-mwan "Service started"
}

stop_service() {
logger -t mini-mwan "Service stopped"
}

reload_service() {
stop
start
}

service_triggers() {
procd_add_reload_trigger "mini-mwan"
}
Loading