Throughput Calculation for Trace FIle
Gökçe Ekin Nehas <[email protected]> Fri, 16 Dec 2016 15:30:54 +0200
| Newsgroups | gmane.network.simulator.isi |
|---|---|
| Message-ID | <CAPbH4WeDS=myqhtQjBAyxfv9pce3FBc56YkDCK8jw6g09nMVPw@mail.gmail.com> |
I have an awk file to calculate throughput for my trace file called
output.tr.
>* ===================== throughput.awk ===============================
*> >* BEGIN {
*>* recv = 0
*>* }
*> >* {
*>* # Trace line format: normal
*>* if ($2 != "-t") {
*>* event = $1
*>* time = $2
*>* if (event == "+" || event == "-") node_id = $3
*>* if (event == "r" || event == "d") node_id = $4
*>* flow_id = $8
*>* pkt_id = $12
*>* pkt_size = $6
*>* }
*>* # Trace line format: new
*>* if ($2 == "-t") {
*>* event = $1
*>* time = $3
*>* node_id = $5
*>* flow_id = $39
*>* pkt_id = $41
*>* pkt_size = $37
*>* }
*> >* # Calculate total received packets' size
*>* if (flow_id == flow && event == "r" && node_id == dst) {
*>* if (flow_t != "sctp") {
*>* recv += pkt_size - hdr_size
*>* #printf("recv[%g] = %g --> tot:
*>* %g\n",node_id,pkt_size-hdr_size,recv)
*>* } else {
*>* # Rip off SCTP header, whose size depends
*>* # on the number of chunks in each packet
*>* if (pkt_size == 40) pkt_size = 0
*>* if (pkt_size == 448) pkt_size = 400
*>* if (pkt_size == 864) pkt_size = 800
*>* if (pkt_size == 1280) pkt_size = 1200
*>* recv += pkt_size
*>* #printf("recv[%g] = %g --> tot:
*>* %g\n",node_id,pkt_size,recv)
*>* }
*>* }
*>* }
*> >* END {
*>* printf("%10g %10s %10g\n",flow,flow_t,(recv/simtime)*(8/1000))
*>
* }*
When I run the command awk -f thr.awk output.tr, get an error in the simulation:
awk: thr.awk:31: %g\n",node_id,pkt_size-hdr_size,recv)
awk: thr.awk:31: ^ syntax error
awk: thr.awk:31: %g\n",node_id,pkt_size-hdr_size,recv)
awk: thr.awk:31: ^ backslash not last character on line
How can i fix this problem?
thr.awk
(application/x-awk, 1.6 KB) - not displayed
output.tr
(application/x-troff, 655.2 KB) - not displayed