[PATCH 2/2] Allow initial configuration from Ethernet

Christian Dresel fff at chrisi01.de
So Jun 10 12:15:50 CEST 2018



On 10.06.2018 12:14, Tim Niemeyer wrote:
> Hi
> 
> Am Sonntag, den 10.06.2018, 11:52 +0200 schrieb Christian Dresel:
>> Hi
>>
>> mir ist noch ein Problem aufgefallen das auftreten kann:
>>
>> Konstellation:
>> Router 0 UPLINK
>> Router 1 per WiFiMesh an Router 0
>> Router 2 per Ethernet an Router 1
>>
>> Ablauf:
>>
>> Hoodfile wird geändert mit neue MeshParameter
>>
>> Router 0 ändert Meshparameter, damit von Router 1 nicht mehr
>> erreichbar
>>
>> Router 1
>> bietet Hoodfile mit alten Meshparameter an
>>
>> Router 2 (per Ethernet angebunden an Router 1)
>> (Kein Gateway da Router 0 Meshparameter geändert)
>> startet Script
>> löscht Zeile 15 Hoodfile
>> Zeile 81 kein Internet
>> Zeile 88
>> holt Zeile 104 von Ethernet alte Hoodfile von Router 1
>> bietet diese Hoodfile an
>> beendet Script
>>
>> Router 1
>> startet Script
>> löscht Zeile 15 Hoodfile
>> Zeile 81 kein Internet
>> Zeile 88
>> holt Zeile 104 von Ethernet alte Hoodfile von Router 2
>> bietet diese Hoodfile an
>> beendet Script
>>
>> Router 2 (per Ethernet angebunden an Router 1)
>> Kein Gateway
>> startet Script
>> löscht Zeile 15 Hoodfile
>> Zeile 81 kein Internet
>> Zeile 88
>> holt Zeile 104 von Ethernet kaputte Hoodfile von Router 1
>> bietet diese Hoodfile an
>> beendet Script
>>
>> [..........]
>>
>> wir hätten wieder nahzeu das selbe Problem wie in Hassfurt.
>>
>> In meinen Augen wäre die einfachste Lösung um die Zeile:
>>
>> cp "$hoodfile" "$hoodfilecopy"
>> (müsste mit allen Patches dann Zeile 218 sein)
>>
>> ein if isGatewayAvailable ; then
>>
>> fi
>>
>> herumlegen.
>>
>> Ich glaube das wurde gestern auch schon mal genannt, da aber gestern
>> nicht alle anwesend waren die aktuell mitdiskutieren und ich heute
>> morgen auch drüber gestolpert bin, will ich das hier nochmal
>> erwähnen.
> 
> Ich vermisse auch noch das Löschen des Hoodfiles, wenn das Gateway weg
> ist. Ich habe aber noch nicht alles gesichtet.

ganz ganz am Anfang (Zeile 15) wird die temp-hoodfile gelöscht und dann
bei Zeile 94 wird auch aus dem www-root gelöscht wenn kein GW mehr da ist.

So zumindest hab ich es verstanden

mfg

Christian

