1BEGIN{ 2 csnddt=0; 3 crcvdt=0; 4 csndnak=0; 5 crcvnak=0; 6 csndrefresh=0; 7 crcvrefresh=0; 8 csndret=0; 9 crcvret=0; 10 csimloss=0; 11 cldt=0; 12 clnak=0; 13 clref=0; 14 clret=0; 15 cpackets=0; 16 control=1; 17} 18{ 19 if (control>7) 20 { 21 if($2=="S"){ 22 if ($3=="DT"){ 23 csnddt++; 24 sdt[$6]++; 25 } 26 else if ($3=="NK"){ 27 if ( NF >= 11 ){ 28 base_sn=$8; 29 window_size=$9; 30 hmask=$10; 31 lmask=$11; 32 33 i=0; 34 35 while( int(lmask/2) > 0 ){ 36 37 if( (lmask%2)==1 ) 38 snak[base_sn + i + 1]++; 39 40 lmask=int(lmask/2); 41 i++; 42 } 43 44 if( (lmask%2)==1 ) 45 snak[base_sn + i + 1]++; 46 47 i=0; 48 49 while( int(hmask/2) > 0 ){ 50 51 if( (hmask%2)==1 ) 52 snak[(int(window_size/2)) + base_sn + i + 1]++; 53 54 hmask=int(hmask/2); 55 i++; 56 } 57 58 if( (hmask%2)==1 ) 59 snak[(int(window_size/2)) + base_sn + i + 1]++; 60 } 61 else{ 62 snak[$8]++; 63 } 64 65 csndnak++; 66 } 67 else if ($3=="RF") csndrefresh++; 68 else if ($3=="RT"){ 69 sret[$8]++; 70 csndret++; 71 } 72 } 73 else if($2=="R"){ 74 if (($3=="DT") && ($4==member_ip) && ($5==member_pid)){ 75 crcvdt++; 76 rdt[$6]++; 77 } 78 else if (($3=="NK") && ($4==member_ip) && ($5==member_pid)){ 79 if ( NF >= 11 ){ 80 base_sn=$8; 81 window_size=$9; 82 hmask=$10; 83 lmask=$11; 84 85 i=0; 86 87 while( int(lmask/2) > 0 ){ 88 89 if( (lmask%2)==1 ) 90 rnak[base_sn + i + 1]++; 91 92 lmask=int(lmask/2); 93 i++; 94 } 95 if( (lmask%2)==1 ) 96 rnak[base_sn + i + 1]++; 97 i=0; 98 99 while( int(hmask/2) > 0 ){ 100 101 if( (hmask%2)==1 ) 102 rnak[(int(window_size/2)) + base_sn + i + 1]++; 103 104 hmask=int(hmask/2); 105 i++; 106 } 107 if( (hmask%2)==1 ) 108 rnak[(int(window_size/2)) + base_sn + i + 1]++; 109 } 110 else{ 111 rnak[$8]++; 112 } 113 114 crcvnak++; 115 } 116 else if ($3=="RF") crcvrefresh++; 117 else if (($3=="RT") && ($4==member_ip) && ($5==member_pid)){ 118 rret[$8]++; 119 crcvret++; 120 } 121 } 122 else if($2=="L"){ 123 csimloss++; 124 if (($3=="DT") && ($4==member_ip) && ($5==member_pid)){ 125 ldt[$6]++; 126 cldt++; 127 } 128 else if (($3=="NK") && ($4==member_ip) && ($5==member_pid)){ 129 lnak[$8]++; 130 clnak++; 131 } 132 else if (($3=="RF") && ($4==member_ip) && ($5==member_pid)){ 133 lref[$6]++; 134 clref++; 135 } 136 else if (($3=="RT") && ($4==member_ip) && ($5==member_pid)){ 137 lret[$8]++; 138 clret++; 139 } 140 } 141 cpackets++; 142 } 143 control++; 144} 145END{ 146 printf("--------------------------------------------------\n"); 147 printf(" Data related to\n %s -> %s:%d\n",f1,member_ip,member_pid); 148 printf("--------------------------------------------------\n"); 149 printf("Data sent: %d\n",csnddt); 150 printf("Data received from %s:%d %d\n",member_ip,member_pid,crcvdt); 151 printf("NACKs sent: %d\n",csndnak); 152 printf("NACKs received from %s:%d %d\n",member_ip,member_pid,crcvnak); 153 printf("Refresh sent: %d\n",csndrefresh); 154 printf("Refresh received from %s:%d %d\n",member_ip,member_pid,crcvrefresh); 155 printf("Retrans sent: %d\n",csndret); 156 printf("Retrans received from %s:%d %d\n",member_ip,member_pid,crcvret); 157 printf("Total simulated loss: %d\n",csimloss); 158 printf("Data loss with simulation from %s:%d %d\n",member_ip,member_pid,cldt); 159 printf("NACKs lost by simulation from %s:%d %d\n",member_ip,member_pid,clnak); 160 printf("Refresh lost by simulation from %s:%d %d\n",member_ip,member_pid,clref); 161 printf("Retrans lost by simulation from %s:%d %d\n",member_ip,member_pid,clret); 162 printf("Packets identified: %d\n",cpackets); 163 164 165 naksenviados=sprintf("%s.naksenviados",f1); 166 naksrecebidos=sprintf("%s.naksrecebidos",f1); 167 retenviadas=sprintf("%s.retenviadas",f1); 168 retrecebidas=sprintf("%s.retrecebidas",f1); 169 dtperdidos=sprintf("%s.dtperdidos",f1); 170 nakperdidos=sprintf("%s.nakperdidos",f1); 171 retperdidos=sprintf("%s.retperdidas",f1); 172 refperdidos=sprintf("%s.refperdidos",f1); 173 dtenviados=sprintf("%s.dtenviados",f1); 174 dtrecebidos=sprintf("%s.dtrecebidos",f1); 175 176 print " "> naksenviados; 177 print " "> retenviadas; 178 print " "> naksrecebidos; 179 print " "> retrecebidas; 180 print " "> dtperdidos; 181 print " "> nakperdidos; 182 print " "> retperdidos; 183 print " "> refperdidos; 184 print " "> dtenviados; 185 print " "> dtrecebidos; 186 187 188 for( j = 0; j < maxsndpackets; j++ ) 189 { 190 printf("%d %d\n",j,snak[j]) >> naksenviados; 191 printf("%d %d\n",j,sret[j]) >> retenviadas; 192 printf("%d %d\n",j,rnak[j]) >> naksrecebidos; 193 printf("%d %d\n",j,rret[j]) >> retrecebidas; 194 printf("%d %d\n",j,ldt[j]) >> dtperdidos; 195 printf("%d %d\n",j,lnak[j]) >> nakperdidos; 196 printf("%d %d\n",j,lret[j]) >> retperdidos; 197 printf("%d %d\n",j,lref[j]) >> refperdidos; 198 printf("%d %d\n",j,sdt[j]) >> dtenviados; 199 printf("%d %d\n",j,rdt[j]) >> dtrecebidos; 200 } 201 202 if( maxsndpackets > 0 ) 203 printf("Loss: %.4f%% \n\n",(1 - (crcvdt/maxsndpackets))); 204 205 printf("--------------------------------------------------\n\n"); 206} 207 208