| 212 | FailRate *= 0.99f; |
| 213 | } |
| 214 | void FailureOnSend() { |
| 215 | //printf("Failure on send\n"); |
| 216 | // It is a bit dirty solution of problem with simultaneous transfer |
| 217 | // via slow and fast network link: |
| 218 | // The issue is we put a lot of packets for "slow destination" |
| 219 | // in to socket queue (in kernel), and this queue will be dequeuing |
| 220 | // with speed of "slow network card". Eventually socket queue will be |
| 221 | // overflowed. |
| 222 | // Calling Failure() here increases window for "slow destinations" |
| 223 | // and prevents overflow |
| 224 | Failure(); |
| 225 | } |
| 226 | void Failure(bool updateFailRate = true) { |
| 227 | //printf("Congestion failure\n"); |
| 228 | PacketsInFly -= 1; |
no outgoing calls
no test coverage detected