# {{ ansible_managed }}

# option definitions common to all supported networks...
option domain-name "{{ site_domain }}";
option domain-name-servers {{nextnode4}}, {{ name_server }};

local-address {{ batman_ipv4 | ipaddr('address') }};

default-lease-time 3600;
max-lease-time 14400;

# Use this to enble / disable dynamic dns updates globally.
ddns-update-style none;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;


# Freifunk Regensburg
subnet {{ batman_ipv4 | ipaddr('network') }} netmask {{ batman_ipv4 | ipaddr('netmask') }} {
  option routers {{ batman_ipv4 | ipaddr('address') }};
  option interface-mtu {{ mtu }};
  pool {
    range {{ dhcpd_first }} {{ dhcpd_last }} ;
  }
  # use static arp entries to reduce broadcast
  on commit {
    set clip = binary-to-ascii(10, 8, ".", leased-address);
    set clhw = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
    execute("/usr/sbin/arp", "-s", clip, clhw);
  }
  on release {
    set clip = binary-to-ascii(10, 8, ".", leased-address);
    execute("/usr/sbin/arp", "-d", clip);
  }
  on expiry {
    set clip = binary-to-ascii(10, 8, ".", leased-address);
    execute("/usr/sbin/arp", "-d", clip);
  }
}