+ignore.rmempty = false
+
+local start = s:taboption("general", Value, "start", translate("Start"),
+ translate("Lowest leased address as offset from the network address."))
+start.rmempty = true
+start.default = "100"
+
+local limit = s:taboption("general", Value, "limit", translate("Limit"),
+ translate("Maximum number of leased addresses."))
+limit.rmempty = true
+limit.default = "150"
+
+local ltime = s:taboption("general", Value, "leasetime", translate("Leasetime"),
+ translate("Expiry time of leased addresses, minimum is 2 Minutes (<code>2m</code>)."))
+ltime.rmempty = true
+ltime.default = "12h"
+
+local dd = s:taboption("advanced", Flag, "dynamicdhcp",
+ translate("Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"),
+ translate("Dynamically allocate DHCP addresses for clients. If disabled, only " ..
+ "clients having static leases will be served."))
+
+dd.rmempty = false
+function dd.cfgvalue(self, section)
+ return Flag.cfgvalue(self, section) or "1"
+end
+
+s:taboption("advanced", Flag, "force", translate("Force"),
+ translate("Force DHCP on this network even if another server is detected."))
+
+-- XXX: is this actually useful?
+--s:taboption("advanced", Value, "name", translate("Name"),
+-- translate("Define a name for this network."))
+
+s:taboption("advanced", Value, "netmask",
+ translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"),
+ translate("Override the netmask sent to clients. Normally it is calculated " ..
+ "from the subnet that is served."))
+
+s:taboption("advanced", DynamicList, "dhcp_option", translate("DHCP-Options"),
+ translate("Define additional DHCP options, for example \"<code>6,192.168.2.1," ..
+ "192.168.2.2</code>\" which advertises different DNS servers to clients."))
+
+for i, n in ipairs(s.children) do
+ if n ~= ignore then
+ n:depends("ignore", "")
+ end
+end