* luci/libs/uvl: completed network scheme, add "uint" and "ipaddr" datatypes

This commit is contained in:
Jo-Philipp Wich 2008-09-03 01:45:43 +00:00
parent c842b668b0
commit 2b767fc45c
2 changed files with 143 additions and 0 deletions

View file

@ -31,6 +31,15 @@ function boolean( val )
return false
end
function uint( val )
local n = tonumber(val)
if n ~= nil and math.floor(n) == n and n >= 0 then
return true
end
return false
end
function integer( val )
local n = tonumber(val)
if n ~= nil and math.floor(n) == n then
@ -44,6 +53,10 @@ function float( val )
return ( tonumber(val) ~= nil )
end
function ipaddr( val )
return ip4addr(val) or ip6addr(val)
end
function ip4addr( val )
if val then
return luci.ip.IPv4(val) and true or false

View file

@ -8,6 +8,7 @@ config section
option title 'Network interface definition'
option package 'network'
list depends 'proto=static, ipaddr, netmask'
list depends 'proto=static, ip6addr'
list depends 'proto=pppoe, username, password'
list depends 'proto=pptp, username, password, server'
list depends 'proto=dhcp'
@ -20,6 +21,12 @@ config variable
option section 'network.interface'
option required true
config variable
option name 'macaddr'
option title 'Interface MAC address'
option section 'network.interface'
option datatype 'macaddr'
config variable
option name 'ipaddr'
option title 'IPv4 host address'
@ -32,6 +39,54 @@ config variable
option section 'network.interface'
option datatype 'ip4addr'
config variable
option name 'gateway'
option title 'IPv4 gateway'
option section 'network.interface'
option datatype 'ip4addr'
config variable
option name 'bcast'
option title 'IPv4 broadcast address'
option section 'network.interface'
option datatype 'ip4addr'
config variable
option name 'ip6addr'
option title 'IPv6 address (CIDR)'
option section 'network.interface'
option datatype 'ip6addr'
config variable
option name 'ip6gw'
option title 'IPv6 gateway'
option section 'network.interface'
option datatype 'ip6addr'
config variable
option name 'dns'
option title 'DNS server (IPv4 or IPv6)'
option section 'network.interface'
option datatype 'ipaddr'
config variable
option name 'mtu'
option title 'MTU'
option section 'network.interface'
option datatype 'uint'
config variable
option name 'keepalive'
option title 'Number of connection failures before reconnect (PPTP)'
option section 'network.interface'
option datatype 'uint'
config variable
option name 'demand'
option title 'Number of seconds to wait before closing the connection due to inactivity (PPTP)'
option section 'network.interface'
option datatype 'uint'
config variable
option name 'proto'
option title 'Option proto'
@ -71,6 +126,81 @@ config enum
option title 'This is a bridge interface'
config section
option name 'alias'
option title 'Alias interface definition'
option package 'network'
list depends 'proto=static, ipaddr, netmask'
list depends 'proto=static, ip6addr'
list depends 'proto=pppoe, username, password'
list depends 'proto=pptp, username, password, server'
list depends 'proto=dhcp'
option named true
config variable
option name 'interface'
option title 'Parent interface name'
option section 'network.alias'
option valueof 'network.interface'
option required true
config variable
option name 'ipaddr'
option title 'IPv4 host address'
option section 'network.alias'
option datatype 'ip4addr'
config variable
option name 'netmask'
option title 'IPv4 network mask'
option section 'network.alias'
option datatype 'ip4addr'
config variable
option name 'gateway'
option title 'IPv4 gateway'
option section 'network.alias'
option datatype 'ip4addr'
config variable
option name 'bcast'
option title 'IPv4 broadcast address'
option section 'network.alias'
option datatype 'ip4addr'
config variable
option name 'ip6addr'
option title 'IPv6 address (CIDR)'
option section 'network.alias'
option datatype 'ip6addr'
config variable
option name 'ip6gw'
option title 'IPv6 gateway'
option section 'network.alias'
option datatype 'ip6addr'
config variable
option name 'dns'
option title 'DNS server (IPv4 or IPv6)'
option section 'network.alias'
option datatype 'ipaddr'
config variable
option name 'proto'
option title 'Alias interface protocol'
option section 'network.alias'
option type 'enum'
option required true
config enum
option variable 'network.alias.proto'
option value 'static'
option title 'Interface has static network configuration'
config section
option name 'switch'
option title 'Section switch'