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:
parent
076ed244d1
commit
b00135c4a0
1 changed files with 31 additions and 7 deletions
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue