Inhaltsverzeichnis

Changelog

next

v0.3.149

[_] mmfd / libbabelhelper: rework logic for reconnecting to babeld hopefully fixing message storms
[X] gluon-ddhcpd: use /32 netmask
[X] ddhcpd: fix dhcp option 28 (subnet mask)
[_] ipv4: allow reaching the local_node ipv4 address

v0.3.147 - 2018-06-24

[X] ddhcpd: fix memory issue, fix calling hooks
[X] create gluon-ddhcpd init script, adjust serveR_interface settings
[X] add firewall rule for ddhcp to allow communication on mmfd device
[X] gluon-l3roamd: minor quoting bugfix for integration hook fo ddhcpd

v0.3.142

[X] l3roamd: (cosmetic) FIX: double-claiming client if client has no ip addresses after first claim.
[X] l3roamd: stop sending NS locally with force=1 when there is a reply to this address
[X] ddhcpd: bump version to allow hooks and tell l3roamd about ipv4 addresses & clients

v0.3.138

[X] l3roamd: extend the client structure to save whether the client has been claimed already to avoid claiming it twice in case it was detected without active ip address
[X] gluon-mesh-babel: configure ddhcpd with babel specific features move broadcast settings from gluon-ddhcpd to gluon-mesh-babel package
[X] l3roamd: listen on ipv6 ndp checks for duplicate addresses detection, when that occurs, start NDP locally for those addresses for 5 seconds to avoid network-wide seek

v0.3.136

[X] l3roamd: build infrastructure to schedule function with retry, migrate schedule_info_retry, schedule_claim_retry 
[X] l3roamd: test & fix INFO retry & ACK cycle
[X] l3roamd: abort with core dump when detecting memory corruption
[X] l3roamd: fix vector implementation, adjust output, remove client when disconnecting from bridge

v0.3.130

[X] l3roamd: make claiming more efficient if the host is new to the network
[X] l3roamd: discard claims from own node-ip
[X] l3roamd: adjust output stream for some intercom messages so they show up in the correct order
[X] gluon-ddhcpd: save network range settings in upgrade scripts

v0.3.129

[X] l3roamd: further claiming bugfixes
[X] gluon-ddhcpd: set correct server_interface

v0.3.128

[X] l3roamd: claiming: find_repeatable adjustments, correct claiming interval

v0.3.127

[X] l3roamd: bugfix task scheduling with sub-second precision
[X] l3roamd: use ddhcp hook to tell l3roamd about new client-ipv4 addresses
[X] gluon-mesh-babel: report RX/TX stats for br-client instead of lo
[X] ddhcp-configuration: generate gluon package to set the configuration. How much of that is community-specific?

v0.3.122

[X] remove dnsmasq hack
[X] implement DHCP using ddhcp
[X] l3roamd: send ACK as unicast

v0.3.121

[X] l3roamd: consume the data on unreachfd to avoid memory buildup
[X] l3roamd: do not subscribe to neighbour netlink packets when no client interface is given
[X] l3roamd: do not initialize sending neighbour solicitiations when no client interface is given
[X] l3roamd: do not initialize receiving neighbour advertisements when no client interface is given
[X] l3roamd: ipmgr: build inbound handler for ipv4 packets
[X] l3roamd: vector: implement VECTOR_LSEARCH makro
[X] l3roamd: build kernel route parser for ipv4
[X] Retry für INFO einbauen, so lange bis ACK kommt
[X] l3roamd: ipmgr: build outbound handler for ipv4 packets
[X] l3roamd: ipv4: add routes to prefixes to main routing table
[X] ACK einbauen als Antwort auf INFO. Nach ACK, kann retry-cycle von INFO-Versand abgebrochen werden
[X] Retry für Claim häufiger (500ms) und öfter: 10x

v0.3.111

[X] l3roamd: resolve memory issue when purging old packets
[X] l3roamd: avoid seek-loops
[X] l3roamd: do not add transformed ipv6 address when ipv4-client is detected, add ipv4 address to neighbour
[X] l3roamd: initial ipv4 support
[X] include broken targets in build for tl-wr841-v13
[X] l3roamd: resolve memory issue: when not reading from raw queue

