1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-02-14 19:41:51 +00:00

Fix macvlan

This commit is contained in:
Ycarus (Yannick Chabanois) 2022-02-15 20:47:08 +01:00
parent cd38c1a7e8
commit 0395613d5f

View file

@ -13,6 +13,7 @@ _save_macaddr() {
local _macaddr
uci -q get "network.$1_dev.ifname" >/dev/null && {
_ifname=$(uci -q get "network.$1.ifname")
[ -z "$_ifname" ] && _ifname=$(uci -q get "network.$1.device")
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
@ -25,6 +26,7 @@ _save_macaddr() {
}
[ -z "$(uci -q get network.$1.macaddr)" ] && {
_ifname=$(uci -q get "network.$1.ifname")
[ -z "$_ifname" ] && _ifname=$(uci -q get "network.$1.device")
[ -n "$_ifname" ] && [ -z "$(echo $_ifname | grep '\.')" ] && {
_macaddr=$(ip link show dev $_ifname 2>/dev/null | grep link | awk '{print $2}')
[ -n "$_macaddr" ] && {
@ -42,8 +44,6 @@ _delete_device() {
uci -q batch <<-EOF
delete network.$1
commit network
delete macvlan.$1
commit macvlan
EOF
}
return
@ -67,7 +67,7 @@ _setup_interface() {
[ -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)
[ -n "$(uci -q get network.$1.macaddr)" ] && uci -q set network.$1_dev.macaddr=$(uci -q get network.$1.macaddr)
uci set network.$1.ifname=$1
uci set network.$1.device=$1
uci -q commit network
return 0
}
@ -75,9 +75,11 @@ _setup_interface() {
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.type='macvlan'
set network.$1_dev.ifname=$_ifname
set network.$1.ifname=$1
set network.$1_dev.mode='private'
set network.$1_dev.multicast=0
set network.$1.device=$1
set network.$1.masterintf=$_ifname
set network.$1.type=macvlan
set network.$1.defaultroute=0
@ -86,7 +88,7 @@ _setup_interface() {
#_macaddr=$(uci -q get "network.$1.macaddr")
#_setup_macaddr "$1" "${_macaddr:-auto$(date +%s)}"
_setup_macaddr "$1" "auto$(date +%s)"
_setup_macaddr "$1" "$(dd if=/dev/urandom bs=1024 count=1 2>/dev/null | md5sum | sed -e 's/^\(..\)\(..\)\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4:\5:\6/' -e 's/^\(.\)[13579bdf]/\10/')"
uci -q set network.$1_dev.mtu=$(uci -q get network.$1.mtu)
uci -q commit network
}