| 413 | } |
| 414 | |
| 415 | static void |
| 416 | sctp_backoff_on_timeout(struct sctp_tcb *stcb, |
| 417 | struct sctp_nets *net, |
| 418 | int win_probe, |
| 419 | int num_marked, int num_abandoned) |
| 420 | { |
| 421 | if (net->RTO == 0) { |
| 422 | if (net->RTO_measured) { |
| 423 | net->RTO = stcb->asoc.minrto; |
| 424 | } else { |
| 425 | net->RTO = stcb->asoc.initial_rto; |
| 426 | } |
| 427 | } |
| 428 | net->RTO <<= 1; |
| 429 | if (net->RTO > stcb->asoc.maxrto) { |
| 430 | net->RTO = stcb->asoc.maxrto; |
| 431 | } |
| 432 | if ((win_probe == 0) && (num_marked || num_abandoned)) { |
| 433 | /* We don't apply penalty to window probe scenarios */ |
| 434 | /* JRS - Use the congestion control given in the CC module */ |
| 435 | stcb->asoc.cc_functions.sctp_cwnd_update_after_timeout(stcb, net); |
| 436 | } |
| 437 | } |
| 438 | |
| 439 | #ifndef INVARIANTS |
| 440 | static void |
no outgoing calls
no test coverage detected