1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-03-09 15:40:03 +00:00

Fix macvlan

This commit is contained in:
Ycarus (Yannick Chabanois) 2019-11-22 21:15:34 +01:00
parent 076ed244d1
commit b00135c4a0

View file

@ -34,15 +34,38 @@ _save_macaddr() {
} }
} }
_create_interface() {
local _masterifname
local _ifname=$1
config_get _masterifname "$1" ifname
uci batch <<-EOF
set network.$_ifname=interface
set network.$_ifname.type=macvlan
set network.$_ifname.proto=static
set network.$_ifname.masterintf=$_masterifname
EOF
}
# Configuration by interface # Configuration by interface
_setup_interface() { _setup_interface() {
local _ifname local _ifname
config_get _ifname "$1" ifname config_get _ifname "$1" ifname
[ -z "$_ifname" ] && config_get _ifname "$1" ifname #[ -z "$_ifname" ] && config_get _ifname "$1" ifname
# do not create macvlan for vlan # do not create macvlan for vlan
#case "$_ifname" in #case "$_ifname" in
# eth*.*) return ;; # eth*.*) return ;;
#esac #esac
local _type
config_get _type "$1" type
[ "$_type" = "macvlan" ] && [ "$(uci -q get macvlan.$1)" = "" ] && {
uci -q batch <<-EOF
delete network.$1
delete network.$1_dev
commit network
EOF
return
}
[ "$(echo $1 | grep _dev)" != "" ] && { [ "$(echo $1 | grep _dev)" != "" ] && {
local _intfdev=$(sed 's/_dev//' $1) local _intfdev=$(sed 's/_dev//' $1)
@ -58,8 +81,7 @@ _setup_interface() {
return return
} }
local _type #_type="$(uci -q get network.$1.type)
config_get _type "$1" type
if [ "$(uci -q get macvlan.$1)" != "" ]; then if [ "$(uci -q get macvlan.$1)" != "" ]; then
_type="macvlan" _type="macvlan"
fi fi
@ -82,7 +104,7 @@ _setup_interface() {
[ -n "$_interface" ] && { [ -n "$_interface" ] && {
logger -t "macvlan" "Remove network.$1_dev" logger -t "macvlan" "Remove network.$1_dev"
uci -q batch <<-EOF uci -q batch <<-EOF
delete network.$1.interface delete network.$1
set network.$1_dev.ifname=$_interface set network.$1_dev.ifname=$_interface
EOF EOF
} }
@ -112,6 +134,8 @@ _setup_interface() {
start_service() { start_service() {
. /lib/functions.sh . /lib/functions.sh
config_load macvlan
config_foreach _create_interface macvlan
config_load network config_load network
config_foreach _setup_interface interface config_foreach _setup_interface interface
config_foreach _save_macaddr interface config_foreach _save_macaddr interface
@ -123,5 +147,5 @@ reload_service() {
} }
service_triggers() { service_triggers() {
procd_add_reload_trigger network procd_add_reload_trigger network macvlan
} }