[Berlin-wireless] announce_services plugin fuer olsrd
Sven-Ola Tuecke
mail2news
Fr Mär 31 10:48:08 CEST 2006
Jens,
ok - na dann mal richtig: Unterscheiden wir zunaechst mal:
* Serviceanbieter-PC oder WRT: z.B. WRT54GS mit massig Platz oder einen
Extra-PC fuer den Service. Da passt also jede Menge Zusatzsoftware drauf und
eine /etc/services macht sicher kein Problem.
* Service-Announce-Node: Von diesem Node aus wird der Service angekuendigt.
* Standard-Node: Praktisch kein Platz. Per OLSR-Message-Flooding wird der
Ankuendigungen sowieso an Nachbarn weiterreichen (egal ob Nameplugin
installiert). Hier waere evt. noch eine Zusatzseite mit "Services in diesem
Mesh" drin, wenn das dazu noetige OLSR-Plugin zur Abfrage nicht zuviel Platz
kostet.
* Service-Nutzer: Sitzt an einem PC und hatt massig Rechenpower + Platz
sowie einen Bildschirm und einen Browser.
Praktisch jeder Service basiert auf UDP (z.B. NFS-Share) oder TCP (z.B. IRC)
und hat damit eine Portnummer. Andere (z.B. Spezial-Pingdienst oder
Multicast-Radio) fallen aus diesem Schema. Service-Anbieter-PC und
Service-Announce-WRT sollten unterschiedliche Rechner sein koennen. Eine
Web-URL z.B. mit Erlaeuterungen "und so kommst du auf meinen NFS-Server"
waere natuerlich prima. Ich wuerde daher vorschlagen, dass die
Service-Ankuendigung folgendes enthaelt:
ipaddr-service,protonun-ervice[,portnum-service][,service-file]:Service-Ueberschrift:http://helpseite/
Protokoll+Portnummern kann sich jeder selber offline heraussuchen. Wer das
nicht gebacken bekommt kann halt nix anbieten. portnum-service und helpseite
ist optional.
Die IP-Adresse muss im Mesh erreichbar sein
Die Protokollnummer ist aus /etc/protocols
Die Portnummer ist aus /etc/services (nur bei Protokoll=6 oder 17)
Das Service-File (nur bei HTTP-Services) kann mit Browser abgerufen werden
Die Service-Ueberschrift ist auf 64 Zeichen begrenzt (keine Doppelpunkte /
CRLF)
Die Help-URL (wenn vorhanden) muss mit Browser aufzurufen sein
Statt Doppelpunkt kann man naterlich auch z.B. das Tabzeichen nehmen. Ein
Beispiel:
104.65.65.104,6,80,/img/video.asf:Webcam Alex:http://104.65.65.97/index.html
Die Statusseite "Services in diesem Netz" koennte alle Services mit
Helpseite weiter oben anzeigen. Bei Port-basierten Protokollen prueft ein
Cronjob auf dem Service-Announce-Node, ob diese Kombi gerade erreichbar ist
(aehlich Dyngw). Wenn ja -> OLSR-Flooding, wenn nein dann nicht. Das geht
naterulich nur fuer Proto=6 || 17 und nicht fuer Multicast. Die im Beispiel
genannte Webcam kann ueber "mplayer http://104.65.65.104:80/img/video.asf "
angeguckt werden.
Gruesze,
Sven-Ola
"Jens Nachtigall" <nachtigall at web.de> schrieb im Newsbeitrag
news:200603310857.58349.nachtigall at web.de...
Hallo Sven-Ola,
> sowas wollte ich schon lange machen. Bruno hat damls recht lange an dem
> Plugin debuggt -> der Source strotzt vor Debug-Messages, die ich fuer die
> FFF alle rauspatche (wie immer: Bytes sparen). Kann man Deine Erweiterung
> nicht einfach gleich in das nameplugin einbauen -> Platz +
> Debug-nicht-so-noetig?
Das könnte man sicherlich dort mit einbauen, guck ich mal.
> Ich wuerde ausserdem gerne eine FFF-Statusseite "Services in diesem Netz"
> anbieten. Moeglichst mit einem Test ob der Service tatsaechlich Online ist
> -> Service ist immer mit IP + Port + UDP||TCP, dann koennte ein Cronjob
> pruefen, ob diese Kombi erreichbar ist. WIr haben sonst zuviele "Ich
> wollte
> da mal was anbieten" statt "ich biete an". Ersteres ist witzlos.
"IP + Port + UDP||TCP" reicht nicht. Der Pfad fehlt noch und der service
(protokoll), welcher sich hinter dem port verbirgt.
Ich dachte, dass wäre mittels URL-angabe gewährleistet:
protokoll:host_oder_ip[:port]/pfad/. Leider gibt es auf dem wrt
keine /etc/services, so dass bei nichtangabe des ports nicht immer der
standard-port und TCPbzw.UDP klar wäre. Hhm, so ne richtige KISS-lösung
fällt
mir nicht ein, man könnte aber verlangen, dass die URL den port enthalten
muss. Also http://ich:80/mein/pfad. Wegen TCP|UDP könnte man einfach auf
beides testen (zuerst TCP, dann UPD auf dem port bei dem host-namen), wenn
eines von beiden geht, dann gilt es als vorhanden. Die /etc/services hat
leider 20KB, aber da steht alles drin, was wir bräuchten. Andere Ideen, wie
solch ein service syntaktisch in der config stehen sollte?
Grüße,
Jens
-------------- nächster Teil --------------
_______________________________________________
Berlin mailing list
Berlin at olsrexperiment.de
https://www.olsrexperiment.de/cgi-bin/mailman/listinfo/berlin
Mehr Informationen über die Mailingliste Berlin