60f5db7fa75c28b0455a9dc2191d1da4510ec2ce
[project/luci.git] / protocols / 6x4 / luasrc / model / cbi / admin_network / proto_6to4.lua
1 --[[
2 LuCI - Lua Configuration Interface
3
4 Copyright 2011 Jo-Philipp Wich <xm@subsignal.org>
5
6 Licensed under the Apache License, Version 2.0 (the "License");
7 you may not use this file except in compliance with the License.
8 You may obtain a copy of the License at
9
10         http://www.apache.org/licenses/LICENSE-2.0
11 ]]--
12
13 local map, section, net = ...
14
15 local ipaddr, adv_interface, adv_subnet
16 local adv_valid_lifetime, adv_preferred_lifetime, defaultroute, metric, ttl, mtu
17
18
19 ipaddr = section:taboption("general", Value, "ipaddr",
20         translate("Local IPv4 address"),
21         translate("Leave empty to use the current WAN address"))
22
23 ipaddr.datatype = "ip4addr"
24
25
26 adv_interface = section:taboption("general", Value, "adv_interface", translate("Advertise IPv6 on network"))
27 adv_interface.widget = "checkbox"
28 adv_interface.exclude = arg[1]
29 adv_interface.default = "lan"
30 adv_interface.template = "cbi/network_netlist"
31 adv_interface.nocreate = true
32 adv_interface.nobridges = true
33 adv_interface.novirtual = true
34
35 function adv_interface.remove(self, section)
36         self:write(section, " ")
37 end
38
39 adv_subnet  = section:taboption("general", Value, "adv_subnet",
40         translate("Advertised network ID"),
41         translate("Allowed range is 1 to 65535"))
42
43 adv_subnet.placeholder = "1"
44 adv_subnet.datatype    = "range(1,65535)"
45
46 function adv_subnet.cfgvalue(self, section)
47         local v = Value.cfgvalue(self, section)
48         return v and tonumber(v, 16)
49 end
50
51 function adv_subnet .write(self, section, value)
52         value = tonumber(value) or 1
53
54         if value > 65535 then value = 65535
55         elseif value < 1 then value = 1 end
56
57         Value.write(self, section, "%X" % value)
58 end
59
60
61 adv_valid_lifetime = section:taboption("advanced", Value, "adv_valid_lifetime",
62         translate("Use valid lifetime"),
63         translate("Specifies the advertised valid prefix lifetime in seconds"))
64
65 adv_valid_lifetime.placeholder = "300"
66 adv_valid_lifetime.datatype    = "uinteger"
67
68
69 adv_preferred_lifetime = section:taboption("advanced", Value, "adv_preferred_lifetime",
70         translate("Use preferred lifetime"),
71         translate("Specifies the advertised preferred prefix lifetime in seconds"))
72
73 adv_preferred_lifetime.placeholder = "120"
74 adv_preferred_lifetime.datatype    = "uinteger"
75
76
77
78 defaultroute = section:taboption("advanced", Flag, "defaultroute",
79         translate("Use default gateway"),
80         translate("If unchecked, no default route is configured"))
81
82 defaultroute.default = defaultroute.enabled
83
84
85 metric = section:taboption("advanced", Value, "metric",
86         translate("Use gateway metric"))
87
88 metric.placeholder = "0"
89 metric.datatype    = "uinteger"
90 metric:depends("defaultroute", defaultroute.enabled)
91
92
93 ttl = section:taboption("advanced", Value, "ttl", translate("Use TTL on tunnel interface"))
94 ttl.placeholder = "64"
95 ttl.datatype    = "range(1,255)"
96
97
98 mtu = section:taboption("advanced", Value, "mtu", translate("Use MTU on tunnel interface"))
99 mtu.placeholder = "1280"
100 mtu.datatype    = "max(1500)"