2017-01-29 10:51:29 +00:00
|
|
|
local fastd_methods = {'salsa2012+gmac', 'salsa2012+umac', 'null+salsa2012+gmac', 'null+salsa2012+umac', 'null'}
|
|
|
|
need_array_of('fastd_mesh_vpn.methods', fastd_methods)
|
2015-04-30 11:05:15 +00:00
|
|
|
need_number('fastd_mesh_vpn.mtu')
|
|
|
|
need_boolean('fastd_mesh_vpn.enabled', false)
|
2015-05-02 20:55:23 +00:00
|
|
|
need_boolean('fastd_mesh_vpn.configurable', false)
|
2014-07-05 00:48:56 +00:00
|
|
|
|
2016-11-05 23:01:49 +00:00
|
|
|
need_one_of('fastd_mesh_vpn.syslog_level', {'error', 'warn', 'info', 'verbose', 'debug', 'debug2'}, false)
|
2014-07-05 00:48:56 +00:00
|
|
|
|
2015-04-30 11:05:15 +00:00
|
|
|
local function check_peer(prefix)
|
|
|
|
return function(k, _)
|
2015-10-11 17:31:44 +00:00
|
|
|
assert_uci_name(k)
|
|
|
|
|
2015-04-30 11:05:15 +00:00
|
|
|
local table = string.format('%s[%q].', prefix, k)
|
2014-07-05 00:48:56 +00:00
|
|
|
|
2017-01-29 10:51:29 +00:00
|
|
|
need_string_match(table .. 'key', '^%x+$')
|
2015-04-30 11:05:15 +00:00
|
|
|
need_string_array(table .. 'remotes')
|
|
|
|
end
|
2014-07-05 00:48:56 +00:00
|
|
|
end
|
|
|
|
|
2015-04-30 11:05:15 +00:00
|
|
|
local function check_group(prefix)
|
|
|
|
return function(k, _)
|
2015-10-11 17:31:44 +00:00
|
|
|
assert_uci_name(k)
|
|
|
|
|
2015-04-30 11:05:15 +00:00
|
|
|
local table = string.format('%s[%q].', prefix, k)
|
|
|
|
|
|
|
|
need_number(table .. 'limit', false)
|
|
|
|
need_table(table .. 'peers', check_peer(table .. 'peers'), false)
|
|
|
|
need_table(table .. 'groups', check_group(table .. 'groups'), false)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
need_table('fastd_mesh_vpn.groups', check_group('fastd_mesh_vpn.groups'))
|
2015-10-14 19:21:48 +00:00
|
|
|
|
|
|
|
|
|
|
|
if need_table('fastd_mesh_vpn.bandwidth_limit', nil, false) then
|
|
|
|
need_boolean('fastd_mesh_vpn.bandwidth_limit.enabled', false)
|
|
|
|
need_number('fastd_mesh_vpn.bandwidth_limit.ingress', false)
|
|
|
|
need_number('fastd_mesh_vpn.bandwidth_limit.egress', false)
|
|
|
|
end
|