71d21dd74d4eb78dc78f57c907ebb8e80b6d6d13
[project/luci.git] / applications / luci-statistics / luasrc / model / cbi / luci_statistics / netlink.lua
1 --[[
2
3 Luci configuration model for statistics - collectd netlink plugin configuration
4 (c) 2008 Freifunk Leipzig / Jo-Philipp Wich <xm@leipzig.freifunk.net>
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 $Id$
13
14 ]]--
15
16 require("luci.sys")
17
18 local devices = luci.sys.net.devices()
19
20
21 m = Map("luci_statistics")
22
23 -- collectd_netlink config section
24 s = m:section( NamedSection, "collectd_netlink", "luci_statistics" )
25
26 -- collectd_netlink.enable
27 enable = s:option( Flag, "enable" )
28 enable.default = 0
29
30 -- collectd_netlink.interfaces (Interface)
31 interfaces = s:option( MultiValue, "Interfaces" )
32 interfaces.widget   = "select"
33 interfaces.optional = true
34 interfaces.size     = #devices + 1
35 interfaces:depends( "enable", 1 )
36 interfaces:value("")
37 for i, v in ipairs(devices) do
38         interfaces:value(v)
39 end
40
41 -- collectd_netlink.verboseinterfaces (VerboseInterface)
42 verboseinterfaces = s:option( MultiValue, "VerboseInterfaces" )
43 verboseinterfaces.widget   = "select"
44 verboseinterfaces.optional = true
45 verboseinterfaces.size     = #devices + 1
46 verboseinterfaces:depends( "enable", 1 )
47 verboseinterfaces:value("")
48 for i, v in ipairs(devices) do
49         verboseinterfaces:value(v)
50 end
51
52 -- collectd_netlink.qdiscs (QDisc)
53 qdiscs = s:option( MultiValue, "QDiscs" )
54 qdiscs.widget   = "select"
55 qdiscs.optional = true
56 qdiscs.size     = #devices + 1
57 qdiscs:depends( "enable", 1 )
58 qdiscs:value("")
59 for i, v in ipairs(devices) do
60         qdiscs:value(v)
61 end
62
63 -- collectd_netlink.classes (Class)
64 classes = s:option( MultiValue, "Classes" )
65 classes.widget   = "select"
66 classes.optional = true
67 classes.size     = #devices + 1
68 classes:depends( "enable", 1 )
69 classes:value("")
70 for i, v in ipairs(devices) do
71         classes:value(v)
72 end
73
74 -- collectd_netlink.filters (Filter)
75 filters = s:option( MultiValue, "Filters" )
76 filters.widget   = "select"
77 filters.optional = true
78 filters.size     = #devices + 1
79 filters:depends( "enable", 1 )
80 filters:value("")
81 for i, v in ipairs(devices) do
82         filters:value(v)
83 end
84
85 -- collectd_netlink.ignoreselected (IgnoreSelected)
86 ignoreselected = s:option( Flag, "IgnoreSelected" )
87 ignoreselected.default = 0
88 ignoreselected:depends( "enable", 1 )
89
90 return m