[PATCH] configurenetwork: Rearrangement/redesign of central commands

mail at adrianschmutzler.de mail at adrianschmutzler.de
Di Jan 2 20:54:39 CET 2018


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 at chrisi01.de]
> Sent: Dienstag, 2. Januar 2018 20:52
> To: mail at adrianschmutzler.de; franken-dev at freifunk.net
> Subject: Re: [PATCH] configurenetwork: Rearrangement/redesign of central
> commands
> 
> 
> 
> 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/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 at freifunk.net
> >>>>>> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.n
> >>>>>> et
> >>>>>
> >>>
> >>>
> >
> >




Mehr Informationen über die Mailingliste franken-dev