-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpacket-sizes.lua
More file actions
53 lines (48 loc) · 1.22 KB
/
packet-sizes.lua
File metadata and controls
53 lines (48 loc) · 1.22 KB
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
local dpdk = require "dpdk"
local memory = require "memory"
local device = require "device"
local stats = require "stats"
local timer = require "timer"
memory.enableCache()
-- TODO: this
function master(port1, port2)
if not port1 or not port2 then
return print("Usage: port1 port2")
end
local dev2 = device.config(port1)
local dev1 = device.config(port2)
device.waitForLinks()
for size = 60, 1518 do
print("Running test for packet size = " .. size)
local task = dpdk.launchLua("loadSlave", dev1:getTxQueue(0), dev2:getTxQueue(0), size)
local avg = task:wait()
if not dpdk.running() then
break
end
end
dpdk.waitForSlaves()
end
function loadSlave(queue1, queue2, size)
local mem = memory.createMemPool(function(buf)
buf:getEthernetPacket():fill{
pktLength = size,
ethSrc = queue,
ethDst = "10:11:12:13:14:15",
}
end)
bufs = mem:bufArray()
local ctr1 = stats:newDevTxCounter(queue1.dev, "plain")
local ctr2 = stats:newDevTxCounter(queue2.dev, "plain")
local runtime = timer:new(10)
while runtime:running() and dpdk.running() do
bufs:alloc(size)
queue1:send(bufs)
ctr1:update()
bufs:alloc(size)
queue2:send(bufs)
ctr2:update()
end
ctr1:finalize()
ctr2:finalize()
return nil -- TODO
end