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,16 +34,39 @@ _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
_setup_interface() {
local _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
#case "$_ifname" in
# eth*.*) return ;;
#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)" != "" ] && {
local _intfdev=$(sed 's/_dev//' $1)
uci -q get "network.$_intfdev.ifname" >/dev/null || {
@ -57,9 +80,8 @@ _setup_interface() {
}
return
}
local _type
config_get _type "$1" type
#_type="$(uci -q get network.$1.type)
if [ "$(uci -q get macvlan.$1)" != "" ]; then
_type="macvlan"
fi
@ -82,7 +104,7 @@ _setup_interface() {
[ -n "$_interface" ] && {
logger -t "macvlan" "Remove network.$1_dev"
uci -q batch <<-EOF
delete network.$1.interface
delete network.$1
set network.$1_dev.ifname=$_interface
EOF
}
@ -112,6 +134,8 @@ _setup_interface() {
start_service() {
. /lib/functions.sh
config_load macvlan
config_foreach _create_interface macvlan
config_load network
config_foreach _setup_interface interface
config_foreach _save_macaddr interface
@ -123,5 +147,5 @@ reload_service() {
}
service_triggers() {
procd_add_reload_trigger network
procd_add_reload_trigger network macvlan
}