
For now, printing of Sun RPC requests is disabled because we do not yet have the RPC header files. This should affect basically noone, as we do not have any RPC-based programs yet, for the same reason. Change-Id: Ie7818faaaacdc104d8b2c37a68866b4ce18247d6
62 lines
1.4 KiB
Awk
62 lines
1.4 KiB
Awk
BEGIN {
|
|
# we need to know (usual) packet size to convert byte numbers
|
|
# to packet numbers
|
|
if (packetsize <= 0)
|
|
packetsize = 512
|
|
}
|
|
$5 !~ /[SR]/ {
|
|
# print out per-packet data in the form:
|
|
# <packet #>
|
|
# <start sequence #>
|
|
# <1st send time>
|
|
# <last send time>
|
|
# <1st ack time>
|
|
# <last ack time>
|
|
# <# sends>
|
|
# <# acks>
|
|
|
|
n = split ($1,t,":")
|
|
tim = t[1]*3600 + t[2]*60 + t[3]
|
|
if ($6 != "ack") {
|
|
i = index($6,":")
|
|
strtSeq = substr($6,1,i-1)
|
|
id = 1.5 + (strtSeq - 1) / packetsize
|
|
id -= id % 1
|
|
if (maxId < id)
|
|
maxId = id
|
|
if (firstSend[id] == 0) {
|
|
firstSend[id] = tim
|
|
seqNo[id] = strtSeq
|
|
}
|
|
lastSend[id] = tim
|
|
timesSent[id]++
|
|
totalPackets++
|
|
} else {
|
|
id = 1 + ($7 - 2) / packetsize
|
|
id -= id % 1
|
|
timesAcked[id]++
|
|
if (firstAck[id] == 0)
|
|
firstAck[id] = tim
|
|
lastAck[id] = tim
|
|
totalAcks++
|
|
}
|
|
}
|
|
END {
|
|
print "# " maxId " chunks. " totalPackets " packets sent. " \
|
|
totalAcks " acks."
|
|
# for packets that were implicitly acked, make the ack time
|
|
# be the ack time of next explicitly acked packet.
|
|
for (i = maxId-1; i > 0; --i)
|
|
while (i > 0 && firstAck[i] == 0) {
|
|
lastAck[i] = firstAck[i] = firstAck[i+1]
|
|
--i
|
|
}
|
|
tzero = firstSend[1]
|
|
for (i = 1; i <= maxId; i++)
|
|
printf "%d\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%d\t%d\n",\
|
|
i, seqNo[i], \
|
|
firstSend[i] - tzero, lastSend[i] - tzero,\
|
|
firstAck[i] - tzero, lastAck[i] - tzero,\
|
|
timesSent[i], timesAcked[i]
|
|
}
|