Lines Matching full:start

197 	tcp_seq start, end;  in tcp_update_dsack_list()  local
207 saved_blks[0].start = rcv_start; in tcp_update_dsack_list()
210 saved_blks[0].start = saved_blks[0].end = 0; in tcp_update_dsack_list()
213 head_blk.start = head_blk.end = 0; in tcp_update_dsack_list()
214 mid_blk.start = rcv_start; in tcp_update_dsack_list()
219 start = tp->sackblks[i].start; in tcp_update_dsack_list()
221 if (SEQ_LT(rcv_end, start)) { in tcp_update_dsack_list()
230 if ((SEQ_MAX(rcv_start, start) != SEQ_MIN(rcv_end, end)) && in tcp_update_dsack_list()
231 (SEQ_GT(head_blk.start, SEQ_MAX(rcv_start, start)) || in tcp_update_dsack_list()
232 (head_blk.start == head_blk.end))) { in tcp_update_dsack_list()
233 head_blk.start = SEQ_MAX(rcv_start, start); in tcp_update_dsack_list()
238 if (((head_blk.start == head_blk.end) || in tcp_update_dsack_list()
239 SEQ_LT(start, head_blk.start)) && in tcp_update_dsack_list()
241 SEQ_LEQ(start, rcv_end))) { in tcp_update_dsack_list()
242 head_blk.start = start; in tcp_update_dsack_list()
245 mid_blk.start = SEQ_MIN(mid_blk.start, start); in tcp_update_dsack_list()
247 if ((mid_blk.start == start) && in tcp_update_dsack_list()
251 if (SEQ_LT(head_blk.start, head_blk.end)) { in tcp_update_dsack_list()
253 saved_blks[0].start = SEQ_MAX(rcv_start, head_blk.start); in tcp_update_dsack_list()
262 !((mid_blk.start == saved_blks[0].start) && in tcp_update_dsack_list()
265 saved_blks[n].start = mid_blk.start; in tcp_update_dsack_list()
269 if (((SEQ_LT(tp->sackblks[j].end, mid_blk.start) || in tcp_update_dsack_list()
270 SEQ_GT(tp->sackblks[j].start, mid_blk.end)) && in tcp_update_dsack_list()
271 (SEQ_GT(tp->sackblks[j].start, tp->rcv_nxt)))) in tcp_update_dsack_list()
277 if (SEQ_LT(saved_blks[i].start, saved_blks[i].end)) { in tcp_update_dsack_list()
312 head_blk.start = rcv_start; in tcp_update_sack_list()
323 tcp_seq start = tp->sackblks[i].start; in tcp_update_sack_list() local
325 if (SEQ_GEQ(start, end) || SEQ_LEQ(start, tp->rcv_nxt)) { in tcp_update_sack_list()
329 } else if (SEQ_LEQ(head_blk.start, end) && in tcp_update_sack_list()
330 SEQ_GEQ(head_blk.end, start)) { in tcp_update_sack_list()
348 if (head_blk.start == end) in tcp_update_sack_list()
349 head_blk.start = start; in tcp_update_sack_list()
350 else if (head_blk.end == start) in tcp_update_sack_list()
353 if (SEQ_LT(head_blk.start, start)) { in tcp_update_sack_list()
354 tcp_seq temp = start; in tcp_update_sack_list()
355 start = head_blk.start; in tcp_update_sack_list()
356 head_blk.start = temp; in tcp_update_sack_list()
363 if ((head_blk.start != start) || in tcp_update_sack_list()
366 SEQ_GEQ(saved_blks[num_saved-1].start, start) && in tcp_update_sack_list()
369 saved_blks[num_saved].start = start; in tcp_update_sack_list()
379 SEQ_GEQ(saved_blks[num_saved-1].start, start) && in tcp_update_sack_list()
385 saved_blks[num_saved].start = start; in tcp_update_sack_list()
439 tcp_seq start = tp->sackblks[i].start; in tcp_clean_dsack_blocks() local
441 if (SEQ_GEQ(start, end) || SEQ_LEQ(start, tp->rcv_nxt)) { in tcp_clean_dsack_blocks()
450 saved_blks[num_saved].start = start; in tcp_clean_dsack_blocks()
475 tp->sackblks[i].start = tp->sackblks[i].end=0; in tcp_clean_sackreport()
482 tcp_sackhole_alloc(struct tcpcb *tp, tcp_seq start, tcp_seq end) in tcp_sackhole_alloc() argument
496 hole->start = start; in tcp_sackhole_alloc()
498 hole->rxmit = start; in tcp_sackhole_alloc()
526 tcp_sackhole_insert(struct tcpcb *tp, tcp_seq start, tcp_seq end, in tcp_sackhole_insert() argument
532 hole = tcp_sackhole_alloc(tp, start, end); in tcp_sackhole_insert()
604 sack_blocks[num_sack_blks].start = tp->snd_una; in tcp_sack_doack()
623 sack.start = ntohl(sack.start); in tcp_sack_doack()
625 if (SEQ_GT(sack.end, sack.start) && in tcp_sack_doack()
626 SEQ_GT(sack.start, tp->snd_una) && in tcp_sack_doack()
627 SEQ_GT(sack.start, th_ack) && in tcp_sack_doack()
628 SEQ_LT(sack.start, tp->snd_max) && in tcp_sack_doack()
631 ((sack.end - sack.start) >= maxseg || in tcp_sack_doack()
634 } else if (SEQ_LEQ(sack.start, th_ack) && in tcp_sack_doack()
639 tcp_record_dsack(tp, sack.start, sack.end, 0); in tcp_sack_doack()
688 if (SEQ_LT(tp->snd_fack, sblkp->start)) { in tcp_sack_doack()
697 tp->sackhint.hole_bytes -= temp->end - temp->start; in tcp_sack_doack()
698 temp->start = SEQ_MAX(tp->snd_fack, SEQ_MAX(tp->snd_una, th_ack)); in tcp_sack_doack()
699 temp->end = sblkp->start; in tcp_sack_doack()
700 temp->rxmit = temp->start; in tcp_sack_doack()
701 delivered_data += sblkp->end - sblkp->start; in tcp_sack_doack()
702 tp->sackhint.hole_bytes += temp->end - temp->start; in tcp_sack_doack()
715 temp = tcp_sackhole_insert(tp, tp->snd_fack,sblkp->start,NULL); in tcp_sack_doack()
717 delivered_data += sblkp->end - sblkp->start; in tcp_sack_doack()
718 tp->sackhint.hole_bytes += temp->end - temp->start; in tcp_sack_doack()
733 SEQ_LT(tp->snd_fack, sblkp->start)) in tcp_sack_doack()
767 loss_hiack = cur->start; in tcp_sack_doack()
771 notlost_bytes += cur->end - cur->start; in tcp_sack_doack()
778 if (SEQ_GEQ(sblkp->start, cur->end)) { in tcp_sack_doack()
786 if (SEQ_LEQ(sblkp->end, cur->start)) { in tcp_sack_doack()
792 loss_hiack = cur->start; in tcp_sack_doack()
796 notlost_bytes += cur->end - cur->start; in tcp_sack_doack()
801 (SEQ_MIN(cur->rxmit, cur->end) - cur->start); in tcp_sack_doack()
805 if (SEQ_LEQ(sblkp->start, cur->start)) { in tcp_sack_doack()
809 delivered_data += (cur->end - cur->start); in tcp_sack_doack()
812 tp->sackhint.hole_bytes -= temp->end - temp->start; in tcp_sack_doack()
821 /* Move start of hole forward. */ in tcp_sack_doack()
822 delivered_data += (sblkp->end - cur->start); in tcp_sack_doack()
823 tp->sackhint.hole_bytes -= sblkp->end - cur->start; in tcp_sack_doack()
824 cur->start = sblkp->end; in tcp_sack_doack()
825 cur->rxmit = SEQ_MAX(cur->rxmit, cur->start); in tcp_sack_doack()
831 delivered_data += (cur->end - sblkp->start); in tcp_sack_doack()
832 tp->sackhint.hole_bytes -= cur->end - sblkp->start; in tcp_sack_doack()
833 cur->end = sblkp->start; in tcp_sack_doack()
850 temp->end) - temp->start); in tcp_sack_doack()
852 tp->sackhint.hole_bytes -= sblkp->end - sblkp->start; in tcp_sack_doack()
854 loss_hiack = temp->start; in tcp_sack_doack()
858 notlost_bytes += temp->end - temp->start; in tcp_sack_doack()
859 cur->end = sblkp->start; in tcp_sack_doack()
864 delivered_data += (sblkp->end - sblkp->start); in tcp_sack_doack()
869 (SEQ_MIN(cur->rxmit, cur->end) - cur->start); in tcp_sack_doack()
871 * Testing sblkp->start against cur->start tells us whether in tcp_sack_doack()
875 if (SEQ_LEQ(sblkp->start, cur->start)) { in tcp_sack_doack()
877 loss_hiack = cur->start; in tcp_sack_doack()
881 notlost_bytes += cur->end - cur->start; in tcp_sack_doack()
956 p->rxmit = p->start; in tcp_resend_sackholes()
1036 temp->end - temp->start; in tcp_sack_partialack()
1053 * (start == rxmit), since we have not yet retransmitted from them.
1055 * have at least one node following the current hint with (start == rxmit ==
1056 * end). But that can't happen, (start == end) means that all the data in
1081 KASSERT(SEQ_LT(hole->start, hole->end), in tcp_sack_output()
1082 ("%s: SEQ_GEQ(hole.start, hole.end)", __func__)); in tcp_sack_output()
1084 KASSERT(SEQ_LT(hole->start, tp->snd_fack), in tcp_sack_output()
1085 ("%s: SEG_GEQ(hole.start, snd.fack)", __func__)); in tcp_sack_output()
1090 if (SEQ_GEQ(hole->start, hole->end) || in tcp_sack_output()
1091 SEQ_GEQ(hole->start, tp->snd_fack) || in tcp_sack_output()
1095 hole->start, hole->end, hole->rxmit, tp->snd_fack); in tcp_sack_output()
1134 sacked += p->start - cur->end; in tcp_sack_adjust()
1135 if (SEQ_GEQ(tp->snd_nxt, p->start)) { in tcp_sack_adjust()
1138 tp->snd_nxt = p->start; in tcp_sack_adjust()
1167 * Start retransmissions from the first hole, and in tcp_sack_lost_retransmission()
1175 temp->rxmit = temp->start; in tcp_sack_lost_retransmission()