Skip to content

Commit

Permalink
workaround of a serpent serializer bug
Browse files Browse the repository at this point in the history
  • Loading branch information
Artem Shvorin committed Jul 17, 2018
1 parent fd300f2 commit f4565f1
Showing 1 changed file with 33 additions and 7 deletions.
40 changes: 33 additions & 7 deletions examples/l3-tcp-syn-ack-flood.lua
Original file line number Diff line number Diff line change
Expand Up @@ -57,16 +57,14 @@ function master(args)

for i = 0, args.ackq-1 do
local txQ = dev:getTxQueue(i)
local rxQ = dev:getRxQueue(i)
txQ:setRate(args.rate)
mg.startTask("replySlave", false, txQ, rxQ)
mg.startTask("replySlave", false, dev, i)
end

for i = args.ackq, args.ackq+args.synackq-1 do
local txQ = dev:getTxQueue(i)
local rxQ = dev:getRxQueue(i)
txQ:setRate(args.rate)
mg.startTask("replySlave", true, txQ, rxQ)
mg.startTask("replySlave", true, dev, i)
end

for i = args.ackq+args.synackq, args.ackq+args.synackq+args.synq-1 do
Expand All @@ -76,20 +74,22 @@ function master(args)
end

if args.c then
mg.startTask("rxCount", dev:getRxQueue(rxQueues-1))
mg.startTask("rxCount", dev, rxQueues-1)
end
end
mg.waitForTasks()
end

local zero16 = hton16(0)

function replySlave(synack, txQ, rxQ)
function replySlave(synack, dev, qin)
if synack then
print("replySlave synack")
else
print("replySlave -")
end
local txQ = dev:getTxQueue(qin)
local rxQ = dev:getRxQueue(qin)
local txBufs = memory.bufArray(128)
local rxBufs = memory.bufArray(128)
local txStats = stats:newDevTxCounter(txQ, "plain")
Expand Down Expand Up @@ -256,8 +256,34 @@ function synSlave(queue, minA, numIPs, dest, ethDst_str, ipg)
txStats:finalize()
end

function rxCount(rxQ)
function pcap_replay(queue, file, loop)
if not file then
log:fatal("pcap_replay: source PCAP file must be set via --file")
end
local txStats = stats:newDevTxCounter(queue, "plain")
local mempool = memory:createMemPool()
local bufs = mempool:bufArray(256)
local pcapFile = pcap:newReader(file)
while mg.running() do
local n = pcapFile:read(bufs)
if n == 0 then
if loop then
pcapFile:reset()
else
break
end
end
bufs:resize(n)
bufs:offloadTcpChecksums(ipv4)
queue:send(bufs)
txStats:update()
end
txStats:finalize()
end

function rxCount(dev, qid)
print("rxCount")
local rxQ = dev:getRxQueue(qid)
local rxCtr = stats:newDevRxCounter(rxQ)
local rxBufs = memory.bufArray(128)
while mg.running() do
Expand Down

0 comments on commit f4565f1

Please sign in to comment.