ccid2.c (69dbdd819599e2f3b77c172e83af512845bca5ad) | ccid2.c (f17a37c9b8c4b32c01e501a84fa6f30e344c6110) |
---|---|
1/* 2 * Copyright (c) 2005, 2006 Andrea Bittau <a.bittau@cs.ucl.ac.uk> 3 * 4 * Changes to meet Linux coding standards, and DCCP infrastructure fixes. 5 * 6 * Copyright (c) 2006 Arnaldo Carvalho de Melo <acme@conectiva.com.br> 7 * 8 * This program is free software; you can redistribute it and/or modify --- 499 unchanged lines hidden (view full) --- 508 if (hc->tx_cwnd < hc->tx_ssthresh) 509 maxincr = DIV_ROUND_UP(dp->dccps_l_ack_ratio, 2); 510 511 /* go through all ack vectors */ 512 while ((offset = ccid2_ackvector(sk, skb, offset, 513 &vector, &veclen)) != -1) { 514 /* go through this ack vector */ 515 while (veclen--) { | 1/* 2 * Copyright (c) 2005, 2006 Andrea Bittau <a.bittau@cs.ucl.ac.uk> 3 * 4 * Changes to meet Linux coding standards, and DCCP infrastructure fixes. 5 * 6 * Copyright (c) 2006 Arnaldo Carvalho de Melo <acme@conectiva.com.br> 7 * 8 * This program is free software; you can redistribute it and/or modify --- 499 unchanged lines hidden (view full) --- 508 if (hc->tx_cwnd < hc->tx_ssthresh) 509 maxincr = DIV_ROUND_UP(dp->dccps_l_ack_ratio, 2); 510 511 /* go through all ack vectors */ 512 while ((offset = ccid2_ackvector(sk, skb, offset, 513 &vector, &veclen)) != -1) { 514 /* go through this ack vector */ 515 while (veclen--) { |
516 const u8 rl = *vector & DCCP_ACKVEC_LEN_MASK; 517 u64 ackno_end_rl = SUB48(ackno, rl); | 516 u64 ackno_end_rl = SUB48(ackno, dccp_ackvec_runlen(vector)); |
518 519 ccid2_pr_debug("ackvec start:%llu end:%llu\n", 520 (unsigned long long)ackno, 521 (unsigned long long)ackno_end_rl); 522 /* if the seqno we are analyzing is larger than the 523 * current ackno, then move towards the tail of our 524 * seqnos. 525 */ --- 6 unchanged lines hidden (view full) --- 532 } 533 if (done) 534 break; 535 536 /* check all seqnos in the range of the vector 537 * run length 538 */ 539 while (between48(seqp->ccid2s_seq,ackno_end_rl,ackno)) { | 517 518 ccid2_pr_debug("ackvec start:%llu end:%llu\n", 519 (unsigned long long)ackno, 520 (unsigned long long)ackno_end_rl); 521 /* if the seqno we are analyzing is larger than the 522 * current ackno, then move towards the tail of our 523 * seqnos. 524 */ --- 6 unchanged lines hidden (view full) --- 531 } 532 if (done) 533 break; 534 535 /* check all seqnos in the range of the vector 536 * run length 537 */ 538 while (between48(seqp->ccid2s_seq,ackno_end_rl,ackno)) { |
540 const u8 state = *vector & 541 DCCP_ACKVEC_STATE_MASK; | 539 const u8 state = dccp_ackvec_state(vector); |
542 543 /* new packet received or marked */ | 540 541 /* new packet received or marked */ |
544 if (state != DCCP_ACKVEC_STATE_NOT_RECEIVED && | 542 if (state != DCCPAV_NOT_RECEIVED && |
545 !seqp->ccid2s_acked) { | 543 !seqp->ccid2s_acked) { |
546 if (state == 547 DCCP_ACKVEC_STATE_ECN_MARKED) { | 544 if (state == DCCPAV_ECN_MARKED) |
548 ccid2_congestion_event(sk, 549 seqp); | 545 ccid2_congestion_event(sk, 546 seqp); |
550 } else | 547 else |
551 ccid2_new_ack(sk, seqp, 552 &maxincr); 553 554 seqp->ccid2s_acked = 1; 555 ccid2_pr_debug("Got ack for %llu\n", 556 (unsigned long long)seqp->ccid2s_seq); 557 hc->tx_pipe--; 558 } --- 159 unchanged lines hidden --- | 548 ccid2_new_ack(sk, seqp, 549 &maxincr); 550 551 seqp->ccid2s_acked = 1; 552 ccid2_pr_debug("Got ack for %llu\n", 553 (unsigned long long)seqp->ccid2s_seq); 554 hc->tx_pipe--; 555 } --- 159 unchanged lines hidden --- |