v0.3

v0.2.106

[X] rebase on latest master (new location for respondd module, new statuspage integration)
[X] re-structure site.conf, include drivers for futro
[X] libbabelhelper: use select, allow readbabeldata => allow to gather neighbour data for respondd and status-page, show mesh connections on the map
[X] overwrite alle autoupdater settings and branches, set autoupdater-branch to test

v0.2.98

[X] libbabelhelper: fix illegal write on read-error

v0.2.96

  [X] jenkins: adjust build job to generate the correct manifest files
  [X] l3roamd: populate the plat segment in the info packet and parse value
  [X] l3roamd: allow to send icmp destination unreachable even if there is no client interface - avoid "sendto: socket operation on non-socket"
  [X] l3roamd: add error checking for every malloc and calloc
  [X] libbabelhelper: remove select
  [X] mmfd: print neighbours every 15 seconds in verbose mode
  [X] respondd: add debug output for: fix Wed Apr  4 08:18:51 2018 daemon.err respondd[1610]: ioctl(SIOCGIFHWADDR) : No such device
  [X] respondd: adjust to babelhelper without select
  [X] neighbours-babel.c migrate to new libbabelhelper
  

v0.2.92

[X] l3roamd: increase efficiency of intercom network: do not forward seek if it is for a local client
[X] l3roamd: increase efficiency of intercom network: do not forward claim if it is for a local client
[X] l3roamd: fix memleaks that occur when roaming in clientmgr and intercom
[X] l3roamd: use new packet format for SEEK
[X] l3roamd: use new packet format for CLAIM
[X] l3roamd: adjust packet format: add version field in packet, include plat segment in info packet, re-sort fields in header and INFO

v0.2.91

  [X] libbabelhelper: introduce babel lexer, hopefully make parsing more stable.
  [X] mmfd increase parsing efficiency
  [X] mmfd - prevent neighbours being detected twice
      neighbours:
      - fe80::ca5:c1ff:fea2:8441 on mesh0 (11), reach 64493, cost 352
      - fe80::ca5:c1ff:fea2:8441 on mesh0 (11), reach 0, cost 0
      - fe80::209e:46ff:fe5f:c440 on mesh-vpn (15), reach 65535, cost 96
      - fe80::ca5:c1ff:fea2:8441 on mesh0 (11), reach 0, cost 0
      - fe80::ccbe:37ff:fe7d:3801 on mesh0 (11), reach 65535, cost 341
      - fe80::209e:46ff:fe5f:c440 on mesh-vpn (15), reach 0, cost 0
      - fe80::2c5d:eff:feca:46fa on mesh-vpn (15), reach 65535, cost 96
  [X] gluon-mesh-babel: log to stderr/logread instead of /tmp/log/babeld.log to avoid filling the RAM
  [X] l3roamd: use network byte order on network for nonce
  [X] l3roamd: increase efficiency of netlink handling - get rid of memcpy, parse directly from buffer
  [X] autoupdater branches einrichten
  [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  info of inactive clients now leads to enrichment of addresses
  [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: Fix respondd crash when parsing json-response from l3roamd
  [X] introduce xlat464-clat, remove of jool
  [X] babeld upgrade to master to get event-triggered route-updates working
  [X] gluon-mesh-babel: ix crash of upgrade-script ./300-gluon-mesh-babel-mkconfig:12: attempt to call global 'client_prefix6' (a nil value)

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] l3roamd: rework socket structure to allow multiple instances of l3roamd on one host while allowing to communicate via multicast and unicast on all relevant addresses: 
      [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 "old" queue.
  [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: clat-prefix in site.conf konfigurieren
  [X] gluon-l3roamd: set -n parameter to make l3roamd know about the clat-interface
  [X] gluon-l3roamd: set cli-options for clat (clat_prefix, clat-interface) in initscript
  [X] l3roamd: fix nl80211 client discovery
  [X] l3roamd: introduce switches to disable discovery via ndp/fdb/nl80211
  [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

Snapshot 63

  [X] l3roamd: rework seek logic triggers
  [x] l3roamd: when sending NS, use clients ll-address as destination if it is known already - RFC2461
  [X] l3roamd: fix output when sending NS
  [X] l3roamd: beim entfernen von ip adressen eines clients, eine prüfugn der anderen ip adressen anstoßen => mit echo requests damit der kernel das gleich alles mitkriegt.
  [X] l3roamd: help with roaming - do not remove the client unless it's last IP-Address was deactivated >5 Minutes ago when bridge/nl80211 report the client as gone.
  [X] l3roamd: allow to add / remove addresses for clients using the socket.
  [X] respondd: implement json parsing for unlimited size of return value of l3roamd  (10 lines)                                                                                        
  [X] l3roamd: always use multicast claims instead of unicast.
  [X] l3roamd: NS/NA-Zyklus bei NUD:FAILED und NEWNEIGH entfernen - bei Empfang von NA wird clientmgr_add_address aufgerufen - set NUD_REACHABLE inside clientmgr_add_Address()
  [X] l3roamd: use nl-messages with state NUD_NOARP to deactivate client IP.
  [X] gluon-mesh-respondd: fix page fault
  [X] l3roamd: allow re-detection of client's IP addresses
  [X] l3roamd: fix segfault on clientmgr_is_known_address()

Snapshot 62

  [x] l3roamd: when deleting clients, remove all their addresses by iterating backwards in the address-vector
  [X] mmfd: allow to run multiple instances in parallel
  [X] l3roamd: allow to run multiple instances in parallel
  [X] l3roamd: introduce get_prefixes-command on socket
  [X] adjust upgrade-scripts to domain config
  [X] l3roamd: do not remove client too early see log

Snapshot 60

  [X] l3roamd: avoid double-free of client->addresses on client removal
  [X] l3roamd: "IPV4"-Zusatzroute für nat64 für jeden client hinzufügen
  [X] l3roamd: IP & Client-löschen ermöglichen
  [X] l3roamd: IPv4-Adresserkennung ermöglichen
  [X] l3roamd: bei DELNEIGH wird nicht die ll-adresse des clients gelösct, weil diese nciht im client-Adress-Array ist. => mit dem client auch essen ll-adresse mitführen.
  [X] prefixd: auf socket von l3roamd schreiben und damit roaming in zusätzlichen prefixes ermöglichen
  [X] libbabelhelper: remove condition with endless "Could not read data from buffer. This should not happen."

Snapshot 58

  [X] respondd: BUGFIX: some neighbour interfaces are not shown.
  [X] respondd: statt mac-Adressen ll-Adressen einbauen
  [X] l3roamd: FIX: page fault

Snapshot 54

  [x] gluon-web-network Paket ist an Bord, Mesh on LAN ist konfigurierbar
  [x] l3roamd Absturz behoben
  [x] jool ist an bord für nicht-tiny target zum direkten ausleiten
  [X] l3roamd: die special IP darf erst nach allen claim retries gesetzt werden damit claim/info und damit roaming geht.
  [x] gc_thresh1 = 2 setzen und gc_thresh=3
  [X] l3roamd: Entfernen von neighbours per netlink realieseren
  [X] l3roamd: client entfernen, wenn dessen letzte IP entfernt wird.
  [X] Fix debug output: seeking on intercom for client 2a06:8187:fbab:2::1sent intercom packet to a00:1593:0:0:ff02:: on iface lo rc: -1
  [X] l3roamd: do not re-add clients when they are already active
  [X] x86-glibc buildjob: artifect nur für lede-x86-64-combined-squashfs.img speichern, auf make oldcnofig umsteigen für den zweiten defconfig
  [X] use-site-conf autoupdater branch patchen
  [x] firewall: allow dhcp on local_node interface
  [X] l3roamd: beim entfernen eines clients (roaming, drop, exit), die special-IPs vom client-Interface entfernen
  [X] l3roamd: neighbour entfernen bei client disconnect

Snapshot 52

  [X] l3roamd: Umgang mit Speicher bereinigen
  [X] l3roamd: get_clients should also display all clients, their macs and ip addresses
  [X] wann gehen wir in den tentative-STatus => REview durchführen (wenn wir per info-message neue IPs erhalten und wenn wir einen mac-change haben und inaktive-Adressen für den client
  [X] modules mit hochladen bei snapshots
  [X] dnsmasq konfigurieren, IPv4 für Clients
  [X] l3roamd: review clientmgr
  [X] server umstellen für firmwareuploads https://wiki.ffm.freifunk.net/infrastruktur:servers:download
  [X] l3roamd: add version-switch
  [X] statuspage batman: ?PROTO? (undefined)
  [X] respondd-Strukturen: Link-Quality und eingestellter Durchsatz aufnehmen. siehe iwinfo mesh0 assoclist

Snapshot 41

  [X] FIX: [  257.537508] neighbours-babe[2318]: segfault at 0 ip 0000000000401302 sp 00007ffe76b852d0 error 6 in neighbours-babel[400000+2000]
  [X] babel-neighbour-struktur anpassen an Batman-Format:
  [X] statuspage rebase auf master, bauen
  [X] buildjob für christf_next branch machen und diese firmware auf ffm-server hochladen
  [X] DNS mit next-node feature reparieren
  [X] push christf_respondd-time & raise PR
  [X] statuspage heilen: wieder batadv-stream fehler (hoffentlich mit Thomas gemeinsam)
  [X] update-interval für mesh-vpn verbindung in den Minutenbereich erhöhen.
  [X] prefixd: roaming in zusätzlichen prefixes erlauben durch Bekanntgabe des zusätzlichen prefix an den l3roamd
  [X] gluon-mesh-babel script anpassen: loopback.ip6addr muss gesetzt werden
  [X] cnames in name überführen, delete_all weg nehmen, einzeln löschen (section namen hochzählen und dann explizit die gluon-dingens löschen.
  [X] NS: NONCE einbauen nach https://tools.ietf.org/html/rfc3971
  [X] mmfd: neues debian-package bauen und hochladen
  [X] automatisch mmfd0 interface hoch bringen, analog zu l3roamd

Snapshot 32

  [X] gw02 aufbauen
  [X] l3roamd: beobachten, wie clients inaktiv werden
  [X] l3roamd arbeitet nicht richtig, wenn ein -4 IP-MAP-Netz nicht angegeben ist. Wird der speicherbereich initialisiert, gehts. -4 wird also angegeben. => fixen
  [X] l3roamd: wen multicast claims und unicast claims geshickt werden: ip adresse mit im log ausgeben für den der claim gilt
  [X] ipmgr - Sicherstellen, dass die queue von alten Paketen bereinigt wird. FIX memleak
  [X] rebase n_babel-work
      [X] package/gluon-core/luasrc/lib/gluon/upgrade/140-firewall-rules reject_input_on_wan nachrüsten aus https://github.com/freifunk-ffm/gluon/blame/d9f6c0aa6bb662dd59850676e49190a4
      [X] Firewallregeln auf Duplikate prüfen
      [X] Kontrolle der Commits durchführen - einzeln durchgehen.
  [X] gedroppte Clients erst nach 10 minuten löschen oder wenn ein claim kommt.
  [X] interface-IDs in routemgr nutzen
  [X] aliase für kurze DNS für nextnode nn.ffffm.net nn
  [X] Retry für Claims bauen
      [X] claim-Datenstruktur bauen: send-counter, claim selbst
      [X] Anpassung an send_claim: Eintrag nach dem claim in die claim-retry-liste legen.
      [X] Anpassung handle_info: prüfen ob im claim-retry-vector ein eintrag für den client ist, wenn ja, entfernen.
      [X] claim-retry-task bauen, die so lange retries sekündlich schickt und den retry-counter inkrementiert, wie 
              a) ein Eintrag in der claim-retry-liste ist und 
              b) der counter nicht 3 überschritten hat.
          Wenn er 3 überschreitet, Eintrag aus der retry-liste löschen.