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 | ||