Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
firmware:babel [22.03.2018 23:21] – christf | firmware:babel [10.06.2021 12:27] (aktuell) – igor | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
======= Freifunk mit babel ======= | ======= Freifunk mit babel ======= | ||
+ | <WRAP center round important 60%> | ||
+ | Diese Seite ist veraltet da FFFFM aktuell keine Babel Infrastruktur betreibt. | ||
+ | </ | ||
+ | |||
Wir haben mit den Integrationsarbeiten für den [[https:// | Wir haben mit den Integrationsarbeiten für den [[https:// | ||
Die aktuelle frankfurter babel-Firmware gibt es [[https:// | Die aktuelle frankfurter babel-Firmware gibt es [[https:// | ||
- | Die dazugehörige Map ist hier zu finden: [[http:// | + | Die dazugehörige Map ist hier zu finden: [[http:// |
+ | |||
+ | <WRAP center round todo 60%> Die Informationen in dem obigen Teilabschnitt sind wahrscheinlich nicht mehr aktuell.\\ | ||
| | ||
- | Man kann sich verbinden, roamen, das Netz nutzen. Man hat 25% mehr Durchsatz als mit Batman unter gleichen Funkbedingungen. | + | Man kann sich verbinden, roamen |
Im Detail heißt das: | Im Detail heißt das: | ||
- | * Ein Client kann sich mit einem Node verbinden und es ist Kommunikation zwischen diesen beiden Geräten möglich | + | * Ein Client kann sich mit einem Node verbinden und es ist Kommunikation zwischen diesen beiden Geräten möglich. |
- | * Ein Client kann sich mit einem Node verbinden und erreicht über das Mesh einen anderen Node | + | * Ein Client kann sich mit einem Node verbinden und erreicht über das Mesh einen anderen Node. |
- | * Zwei Clients an unterschiedlichen Mesh-Nodes können miteinander kommunizieren | + | * Zwei Clients an unterschiedlichen Mesh-Nodes können miteinander kommunizieren. |
* Zwei Clients verbinden sich mit einem Node und können kommunizieren. (Jeweils switch-port, | * Zwei Clients verbinden sich mit einem Node und können kommunizieren. (Jeweils switch-port, | ||
- | * Routing ins Internet für einen Client funktioniert für **IPv6** und **IPv4** | + | * Routing ins Internet für einen Client funktioniert für **IPv6** und **IPv4**. |
- | * Internetzugang an mesh-only-node funktioniert | + | * Internetzugang an mesh-only-node funktioniert. |
- | * Babel-Nodes erscheinen neben Batman-Nodes auf der Babel-Map | + | * Babel-Nodes erscheinen neben Batman-Nodes auf der Babel-Map. |
- | * DNS funktioniert mit dem durch das Babel-Projekt in gluon eingeführten DNS-Cache | + | * DNS funktioniert mit dem durch das Babel-Projekt in gluon eingeführten DNS-Cache. |
- | * Roaming eines Clients geht | + | * Roaming eines Clients geht. |
- | * Es gibt eine funktionierende Firewall | + | * Es gibt eine funktionierende Firewall. |
* Auf einem Socket sind verschieden l3roamd-Operationen möglich. | * Auf einem Socket sind verschieden l3roamd-Operationen möglich. | ||
* Folgenden Pakete wurden angepasst, sodass die benötigten Komponenten in der Firmware eingebaut ist und per ifup auch gestartet werden können. | * Folgenden Pakete wurden angepasst, sodass die benötigten Komponenten in der Firmware eingebaut ist und per ifup auch gestartet werden können. | ||
Zeile 28: | Zeile 34: | ||
* babeld >1.8 (master von März 2018) | * babeld >1.8 (master von März 2018) | ||
- | Bitte erfasst Probleme in der [[https:// | + | Bitte erfasst Probleme in unserer |
====== Entwicklung ====== | ====== Entwicklung ====== | ||
[[wiki: | [[wiki: | ||
- | + | [[wiki:babel_android]] | |
- | ====== CHANGELOG ====== | + | ====== |
- | + | [[wiki:babel-changelog]] | |
- | ===== next ===== | + | |
- | [x] l3roamd: increase network efficiency when claiming - add packet to recently seen list when using multicast | + | |
- | [X] l3roamd: use IP_FREEBIND to bind to node-client-ip | + | |
- | [X] respondd: copy max IFNAMSIZ Bytes when assembling ifreq to obtain MAC | + | |
- | + | ||
- | + | ||
- | ===== v0.0.1.68 | + | |
- | + | ||
- | [X] l3roamd: only put active IP addresses in info packet | + | |
- | [X] l3roamd: improve roaming for cable clients - use NEWLINK messages originating from fdb to learn new clients. | + | |
- | [X] l3roamd: allow change of client interface, do not always exit on epoll error, re-initialize arp, icmp6 routemgr | + | |
- | [X] l3roamd | + | |
- | [X] l3roamd: fix info message parsing | + | |
- | [X] l3roamd: use /48 clat range in -4 init parameter using a /96 length | + | |
- | [X] l3roamd: intercom: fill sender-field in all outgoing packets | + | |
- | [X] l3roamd: add debug output for intercom packet handling | + | |
- | [X] l3roamd: remove endless loop when flushing packets | + | |
- | [X] gluon-mesh-babel: | + | |
- | [X] introduce xlat464-clat, | + | |
- | [X] babeld upgrade to master to get event-triggered route-updates working | + | |
- | [X] gluon-mesh-babel: | + | |
- | + | ||
- | + | ||
- | ===== v0.0.1.65 ===== | + | |
- | + | ||
- | [X] l3roamd: send claim if the client was known in the past but is inactive now (it might have roamed away and back again). | + | |
- | | + | |
- | [X] bind m sockets (one for each mesh interface) to mcast address to receive multicast packets | + | |
- | [X] bind 1 socket to node-IP for sending claims and receiving info in response | + | |
- | [X] bind n sockets fec0-socket /close when claiming / removing client => add to client structure | + | |
- | [X] l3roamd: intercom - bind to node-ip | + | |
- | [X] l3roamd: roaming - keep old clients for 5 minutes after dropping them in an " | + | |
- | [X] babeld: adjust confit to include redistribution of CLATs and PLATs | + | |
- | [X] gluon-mesh-babel: plat-prefix in site.conf konfigurieren | + | |
- | [X] gluon-mesh-babel: | + | |
- | [X] gluon-l3roamd: | + | |
- | [X] gluon-l3roamd: | + | |
- | [X] l3roamd: fix nl80211 client discovery | + | |
- | [X] l3roamd: introduce switches to disable discovery via ndp/ | + | |
- | [X] respondd: catch errors in corner cases for retrieving mac addresses | + | |
- | [X] l3roamd: roaming: if the client is not available any more, forget ipv4 address along with ipv6 | + | |
- | [X] l3roamd: Allow setting the ula-node-client-prefix | + | |
- | [X] l3roamd: purge packets from own task scheduled when packet is received instead from NS-task | + | |
- | [X] l3roamd: ipmgr: when dropping old packets, send icmp destination unreachable | + | |
- | [X] l3roamd: FIX purge packets when debug is disabled | + | |
- | [X] l3roamd: update usage() include all socket functions in help text | + | |
- | [X] make autoupdater work on snapshot and next branches | + | |
- | [X] l3roamd: do not crash when purging old packets | + | |
====== Debugging ====== | ====== Debugging ====== | ||
===== Auf dem Gerät ===== | ===== Auf dem Gerät ===== | ||
Das Babel-Netz ist ein Testnetz. Niemand weiß wie man Layer 3-Netze mit Roaming aufbaut - wir sind die ersten. | Das Babel-Netz ist ein Testnetz. Niemand weiß wie man Layer 3-Netze mit Roaming aufbaut - wir sind die ersten. | ||
- | Es kann also durchaus passieren, dass etwas nicht glatt läuft. In so einem Fall ist man mit generellen Debugging-Hinweisen gut beraten: Wichtig ist meist: die Ausgabe von: | + | Es kann also durchaus passieren, dass etwas nicht glatt läuft. In so einem Fall ist man mit generellen Debugging-Hinweisen gut beraten. |
+ | Wichtig ist meist die Ausgabe von: | ||
* logread | * logread | ||
* nodeinfo | * nodeinfo | ||
Zeile 102: | Zeile 60: | ||
``` | ``` | ||
- | * Den zu beobachtenden Prozess direkt von busybox aus starten, den Absturz | + | * Den zu beobachtenden Prozess direkt von busybox aus starten, den Absturz |
* Die unstripped binaries liegen auf dem Build-System in staging_dir/ | * Die unstripped binaries liegen auf dem Build-System in staging_dir/ | ||
* mit dem gdb für den build das binary aus dem build-tree und dem core-file vom router laden: | * mit dem gdb für den build das binary aus dem build-tree und dem core-file vom router laden: | ||
Zeile 129: | Zeile 87: | ||
Die Komponenten des Netzes sind [[http:// | Die Komponenten des Netzes sind [[http:// | ||
- | Serverseitig kann man loslegen, wenn man als post-up script folgendes ausführt: | + | Das Setup der Gateways ist [[infrastruktur: |
+ | |||
+ | Serverseitig | ||
< | < | ||
#!/bin/bash | #!/bin/bash |