mirror of
https://github.com/ntop/ntopng.git
synced 2026-04-30 16:09:32 +00:00
50 lines
1.1 KiB
Lua
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)
|