ntopng/scripts/lua/datasources/iface_tcpflags_pkt_distro.lua
2020-04-21 19:17:00 +02:00

50 lines
1.1 KiB
Lua

--
-- (C) 2020 - ntop.org
--
dirs = ntop.getDirs()
package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path
require("lua_utils")
local datasources_utils = require("datasources_utils")
local datamodel = require("datamodel_utils")
local pkt_distribution = {
['syn'] = 'SYN',
['synack'] = 'SYN/ACK',
['finack'] = 'FIN/ACK',
['rst'] = 'RST',
}
local function reportError(msg)
print(json.encode({ error = msg, success = false, csrf = ntop.getRandomCSRFValue() }))
end
local ifid = _GET["ifid"] or 0
local if_name = getInterfaceName(ifid)
interface.select(ifname)
local ifstats = interface.getStats()
local labels = {}
local slices = {}
local res = {}
for key, value in pairs(ifstats["pktSizeDistribution"]["tcp_flags"]) do
if value > 0 then
table.insert(labels, pkt_distribution[key])
table.insert(slices, value)
end
end
if(table.len(res) == 0) then
table.insert(labels, "Other")
table.insert(slices, 100)
end
-- Prepare the results
local m = datamodel:create(labels)
local dataset = ifname.." TCP Flags"
m:appendRow(when, dataset, slices)
return(m)