[ns] how to use awk script

2012-04-04 Thread robin turna


 i m using awk script to calculate values of certain parameters but it gives me 
error: Fatal division by zero ,,can you help me regarding this. waiting for  
reply

with regards 
robin

 BEGIN {
   sends=0;
   recvs=0;
  
 routing_packets=0.0;
   droppedBytes=0;
   droppedPackets=0;
   highest_packet_id =0;
   sum=0;
   recvnum=0;
 }
   
  {
  time = $3;
  packet_id = $41;
   
  # CALCULATE PACKET DELIVERY FRACTION
  if ((
 $1 == s)   ( $35 == cbr )  ( $19==AGT )) {  sends++; }
   
  if (( $1 == r)   ( $35 == cbr )  ( $19==AGT ))   {  recvs++; }
   
  # CALCULATE DELAY 
  if ( start_time[packet_id] == 0 )  start_time[packet_id] = time;
  if (( $1 == r)   ( $35 == cbr )  ( $19==AGT )) {  
end_time[packet_id] = time;  }
   else {  end_time[packet_id] = -1;  }
   
  # CALCULATE TOTAL DSR OVERHEAD 
  if (($1 == s || $1 == f)  $19 == RTR  $35 ==DSR) 
routing_packets++;
   
  # DROPPED DSR PACKETS 
  if (( $1 == d )  ( $35 == cbr )   ( $3  0 ))
  
 {
 droppedBytes=droppedBytes+$37;
 droppedPackets=droppedPackets+1;
   }
   
   #find the number of packets in the simulation
  if (packet_id  highest_packet_id)
 highest_packet_id = packet_id;
  }
   
  END {
   
  for ( i in end_time )
  {
  start = start_time[i];
  end = end_time[i];
  packet_duration = end - start;
  if ( packet_duration  0 )  
  {    sum += packet_duration;
   recvnum++; 
  }
  }
  
 
 delay=sum/recvnum;
 NRL = routing_packets/recvs;  #normalized routing load 
 PDF = (recvs/sends)*100;  #packet delivery ratio[fraction]
 printf(send = %.2f\n,sends);
 printf(recv = %.2f\n,recvs);
 printf(routingpkts = %.2f\n,routing_packets++);
 printf(PDF = %.2f\n,PDF);
 printf(NRL = %.2f\n,NRL);
 printf(Average e-e delay(ms)= %.2f\n,delay*1000);
 printf(No. of dropped data (packets) = %d\n,droppedPackets);
 printf(No. of dropped data (bytes)   = %d\n,droppedBytes);
  }


Re: [ns] how to use awk script

2012-04-04 Thread Teerawat@UBC

Hi Robin,

Isn't that obvious? It's because your denominator is zero. You can't compute 
anything with zero denominator. The result would be infinity.

Best Regards,

Teerawat Issariyakul
http://www.ns2ultimate.com/
http://www.facebook.com/pages/Teerawat-Issariyakul/358240861417
http://twitter.com/T_Bear
http://www.t-issariyakul.blogspot.com
http://www.ece.ubc.ca/~teerawat
On Apr 5, 2012, at 12:02 AM, robin turna wrote:

 
 
 i m using awk script to calculate values of certain parameters but it gives 
 me error: Fatal division by zero ,,can you help me regarding this. waiting 
 for  reply
 
 with regards 
 robin
 
  BEGIN {
sends=0;
recvs=0;
   
 routing_packets=0.0;
droppedBytes=0;
droppedPackets=0;
highest_packet_id =0;
sum=0;
recvnum=0;
  }

   {
   time = $3;
   packet_id = $41;

   # CALCULATE PACKET DELIVERY FRACTION
   if ((
 $1 == s)   ( $35 == cbr )  ( $19==AGT )) {  sends++; }

   if (( $1 == r)   ( $35 == cbr )  ( $19==AGT ))   {  recvs++; }

   # CALCULATE DELAY 
   if ( start_time[packet_id] == 0 )  start_time[packet_id] = time;
   if (( $1 == r)   ( $35 == cbr )  ( $19==AGT )) {  
 end_time[packet_id] = time;  }
else {  end_time[packet_id] = -1;  }

   # CALCULATE TOTAL DSR OVERHEAD 
   if (($1 == s || $1 == f)  $19 == RTR  $35 ==DSR) 
 routing_packets++;

   # DROPPED DSR PACKETS 
   if (( $1 == d )  ( $35 == cbr )   ( $3  0 ))
   
 {
  droppedBytes=droppedBytes+$37;
  droppedPackets=droppedPackets+1;
}

#find the number of packets in the simulation
   if (packet_id  highest_packet_id)
  highest_packet_id = packet_id;
   }

   END {

   for ( i in end_time )
   {
   start = start_time[i];
   end = end_time[i];
   packet_duration = end - start;
   if ( packet_duration  0 )  
   {sum += packet_duration;
recvnum++; 
   }
   }
   
 
  delay=sum/recvnum;
  NRL = routing_packets/recvs;  #normalized routing load 
  PDF = (recvs/sends)*100;  #packet delivery ratio[fraction]
  printf(send = %.2f\n,sends);
  printf(recv = %.2f\n,recvs);
  printf(routingpkts = %.2f\n,routing_packets++);
  printf(PDF = %.2f\n,PDF);
  printf(NRL = %.2f\n,NRL);
  printf(Average e-e delay(ms)= %.2f\n,delay*1000);
  printf(No. of dropped data (packets) = %d\n,droppedPackets);
  printf(No. of dropped data (bytes)   = %d\n,droppedBytes);
   }
 




[ns] how to use awk script

2012-04-01 Thread robin turna

hii am using awk script to calculate throughput for dsr protocol, however when 
i add this to tcl script i generates error : invalid command name awk.. can 
anybody help me regarding this.

with regardsrobinrobin_tu...@yahoo.com