123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- -- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
- -- Licensed to the public under the Apache License 2.0.
- m = Map("ahcpd", translate("AHCP Server"), translate("AHCP is an autoconfiguration protocol " ..
- "for IPv6 and dual-stack IPv6/IPv4 networks designed to be used in place of router " ..
- "discovery or DHCP on networks where it is difficult or impossible to configure a " ..
- "server within every link-layer broadcast domain, for example mobile ad-hoc networks."))
- m:section(SimpleSection).template = "ahcp_status"
- s = m:section(TypedSection, "ahcpd")
- s:tab("general", translate("General Setup"))
- s:tab("advanced", translate("Advanced Settings"))
- s.addremove = false
- s.anonymous = true
- mode = s:taboption("general", ListValue, "mode", translate("Operation mode"))
- mode:value("server", translate("Server"))
- mode:value("forwarder", translate("Forwarder"))
- net = s:taboption("general", Value, "interface", translate("Served interfaces"))
- net.template = "cbi/network_netlist"
- net.widget = "checkbox"
- net.nocreate = true
- function net.cfgvalue(self, section)
- return m.uci:get("ahcpd", section, "interface")
- end
- pfx = s:taboption("general", DynamicList, "prefix", translate("Announced prefixes"),
- translate("Specifies the announced IPv4 and IPv6 network prefixes in CIDR notation"))
- pfx.optional = true
- pfx.datatype = "ipaddr"
- pfx:depends("mode", "server")
- nss = s:taboption("general", DynamicList, "name_server", translate("Announced DNS servers"),
- translate("Specifies the announced IPv4 and IPv6 name servers"))
- nss.optional = true
- nss.datatype = "ipaddr"
- nss:depends("mode", "server")
- ntp = s:taboption("general", DynamicList, "ntp_server", translate("Announced NTP servers"),
- translate("Specifies the announced IPv4 and IPv6 NTP servers"))
- ntp.optional = true
- ntp.datatype = "ipaddr"
- ntp:depends("mode", "server")
- mca = s:taboption("general", Value, "multicast_address", translate("Multicast address"))
- mca.optional = true
- mca.placeholder = "ff02::cca6:c0f9:e182:5359"
- mca.datatype = "ip6addr"
- port = s:taboption("general", Value, "port", translate("Port"))
- port.optional = true
- port.placeholder = 5359
- port.datatype = "port"
- fam = s:taboption("general", ListValue, "_family", translate("Protocol family"))
- fam:value("", translate("IPv4 and IPv6"))
- fam:value("ipv4", translate("IPv4 only"))
- fam:value("ipv6", translate("IPv6 only"))
- function fam.cfgvalue(self, section)
- local v4 = m.uci:get_bool("ahcpd", section, "ipv4_only")
- local v6 = m.uci:get_bool("ahcpd", section, "ipv6_only")
- if v4 then
- return "ipv4"
- elseif v6 then
- return "ipv6"
- end
- return ""
- end
- function fam.write(self, section, value)
- if value == "ipv4" then
- m.uci:set("ahcpd", section, "ipv4_only", "true")
- m.uci:delete("ahcpd", section, "ipv6_only")
- elseif value == "ipv6" then
- m.uci:set("ahcpd", section, "ipv6_only", "true")
- m.uci:delete("ahcpd", section, "ipv4_only")
- end
- end
- function fam.remove(self, section)
- m.uci:delete("ahcpd", section, "ipv4_only")
- m.uci:delete("ahcpd", section, "ipv6_only")
- end
- ltime = s:taboption("general", Value, "lease_time", translate("Lease validity time"))
- ltime.optional = true
- ltime.placeholder = 3666
- ltime.datatype = "uinteger"
- ld = s:taboption("advanced", Value, "lease_dir", translate("Lease directory"))
- ld.datatype = "directory"
- ld.placeholder = "/var/lib/leases"
- id = s:taboption("advanced", Value, "id_file", translate("Unique ID file"))
- --id.datatype = "file"
- id.placeholder = "/var/lib/ahcpd-unique-id"
- log = s:taboption("advanced", Value, "log_file", translate("Log file"))
- --log.datatype = "file"
- log.placeholder = "/var/log/ahcpd.log"
- return m
|