> 
> Tim
> 
>> mfg
>>
>> Christian
>>
>>
>>
>> On 10.06.2018 09:07, Christian Dresel wrote:
>>> hi
>>>
>>> Ok ich glaub ich habs jetzt verstanden (man muss da echt 3x im
>>> Dreieck
>>> denken...):
>>>
>>> Der Fehler von der Alpha war, das Ethernet auch vor Gateway
>>> bevorzugt wurde.
>>>
>>> https://github.com/FreifunkFranken/firmware/blob/master/src/package
>>> s/fff/fff-hoods/files/usr/sbin/configurehood
>>> Ab Zeile 143 (speziell 165 beschreibt das Problem dann wunderbar)
>>> wo er
>>> ja nur rein geht, wenn eh schon ein Gateway da ist. Deshalb konnten
>>> alte
>>> Hoodfiles sich im Kreis drehen da Ethernet das Gateway
>>> "überschrieben" hat.
>>>
>>> Dein Patch holt die Hoodfile nur dann per Ethernet, wenn kein
>>> Gateway
>>> mehr da ist. Selbst wenn diese veraltet sein sollte, wird im
>>> nächsten
>>> durchlauf, wo das Gateway dann erreichbar ist, die Hoodfile vom
>>> Gateway
>>> geholt und dann auch richtig aktualisiert.
>>>
>>> Somit sieht die Logik für mich schlüssig aus
>>>
>>> Reviewed-by: Christian Dresel <fff at chrisi01.de>
>>>
>>> Expliziet anmerken möchte ich noch, das ich das ganze nicht
>>> getestet
>>> habe sondern nur im Kopf durchgespielt. Weitere Reviewes (auf alles
>>> was
>>> ich heute reviewed habe) wären mir daher sehr recht.
>>>
>>> mfg
>>>
>>> Christian
>>>
>>> On 09.06.2018 16:51, Fabian Bläse wrote:
>>>> Signed-off-by: Fabian Bläse <fabian at blaese.de>
>>>> ---
>>>>  .../fff-hoods/files/usr/lib/functions/fff/hoodfile  | 21
>>>> +++++++++++++++++++++
>>>>  .../fff/fff-hoods/files/usr/sbin/configurehood      |  2 +-
>>>>  2 files changed, 22 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/src/packages/fff/fff-
>>>> hoods/files/usr/lib/functions/fff/hoodfile
>>>> b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
>>>> index 62487f9..6c50737 100644
>>>> --- a/src/packages/fff/fff-
>>>> hoods/files/usr/lib/functions/fff/hoodfile
>>>> +++ b/src/packages/fff/fff-
>>>> hoods/files/usr/lib/functions/fff/hoodfile
>>>> @@ -56,6 +56,27 @@ getWirelessHoodfile() {
>>>>      fi
>>>>  }
>>>>  
>>>> +getEthernetHoodfile() {
>>>> +    if [ $# != 1 ]
>>>> +       then
>>>> +               echo "Usage: getEthernetHoodfile <download-
>>>> location>"
>>>> +               return 1
>>>> +       fi
>>>> +    file=$1
>>>> +
>>>> +    echo "Trying to get hoodfile from ethernet neighbor..."
>>>> +
>>>> +    ethmesh_dev=$(uci -q get network.ethmesh.ifname)
>>>> +    neighbor_addrs=$(ping6 -c2 ff02::1%${ethmesh_dev} | grep seq
>>>> | cut -d " " -f4 | sed s/.$//g | sort | uniq)
>>>> +
>>>> +    for addr in $neighbor_addrs; do
>>>> +        wget -T2 -t1 -qO "$file" "http://[${addr}%${ethmesh_dev}
>>>> ]:2342/keyxchangev2data" && return 0
>>>> +    done
>>>> +
>>>> +    # got no hoodfile
>>>> +    return 1
>>>> +}
>>>> +
>>>>  getGatewayHoodfile() {
>>>>      if [ $# != 1 ]
>>>>  	then
>>>> diff --git a/src/packages/fff/fff-
>>>> hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-
>>>> hoods/files/usr/sbin/configurehood
>>>> index aee20e5..282e21b 100755
>>>> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>>> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>>> @@ -101,7 +101,7 @@ else
>>>>  		
>>>>  			sleep 30 # Wait for the config AP, which
>>>> may be created at the same time as this script has started
>>>>  
>>>> -			getWirelessHoodfile "$hoodfile"
>>>> +			getEthernetHoodfile "$hoodfile" ||
>>>> getWirelessHoodfile "$hoodfile"
>>>>  
>>>>  			#UPLINK: Set up uplink data on first
>>>> contact:
>>>>  			if [ -s /tmp/keyxchangev2data ]; then
>>>>
>>

-------------- 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/20180610/a32d454c/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev