diff --git a/hosts/freifunk/default.nix b/hosts/freifunk/default.nix index 545a0a9b..8480fc5d 100644 --- a/hosts/freifunk/default.nix +++ b/hosts/freifunk/default.nix @@ -451,6 +451,38 @@ in }; }; }; + + # Freifunk Dresden routing daemon + services.bmxd = { + after = [ "systemd-networkd.service" ]; + wantedBy = [ "network.target" ]; + serviceConfig = { + ExecStart = '' + ${pkgs.bmxd}/sbin/bmxd \ + --rt_table_offset=${toString rt_table_hosts} \ + --no_fork 1 \ + --throw-rules 0 \ + --prio-rules 0 \ + --network 10.200.0.0/16 \ + --netid 0 \ + --only_community_gw 1 \ + --script ${bmxdGatewayScript} \ + --hop_penalty 1 \ + --lateness_penalty 10 \ + --ogm_broadcasts 100 \ + --udp_data_size 512 \ + --ogm_interval 5000 \ + --purge_timeout 35 \ + -r 3 --gateway_hysteresis 20 \ + --dev ${meshLoopback} /linklayer 0 \ + --dev ${meshInterface} /linklayer 1 \ + --dev ipip-node51001 /linklayer 1 + ''; + Restart = "always"; + RestartSec = "60"; + }; + }; + # Re-register periodically services.ddmesh-register-node = { script = ''