protocols/ppp: add mtu options to all ppp protocols, add lcp options to pptp
authorJo-Philipp Wich <jow@openwrt.org>
Wed, 4 Jul 2012 10:02:21 +0000 (10:02 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Wed, 4 Jul 2012 10:02:21 +0000 (10:02 +0000)
protocols/ppp/luasrc/model/cbi/admin_network/proto_ppp.lua
protocols/ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua
protocols/ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua
protocols/ppp/luasrc/model/cbi/admin_network/proto_pptp.lua

index e2e44fa..00760b9 100644 (file)
@@ -14,7 +14,7 @@ local map, section, net = ...
 
 local device, username, password
 local ipv6, defaultroute, metric, peerdns, dns,
 
 local device, username, password
 local ipv6, defaultroute, metric, peerdns, dns,
-         keepalive_failure, keepalive_interval, demand
+         keepalive_failure, keepalive_interval, demand, mtu
 
 
 device = section:taboption("general", Value, "device", translate("Modem device"))
 
 
 device = section:taboption("general", Value, "device", translate("Modem device"))
@@ -129,3 +129,8 @@ demand = section:taboption("advanced", Value, "demand",
 
 demand.placeholder = "0"
 demand.datatype    = "uinteger"
 
 demand.placeholder = "0"
 demand.datatype    = "uinteger"
+
+
+mtu = section:taboption("advanced", Value, "mtu", translate("Override MTU"))
+mtu.placeholder = "1500"
+mtu.datatype    = "max(1500)"
index 1e99c25..5d4c84d 100644 (file)
@@ -14,7 +14,7 @@ local map, section, net = ...
 
 local encaps, atmdev, vci, vpi, username, password
 local ipv6, defaultroute, metric, peerdns, dns,
 
 local encaps, atmdev, vci, vpi, username, password
 local ipv6, defaultroute, metric, peerdns, dns,
-      keepalive_failure, keepalive_interval, demand
+      keepalive_failure, keepalive_interval, demand, mtu
 
 
 encaps = section:taboption("general", ListValue, "encaps", translate("PPPoA Encapsulation"))
 
 
 encaps = section:taboption("general", ListValue, "encaps", translate("PPPoA Encapsulation"))
@@ -135,3 +135,8 @@ demand = section:taboption("advanced", Value, "demand",
 
 demand.placeholder = "0"
 demand.datatype    = "uinteger"
 
 demand.placeholder = "0"
 demand.datatype    = "uinteger"
+
+
+mtu = section:taboption("advanced", Value, "mtu", translate("Override MTU"))
+mtu.placeholder = "1500"
+mtu.datatype    = "max(1500)"
index 72df0e4..4f19ac3 100644 (file)
@@ -14,7 +14,7 @@ local map, section, net = ...
 
 local username, password, ac, service
 local ipv6, defaultroute, metric, peerdns, dns,
 
 local username, password, ac, service
 local ipv6, defaultroute, metric, peerdns, dns,
-      keepalive_failure, keepalive_interval, demand
+      keepalive_failure, keepalive_interval, demand, mtu
 
 
 username = section:taboption("general", Value, "username", translate("PAP/CHAP username"))
 
 
 username = section:taboption("general", Value, "username", translate("PAP/CHAP username"))
@@ -129,3 +129,8 @@ demand = section:taboption("advanced", Value, "demand",
 
 demand.placeholder = "0"
 demand.datatype    = "uinteger"
 
 demand.placeholder = "0"
 demand.datatype    = "uinteger"
+
+
+mtu = section:taboption("advanced", Value, "mtu", translate("Override MTU"))
+mtu.placeholder = "1500"
+mtu.datatype    = "max(1500)"
index bf612f4..0a2ee8e 100644 (file)
@@ -13,7 +13,8 @@ You may obtain a copy of the License at
 local map, section, net = ...
 
 local server, username, password
 local map, section, net = ...
 
 local server, username, password
-local defaultroute, metric, peerdns, dns
+local defaultroute, metric, peerdns, dns,
+       keepalive_failure, keepalive_interval, demand, mtu
 
 
 server = section:taboption("general", Value, "server", translate("VPN Server"))
 
 
 server = section:taboption("general", Value, "server", translate("VPN Server"))
@@ -55,3 +56,61 @@ dns = section:taboption("advanced", DynamicList, "dns",
 dns:depends("peerdns", "")
 dns.datatype = "ipaddr"
 dns.cast     = "string"
 dns:depends("peerdns", "")
 dns.datatype = "ipaddr"
 dns.cast     = "string"
+
+
+keepalive_failure = section:taboption("advanced", Value, "_keepalive_failure",
+       translate("LCP echo failure threshold"),
+       translate("Presume peer to be dead after given amount of LCP echo failures, use 0 to ignore failures"))
+
+function keepalive_failure.cfgvalue(self, section)
+       local v = m:get(section, "keepalive")
+       if v and #v > 0 then
+               return tonumber(v:match("^(%d+)[ ,]+%d+") or v)
+       end
+end
+
+function keepalive_failure.write() end
+function keepalive_failure.remove() end
+
+keepalive_failure.placeholder = "0"
+keepalive_failure.datatype    = "uinteger"
+
+
+keepalive_interval = section:taboption("advanced", Value, "_keepalive_interval",
+       translate("LCP echo interval"),
+       translate("Send LCP echo requests at the given interval in seconds, only effective in conjunction with failure threshold"))
+
+function keepalive_interval.cfgvalue(self, section)
+       local v = m:get(section, "keepalive")
+       if v and #v > 0 then
+               return tonumber(v:match("^%d+[ ,]+(%d+)"))
+       end
+end
+
+function keepalive_interval.write(self, section, value)
+       local f = tonumber(keepalive_failure:formvalue(section)) or 0
+       local i = tonumber(value) or 5
+       if i < 1 then i = 1 end
+       if f > 0 then
+               m:set(section, "keepalive", "%d %d" %{ f, i })
+       else
+               m:del(section, "keepalive")
+       end
+end
+
+keepalive_interval.remove      = keepalive_interval.write
+keepalive_interval.placeholder = "5"
+keepalive_interval.datatype    = "min(1)"
+
+
+demand = section:taboption("advanced", Value, "demand",
+       translate("Inactivity timeout"),
+       translate("Close inactive connection after the given amount of seconds, use 0 to persist connection"))
+
+demand.placeholder = "0"
+demand.datatype    = "uinteger"
+
+
+mtu = section:taboption("advanced", Value, "mtu", translate("Override MTU"))
+mtu.placeholder = "1500"
+mtu.datatype    = "max(1500)"