anchor.diff:        description = ''
           Each attribute in this set specifies an option in the
           <literal>[DHCP]</literal> section of the unit.  See
  +        <citerefentry><refentrytitle>systemd.network</refentrytitle>
  +        <manvolnum>5</manvolnum></citerefentry> for details.
  +      '';
  +    };
  +
  +    dhcpServerConfig = mkOption {
  +      default = {};
  +      example = { PoolOffset = 50; EmitDNS = false; };
  +      type = types.addCheck (types.attrsOf unitOption) checkDhcpServer;
  +      description = ''
  +        Each attribute in this set specifies an option in the
  +        <literal>[DHCPServer]</literal> section of the unit.  See
           <citerefentry><refentrytitle>systemd.network</refentrytitle>
           <manvolnum>5</manvolnum></citerefentry> for details.
         '';
  
positive.code:             ${attrsToSection def.dhcpConfig}
  
            ''}
            ${flip concatMapStrings def.addresses (x: ''
              [Address]
              ${attrsToSection x.addressConfig}
  
negative.code:     (assertValueOneOf "RequestBroadcast" boolValues)
    ];
  
    checkDhcpServer = checkUnitConfig "DHCPServer" [
      (assertOnlyFields [
        "PoolOffset" "PoolSize" "DefaultLeaseTimeSec" "MaxLeaseTimeSec"
        "EmitDNS" "DNS" "EmitNTP" "NTP" "EmitTimezone" "Timezone"
      ])
      (assertValueOneOf "EmitDNS" boolValues)
      (assertValueOneOf "EmitNTP" boolValues)
      (assertValueOneOf "EmitTimezone" boolValues)
    ];
  
    commonNetworkOptions = {
  
      enable = mkOption {
  