* luci/libs/uvl: completed network scheme, add "uint" and "ipaddr" datatypes
authorJo-Philipp Wich <jow@openwrt.org>
Wed, 3 Sep 2008 01:45:43 +0000 (01:45 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Wed, 3 Sep 2008 01:45:43 +0000 (01:45 +0000)
libs/uvl/luasrc/uvl/datatypes.lua
libs/uvl/root/lib/uci/schema/default/network

index 586e3f8b833c3289f7718868bd5b00c15df30d04..3dfe37dbef82c9252eaddfc9d1625fc22f84956a 100644 (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
index df9fc0e5e7bcb1d8e856b81b480fb4f7b0da7b6f..da9eb133c5687677e17bb5004e47a2b942fb2b47 100644 (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'