mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-02-12 10:31:51 +00:00
Add new macvlan packages with needed scripts
This commit is contained in:
parent
48aaf6bc5e
commit
7ef3c690b8
5 changed files with 165 additions and 2 deletions
45
macvlan/Makefile
Normal file
45
macvlan/Makefile
Normal file
|
@ -0,0 +1,45 @@
|
|||
#
|
||||
# Copyright (C) 2018-2019 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v3 or later.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=macvlan
|
||||
PKG_VERSION:=1
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_MAINTAINER:=Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
|
||||
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/macvlan
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE:=MacVLAN configuration scripts
|
||||
DEPENDS:=+kmod-macvlan
|
||||
PKGARCH:=all
|
||||
endef
|
||||
|
||||
define Package/macvlan/description
|
||||
MacVLAN configuration for OpenMPTCProuter.
|
||||
endef
|
||||
|
||||
define Build/Prepare
|
||||
endef
|
||||
|
||||
define Build/Configure
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
endef
|
||||
|
||||
define Package/macvlan/install
|
||||
$(INSTALL_DIR) $(1)
|
||||
$(CP) ./files/* $(1)/
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,macvlan))
|
0
macvlan/files/etc/config/macvlan
Normal file
0
macvlan/files/etc/config/macvlan
Normal file
106
macvlan/files/etc/init.d/macvlan
Executable file
106
macvlan/files/etc/init.d/macvlan
Executable file
|
@ -0,0 +1,106 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
|
||||
START=4
|
||||
USE_PROCD=1
|
||||
|
||||
_setup_macaddr() {
|
||||
uci -q get "network.$1_dev.macaddr" >/dev/null && return
|
||||
uci -q set "network.$1_dev.macaddr=$2"
|
||||
}
|
||||
|
||||
_save_macaddr() {
|
||||
local _ifname
|
||||
local _macaddr
|
||||
uci -q get "network.$1_dev.ifname" >/dev/null && {
|
||||
_ifname=$(uci -q get "network.$1.ifname")
|
||||
if [ -n "$(uci -q get network.$1.macaddr)" ] && [ "$(uci -q get network.$1.macaddr)" != "$(uci -q get network.$1_dev.macaddr)" ]; then
|
||||
uci -q set network.$1_dev.macaddr="$(uci -q get network.$1.macaddr)"
|
||||
else
|
||||
_macaddr=$(ip link show dev $_ifname 2>/dev/null | grep link | awk '{print $2}')
|
||||
[ -n "$_macaddr" ] && {
|
||||
uci -q set network.$1_dev.macaddr=$_macaddr
|
||||
uci -q set network.$1.macaddr=$_macaddr
|
||||
}
|
||||
fi
|
||||
}
|
||||
[ -z "$(uci -q get network.$1.macaddr)" ] && {
|
||||
_ifname=$(uci -q get "network.$1.ifname")
|
||||
[ -n "$_ifname" ] && {
|
||||
_macaddr=$(ip link show dev $_ifname 2>/dev/null | grep link | awk '{print $2}')
|
||||
[ -n "$_macaddr" ] && {
|
||||
uci -q set network.$1.macaddr=$_macaddr
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_delete_device() {
|
||||
[ "$(echo $1 | grep _dev)" != "" ] && {
|
||||
local _intfdev=$(echo $1 | sed 's/_dev//')
|
||||
[ "$(uci -q get network.$_intfdev.type)" != "macvlan" ] && {
|
||||
logger -t "macvlan" "$_intfdev type is not MacVLAN, remove device network.$1"
|
||||
uci -q batch <<-EOF
|
||||
delete network.$1
|
||||
commit network
|
||||
delete macvlan.$1
|
||||
commit macvlan
|
||||
EOF
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# Configuration by interface
|
||||
_setup_interface() {
|
||||
local _ifname
|
||||
config_get _ifname "$1" masterintf
|
||||
[ -z "$_ifname" ] && return
|
||||
local _type
|
||||
config_get _type "$1" type
|
||||
config_get _proto "$1" proto
|
||||
[ "$_proto" = "macvlan" ] && _type="macvlan"
|
||||
[ "$_type" = "macvlan" ] || return 0
|
||||
|
||||
uci -q get "network.$1_dev.ifname" >/dev/null && {
|
||||
uci -q set network.$1_dev.mtu=$(uci -q get network.$1.mtu)
|
||||
[ -z "$(uci -q get network.$1.masterintf)" ] && uci -q set network.$1.masterintf=$(uci -q get network.$1_dev.ifname)
|
||||
[ -n "$(uci -q get network.$1.masterintf)" ] && uci -q set network.$1_dev.ifname=$(uci -q get network.$1.masterintf)
|
||||
[ -z "$(uci -q get network.$1.macaddr)" ] && uci -q set network.$1_dev.macaddr=$(uci -q get network.$1.macaddr)
|
||||
uci -q commit network
|
||||
return 0
|
||||
}
|
||||
|
||||
uci -q batch <<-EOF
|
||||
set network.$1_dev=device
|
||||
set network.$1_dev.name=$1
|
||||
set network.$1_dev.type=macvlan
|
||||
set network.$1_dev.ifname=$_ifname
|
||||
set network.$1.ifname=$1
|
||||
set network.$1.masterintf=$_ifname
|
||||
set network.$1.type=macvlan
|
||||
set network.$1.defaultroute=0
|
||||
EOF
|
||||
|
||||
_macaddr=$(uci -q get "network.$1.macaddr")
|
||||
_setup_macaddr "$1" "${_macaddr:-auto$(date +%s)}"
|
||||
uci -q set network.$1_dev.mtu=$(uci -q get network.$1.mtu)
|
||||
uci -q commit network
|
||||
}
|
||||
|
||||
start_service() {
|
||||
. /lib/functions.sh
|
||||
config_load network
|
||||
config_foreach _delete_device device
|
||||
config_foreach _setup_interface interface
|
||||
config_foreach _save_macaddr interface
|
||||
uci -q commit network
|
||||
}
|
||||
|
||||
reload_service() {
|
||||
start
|
||||
}
|
||||
|
||||
service_triggers() {
|
||||
procd_add_reload_trigger network
|
||||
}
|
11
macvlan/files/etc/uci-defaults/40_luci-app-macvlan
Normal file
11
macvlan/files/etc/uci-defaults/40_luci-app-macvlan
Normal file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
delete ucitrack.@macvlan[-1]
|
||||
add ucitrack macvlan
|
||||
set ucitrack.@macvlan[-1].init=macvlan
|
||||
commit ucitrack
|
||||
EOF
|
||||
|
||||
rm -f /tmp/luci-indexcache
|
||||
exit 0
|
|
@ -44,7 +44,7 @@ MY_DEPENDS := \
|
|||
luci-app-uhttpd \
|
||||
luci-mod-rpc rpcd-mod-rpcsys rpcd-mod-file rpcd-mod-iwinfo \
|
||||
luci-app-openvpn \
|
||||
luci-app-macvlan \
|
||||
macvlan \
|
||||
shadowsocks-libev-ss-server shadowsocks-libev-ss-tunnel \
|
||||
omr-6in4 ip6tables-mod-nat luci-proto-ipv6 6to4 6in4 6rd ip6tables \
|
||||
speedtestc \
|
||||
|
@ -93,7 +93,8 @@ MY_DEPENDS := \
|
|||
# lcd4linux-full
|
||||
# kmod-spi-gpio-custom
|
||||
|
||||
OMR_SUPPORTED_LANGS := ca zh-cn en fr de el he hu it ja ms no pl pt-br pt ro ru es sv uk vi
|
||||
#OMR_SUPPORTED_LANGS := ar bg bn_BD ca en fi fr de el he hi hu it ja mr ms nb_NO pl pt_BR pt ro ru es sv uk vi zh_Hans zh_Hant
|
||||
OMR_SUPPORTED_LANGS := ar bg ca cs de en fi fr de el he hi hu it ja ko mr ms no pl pt-br pt ro ru es sk sv tr uk vi zh-cn zh-tw
|
||||
|
||||
define Package/$(PKG_NAME)
|
||||
SECTION:=OMR
|
||||
|
|
Loading…
Reference in a new issue