Hello, I didn't get the email for this request, so the mailling list thread my be brocken.
n Dienstag 24 Juli 2007, Freifunk Dresden wrote: [...]
Question 2:
I'm currently checking how the HNA is working, but until now I can not see any HNA on a second node. Firewall is enabled completely for both nodes and each node sees the other nodes. I call batmand as follow: Node1: batmand -t 63 -a 141.56.0.0/16 wlan0 bbs /t 2 bbc /t 2 Node2: batmand -t 63 eth1 bbs /t 2 bbc /t 2
But batmand -c -d 4 does not show any HNA messages and no HNA entry is stored in routing table.
Indeed, seemed something has been missed (sorry for late reply). Can you try something above rv489 debul-level 3 should show (batmand -c -d 3): Adding route to 10.20.0.222/32 via 10.20.0.2 (table 65 - eth0:bat) and ip route ls table 65 10.20.0.222 via 10.20.0.2 dev eth0 proto static
I have checked out the rv491 and it seems working. In my test environment I use a laptop (i386) and two wrt54gl. The wrt shows at "-d3" that the announced HNA is added/deleted every 1-5 seconds. The wrt that has a greater distance (5meter 2 walls between) adds and deletes the HNA in a highe frequency than the wrt that is about 50cm away. I think that HNA should not be deleted to fast because someone that is using this "bad" connection will get often error messages during surfing that the rout e is not found. It would be better if just the connection slow because of transmistion errors.
Beside of this the Idea to add/delete HNA without stopping batmand would be good. e.g. batmand -c -a <add-hna> batmand -c -A <del-hna>
I also like the idea of dynamically changing some parameters but on the other hand, what are the negative side-effects of restarting a daemon ? - A client connected to the daemon might temporary loose connection
- Do you know others?
I think the first point is important enough. see the statement above.
[...]
Another Idea of the "-m" is to differenciate this parameter to -M <"message"> and -m <send-script>. by calling batmand -c -m send-script, batmand can setup stdin/stdou as binary file handle and fill a user-OGM with binary data that is then send.
Even if such message-flooding ist not implemented I just thought of whether there exist some standardized formats to announce such services (maybe the community network markup language CNML idea) ? ciao, axel
I have looked through the code and have seen that the HNA is simply appended to the end of a message. if we want to send other information a TLV structure is needed (Tag-length-value). Batmand can ignore unknown Tags and is still working in the network. At moment the whole network needs an update at same time, because old batmand will interpret any data as HNA. I hope I'm not wrong :)
Bye Stephan
Hello!
On Freitag 03 August 2007, Freifunk Dresden wrote:
Hello, I didn't get the email for this request, so the mailling list thread my be brocken.
strange, anybody else experienced problems?
[...]
I'm currently checking how the HNA is working, but until now I can not
[...]
I have checked out the rv491 and it seems working. In my test environment I use a laptop (i386) and two wrt54gl. The wrt shows at "-d3" that the announced HNA is added/deleted every 1-5 seconds. The wrt that has a greater distance (5meter 2 walls between) adds and deletes the HNA in a highe frequency than the wrt that is about 50cm away. I think that HNA should not be deleted to fast because someone that is using this "bad" connection will get often error messages during surfing that the rout e is not found. It would be better if just the connection slow because of transmistion errors.
that should not be the case! You say even with the stable connection to your near-by WRT that the HNA is added/deleted every 1 - 5 SECONDS ! And even more often at the distant WRT (so added/deleted every SECOND ?). Can you describe the setup and parametrization in more detail?
[...]
Another Idea of the "-m" is to differenciate this parameter to -M <"message"> and -m <send-script>. by calling batmand -c -m send-script, batmand can setup stdin/stdou as binary file handle and fill a user-OGM with binary data that is then send.
Even if such message-flooding ist not implemented I just thought of whether there exist some standardized formats to announce such services (maybe the community network markup language CNML idea) ? ciao, axel
I have looked through the code and have seen that the HNA is simply appended to the end of a message. if we want to send other information a TLV structure is needed (Tag-length-value). Batmand can ignore unknown Tags and is still working in the network. At moment the whole network needs an update at same time, because old batmand will interpret any data as HNA. I hope I'm not wrong :)
Do you really think of a human-readable ascii string that you want to flood with an arbitrary length over the mesh with content like: "Hello take a cool beer and see my fancy cool movie torrent-server at 105.10.bla.bub". Iam not against such communication but...
default OGM size: 10 bytes OGM + HNA size: 15 bytes OGM + example-TLV-ascii message: 95 bytes
... I am a bit scared about the amount of data which would be flooded over the mesh (at every originator interval) with no means for stopping the sources.
Therefore i asked if anybody knows a decent forman for describing such services (preferably in a short and machine readable notation). Perhaps another approach is to just have a kind of key-to-service list (similar to /etc/services with a 16bit key) just roughly indicating the type of offered service together with another port/ip where further information (of arbitrary length) about the indicated service can be retrieved. This would also allow to outsource part of the service-discovery to another daemon.
greetings, axel
that should not be the case! You say even with the stable connection
to your
near-by WRT that the HNA is added/deleted every 1 - 5 SECONDS ! And
even more
often at the distant WRT (so added/deleted every SECOND ?). Can you describe the setup and parametrization in more detail?
I have a Linux and two wrt's using rv495. the route is added and deleted at same time as the message is printed.
linux: batmand -g 4 -a 141.56.0.0/16 wlan0 wrt-near: batmand -r 2 eth1 wrt-far: batmand -r 2 eth1
wrt-far: "-d3" add/del freq differs from 5 to 60 seconds --------------- Gateway client - got IP (169.254.0.1) from gateway: 10.12.0.1 Adding route to 141.56.0.0/16 via 10.12.10.17 (table 65 - eth1) Deleting route to 141.56.0.0/16 via 10.12.10.17 (table 65 - eth1) Adding route to 141.56.0.0/16 via 10.12.10.17 (table 65 - eth1) Deleting route to 141.56.0.0/16 via 10.12.10.17 (table 65 - eth1) Adding route to 141.56.0.0/16 via 10.12.10.17 (table 65 - eth1) Deleting route to 141.56.0.0/16 via 10.12.10.17 (table 65 - eth1) Adding route to 141.56.0.0/16 via 10.12.10.17 (table 65 - eth1) Deleting route to 141.56.0.0/16 via 10.12.10.17 (table 65 - eth1) Gateway client - releasing unused IP after timeout: 169.254.0.1 Adding default route via tun0 (table 67) Adding route to 141.56.0.0/16 via 10.12.10.17 (table 65 - eth1) Deleting route to 141.56.0.0/16 via 10.12.10.17 (table 65 - eth1) Gateway client - got IP (169.254.0.1) from gateway: 10.12.0.1 Adding route to 141.56.0.0/16 via 10.12.10.17 (table 65 - eth1) Deleting route to 141.56.0.0/16 via 10.12.10.17 (table 65 - eth1)
root@10-1:~# ip rule;ip route list table bat_hna 0: from all lookup local 6599: from all to 141.56.0.0/16 lookup bat_hna 6600: from all to 10.0.0.0/8 lookup bat_route 6700: from all iif lo lookup bat_default 6701: from 127.0.0.0/8 lookup bat_default 6702: from 192.168.1.0/24 lookup bat_default 6703: from 192.168.178.0/24 lookup bat_default 6704: from 172.16.0.0/16 lookup bat_default 6705: from 172.16.0.0/16 lookup bat_default 10000: from all to 192.168.0.0/16 lookup main 10001: from all to 172.16.0.0/12 lookup main 10002: from all to 10.0.0.0/8 lookup main 10002: from all to 104.0.0.0/8 lookup main 10003: from all lookup gateway 32766: from all lookup main 32767: from all lookup default 141.56.0.0/16 via 10.12.10.17 dev eth1 proto static root@10-1:~# ip rule;ip route list table bat_hna 0: from all lookup local 6600: from all to 10.0.0.0/8 lookup bat_route 6700: from all iif lo lookup bat_default 6701: from 127.0.0.0/8 lookup bat_default 6702: from 192.168.1.0/24 lookup bat_default 6703: from 192.168.178.0/24 lookup bat_default 6704: from 172.16.0.0/16 lookup bat_default 6705: from 172.16.0.0/16 lookup bat_default 10000: from all to 192.168.0.0/16 lookup main 10001: from all to 172.16.0.0/12 lookup main 10002: from all to 10.0.0.0/8 lookup main 10002: from all to 104.0.0.0/8 lookup main 10003: from all lookup gateway 32766: from all lookup main 32767: from all lookup default root@10-1:~# -----------------
Do you really think of a human-readable ascii string that you want to
flood
with an arbitrary length over the mesh with content like: "Hello take
a cool
beer and see my fancy cool movie torrent-server at 105.10.bla.bub".
Iam not
against such communication but...
default OGM size: 10 bytes OGM + HNA size: 15 bytes OGM + example-TLV-ascii message: 95 bytes
... I am a bit scared about the amount of data which would be flooded
over the
mesh (at every originator interval) with no means for stopping the
sources.
Therefore i asked if anybody knows a decent forman for describing such services (preferably in a short and machine readable notation). Perhaps another approach is to just have a kind of key-to-service list (similar to /etc/services with a 16bit key) just roughly indicating
the type
of offered service together with another port/ip where further
information
(of arbitrary length) about the indicated service can be retrieved. This would also allow to outsource part of the service-discovery to
another
daemon.
greetings, axel
I have read the previous thread messages that talk about dns. I'm not firm with this. But I think that the protocol offers a good way to optimize flooding messages and avoids any loops. The network size is defined by ttl of the OGMs and so it makes sence to use the knowledge of this network size to send also other messages. any external process does not know this and would over flood the network. If you are using a passive way, where the nodes ask a server to retrieve such messages, then in a decentralized network at least this server or serveral server needs to be known. For this you will need such a message flooding solution anyway. The protocol should be flexible and provide such a feature no matter if anyone uses it. Any how is providing a firmware with batmand, should know what he is doing.
Cheers Stephan
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Axel Neumann schrieb:
Hello!
On Freitag 03 August 2007, Freifunk Dresden wrote:
<removed>
Do you really think of a human-readable ascii string that you want to flood with an arbitrary length over the mesh with content like: "Hello take a cool beer and see my fancy cool movie torrent-server at 105.10.bla.bub". Iam not against such communication but...
default OGM size: 10 bytes OGM + HNA size: 15 bytes OGM + example-TLV-ascii message: 95 bytes
... I am a bit scared about the amount of data which would be flooded over the mesh (at every originator interval) with no means for stopping the sources.
maybe a additional byte is enough to tell, that other nodes can query service information. this would result in less overhead than announcing services in OGM and is also less overhead than polling all nodes for services.
It would also leave enough room for announcing different service advertisement systems in this byte.
Therefore i asked if anybody knows a decent forman for describing such services (preferably in a short and machine readable notation). Perhaps another approach is to just have a kind of key-to-service list (similar to /etc/services with a 16bit key) just roughly indicating the type of offered service together with another port/ip where further information (of arbitrary length) about the indicated service can be retrieved. This would also allow to outsource part of the service-discovery to another daemon.
greetings, axel
Greets, alex
Hi,
I also like the idea of dynamically changing some parameters but on the other hand, what are the negative side-effects of restarting a daemon ? - A client connected to the daemon might temporary loose connection
- Do you know others?
I think the first point is important enough. see the statement above.
at the moment we have more important issues to address than a broken debug client connection I think. But we happily accept patches if ou want to improve the current situation. Note: This problem is more complicated than it might seem. You will have to pay attention to various race conditions.
I have looked through the code and have seen that the HNA is simply appended to the end of a message. if we want to send other information a TLV structure is needed (Tag-length-value). Batmand can ignore unknown Tags and is still working in the network. At moment the whole network needs an update at same time, because old batmand will interpret any data as HNA. I hope I'm not wrong :)
You are right. But why should we append random data to flood the network ? Why can't we use _existing_ and _working_ solutions for service discovery ? Did you read the discussion regarding this topic which was started by you ?
Regards, Marek
b.a.t.m.a.n@lists.open-mesh.org