diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm index f2c85d3e9..dafe89a3d 100755 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm @@ -11,7 +11,7 @@ function device_notvirtual(dev) for _, iface in ipairs(net:get_networks()) do local ifacen = iface:name() - local ifacename = uci:get("network",ifacen,"ifname") + local ifacename = uci:get("network",ifacen,"device") local ifacetype = uci:get("network",ifacen,"type") or "" local ifaceproto = uci:get("network",ifacen,"proto") or "" --if ifacename == dev and (ifacetype == "macvlan" or ifacetype == "bridge" or ifaceproto == "6in4") then diff --git a/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter b/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter index 452749803..928feb60f 100755 --- a/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter +++ b/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter @@ -39,7 +39,7 @@ omr_intf_set() { uci -q set network.$1.modalias="$(cat /sys/class/net/${ifname}/device/uevent | grep MODALIAS | cut -d '=' -f2 | tr -d '\n')-$mac" uci -q set network.$1.product="$(cat /sys/class/net/${ifname}/device/uevent | grep PRODUCT | cut -d '=' -f2 | tr -d '\n')" elif [ -n "$devicepath" ] && ([ "$(echo ${devicepath} | grep virtual)" != "" ] || [ "$(echo ${devicepath} | grep virtual)" = "" ] && [ "$(cat /sys/class/net/${ifname}/device/uevent | grep PRODUCT)" = "" ] || [ "$(cat /sys/class/net/${ifname}/device/uevent | grep PCI_SLOT_NAME)" != "" ] || [ "$(cat /sys/class/net/${ifname}tmp/device/uevent)" != "" ]); then - uci -q delete network.$1.device + #uci -q delete network.$1.device uci -q delete network.$1.modalias uci -q delete network.$1.product fi diff --git a/macvlan/files/etc/init.d/macvlan b/macvlan/files/etc/init.d/macvlan index a09988504..6669a9ff2 100755 --- a/macvlan/files/etc/init.d/macvlan +++ b/macvlan/files/etc/init.d/macvlan @@ -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 } diff --git a/openmptcprouter/files/etc/uci-defaults/1920-omr-network b/openmptcprouter/files/etc/uci-defaults/1920-omr-network index ef722926a..c8be3490a 100755 --- a/openmptcprouter/files/etc/uci-defaults/1920-omr-network +++ b/openmptcprouter/files/etc/uci-defaults/1920-omr-network @@ -27,7 +27,7 @@ _setup_macvlan() { set network.$1.masterintf=$_ifname EOF _macaddr=$(uci -q get "network.$1.macaddr") - _setup_macaddr "$1_dev" "${_macaddr:-auto$(date +%s)}" + _setup_macaddr "$1_dev" "${_macaddr:-$(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/')}" } #_setup_macvlan_update() {