@@ -71,97 +71,80 @@ if [ -n "$LAN1PORT" ] ; then
setupPorts "$LAN1PORT" "${LAN1MODE}"
fi
-if ! uci -q get network.$SWITCHDEV > /dev/null || [ "$FORCEPARSE" = '1' ] ; then
-
- SWITCHHW=$(swconfig list | awk '{ print $4 }')
-
- uci set network.$SWITCHDEV=switch
- uci set network.$SWITCHDEV.name=$SWITCHHW
- uci set network.$SWITCHDEV.enable=1
- uci set network.$SWITCHDEV.reset=1
- uci set network.$SWITCHDEV.enable_vlan=1
-
- uci set network.${SWITCHDEV}_1=switch_vlan
- uci set network.${SWITCHDEV}_1.device=$SWITCHHW
- uci set network.${SWITCHDEV}_1.vlan=1
- uci set network.${SWITCHDEV}_1.ports="$CLIENT_PORTS"
-
- if [[ "$WANDEV" = "$SWITCHDEV" ]] || ! [[ -z "$WAN_PORTS" ]]; then
- uci set network.${SWITCHDEV}_2=switch_vlan
- uci set network.${SWITCHDEV}_2.device=$SWITCHHW
- uci set network.${SWITCHDEV}_2.vlan=2
- uci set network.${SWITCHDEV}_2.ports="$WAN_PORTS"
-
- enableAutoConf "$WANDEV.2"
- else
- enableAutoConf "$WANDEV"
- fi
-
- uci set network.${SWITCHDEV}_3=switch_vlan
- uci set network.${SWITCHDEV}_3.device=$SWITCHHW
- uci set network.${SWITCHDEV}_3.vlan=3
- uci set network.${SWITCHDEV}_3.ports="$BATMAN_PORTS"
-
- uci set network.mesh.ifname="$SWITCHDEV.1 bat0"
-
- uci set network.ethmesh.ifname="$SWITCHDEV.3"
-
- if [[ "$WANDEV" = "$SWITCHDEV" ]]; then
- uci set network.wan.ifname=$WANDEV.2
- else
- uci set network.wan.ifname=$WANDEV
- fi
-
- uci commit network
-fi
-
-if [ "$ONE_PORT" = "YES" ] && ( ! uci -q get network.$SWITCHDEV.ifname || [ "$FORCEPARSE" = '1' ] ) ; then
- uci set network.$SWITCHDEV=interface
- uci set network.$SWITCHDEV.ifname=$SWITCHDEV
- if [ "$ETHMODE" = "WAN" ]; then
- enableAutoConf "$WANDEV"
- uci set network.mesh.ifname="bat0"
- uci set network.wan.ifname="$WANDEV"
- uci del uci set network.ethmesh.ifname
- uci del network.eth0.macaddr
- elif [ "$ETHMODE" = "CLIENT" ] ; then
- disableAutoConf "$WANDEV"
- uci set network.mesh.ifname="bat0 $SWITCHDEV"
- uci set network.wan.ifname="eth1" #eth1 because it is default in config file
- uci del network.ethmesh.ifname
- uci del network.eth0.macaddr
- elif [ "$ETHMODE" = "BATMAN" ] ; then
- disableAutoConf "$WANDEV"
- uci set network.mesh.ifname="bat0"
- uci set network.wan.ifname="eth1" #eth1 because it is default in config file
- uci set network.ethmesh.ifname="$SWITCHDEV"
- ETH0MAC="w2ap"
- fi
- uci commit network
+if [ "$ONE_PORT" = "YES" ] ; then
+ if ! uci -q get "network.$SWITCHDEV.ifname" || [ "$FORCEPARSE" = '1' ] ; then
+ uci set "network.$SWITCHDEV=interface"
+ uci set "network.$SWITCHDEV.ifname=$SWITCHDEV"
+ if [ "$ETHMODE" = "WAN" ]; then
+ enableAutoConf "$WANDEV"
+ uci set network.mesh.ifname="bat0"
+ uci set network.wan.ifname="$WANDEV"
+ uci del network.ethmesh.ifname
+ uci del network.eth0.macaddr
+ elif [ "$ETHMODE" = "CLIENT" ] ; then
+ disableAutoConf "$WANDEV"
+ uci set network.mesh.ifname="bat0 $SWITCHDEV"
+ uci set network.wan.ifname="eth1" #eth1 because it is default in config file
+ uci del network.ethmesh.ifname
+ uci del network.eth0.macaddr
+ else # default=BATMAN
+ disableAutoConf "$WANDEV"
+ uci set network.mesh.ifname="bat0"
+ uci set network.wan.ifname="eth1" #eth1 because it is default in config file
+ uci set network.ethmesh.ifname="$SWITCHDEV"
+ ETHMESHMAC="$(macFlipLocalBit "$ROUTERMAC")"
+ ETHMESHDEV="$SWITCHDEV"
+ fi
+ uci -q commit network
+ fi
+else
+ if ! uci -q get "network.$SWITCHDEV" > /dev/null || [ "$FORCEPARSE" = '1' ] ; then
+ SWITCHHW="$(swconfig list | awk '{ print $4 }')"
+
+ uci set "network.$SWITCHDEV=switch"
+ uci set "network.$SWITCHDEV.name=$SWITCHHW"
+ uci set "network.$SWITCHDEV.enable=1"
+ uci set "network.$SWITCHDEV.reset=1"
+ uci set "network.$SWITCHDEV.enable_vlan=1"
+
+ uci set "network.${SWITCHDEV}_1=switch_vlan"
+ uci set "network.${SWITCHDEV}_1.device=$SWITCHHW"
+ uci set "network.${SWITCHDEV}_1.vlan=1"
+ uci set "network.${SWITCHDEV}_1.ports=$CLIENT_PORTS"
+
+ if [ "$WANDEV" = "$SWITCHDEV" ] || [ -n "$WAN_PORTS" ]; then
+ WANDEV="${SWITCHDEV}.2"
+ uci set "network.${SWITCHDEV}_2=switch_vlan"
+ uci set "network.${SWITCHDEV}_2.device=$SWITCHHW"
+ uci set "network.${SWITCHDEV}_2.vlan=2"
+ uci set "network.${SWITCHDEV}_2.ports=$WAN_PORTS"
+ fi
+ enableAutoConf "$WANDEV"
+
+ ETHMESHDEV="$SWITCHDEV.3"
+ uci set "network.${SWITCHDEV}_3=switch_vlan"
+ uci set "network.${SWITCHDEV}_3.device=$SWITCHHW"
+ uci set "network.${SWITCHDEV}_3.vlan=3"
+ uci set "network.${SWITCHDEV}_3.ports=$BATMAN_PORTS"
+
+ uci set network.mesh.ifname="$SWITCHDEV.1 bat0"
+ uci set network.wan.ifname="$WANDEV"
+ uci set network.ethmesh.ifname="$ETHMESHDEV"
+
+ uci -q commit network
+ fi
fi
/etc/init.d/network restart
-if [ -n "$ETHMESHMAC" ]; then
- fixMac "$ETHMESHMAC" "${SWITCHDEV}.3" "ethmesh"
+if [ -n "$ETHMESHMAC" ] && [ -n "$ETHMESHDEV" ]; then
+ fixMac "$ETHMESHMAC" "$ETHMESHDEV" "ethmesh"
fi
if [ -n "$ROUTERMAC" ]; then
fixMac "$ROUTERMAC" "br-mesh" "mesh"
fi
-if [[ -n "$ETH0MAC" ]]; then
- echo "Fixing MAC on eth0"
- sleep 10
- NEW_MACADDR=$(cat "/sys/class/net/${ETH0MAC}/address")
- uci set network.eth0.macaddr=$NEW_MACADDR
- uci commit network
- ifconfig eth0 down
- ifconfig eth0 hw ether $NEW_MACADDR
- ifconfig eth0 up
- /etc/init.d/network restart
-fi
-
if uci get network.mesh.ip6addr
then
echo "IPv6 for mesh is set already"