[Berlin-wireless] dyn_gw

Sven-Ola Tuecke sven-ola
Di Nov 25 08:08:50 CET 2008


Noch Nachsaetze.

In der Firmware werfe ich die Bindung an libpthreads 'raus. Um Platz zu 
sparen. Threads brauchen exakt zwei Plugins: Das dyn_gw (um 'rumzupingen) und 
das BMF (zum Socketpolling). Eric hatte mal eine Version ohne Threads, die 
war aber zu langsam (depends on olsrd.conf:pollrate). Von daher muss man auf 
der Firmware "ipkg install olsrd" machen um BMF zu nutzen - das ist dann 
die "grosze" Version mit Threading und Debugausgaben.

Ich halte die Funktion des dyngw_plain eh' fuer sauberer. Ein Node, der kein 
HNA ankuendigt aber eine nicht-funktionierende Default-Route ist eh' ein 
halb-schwarzes Loch. dyngw_plain erfordert aber ein paar 
Policyrouting-Tricks, damit das paralell laufende Ping (bzw. traceroute) 
erkennen kann, dass der Internet-Link wieder da ist.

http://ff-firmware.cvs.sourceforge.net/viewvc/ff-firmware/ff-devel/freifunk-olsrd/usr/sbin/cron.minutely

// Sven-Ola

Am Dienstag 25 November 2008 07:55:33 schrieb Sven-Ola Tuecke:
> Moins Aaron,
>
> ach richtig - jetzt faellt der Groschen. Ich hatte mir letztens eine
> frische FFLuCI gezogen. War verwundert, dass man nur mit "olsrd -nofork"
> starten kann. Auf der Freifunk Firmware laeuft das aber prima mit Threads.
> Die uClibc ist da aelter und es ist ein Kernel-2.4 (der mit dem
> Userspace-Threading, mit einem "ps" sieht man mehrere Prozesse).
>
> Debug? Na - mit "printf" eben. Wenn das Kernelspace-Threading nicht will
> braucht man evt. einen Hardcore-Kerneldevel - nix fuer Gelegenheitscoder
> wie mich *g*. Empfehle Umstieg auf dyngw_plain. "cron" ist auch ein
> parallel laufender Thread - und der macht solche Probleme nicht und
> 'rumpingen kann der sicher auch.
>
> // Sven-Ola




Mehr Informationen über die Mailingliste Berlin