Message ID | 1514919746-46974-1-git-send-email-freifunk@adrianschmutzler.de |
---|---|
State | Superseded |
Headers | show |
diff --git a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork index 0fbff10..ded9485 100755 --- a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork +++ b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork @@ -71,96 +71,81 @@ 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" - - echo "# Allow IPv6 RAs on WAN Port" >> /etc/sysctl.conf - - 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" - - echo "net.ipv6.conf.$WANDEV.2.accept_ra_defrtr = 1" >> /etc/sysctl.conf - echo "net.ipv6.conf.$WANDEV.2.accept_ra_pinfo = 1" >> /etc/sysctl.conf - echo "net.ipv6.conf.$WANDEV.2.autoconf = 1" >> /etc/sysctl.conf - echo "net.ipv6.conf.$WANDEV.2.accept_ra_rtr_pref = 1" >> /etc/sysctl.conf - else - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> /etc/sysctl.conf - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> /etc/sysctl.conf - echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> /etc/sysctl.conf - 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 +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" + wanon="0" + if [ "$ETHMODE" = "WAN" ]; then + wanon="1" + 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 + 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 + 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" + + echo "# Allow IPv6 RAs on WAN Port" >> /etc/sysctl.conf + + wanon="1" + 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 + + 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 - -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 - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> /etc/sysctl.conf - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> /etc/sysctl.conf - echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> /etc/sysctl.conf - 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 - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 0" >> /etc/sysctl.conf - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 0" >> /etc/sysctl.conf - echo "net.ipv6.conf.$WANDEV.autoconf = 0" >> /etc/sysctl.conf - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 0" >> /etc/sysctl.conf - 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 - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 0" >> /etc/sysctl.conf - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 0" >> /etc/sysctl.conf - echo "net.ipv6.conf.$WANDEV.autoconf = 0" >> /etc/sysctl.conf - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 0" >> /etc/sysctl.conf - 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" - fixMac "$(macFlipLocalBit "$ROUTERMAC")" "eth0" "eth0" "1" - fi - uci commit network +if [ -n "$wanon" ]; then + echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = $wanon" >> /etc/sysctl.conf + echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = $wanon" >> /etc/sysctl.conf + echo "net.ipv6.conf.$WANDEV.autoconf = $wanon" >> /etc/sysctl.conf + echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = $wanon" >> /etc/sysctl.conf 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
Tested successfully on WR841N v12. On ONEPORT (AC Mesh), bat0 is not coming up and thus br-mesh is missing... Open issues: ... - Why is bat0 not coming up on AC Mesh? Help please... Grüße Adrian > -----Original Message----- > From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf > Of Adrian Schmutzler > Sent: Dienstag, 2. Januar 2018 20:02 > To: franken-dev@freifunk.net > Subject: [PATCH] configurenetwork: Rearrangement/redesign of central > commands > > This patch rearranges the commands in configurenetwork. The main goal is to > avoid code duplications and make reading easier. Some "bugs" were > addressed on the way: > - Previously, ONEPORT devices went through both major blocks, > resulting e.g. in useless eth0.X interfaces being set up (and > perhaps lots of other strange things). Now, the routines for > ONEPORT and normal devices are separated. > - Updating the /etc/sysctl.conf has been combined to a single > block based on variables set earlier > - WANDEV is reset to WANDEV.2 were applicable to reduce number of > ifs > - "uci del uci set" has been changed to "uci del" > - Spaces have been changed to Tabs were changes were done > - Arguments have been quoted in various places > - Double brackets have been replaced by single brackets > - ETHMODE if has been changed to use BATMAN as default (elseif > changed to else) > - Use ETHMESHMAC for ONEPORT, introduce ETHMESHDEV > > Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> > > --- > > This requires the patches to be applied BEFOREHAND: > fff-network: Introduce function to set MAC on device > fff-network: Replace ETH0MAC by replacement based on ROUTERMAC > > Open issues: > - Line 84/89: eth0 MAC address is deleted (!). Why is this done > only in uci and is it desirable to have a device without MAC? > --- > .../fff-network/files/usr/sbin/configurenetwork | 155 ++++++++++--------- > -- > 1 file changed, 70 insertions(+), 85 deletions(-) > > diff --git a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork > b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork > index 0fbff10..ded9485 100755 > --- a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork > +++ b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork > @@ -71,96 +71,81 @@ 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" > - > - echo "# Allow IPv6 RAs on WAN Port" >> /etc/sysctl.conf > - > - 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" > - > - echo "net.ipv6.conf.$WANDEV.2.accept_ra_defrtr = 1" >> > /etc/sysctl.conf > - echo "net.ipv6.conf.$WANDEV.2.accept_ra_pinfo = 1" >> > /etc/sysctl.conf > - echo "net.ipv6.conf.$WANDEV.2.autoconf = 1" >> /etc/sysctl.conf > - echo "net.ipv6.conf.$WANDEV.2.accept_ra_rtr_pref = 1" >> > /etc/sysctl.conf > - else > - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> /etc/sysctl.conf > - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> /etc/sysctl.conf > - echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf > - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> > /etc/sysctl.conf > - 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 > +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" > + wanon="0" > + if [ "$ETHMODE" = "WAN" ]; then > + wanon="1" > + 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 > + 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 > + 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" > + > + echo "# Allow IPv6 RAs on WAN Port" >> /etc/sysctl.conf > + > + wanon="1" > + 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 > + > + 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 > - > -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 > - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> /etc/sysctl.conf > - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> /etc/sysctl.conf > - echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf > - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> > /etc/sysctl.conf > - 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 > - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 0" >> /etc/sysctl.conf > - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 0" >> /etc/sysctl.conf > - echo "net.ipv6.conf.$WANDEV.autoconf = 0" >> /etc/sysctl.conf > - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 0" >> > /etc/sysctl.conf > - 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 > - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 0" >> /etc/sysctl.conf > - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 0" >> /etc/sysctl.conf > - echo "net.ipv6.conf.$WANDEV.autoconf = 0" >> /etc/sysctl.conf > - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 0" >> > /etc/sysctl.conf > - 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" > - fixMac "$(macFlipLocalBit "$ROUTERMAC")" "eth0" "eth0" "1" > - fi > - uci commit network > +if [ -n "$wanon" ]; then > + echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = $wanon" >> > /etc/sysctl.conf > + echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = $wanon" >> > /etc/sysctl.conf > + echo "net.ipv6.conf.$WANDEV.autoconf = $wanon" >> > /etc/sysctl.conf > + echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = $wanon" >> > +/etc/sysctl.conf > 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 > -- > 2.7.4 > > -- > franken-dev mailing list > franken-dev@freifunk.net > http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net
hi On 02.01.2018 20:05, mail@adrianschmutzler.de wrote: > Tested successfully on WR841N v12. > On ONEPORT (AC Mesh), bat0 is not coming up and thus br-mesh is missing... > > Open issues: > ... > - Why is bat0 not coming up on AC Mesh? Help please... das ist mir gestern auch passiert. Ich hab nur unseren aktuellen Master hergenommen und LEDE auf 17.01.4 (444add156f2a6d92fc15005c5ade2208a978966c) hochgezogen, sowie den Routingfeed auf 78049b46ac7cfbb14e8f05bc5150f518f827c0ec. Auch hier war nur eth0 und lo offen aber kein bat0, kein br-mesh o.ä. Ich hab nach langen suchen den Fehler nicht gefunden, wieder den aktuellen Master gebaut und dann lief es wieder. Warum das passiert, keine Ahnung. Es scheinen auch alle Kernelmodule zu fehlen (lsmod) ein wunder das er überhaupt geht ;) Bei mir ebenfalls der AC Mesh. mfg Christian > > Grüße > > Adrian > >> -----Original Message----- >> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf >> Of Adrian Schmutzler >> Sent: Dienstag, 2. Januar 2018 20:02 >> To: franken-dev@freifunk.net >> Subject: [PATCH] configurenetwork: Rearrangement/redesign of central >> commands >> >> This patch rearranges the commands in configurenetwork. The main goal is > to >> avoid code duplications and make reading easier. Some "bugs" were >> addressed on the way: >> - Previously, ONEPORT devices went through both major blocks, >> resulting e.g. in useless eth0.X interfaces being set up (and >> perhaps lots of other strange things). Now, the routines for >> ONEPORT and normal devices are separated. >> - Updating the /etc/sysctl.conf has been combined to a single >> block based on variables set earlier >> - WANDEV is reset to WANDEV.2 were applicable to reduce number of >> ifs >> - "uci del uci set" has been changed to "uci del" >> - Spaces have been changed to Tabs were changes were done >> - Arguments have been quoted in various places >> - Double brackets have been replaced by single brackets >> - ETHMODE if has been changed to use BATMAN as default (elseif >> changed to else) >> - Use ETHMESHMAC for ONEPORT, introduce ETHMESHDEV >> >> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> >> >> --- >> >> This requires the patches to be applied BEFOREHAND: >> fff-network: Introduce function to set MAC on device >> fff-network: Replace ETH0MAC by replacement based on ROUTERMAC >> >> Open issues: >> - Line 84/89: eth0 MAC address is deleted (!). Why is this done >> only in uci and is it desirable to have a device without MAC? >> --- >> .../fff-network/files/usr/sbin/configurenetwork | 155 > ++++++++++--------- >> -- >> 1 file changed, 70 insertions(+), 85 deletions(-) >> >> diff --git a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork >> b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork >> index 0fbff10..ded9485 100755 >> --- a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork >> +++ b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork >> @@ -71,96 +71,81 @@ 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" >> - >> - echo "# Allow IPv6 RAs on WAN Port" >> /etc/sysctl.conf >> - >> - 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" >> - >> - echo "net.ipv6.conf.$WANDEV.2.accept_ra_defrtr = 1" >> >> /etc/sysctl.conf >> - echo "net.ipv6.conf.$WANDEV.2.accept_ra_pinfo = 1" >> >> /etc/sysctl.conf >> - echo "net.ipv6.conf.$WANDEV.2.autoconf = 1" >> /etc/sysctl.conf >> - echo "net.ipv6.conf.$WANDEV.2.accept_ra_rtr_pref = 1" >> >> /etc/sysctl.conf >> - else >> - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> > /etc/sysctl.conf >> - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> > /etc/sysctl.conf >> - echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf >> - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> >> /etc/sysctl.conf >> - 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 >> +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" >> + wanon="0" >> + if [ "$ETHMODE" = "WAN" ]; then >> + wanon="1" >> + 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 >> + 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 >> + 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" >> + >> + echo "# Allow IPv6 RAs on WAN Port" >> /etc/sysctl.conf >> + >> + wanon="1" >> + 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 >> + >> + 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 >> - >> -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 >> - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> > /etc/sysctl.conf >> - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> > /etc/sysctl.conf >> - echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf >> - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> >> /etc/sysctl.conf >> - 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 >> - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 0" >> > /etc/sysctl.conf >> - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 0" >> > /etc/sysctl.conf >> - echo "net.ipv6.conf.$WANDEV.autoconf = 0" >> /etc/sysctl.conf >> - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 0" >> >> /etc/sysctl.conf >> - 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 >> - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 0" >> > /etc/sysctl.conf >> - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 0" >> > /etc/sysctl.conf >> - echo "net.ipv6.conf.$WANDEV.autoconf = 0" >> /etc/sysctl.conf >> - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 0" >> >> /etc/sysctl.conf >> - 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" >> - fixMac "$(macFlipLocalBit "$ROUTERMAC")" "eth0" "eth0" "1" >> - fi >> - uci commit network >> +if [ -n "$wanon" ]; then >> + echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = $wanon" >> >> /etc/sysctl.conf >> + echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = $wanon" >> >> /etc/sysctl.conf >> + echo "net.ipv6.conf.$WANDEV.autoconf = $wanon" >> >> /etc/sysctl.conf >> + echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = $wanon" >> >> +/etc/sysctl.conf >> 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 >> -- >> 2.7.4 >> >> -- >> franken-dev mailing list >> franken-dev@freifunk.net >> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net >
Ich hab routing gar nicht geupdatet, aber packages. Hast du packages mitgezogen oder nicht? > -----Original Message----- > From: Christian Dresel [mailto:fff@chrisi01.de] > Sent: Dienstag, 2. Januar 2018 20:48 > To: mail@adrianschmutzler.de > Subject: Re: [PATCH] configurenetwork: Rearrangement/redesign of central > commands > > hi > > On 02.01.2018 20:46, mail@adrianschmutzler.de wrote: > > Argh... > > > > Danke, da kann ich natürlich stundenlang an meiner Config rumschrauben, > wenn einfach das Modul fehlt. Wie mein Physik-Prof. halt immer gesagt hat: > Immer nur einen Parameter gleichzeitig ändern .... > > > > Du hast wirklich genau 17.01.4 genommen? Weil dann kann ich > einschränken, wo ich bei LEDE suchen muss... > > bei der LEDE Git Nummer bin ich mir sicher (ich erinner mich an die drei 4er > am Anfang) beim Routingfeed weiß ich es nicht exakt, es war auf jeden Fall > einer wo Batman 2017.3 drinnen ist aber noch nicht Batman > 2017.4 (das hat nicht gebaut und beim build abgebrochen weil irgendein C- > Code kaputt war). > > P.S. die ML vergessen? Wann ja bitte wieder dort hin antworten, interessiert > bestimmt auch andere ;) > > mfg > > Christian > > > > > Grüße > > > > Adrian > > > >> -----Original Message----- > >> From: Christian Dresel [mailto:fff@chrisi01.de] > >> Sent: Dienstag, 2. Januar 2018 20:18 > >> To: mail@adrianschmutzler.de; franken-dev@freifunk.net > >> Subject: Re: [PATCH] configurenetwork: Rearrangement/redesign of > >> central commands > >> > >> hi > >> > >> On 02.01.2018 20:05, mail@adrianschmutzler.de wrote: > >>> Tested successfully on WR841N v12. > >>> On ONEPORT (AC Mesh), bat0 is not coming up and thus br-mesh is > >> missing... > >>> > >>> Open issues: > >>> ... > >>> - Why is bat0 not coming up on AC Mesh? Help please... > >> > >> das ist mir gestern auch passiert. Ich hab nur unseren aktuellen > >> Master hergenommen und LEDE auf 17.01.4 > >> (444add156f2a6d92fc15005c5ade2208a978966c) hochgezogen, sowie den > >> Routingfeed auf 78049b46ac7cfbb14e8f05bc5150f518f827c0ec. > >> > >> Auch hier war nur eth0 und lo offen aber kein bat0, kein br-mesh o.ä. > >> Ich hab nach langen suchen den Fehler nicht gefunden, wieder den > >> aktuellen Master gebaut und dann lief es wieder. Warum das passiert, > keine Ahnung. > >> Es scheinen auch alle Kernelmodule zu fehlen (lsmod) ein wunder das > >> er überhaupt geht ;) > >> > >> Bei mir ebenfalls der AC Mesh. > >> > >> mfg > >> > >> Christian > >> > >>> > >>> Grüße > >>> > >>> Adrian > >>> > >>>> -----Original Message----- > >>>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On > >> Behalf > >>>> Of Adrian Schmutzler > >>>> Sent: Dienstag, 2. Januar 2018 20:02 > >>>> To: franken-dev@freifunk.net > >>>> Subject: [PATCH] configurenetwork: Rearrangement/redesign of > >>>> central commands > >>>> > >>>> This patch rearranges the commands in configurenetwork. The main > >>>> goal is > >>> to > >>>> avoid code duplications and make reading easier. Some "bugs" were > >>>> addressed on the way: > >>>> - Previously, ONEPORT devices went through both major blocks, > >>>> resulting e.g. in useless eth0.X interfaces being set up (and > >>>> perhaps lots of other strange things). Now, the routines for > >>>> ONEPORT and normal devices are separated. > >>>> - Updating the /etc/sysctl.conf has been combined to a single > >>>> block based on variables set earlier > >>>> - WANDEV is reset to WANDEV.2 were applicable to reduce number of > >>>> ifs > >>>> - "uci del uci set" has been changed to "uci del" > >>>> - Spaces have been changed to Tabs were changes were done > >>>> - Arguments have been quoted in various places > >>>> - Double brackets have been replaced by single brackets > >>>> - ETHMODE if has been changed to use BATMAN as default (elseif > >>>> changed to else) > >>>> - Use ETHMESHMAC for ONEPORT, introduce ETHMESHDEV > >>>> > >>>> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> > >>>> > >>>> --- > >>>> > >>>> This requires the patches to be applied BEFOREHAND: > >>>> fff-network: Introduce function to set MAC on device > >>>> fff-network: Replace ETH0MAC by replacement based on ROUTERMAC > >>>> > >>>> Open issues: > >>>> - Line 84/89: eth0 MAC address is deleted (!). Why is this done > >>>> only in uci and is it desirable to have a device without MAC? > >>>> --- > >>>> .../fff-network/files/usr/sbin/configurenetwork | 155 > >>> ++++++++++--------- > >>>> -- > >>>> 1 file changed, 70 insertions(+), 85 deletions(-) > >>>> > >>>> diff --git > >>>> a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork > >>>> b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork > >>>> index 0fbff10..ded9485 100755 > >>>> --- a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork > >>>> +++ b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork > >>>> @@ -71,96 +71,81 @@ 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" > >>>> - > >>>> - echo "# Allow IPv6 RAs on WAN Port" >> /etc/sysctl.conf > >>>> - > >>>> - 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" > >>>> - > >>>> - echo "net.ipv6.conf.$WANDEV.2.accept_ra_defrtr = 1" >> > >>>> /etc/sysctl.conf > >>>> - echo "net.ipv6.conf.$WANDEV.2.accept_ra_pinfo = 1" >> > >>>> /etc/sysctl.conf > >>>> - echo "net.ipv6.conf.$WANDEV.2.autoconf = 1" >> /etc/sysctl.conf > >>>> - echo "net.ipv6.conf.$WANDEV.2.accept_ra_rtr_pref = 1" >> > >>>> /etc/sysctl.conf > >>>> - else > >>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> > >>> /etc/sysctl.conf > >>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> > >>> /etc/sysctl.conf > >>>> - echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf > >>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> > >>>> /etc/sysctl.conf > >>>> - 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 > >>>> +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" > >>>> + wanon="0" > >>>> + if [ "$ETHMODE" = "WAN" ]; then > >>>> + wanon="1" > >>>> + 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 > >>>> + 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 > >>>> + 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" > >>>> + > >>>> + echo "# Allow IPv6 RAs on WAN Port" >> /etc/sysctl.conf > >>>> + > >>>> + wanon="1" > >>>> + 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 > >>>> + > >>>> + 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 > >>>> - > >>>> -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 > >>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> > >>> /etc/sysctl.conf > >>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> > >>> /etc/sysctl.conf > >>>> - echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf > >>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> > >>>> /etc/sysctl.conf > >>>> - 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 > >>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 0" >> > >>> /etc/sysctl.conf > >>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 0" >> > >>> /etc/sysctl.conf > >>>> - echo "net.ipv6.conf.$WANDEV.autoconf = 0" >> /etc/sysctl.conf > >>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 0" >> > >>>> /etc/sysctl.conf > >>>> - 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 > >>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 0" >> > >>> /etc/sysctl.conf > >>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 0" >> > >>> /etc/sysctl.conf > >>>> - echo "net.ipv6.conf.$WANDEV.autoconf = 0" >> /etc/sysctl.conf > >>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 0" >> > >>>> /etc/sysctl.conf > >>>> - 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" > >>>> - fixMac "$(macFlipLocalBit "$ROUTERMAC")" "eth0" "eth0" "1" > >>>> - fi > >>>> - uci commit network > >>>> +if [ -n "$wanon" ]; then > >>>> + echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = $wanon" >> > >>>> /etc/sysctl.conf > >>>> + echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = $wanon" >> > >>>> /etc/sysctl.conf > >>>> + echo "net.ipv6.conf.$WANDEV.autoconf = $wanon" >> > >>>> /etc/sysctl.conf > >>>> + echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = $wanon" >> > >>>> +/etc/sysctl.conf > >>>> 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 > >>>> -- > >>>> 2.7.4 > >>>> > >>>> -- > >>>> franken-dev mailing list > >>>> franken-dev@freifunk.net > >>>> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net > >>> > > > >
On 02.01.2018 20:49, mail@adrianschmutzler.de wrote: > Ich hab routing gar nicht geupdatet, aber packages. Hast du packages mitgezogen oder nicht? packages hab ich nicht mitgezogen, nur LEDE und Routing. demnach würde ich sagen, das Problem entsteht im LEDE irgendwo. > >> -----Original Message----- >> From: Christian Dresel [mailto:fff@chrisi01.de] >> Sent: Dienstag, 2. Januar 2018 20:48 >> To: mail@adrianschmutzler.de >> Subject: Re: [PATCH] configurenetwork: Rearrangement/redesign of central >> commands >> >> hi >> >> On 02.01.2018 20:46, mail@adrianschmutzler.de wrote: >>> Argh... >>> >>> Danke, da kann ich natürlich stundenlang an meiner Config rumschrauben, >> wenn einfach das Modul fehlt. Wie mein Physik-Prof. halt immer gesagt hat: >> Immer nur einen Parameter gleichzeitig ändern .... >>> >>> Du hast wirklich genau 17.01.4 genommen? Weil dann kann ich >> einschränken, wo ich bei LEDE suchen muss... >> >> bei der LEDE Git Nummer bin ich mir sicher (ich erinner mich an die drei 4er >> am Anfang) beim Routingfeed weiß ich es nicht exakt, es war auf jeden Fall >> einer wo Batman 2017.3 drinnen ist aber noch nicht Batman >> 2017.4 (das hat nicht gebaut und beim build abgebrochen weil irgendein C- >> Code kaputt war). >> >> P.S. die ML vergessen? Wann ja bitte wieder dort hin antworten, interessiert >> bestimmt auch andere ;) >> >> mfg >> >> Christian >> >>> >>> Grüße >>> >>> Adrian >>> >>>> -----Original Message----- >>>> From: Christian Dresel [mailto:fff@chrisi01.de] >>>> Sent: Dienstag, 2. Januar 2018 20:18 >>>> To: mail@adrianschmutzler.de; franken-dev@freifunk.net >>>> Subject: Re: [PATCH] configurenetwork: Rearrangement/redesign of >>>> central commands >>>> >>>> hi >>>> >>>> On 02.01.2018 20:05, mail@adrianschmutzler.de wrote: >>>>> Tested successfully on WR841N v12. >>>>> On ONEPORT (AC Mesh), bat0 is not coming up and thus br-mesh is >>>> missing... >>>>> >>>>> Open issues: >>>>> ... >>>>> - Why is bat0 not coming up on AC Mesh? Help please... >>>> >>>> das ist mir gestern auch passiert. Ich hab nur unseren aktuellen >>>> Master hergenommen und LEDE auf 17.01.4 >>>> (444add156f2a6d92fc15005c5ade2208a978966c) hochgezogen, sowie den >>>> Routingfeed auf 78049b46ac7cfbb14e8f05bc5150f518f827c0ec. >>>> >>>> Auch hier war nur eth0 und lo offen aber kein bat0, kein br-mesh o.ä. >>>> Ich hab nach langen suchen den Fehler nicht gefunden, wieder den >>>> aktuellen Master gebaut und dann lief es wieder. Warum das passiert, >> keine Ahnung. >>>> Es scheinen auch alle Kernelmodule zu fehlen (lsmod) ein wunder das >>>> er überhaupt geht ;) >>>> >>>> Bei mir ebenfalls der AC Mesh. >>>> >>>> mfg >>>> >>>> Christian >>>> >>>>> >>>>> Grüße >>>>> >>>>> Adrian >>>>> >>>>>> -----Original Message----- >>>>>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On >>>> Behalf >>>>>> Of Adrian Schmutzler >>>>>> Sent: Dienstag, 2. Januar 2018 20:02 >>>>>> To: franken-dev@freifunk.net >>>>>> Subject: [PATCH] configurenetwork: Rearrangement/redesign of >>>>>> central commands >>>>>> >>>>>> This patch rearranges the commands in configurenetwork. The main >>>>>> goal is >>>>> to >>>>>> avoid code duplications and make reading easier. Some "bugs" were >>>>>> addressed on the way: >>>>>> - Previously, ONEPORT devices went through both major blocks, >>>>>> resulting e.g. in useless eth0.X interfaces being set up (and >>>>>> perhaps lots of other strange things). Now, the routines for >>>>>> ONEPORT and normal devices are separated. >>>>>> - Updating the /etc/sysctl.conf has been combined to a single >>>>>> block based on variables set earlier >>>>>> - WANDEV is reset to WANDEV.2 were applicable to reduce number of >>>>>> ifs >>>>>> - "uci del uci set" has been changed to "uci del" >>>>>> - Spaces have been changed to Tabs were changes were done >>>>>> - Arguments have been quoted in various places >>>>>> - Double brackets have been replaced by single brackets >>>>>> - ETHMODE if has been changed to use BATMAN as default (elseif >>>>>> changed to else) >>>>>> - Use ETHMESHMAC for ONEPORT, introduce ETHMESHDEV >>>>>> >>>>>> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> >>>>>> >>>>>> --- >>>>>> >>>>>> This requires the patches to be applied BEFOREHAND: >>>>>> fff-network: Introduce function to set MAC on device >>>>>> fff-network: Replace ETH0MAC by replacement based on ROUTERMAC >>>>>> >>>>>> Open issues: >>>>>> - Line 84/89: eth0 MAC address is deleted (!). Why is this done >>>>>> only in uci and is it desirable to have a device without MAC? >>>>>> --- >>>>>> .../fff-network/files/usr/sbin/configurenetwork | 155 >>>>> ++++++++++--------- >>>>>> -- >>>>>> 1 file changed, 70 insertions(+), 85 deletions(-) >>>>>> >>>>>> diff --git >>>>>> a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork >>>>>> b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork >>>>>> index 0fbff10..ded9485 100755 >>>>>> --- a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork >>>>>> +++ b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork >>>>>> @@ -71,96 +71,81 @@ 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" >>>>>> - >>>>>> - echo "# Allow IPv6 RAs on WAN Port" >> /etc/sysctl.conf >>>>>> - >>>>>> - 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" >>>>>> - >>>>>> - echo "net.ipv6.conf.$WANDEV.2.accept_ra_defrtr = 1" >> >>>>>> /etc/sysctl.conf >>>>>> - echo "net.ipv6.conf.$WANDEV.2.accept_ra_pinfo = 1" >> >>>>>> /etc/sysctl.conf >>>>>> - echo "net.ipv6.conf.$WANDEV.2.autoconf = 1" >> /etc/sysctl.conf >>>>>> - echo "net.ipv6.conf.$WANDEV.2.accept_ra_rtr_pref = 1" >> >>>>>> /etc/sysctl.conf >>>>>> - else >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> >>>>> /etc/sysctl.conf >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> >>>>> /etc/sysctl.conf >>>>>> - echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> >>>>>> /etc/sysctl.conf >>>>>> - 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 >>>>>> +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" >>>>>> + wanon="0" >>>>>> + if [ "$ETHMODE" = "WAN" ]; then >>>>>> + wanon="1" >>>>>> + 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 >>>>>> + 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 >>>>>> + 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" >>>>>> + >>>>>> + echo "# Allow IPv6 RAs on WAN Port" >> /etc/sysctl.conf >>>>>> + >>>>>> + wanon="1" >>>>>> + 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 >>>>>> + >>>>>> + 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 >>>>>> - >>>>>> -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 >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> >>>>> /etc/sysctl.conf >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> >>>>> /etc/sysctl.conf >>>>>> - echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> >>>>>> /etc/sysctl.conf >>>>>> - 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 >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 0" >> >>>>> /etc/sysctl.conf >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 0" >> >>>>> /etc/sysctl.conf >>>>>> - echo "net.ipv6.conf.$WANDEV.autoconf = 0" >> /etc/sysctl.conf >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 0" >> >>>>>> /etc/sysctl.conf >>>>>> - 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 >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 0" >> >>>>> /etc/sysctl.conf >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 0" >> >>>>> /etc/sysctl.conf >>>>>> - echo "net.ipv6.conf.$WANDEV.autoconf = 0" >> /etc/sysctl.conf >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 0" >> >>>>>> /etc/sysctl.conf >>>>>> - 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" >>>>>> - fixMac "$(macFlipLocalBit "$ROUTERMAC")" "eth0" "eth0" "1" >>>>>> - fi >>>>>> - uci commit network >>>>>> +if [ -n "$wanon" ]; then >>>>>> + echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = $wanon" >> >>>>>> /etc/sysctl.conf >>>>>> + echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = $wanon" >> >>>>>> /etc/sysctl.conf >>>>>> + echo "net.ipv6.conf.$WANDEV.autoconf = $wanon" >> >>>>>> /etc/sysctl.conf >>>>>> + echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = $wanon" >> >>>>>> +/etc/sysctl.conf >>>>>> 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 >>>>>> -- >>>>>> 2.7.4 >>>>>> >>>>>> -- >>>>>> franken-dev mailing list >>>>>> franken-dev@freifunk.net >>>>>> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net >>>>> >>> >>> > >
Kann eigtl nur das Kernel-Update sein: https://github.com/openwrt/openwrt/commit/fa0b5fce1f53c3520cacff49e9d371fb2c5c3685 Werde mal mit und ohne Testen. > -----Original Message----- > From: Christian Dresel [mailto:fff@chrisi01.de] > Sent: Dienstag, 2. Januar 2018 20:52 > To: mail@adrianschmutzler.de; franken-dev@freifunk.net > Subject: Re: [PATCH] configurenetwork: Rearrangement/redesign of central > commands > > > > On 02.01.2018 20:49, mail@adrianschmutzler.de wrote: > > Ich hab routing gar nicht geupdatet, aber packages. Hast du packages > mitgezogen oder nicht? > > packages hab ich nicht mitgezogen, nur LEDE und Routing. > > demnach würde ich sagen, das Problem entsteht im LEDE irgendwo. > > > > >> -----Original Message----- > >> From: Christian Dresel [mailto:fff@chrisi01.de] > >> Sent: Dienstag, 2. Januar 2018 20:48 > >> To: mail@adrianschmutzler.de > >> Subject: Re: [PATCH] configurenetwork: Rearrangement/redesign of > >> central commands > >> > >> hi > >> > >> On 02.01.2018 20:46, mail@adrianschmutzler.de wrote: > >>> Argh... > >>> > >>> Danke, da kann ich natürlich stundenlang an meiner Config > >>> rumschrauben, > >> wenn einfach das Modul fehlt. Wie mein Physik-Prof. halt immer gesagt > hat: > >> Immer nur einen Parameter gleichzeitig ändern .... > >>> > >>> Du hast wirklich genau 17.01.4 genommen? Weil dann kann ich > >> einschränken, wo ich bei LEDE suchen muss... > >> > >> bei der LEDE Git Nummer bin ich mir sicher (ich erinner mich an die > >> drei 4er am Anfang) beim Routingfeed weiß ich es nicht exakt, es war > >> auf jeden Fall einer wo Batman 2017.3 drinnen ist aber noch nicht > >> Batman > >> 2017.4 (das hat nicht gebaut und beim build abgebrochen weil > >> irgendein C- Code kaputt war). > >> > >> P.S. die ML vergessen? Wann ja bitte wieder dort hin antworten, > >> interessiert bestimmt auch andere ;) > >> > >> mfg > >> > >> Christian > >> > >>> > >>> Grüße > >>> > >>> Adrian > >>> > >>>> -----Original Message----- > >>>> From: Christian Dresel [mailto:fff@chrisi01.de] > >>>> Sent: Dienstag, 2. Januar 2018 20:18 > >>>> To: mail@adrianschmutzler.de; franken-dev@freifunk.net > >>>> Subject: Re: [PATCH] configurenetwork: Rearrangement/redesign of > >>>> central commands > >>>> > >>>> hi > >>>> > >>>> On 02.01.2018 20:05, mail@adrianschmutzler.de wrote: > >>>>> Tested successfully on WR841N v12. > >>>>> On ONEPORT (AC Mesh), bat0 is not coming up and thus br-mesh is > >>>> missing... > >>>>> > >>>>> Open issues: > >>>>> ... > >>>>> - Why is bat0 not coming up on AC Mesh? Help please... > >>>> > >>>> das ist mir gestern auch passiert. Ich hab nur unseren aktuellen > >>>> Master hergenommen und LEDE auf 17.01.4 > >>>> (444add156f2a6d92fc15005c5ade2208a978966c) hochgezogen, sowie > den > >>>> Routingfeed auf 78049b46ac7cfbb14e8f05bc5150f518f827c0ec. > >>>> > >>>> Auch hier war nur eth0 und lo offen aber kein bat0, kein br-mesh o.ä. > >>>> Ich hab nach langen suchen den Fehler nicht gefunden, wieder den > >>>> aktuellen Master gebaut und dann lief es wieder. Warum das > >>>> passiert, > >> keine Ahnung. > >>>> Es scheinen auch alle Kernelmodule zu fehlen (lsmod) ein wunder das > >>>> er überhaupt geht ;) > >>>> > >>>> Bei mir ebenfalls der AC Mesh. > >>>> > >>>> mfg > >>>> > >>>> Christian > >>>> > >>>>> > >>>>> Grüße > >>>>> > >>>>> Adrian > >>>>> > >>>>>> -----Original Message----- > >>>>>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On > >>>> Behalf > >>>>>> Of Adrian Schmutzler > >>>>>> Sent: Dienstag, 2. Januar 2018 20:02 > >>>>>> To: franken-dev@freifunk.net > >>>>>> Subject: [PATCH] configurenetwork: Rearrangement/redesign of > >>>>>> central commands > >>>>>> > >>>>>> This patch rearranges the commands in configurenetwork. The main > >>>>>> goal is > >>>>> to > >>>>>> avoid code duplications and make reading easier. Some "bugs" were > >>>>>> addressed on the way: > >>>>>> - Previously, ONEPORT devices went through both major blocks, > >>>>>> resulting e.g. in useless eth0.X interfaces being set up (and > >>>>>> perhaps lots of other strange things). Now, the routines for > >>>>>> ONEPORT and normal devices are separated. > >>>>>> - Updating the /etc/sysctl.conf has been combined to a single > >>>>>> block based on variables set earlier > >>>>>> - WANDEV is reset to WANDEV.2 were applicable to reduce number > of > >>>>>> ifs > >>>>>> - "uci del uci set" has been changed to "uci del" > >>>>>> - Spaces have been changed to Tabs were changes were done > >>>>>> - Arguments have been quoted in various places > >>>>>> - Double brackets have been replaced by single brackets > >>>>>> - ETHMODE if has been changed to use BATMAN as default (elseif > >>>>>> changed to else) > >>>>>> - Use ETHMESHMAC for ONEPORT, introduce ETHMESHDEV > >>>>>> > >>>>>> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> > >>>>>> > >>>>>> --- > >>>>>> > >>>>>> This requires the patches to be applied BEFOREHAND: > >>>>>> fff-network: Introduce function to set MAC on device > >>>>>> fff-network: Replace ETH0MAC by replacement based on > ROUTERMAC > >>>>>> > >>>>>> Open issues: > >>>>>> - Line 84/89: eth0 MAC address is deleted (!). Why is this done > >>>>>> only in uci and is it desirable to have a device without MAC? > >>>>>> --- > >>>>>> .../fff-network/files/usr/sbin/configurenetwork | 155 > >>>>> ++++++++++--------- > >>>>>> -- > >>>>>> 1 file changed, 70 insertions(+), 85 deletions(-) > >>>>>> > >>>>>> diff --git > >>>>>> a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork > >>>>>> b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork > >>>>>> index 0fbff10..ded9485 100755 > >>>>>> --- > >>>>>> a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork > >>>>>> +++ b/src/packages/fff/fff-network/files/usr/sbin/configurenetwor > >>>>>> +++ k > >>>>>> @@ -71,96 +71,81 @@ 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" > >>>>>> - > >>>>>> - echo "# Allow IPv6 RAs on WAN Port" >> /etc/sysctl.conf > >>>>>> - > >>>>>> - 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" > >>>>>> - > >>>>>> - echo "net.ipv6.conf.$WANDEV.2.accept_ra_defrtr = 1" >> > >>>>>> /etc/sysctl.conf > >>>>>> - echo "net.ipv6.conf.$WANDEV.2.accept_ra_pinfo = 1" >> > >>>>>> /etc/sysctl.conf > >>>>>> - echo "net.ipv6.conf.$WANDEV.2.autoconf = 1" >> > /etc/sysctl.conf > >>>>>> - echo "net.ipv6.conf.$WANDEV.2.accept_ra_rtr_pref = 1" >> > >>>>>> /etc/sysctl.conf > >>>>>> - else > >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> > >>>>> /etc/sysctl.conf > >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> > >>>>> /etc/sysctl.conf > >>>>>> - echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> > /etc/sysctl.conf > >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> > >>>>>> /etc/sysctl.conf > >>>>>> - 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 > >>>>>> +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" > >>>>>> + wanon="0" > >>>>>> + if [ "$ETHMODE" = "WAN" ]; then > >>>>>> + wanon="1" > >>>>>> + 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 > >>>>>> + 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 > >>>>>> + 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" > >>>>>> + > >>>>>> + echo "# Allow IPv6 RAs on WAN Port" >> > /etc/sysctl.conf > >>>>>> + > >>>>>> + wanon="1" > >>>>>> + 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 > >>>>>> + > >>>>>> + 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 > >>>>>> - > >>>>>> -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 > >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> > >>>>> /etc/sysctl.conf > >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> > >>>>> /etc/sysctl.conf > >>>>>> - echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> > /etc/sysctl.conf > >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> > >>>>>> /etc/sysctl.conf > >>>>>> - 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 > >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 0" >> > >>>>> /etc/sysctl.conf > >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 0" >> > >>>>> /etc/sysctl.conf > >>>>>> - echo "net.ipv6.conf.$WANDEV.autoconf = 0" >> > /etc/sysctl.conf > >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 0" >> > >>>>>> /etc/sysctl.conf > >>>>>> - 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 > >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 0" >> > >>>>> /etc/sysctl.conf > >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 0" >> > >>>>> /etc/sysctl.conf > >>>>>> - echo "net.ipv6.conf.$WANDEV.autoconf = 0" >> > /etc/sysctl.conf > >>>>>> - echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 0" >> > >>>>>> /etc/sysctl.conf > >>>>>> - 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" > >>>>>> - fixMac "$(macFlipLocalBit "$ROUTERMAC")" "eth0" "eth0" "1" > >>>>>> - fi > >>>>>> - uci commit network > >>>>>> +if [ -n "$wanon" ]; then > >>>>>> + echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = $wanon" > >> > >>>>>> /etc/sysctl.conf > >>>>>> + echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = $wanon" > >> > >>>>>> /etc/sysctl.conf > >>>>>> + echo "net.ipv6.conf.$WANDEV.autoconf = $wanon" >> > >>>>>> /etc/sysctl.conf > >>>>>> + echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = > $wanon" >> > >>>>>> +/etc/sysctl.conf > >>>>>> 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 > >>>>>> -- > >>>>>> 2.7.4 > >>>>>> > >>>>>> -- > >>>>>> franken-dev mailing list > >>>>>> franken-dev@freifunk.net > >>>>>> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.n > >>>>>> et > >>>>> > >>> > >>> > > > >
This patch rearranges the commands in configurenetwork. The main goal is to avoid code duplications and make reading easier. Some "bugs" were addressed on the way: - Previously, ONEPORT devices went through both major blocks, resulting e.g. in useless eth0.X interfaces being set up (and perhaps lots of other strange things). Now, the routines for ONEPORT and normal devices are separated. - Updating the /etc/sysctl.conf has been combined to a single block based on variables set earlier - WANDEV is reset to WANDEV.2 were applicable to reduce number of ifs - "uci del uci set" has been changed to "uci del" - Spaces have been changed to Tabs were changes were done - Arguments have been quoted in various places - Double brackets have been replaced by single brackets - ETHMODE if has been changed to use BATMAN as default (elseif changed to else) - Use ETHMESHMAC for ONEPORT, introduce ETHMESHDEV Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> --- This requires the patches to be applied BEFOREHAND: fff-network: Introduce function to set MAC on device fff-network: Replace ETH0MAC by replacement based on ROUTERMAC Open issues: - Line 84/89: eth0 MAC address is deleted (!). Why is this done only in uci and is it desirable to have a device without MAC? --- .../fff-network/files/usr/sbin/configurenetwork | 155 ++++++++++----------- 1 file changed, 70 insertions(+), 85 deletions(-)