#  -*- text -*-
#
#
#  $Id: 4f2e4d75e3fa7595d4c63089e6bc4b135ac1631c $

#######################################################################
#
#  = isc_dhcp Module
#
#  The `isc_dhcp` module reads ISC DHCP configuration files.
#
#  When the module is listed in the `recv Discover` section, it will
#  look up the client by `client-identifier`, or failing that, by
#  `hardware ethernet`.  If found, the module will apply a
#  `fixed-address` option to assign an IP address.
#
#  Leases are *not* handled by this module.  Instead, you should use
#  the `sqlippool` module in the `send Offer` section.  After an IP
#  address has been allocated, list `isc_dhcp`.
#
#  The module will then apply any matching options to the packet.
#

#
#  ## Configuration Settings
#
isc_dhcp {
	#
	#  moddir:: Search for files in a subdirectory of mods-config which
	#  matches this instance of the files module.
	#
	moddir = ${modconfdir}/${.:instance}

	#
	#  filename:: The ISC DHCP configuration file
	#
	filename = ${moddir}/dhcpd.conf

	#
	#  debug:: For developers, we print out what we're parsing.
	#
	debug = true

	#
	#  pedantic:: Be harsh or forgiving about what we parse
	#
	#  The `isc_dhcp` module implements only a small subset of the
	#  ISC DHCP configuration file commands.  However, the module
	#  *parses* just about everything that is allowable in the ISC
	#  DHCP configuration.
	#
	#  The goal here is to allow an easy migration from ISC DHCP
	#  to FreeRADIUS, by just copying over "dhcpd.conf".
	#  FreeRADIUS will at least start, instead of complaining
	#  about everything.
	#
	#  If `pedantic = true`, then the module will fail with an
	#  error when it sees a command it does not support.
	#
	#  The module will also issue warnings for commands which are
	#  ignored (e.g. OMAPI ones, "listen on port X", and similar).
	#  The module will also issue warnings for commands which
	#  should be implemented at some point.
	#
	#  If a command does not produce any errors or warnings, it is
	#  implemented and supported.
	#
	#  The default is `pedantic = false`
	#
#	pedantic = true
}

#
#  ## Configuration Keywords
#
#  The following tables list the ISC DHCP configuration file keywords
#  which are either supported, not yet implemented, or are ignored.
#
#  ### Supported Keywords
#
#  The following keywords are have the same meaning and behavior as ISC DHCP.
#
#  [options="header,autowidth"]
#  |===
#  | Keyword 				| Meaning
#  | filename STRING			| read the file
#  | fixed-address IPADDR,		| match the ip address
#  | group SECTION			| nested group
#  | hardware ethernet ETHER		| match the ethernet address
#  | host STRING SECTION		| host declaration
#  | include STRING			| include another file
#  | next-server IPADDR 		| set next server
#  | option STRING STRING,		| set option by name and value
#  | server-identifier IPADDR 		| set server identifier
#  | server-name STRING 		| set server name
#  | subnet IPADDR netmask IPADDR SECTION | match subnet
#  |===
#
#  ## Remaining Keywords
#
#  All other keywords are not supported.

#  ## Ignored Keywords
#
#  The following keywords control ISC DHCP behavior such as network
#  IP/port, LDAP access, etc.  These keywords are ignored even when
#  the module is configured with `pedantic = true`
#
#  [options="header,autowidth"]
#  |===
#  | Keyword
#  | dhcpv6-lease-file-name STRING
#  | dhcpv6-pid-file-name STRING
#  | ldap-base-dn STRING
#  | ldap-debug-file STRING
#  | ldap-dhcp-server-cn STRING
#  | ldap-gssapi-keytab STRING
#  | ldap-gssapi-principal STRING
#  | ldap-init-retry STRING
#  | ldap-method STRING
#  | ldap-password STRING
#  | ldap-port STRING
#  | ldap-referrals BOOL
#  | ldap-server STRING
#  | ldap-ssl STRING
#  | ldap-tls-ca-dir STRING
#  | ldap-tls-ca-file STRING
#  | ldap-TLS-Certificate STRING
#  | ldap-tls-ciphers STRING
#  | ldap-tls-crlcheck STRING
#  | ldap-tls-key STRING
#  | ldap-tls-randfile STRING
#  | ldap-tls-reqcert STRING
#  | ldap-username STRING
#  | lease-file-name STRING
#  | local-address IPADDR
#  | local-address6 IPADDR6
#  | local-port UINT16
#  | log-facility STRING
#  | log-threshold-high UINT8
#  | log-threshold-low UINT8
#  | omapi-key STRING
#  | omapi-port UINT16
#  | pid-file-name STRING
#  | remote-port UINT16
#  |===
#
#
