statistics: Add support for entropy stats
[project/luci.git] / applications / luci-app-statistics / luasrc / model / cbi / luci_statistics / netlink.lua
1 -- Copyright 2008 Freifunk Leipzig / Jo-Philipp Wich <jow@openwrt.org>
2 -- Licensed to the public under the Apache License 2.0.
3
4 require("luci.sys")
5
6 local devices = luci.sys.net.devices()
7
8
9 m = Map("luci_statistics",
10         translate("Netlink Plugin Configuration"),
11         translate(
12                 "The netlink plugin collects extended informations like " ..
13                 "qdisc-, class- and filter-statistics for selected interfaces."
14         ))
15
16 -- collectd_netlink config section
17 s = m:section( NamedSection, "collectd_netlink", "luci_statistics" )
18
19 -- collectd_netlink.enable
20 enable = s:option( Flag, "enable", translate("Enable this plugin") )
21 enable.default = 0
22
23 -- collectd_netlink.interfaces (Interface)
24 interfaces = s:option( MultiValue, "Interfaces", translate("Basic monitoring") )
25 interfaces.widget   = "select"
26 interfaces.optional = true
27 interfaces.size     = #devices + 1
28 interfaces:depends( "enable", 1 )
29 interfaces:value("")
30 for i, v in ipairs(devices) do
31         interfaces:value(v)
32 end
33
34 -- collectd_netlink.verboseinterfaces (VerboseInterface)
35 verboseinterfaces = s:option( MultiValue, "VerboseInterfaces", translate("Verbose monitoring") )
36 verboseinterfaces.widget   = "select"
37 verboseinterfaces.optional = true
38 verboseinterfaces.size     = #devices + 1
39 verboseinterfaces:depends( "enable", 1 )
40 verboseinterfaces:value("")
41 for i, v in ipairs(devices) do
42         verboseinterfaces:value(v)
43 end
44
45 -- collectd_netlink.qdiscs (QDisc)
46 qdiscs = s:option( MultiValue, "QDiscs", translate("Qdisc monitoring") )
47 qdiscs.widget   = "select"
48 qdiscs.optional = true
49 qdiscs.size     = #devices + 1
50 qdiscs:depends( "enable", 1 )
51 qdiscs:value("")
52 for i, v in ipairs(devices) do
53         qdiscs:value(v)
54 end
55
56 -- collectd_netlink.classes (Class)
57 classes = s:option( MultiValue, "Classes", translate("Shaping class monitoring") )
58 classes.widget   = "select"
59 classes.optional = true
60 classes.size     = #devices + 1
61 classes:depends( "enable", 1 )
62 classes:value("")
63 for i, v in ipairs(devices) do
64         classes:value(v)
65 end
66
67 -- collectd_netlink.filters (Filter)
68 filters = s:option( MultiValue, "Filters", translate("Filter class monitoring") )
69 filters.widget   = "select"
70 filters.optional = true
71 filters.size     = #devices + 1
72 filters:depends( "enable", 1 )
73 filters:value("")
74 for i, v in ipairs(devices) do
75         filters:value(v)
76 end
77
78 -- collectd_netlink.ignoreselected (IgnoreSelected)
79 ignoreselected = s:option( Flag, "IgnoreSelected", translate("Monitor all except specified") )
80 ignoreselected.default = 0
81 ignoreselected:depends( "enable", 1 )
82
83 return m