[PATCH] configurenetwork: Rearrangement/redesign of central commands

Christian Dresel fff at chrisi01.de
Di Jan 2 20:51:53 CET 2018



On 02.01.2018 20:49, mail at 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 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
>>>>>
>>>
>>>
> 
> 

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 833 bytes
Beschreibung: OpenPGP digital signature
URL         : <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20180102/b374e97e/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev