[PATCH] configurenetwork: Rearrangement/redesign of central commands

mail at adrianschmutzler.de mail at adrianschmutzler.de
Di Jan 2 20:49:51 CET 2018


Ich hab routing gar nicht geupdatet, aber packages. Hast du packages mitgezogen oder nicht?

> -----Original Message-----
> From: Christian Dresel [mailto:fff at chrisi01.de]
> Sent: Dienstag, 2. Januar 2018 20:48
> To: mail at adrianschmutzler.de
> Subject: Re: [PATCH] configurenetwork: Rearrangement/redesign of central
> commands
> 
> hi
> 
> On 02.01.2018 20:46, mail at 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 at chrisi01.de]
> >> Sent: Dienstag, 2. Januar 2018 20:18
> >> To: mail at adrianschmutzler.de; franken-dev at freifunk.net
> >> Subject: Re: [PATCH] configurenetwork: Rearrangement/redesign of
> >> central commands
> >>
> >> hi
> >>
> >> On 02.01.2018 20:05, mail at 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 at freifunk.net] On
> >> Behalf
> >>>> Of Adrian Schmutzler
> >>>> Sent: Dienstag, 2. Januar 2018 20:02
> >>>> To: franken-dev at 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 at 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 at freifunk.net
> >>>> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net
> >>>
> >
> >




Mehr Informationen über die Mailingliste franken-dev