summaryrefslogtreecommitdiff
path: root/PktgenGUI.lua
blob: 91f2320bd99928caeaf5c703363aa266ee7779d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
--
-- PktgenGUI.lua
--
-- SPDX-License-Identifier: BSD-3-Clause


gui = {}

function gui.msg(...)
	str = strfmt("msg=%s\n",strfmt(...));
	io.write(str);
	io.flush();
end

function gui.dumpStats(func, name, portlist)
	stats = func(portlist);
	printf("%s={ ", name);
	st = stats[0];
	for k,v in pairs(st) do
		printf("%s ", k);
	end
	printf("},");
	for i = 0, (stats.n - 1) do
		st = stats[i];
		printf("%d={ ", i);
		for k,v in pairs(st) do
			printf("%d ", v);
		end
		if ( i == (stats.n - 1) ) then
			printf("}\n");
		else
			printf("},");
		end
	end
end

function gui.dumpInfo(func, name, portlist)
	stats = func(portlist);
	printf("%s={ ", name);
	st = stats[0];
	for k,v in pairs(st) do
		printf("%s ", k);
	end
	printf("},");
	for i = 0, (stats.n - 1) do
		st = stats[i];
		printf("%d={ ", i);
		for k,v in pairs(st) do
			printf("%s ", v);
		end
		if ( i == (stats.n - 1) ) then
			printf("}\n");
		else
			printf("},");
		end
	end
end

function gui.getPktStats(portlist)
	gui.dumpStats(pktgen.pktStats, "pktStats", portlist)
end

function gui.getPortStats(portlist)
	gui.dumpStats(pktgen.portStats, "portStats", portlist)
end

function gui.getRateStats(portlist)
	gui.dumpStats(pktgen.rateStats, "rateStats", portlist)
end

function gui.getPortSizes(portlist)
	gui.dumpStats(pktgen.portSizes, "portSizes", portlist)
end

function gui.getPortInfo(portlist)
	gui.dumpInfo(pktgen.portInfo, "portInfo", portlist)
end

function gui.getLinkState(portlist)
	links = pktgen.linkState(portlist);
	printf("linkState={ ");
	for k,v in pairs(links) do
		if ( k == "n" ) then break; end
		printf("%d=%s ", k, v);
	end
	printf("}\n");
end

function gui.getPortFlags(portlist)
	links = pktgen.portFlags(portlist);
	printf("portFlags={ ");
	for k,v in pairs(links) do
		if ( k == "n" ) then break; end
		printf("%d=%s ", k, v);
	end
	printf("}\n");
end

function gui.startTransmitting(portlist)
	-- gui.msg("=== Start Transmit %s", portlist);
	pktgen.start(portlist);
end

function gui.stopTransmitting(portlist)
	-- gui.msg("=== Stop Transmit %s", portlist);
	pktgen.stop(portlist);
end

function gui.clearAllStats()
	pktgen.clear("all");
end

function gui.noop()
	-- Do nothing
end