-ipaddr = s:taboption("general", Value, "ipaddr", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"))
-ipaddr.optional = true
-ipaddr.datatype = "ip4addr"
-ipaddr:depends("proto", "static")
-
-nm = s:taboption("general", Value, "netmask", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"))
-nm.optional = true
-nm.datatype = "ip4addr"
-nm:depends("proto", "static")
-nm:value("255.255.255.0")
-nm:value("255.255.0.0")
-nm:value("255.0.0.0")
-
-gw = s:taboption("general", Value, "gateway", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"))
-gw.optional = true
-gw.datatype = "ip4addr"
-gw:depends("proto", "static")
-
-bcast = s:taboption("general", Value, "broadcast", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Broadcast"))
-bcast.optional = true
-bcast.datatype = "ip4addr"
-bcast:depends("proto", "static")
-
-if has_ipv6 then
- ip6addr = s:taboption("ipv6", Value, "ip6addr", translate("<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address"), translate("<abbr title=\"Classless Inter-Domain Routing\">CIDR</abbr>-Notation: address/prefix"))
- ip6addr.optional = true
- ip6addr.datatype = "ip6addr"
- ip6addr:depends("proto", "static")
- ip6addr:depends("proto", "6in4")
-
- ip6gw = s:taboption("ipv6", Value, "ip6gw", translate("<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"))
- ip6gw.optional = true
- ip6gw.datatype = "ip6addr"
- ip6gw:depends("proto", "static")
-
-
- ra = s:taboption("ipv6", Flag, "accept_ra", translate("Accept Router Advertisements"))
- ra.default = m.uci:get("network", arg[1], "proto") == "dhcp" and ra.enabled or ra.disabled
- ra:depends("proto", "static")
- ra:depends("proto", "dhcp")
- ra:depends("proto", "none")
-
- rs = s:taboption("ipv6", Flag, "send_rs", translate("Send Router Solicitiations"))
- rs.default = m.uci:get("network", arg[1], "proto") ~= "dhcp" and rs.enabled or rs.disabled
- rs:depends("proto", "static")
- rs:depends("proto", "dhcp")
- rs:depends("proto", "none")
-end
-
-dns = s:taboption("general", DynamicList, "dns", translate("<abbr title=\"Domain Name System\">DNS</abbr>-Server"),
- translate("You can specify multiple DNS servers here, press enter to add a new entry. Servers entered here will override " ..
- "automatically assigned ones."))
-
-dns.optional = true
-dns.cast = "string"
-dns.datatype = "ipaddr"
-dns:depends({ peerdns = "", proto = "static" })
-dns:depends({ peerdns = "", proto = "dhcp" })
-dns:depends({ peerdns = "", proto = "pppoe" })
-dns:depends({ peerdns = "", proto = "pppoa" })
-dns:depends({ peerdns = "", proto = "none" })
-
-mtu = s:taboption("physical", Value, "mtu", "MTU")
-mtu.optional = true
-mtu.datatype = "uinteger"
-mtu.placeholder = 1500
-mtu:depends("proto", "static")
-mtu:depends("proto", "dhcp")
-mtu:depends("proto", "pppoe")
-mtu:depends("proto", "pppoa")
-mtu:depends("proto", "6in4")
-mtu:depends("proto", "6to4")
-mtu:depends("proto", "none")
-
-srv = s:taboption("general", Value, "server", translate("<abbr title=\"Point-to-Point Tunneling Protocol\">PPTP</abbr>-Server"))
-srv:depends("proto", "pptp")
-srv.optional = false
-srv.datatype = "host"
-
-if has_6in4 then
- peer = s:taboption("general", Value, "peeraddr", translate("Server IPv4-Address"))
- peer.optional = false
- peer.datatype = "ip4addr"
- peer:depends("proto", "6in4")
-end
-
-if has_6in4 or has_6to4 then
- ttl = s:taboption("physical", Value, "ttl", translate("TTL"))
- ttl.default = "64"
- ttl.optional = true
- ttl.datatype = "uinteger"
- ttl:depends("proto", "6in4")
- ttl:depends("proto", "6to4")
-end
-
-if has_6to4 then
- advi = s:taboption("general", Value, "adv_interface", translate("Advertise IPv6 on network"))
- advi.widget = "checkbox"
- advi.exclude = arg[1]
- advi.default = "lan"
- advi.template = "cbi/network_netlist"
- advi.nocreate = true
- advi.nobridges = true
- advi:depends("proto", "6to4")
-
- advn = s:taboption("general", Value, "adv_subnet", translate("Advertised network ID"), translate("Allowed range is 1 to FFFF"))
- advn.default = "1"
- advn:depends("proto", "6to4")
-
- function advn.write(self, section, value)
- value = tonumber(value, 16) or 1
-
- if value > 65535 then value = 65535
- elseif value < 1 then value = 1 end
-
- Value.write(self, section, "%X" % value)
- end
-end
-
-if has_relay then
- rnet = s:taboption("general", Value, "network", translate("Relay between networks"))
- rnet.widget = "checkbox"
- rnet.exclude = arg[1]
- rnet.template = "cbi/network_netlist"
- rnet.nocreate = true
- rnet.nobridges = true
- rnet:depends("proto", "relay")
-end
-
-mac = s:taboption("physical", Value, "macaddr", translate("<abbr title=\"Media Access Control\">MAC</abbr>-Address"))
-mac:depends("proto", "none")
-mac:depends("proto", "static")
-mac:depends("proto", "dhcp")
-mac.placeholder = ifc and ifc:mac():upper()
-
-if has_3g then
- service = s:taboption("general", ListValue, "service", translate("Service type"))
- service:value("", translate("-- Please choose --"))
- service:value("umts", "UMTS/GPRS")
- service:value("cdma", "CDMA")
- service:value("evdo", "EV-DO")
- service:depends("proto", "3g")
- service.rmempty = true
-
- apn = s:taboption("general", Value, "apn", translate("Access point (APN)"))
- apn:depends("proto", "3g")
-
- pincode = s:taboption("general", Value, "pincode",
- translate("PIN code"),
- translate("Make sure that you provide the correct pin code here or you might lock your sim card!")
- )
- pincode:depends("proto", "3g")
-end
-
-if has_6in4 then
- tunid = s:taboption("general", Value, "tunnelid", translate("HE.net Tunnel ID"))
- tunid.optional = true
- tunid.datatype = "uinteger"
- tunid:depends("proto", "6in4")
-end
-
-if has_pppd or has_pppoe or has_pppoa or has_3g or has_pptp or has_6in4 then
- user = s:taboption("general", Value, "username", translate("Username"))
- user.rmempty = true
- user:depends("proto", "pptp")
- user:depends("proto", "pppoe")
- user:depends("proto", "pppoa")
- user:depends("proto", "ppp")
- user:depends("proto", "3g")
- user:depends("proto", "6in4")
-
- pass = s:taboption("general", Value, "password", translate("Password"))
- pass.rmempty = true
- pass.password = true
- pass:depends("proto", "pptp")
- pass:depends("proto", "pppoe")
- pass:depends("proto", "pppoa")
- pass:depends("proto", "ppp")
- pass:depends("proto", "3g")
- pass:depends("proto", "6in4")
-end