[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