awk scripts for trace file
Hi this is a sample of my trace file
s 5.000000000 _10_ AGT --- 0 cbr 50 [0 0 0 0] [energy 100.000000 ei 0.000 es 0.000 et 0.000 er 0.000] ------- [10:0 0:0 32 0] [0] 0 0 r 5.000000000 _10_ RTR --- 0 cbr 50 [0 0 0 0] [energy 100.000000 ei 0.000 es 0.000 et 0.000 er 0.000] ------- [10:0 0:0 32 0] [0] 0 0 s 5.000000000 _10_ RTR --- 0 AODV 48 [0 0 0 0] [energy 100.000000 ei 0.000 es 0.000 et 0.000 er 0.000] ------- [10:255 -1:255 30 0] [0x2 1 1 [0 0] [10 4]] (REQUEST) N -t 5.002585 -n 0 -e 99.996369 N -t 5.002585 -n 8 -e 99.996369 N -t 5.002585 -n 95 -e 99.996369 r 5.005202005 _0_ RTR --- 0 AODV 48 [0 ffffffff a 800] [energy 99.996369 ei 0.004 es 0.000 et 0.000 er 0.000] ------- [10:255 -1:255 30 0] [0x2 1 1 [0 0] [10 4]] (REQUEST) s 5.005202005 _0_ RTR --- 0 AODV 44 [0 0 0 0] [energy 99.996369 ei 0.004 es 0.000 et 0.000 er 0.000] ------- [0:255 10:255 30 10] [0x4 1 [0 4] 10.000000] (REPLY) r 5.005202054 _8_ RTR --- 0 AODV 48 [0 ffffffff a 800] [energy 99.996369 ei 0.004 es 0.000 et 0.000 er 0.000] ------- [10:255 -1:255 30 0] [0x2 1 1 [0 0] [10 4]] (REQUEST) r 5.005202130 _95_ RTR --- 0 AODV 48 [0 ffffffff a 800] [energy 99.996369 ei 0.004 es 0.000 et 0.000 er 0.000] ------- [10:255 -1:255 30 0] [0x2 1 1 [0 0] [10 4]] (REQUEST) N -t 5.006807 -n 10 -e 99.996318 N -t 5.006807 -n 8 -e 99.996321 N -t 5.006807 -n 95 -e 99.996321 s 5.009520941 _95_ RTR --- 0 AODV 48 [0 ffffffff a 800] [energy 99.996321 ei 0.004 es 0.000 et 0.000 er 0.000] ------- [95:255 -1:255 29 0] [0x2 2 1 [0 0] [10 4]] (REQUEST) N -t 5.009866 -n 8 -e 99.996251 N -t 5.009866 -n 28 -e 99.996364 N -t 5.009866 -n 68 -e 99.996364 N -t 5.009866 -n 0 -e 99.996245 N -t 5.009866 -n 10 -e 99.996248 s 5.012243695 _8_ RTR --- 0 AODV 48 [0 ffffffff a 800] [energy 99.996251 ei 0.004 es 0.000 et 0.000 er 0.000] ------- [8:255 -1:255 29 0] [0x2 2 1 [0 0] [10 4]] (REQUEST) r 5.012483018 _8_ RTR --- 0 AODV 48 [0 ffffffff 5f 800] [energy 99.996251 ei 0.004 es 0.000 et 0.000 er 0.000] ------- [95:255 -1:255 29 0] [0x2 2 1 [0 0] [10 4]] (REQUEST) r 5.012483028 _28_ RTR --- 0 AODV 48 [0 ffffffff 5f 800] [energy 99.996364 ei 0.004 es 0.000 et 0.000 er 0.000] ------- [95:255 -1:255 29 0] [0x2 2 1 [0 0] [10 4]] (REQUEST) r 5.012483070 _68_ RTR --- 0 AODV 48 [0 ffffffff 5f 800] [energy 99.996364 ei 0.004 es 0.000 et 0.000 er 0.000] ------- [95:255 -1:255 29 0] [0x2 2 1 [0 0] [10 4]] (REQUEST) r 5.012483070 _0_ RTR --- 0 AODV 48 [0 ffffffff 5f 800] [energy 99.996245 ei 0.004 es 0.000 et 0.000 er 0.000] ------- [95:255 -1:255 29 0] [0x2 2 1 [0 0] [10 4]] (REQUEST) r 5.012483071 _10_ RTR --- 0 AODV 48 [0 ffffffff 5f 800] [energy 99.996226 ei 0.004 es 0.000 et 0.000 er 0.000] ------- [95:255 -1:255 29 0] [0x2 2 1 [0 0] [10 4]] (REQUEST) N -t 5.013549 -n 0 -e 99.996175 N -t 5.013549 -n 10 -e 99.996155 N -t 5.013549 -n 95 -e 99.996178 N -t 5.013549 -n 28 -e 99.996294 I have used the following end to end delay awk script : # =================================================================== # AWK Script for calculating: # => Send, # => Received, and # => Dropped packets, with packets # => Delivery Ration and Average End-to-End Delay. # =================================================================== BEGIN { seqno = -1; droppedPackets = 0; receivedPackets = 0; count = 0; } { #packet delivery ratio if($4 == "AGT" && $1 == "s" && seqno < $6) { seqno = $6; } else if(($4 == "AGT") && ($1 == "r")) { receivedPackets++; } else if ($1 == "D" && $7 == "tcp" && $8 > 512){ droppedPackets++; } #end-to-end delay if($4 == "AGT" && $1 == "s") { start_time[$6] = $2; } else if(($7 == "tcp") && ($1 == "r")) { end_time[$6] = $2; } else if($1 == "D" && $7 == "tcp") { end_time[$6] = -1; } } END { for(i=0; i<=seqno; i++) { if(end_time[i] > 0) { delay[i] = end_time[i] - start_time[i]; count++; } else { delay[i] = -1; } } for(i=0; i<count; i++) { if(delay[i] > 0) { n_to_n_delay = n_to_n_delay + delay[i]; } } n_to_n_delay = n_to_n_delay/count; print "\n"; print "GeneratedPackets = " seqno+1; print "ReceivedPackets = " receivedPackets; print "Packet Delivery Ratio = " receivedPackets/(seqno+1)*100 "%"; print "Total Dropped Packets = " droppedPackets; print "Average End-to-End Delay = " n_to_n_delay * 1000 " ms"; print "\n"; } and I got this message : Average end to end delay = -nan ms I can't really understand what is the problem. Can somebody provide my scripts for energy consumption, e2edelay,throughput, sent-received-dropped packets, jitter that works for AODV routing protocol. How can by an awk script extract an Xgraph. Thanks a lot MIKE |
So first of all, please use [code][/code] tags to enclose code so it is at least readable.
I am not sure that with the provided input this code was ever going to work. On a quick look I see that end_time variable is only ever set when at least $7 == tcp. The problem here is that the string 'tcp' is not in the input at all?? Also the seqno is never any bigger than 0 so the loops in END related to this will only ever loop once. Combining the above means that by the time you get to the following line: Code:
n_to_n_delay = n_to_n_delay/count; So we either need better data to look at or you need to rethink some of the logic. |
hello sir
can you give me the script.tcl of this example, a want to learn how do you add the energy! and do you see your problem of awk because i have the same probleme?? thanks in advance |
This thread is over a year old now and the opening poster never bothered to come back and reply after the first post. Do you really think you're going to get an answer?
If you have a similar problem of your own, it's generally better to start a new thread for it. You can link back to any older ones if appropriate. Don't reopen old threads unless you have something important to add to that discussion in particular. |
awk script
Hi
i want to simulate an awk script to have throuĝhput graph for tcp connection ( my awk file is named linktcp) and has this format BEGIN { packet_size= 1500 total_throughput = 0 final = 0 time_ini = 1.0 count = 0 } { ackn = $5 event = $1 time = $2 node = 0 flowid= $8 from_node = $3 to_node= $4 #print(event) #print(time) #print(flowid) #print(from_node) #from node should be 2 if(event == "r" && flowid == "1" && from_node == "0" && time_ini >= time && ackn == "tcp" ) { #remember always immediately after if there will be start of the “{“ .not in next line total_throughput = total_throughput + packet_size ++count } if(event == "r" && flowid == "1" && from_node == "0" && time_ini <= time &&ackn == "tcp") { #print(count) count = 0 final = total_throughput + final #print(total_throughput) total_throughput = (total_throughput *8)/1000 printf("%f\t%f\n" , time_ini , total_throughput ) total_throughput = 0 time_ini = time_ini + 1 } } END { final = (((final *8)/1000 ) / time) print("Total Throughput for TCP : " , final) for (i = 1.00 ; i <= time_ini ; i++) printf("%f\t%f\n" , i , final ) } to plot the graph of throughput :i wrote this little script below and i named it 'parametre1': set title 'Tcp-Throughput' set xlabel 'Time (s)' set ylabel 'throughput (Mbs)' set autoscale plot 'linktcp' w linespoints title 'throughput-of-TCP' But i tape in the terminal this command to plot the graph with gnuplot : i have this result gnuplot> load 'parametre1' "parametre1", line 5: warning: Skipping unreadable file "linktcp" "parametre1", line 5: No data in plot Help me please i don't understand what to do Thanks for you |
Quote:
|
Hi friends,
Can anyone help me to integrate multi hops notion in leach protocol . please I need your help as soon as possible and I will be grateful. |
Is anyone actually reading this thread? :rolleyes:
|
All times are GMT -5. The time now is 04:42 PM. |