throughput.awk
上传用户:sy0851
上传日期:2014-07-16
资源大小:4k
文件大小:2k
源码类别:

网络

开发平台:

Unix_Linux

  1. # ======================================================================
  2. #
  3. #     Simulation Goal     : Link Throughput
  4. #     Simulation Topology : Chain
  5. #     Trace type          : Normal trace
  6. #
  7. # ======================================================================
  8. # ======================================================================
  9. #                       Measure Link Throughput 
  10. # ======================================================================
  11. BEGIN {
  12. total_pkt_size_0 = 0;
  13. sim_time = 0;
  14. packet_size = 0;
  15. }
  16. {
  17. # field parameters of normal trace
  18. event           = $1;     #; Event : r , s , d , f
  19. time            = $2;     #; Time : send time , receive time , drop time
  20. node            = $3;     #; Node : source node , receive node
  21. trace_type      = $4;     #; Trace type MAC trace
  22. error_state     = $5;     #; Error state : DUP , ERR , RET , STA , BSY , TTL , CBK
  23. pkt_id          = $6;     #; Event ID : Frame sequence number for total flows
  24. pkt_type        = $7;     #; Packet type : RTS , CTS , Data = cbr , ACK
  25. pkt_size        = $8;     #; Packet size (unit : bytes)
  26. # pick the part of number among "node" variables
  27. node = substr ( node, 2, length(node) - 2 );
  28. if (event == "r"){
  29. end_node = $14 - 1; 
  30. packet_size = $12;
  31. }
  32. # === flow 0 throughput ===
  33. #node == end_node 
  34. if ( event == "r" && node == end_node && pkt_type == "cbr" ) {
  35. total_pkt_size_0 = total_pkt_size_0 + pkt_size;
  36. }
  37. sim_time = time;
  38. }
  39. END {
  40. throughput_0 = total_pkt_size_0 * 8 / ( sim_time * 1000000 );
  41. printf ( "%d %fn", packet_size, throughput_0);
  42. }