Lines Matching full:start
180 tcp_seq start, end; in tcp_update_dsack_list() local
190 saved_blks[0].start = rcv_start; in tcp_update_dsack_list()
193 saved_blks[0].start = saved_blks[0].end = 0; in tcp_update_dsack_list()
196 head_blk.start = head_blk.end = 0; in tcp_update_dsack_list()
197 mid_blk.start = rcv_start; in tcp_update_dsack_list()
202 start = tp->sackblks[i].start; in tcp_update_dsack_list()
204 if (SEQ_LT(rcv_end, start)) { in tcp_update_dsack_list()
213 if ((SEQ_MAX(rcv_start, start) != SEQ_MIN(rcv_end, end)) && in tcp_update_dsack_list()
214 (SEQ_GT(head_blk.start, SEQ_MAX(rcv_start, start)) || in tcp_update_dsack_list()
215 (head_blk.start == head_blk.end))) { in tcp_update_dsack_list()
216 head_blk.start = SEQ_MAX(rcv_start, start); in tcp_update_dsack_list()
221 if (((head_blk.start == head_blk.end) || in tcp_update_dsack_list()
222 SEQ_LT(start, head_blk.start)) && in tcp_update_dsack_list()
224 SEQ_LEQ(start, rcv_end))) { in tcp_update_dsack_list()
225 head_blk.start = start; in tcp_update_dsack_list()
228 mid_blk.start = SEQ_MIN(mid_blk.start, start); in tcp_update_dsack_list()
230 if ((mid_blk.start == start) && in tcp_update_dsack_list()
234 if (SEQ_LT(head_blk.start, head_blk.end)) { in tcp_update_dsack_list()
236 saved_blks[0].start = SEQ_MAX(rcv_start, head_blk.start); in tcp_update_dsack_list()
245 !((mid_blk.start == saved_blks[0].start) && in tcp_update_dsack_list()
248 saved_blks[n].start = mid_blk.start; in tcp_update_dsack_list()
252 if (((SEQ_LT(tp->sackblks[j].end, mid_blk.start) || in tcp_update_dsack_list()
253 SEQ_GT(tp->sackblks[j].start, mid_blk.end)) && in tcp_update_dsack_list()
254 (SEQ_GT(tp->sackblks[j].start, tp->rcv_nxt)))) in tcp_update_dsack_list()
260 if (SEQ_LT(saved_blks[i].start, saved_blks[i].end)) { in tcp_update_dsack_list()
295 head_blk.start = rcv_start; in tcp_update_sack_list()
306 tcp_seq start = tp->sackblks[i].start; in tcp_update_sack_list() local
308 if (SEQ_GEQ(start, end) || SEQ_LEQ(start, tp->rcv_nxt)) { in tcp_update_sack_list()
312 } else if (SEQ_LEQ(head_blk.start, end) && in tcp_update_sack_list()
313 SEQ_GEQ(head_blk.end, start)) { in tcp_update_sack_list()
331 if (head_blk.start == end) in tcp_update_sack_list()
332 head_blk.start = start; in tcp_update_sack_list()
333 else if (head_blk.end == start) in tcp_update_sack_list()
336 if (SEQ_LT(head_blk.start, start)) { in tcp_update_sack_list()
337 tcp_seq temp = start; in tcp_update_sack_list()
338 start = head_blk.start; in tcp_update_sack_list()
339 head_blk.start = temp; in tcp_update_sack_list()
346 if ((head_blk.start != start) || in tcp_update_sack_list()
349 SEQ_GEQ(saved_blks[num_saved-1].start, start) && in tcp_update_sack_list()
352 saved_blks[num_saved].start = start; in tcp_update_sack_list()
362 SEQ_GEQ(saved_blks[num_saved-1].start, start) && in tcp_update_sack_list()
368 saved_blks[num_saved].start = start; in tcp_update_sack_list()
422 tcp_seq start = tp->sackblks[i].start; in tcp_clean_dsack_blocks() local
424 if (SEQ_GEQ(start, end) || SEQ_LEQ(start, tp->rcv_nxt)) { in tcp_clean_dsack_blocks()
433 saved_blks[num_saved].start = start; in tcp_clean_dsack_blocks()
458 tp->sackblks[i].start = tp->sackblks[i].end=0; in tcp_clean_sackreport()
465 tcp_sackhole_alloc(struct tcpcb *tp, tcp_seq start, tcp_seq end) in tcp_sackhole_alloc() argument
479 hole->start = start; in tcp_sackhole_alloc()
481 hole->rxmit = start; in tcp_sackhole_alloc()
509 tcp_sackhole_insert(struct tcpcb *tp, tcp_seq start, tcp_seq end, in tcp_sackhole_insert() argument
515 hole = tcp_sackhole_alloc(tp, start, end); in tcp_sackhole_insert()
586 sack_blocks[num_sack_blks].start = tp->snd_una; in tcp_sack_doack()
606 sack.start = ntohl(sack.start); in tcp_sack_doack()
608 if (SEQ_GT(sack.end, sack.start) && in tcp_sack_doack()
609 SEQ_GT(sack.start, tp->snd_una) && in tcp_sack_doack()
610 SEQ_GT(sack.start, th_ack) && in tcp_sack_doack()
611 SEQ_LT(sack.start, tp->snd_max) && in tcp_sack_doack()
614 ((sack.end - sack.start) >= maxseg || in tcp_sack_doack()
617 } else if (SEQ_LEQ(sack.start, th_ack) && in tcp_sack_doack()
622 tcp_record_dsack(tp, sack.start, sack.end, 0); in tcp_sack_doack()
671 if (SEQ_LT(tp->snd_fack, sblkp->start)) { in tcp_sack_doack()
680 tp->sackhint.hole_bytes -= temp->end - temp->start; in tcp_sack_doack()
681 temp->start = SEQ_MAX(tp->snd_fack, SEQ_MAX(tp->snd_una, th_ack)); in tcp_sack_doack()
682 temp->end = sblkp->start; in tcp_sack_doack()
683 temp->rxmit = temp->start; in tcp_sack_doack()
684 delivered_data += sblkp->end - sblkp->start; in tcp_sack_doack()
685 tp->sackhint.hole_bytes += temp->end - temp->start; in tcp_sack_doack()
698 temp = tcp_sackhole_insert(tp, tp->snd_fack,sblkp->start,NULL); in tcp_sack_doack()
700 delivered_data += sblkp->end - sblkp->start; in tcp_sack_doack()
701 tp->sackhint.hole_bytes += temp->end - temp->start; in tcp_sack_doack()
716 SEQ_LT(tp->snd_fack, sblkp->start)) in tcp_sack_doack()
750 loss_hiack = cur->start; in tcp_sack_doack()
754 notlost_bytes += cur->end - cur->start; in tcp_sack_doack()
761 if (SEQ_GEQ(sblkp->start, cur->end)) { in tcp_sack_doack()
769 if (SEQ_LEQ(sblkp->end, cur->start)) { in tcp_sack_doack()
775 loss_hiack = cur->start; in tcp_sack_doack()
779 notlost_bytes += cur->end - cur->start; in tcp_sack_doack()
784 (SEQ_MIN(cur->rxmit, cur->end) - cur->start); in tcp_sack_doack()
788 if (SEQ_LEQ(sblkp->start, cur->start)) { in tcp_sack_doack()
792 delivered_data += (cur->end - cur->start); in tcp_sack_doack()
795 tp->sackhint.hole_bytes -= temp->end - temp->start; in tcp_sack_doack()
804 /* Move start of hole forward. */ in tcp_sack_doack()
805 delivered_data += (sblkp->end - cur->start); in tcp_sack_doack()
806 tp->sackhint.hole_bytes -= sblkp->end - cur->start; in tcp_sack_doack()
807 cur->start = sblkp->end; in tcp_sack_doack()
808 cur->rxmit = SEQ_MAX(cur->rxmit, cur->start); in tcp_sack_doack()
814 delivered_data += (cur->end - sblkp->start); in tcp_sack_doack()
815 tp->sackhint.hole_bytes -= cur->end - sblkp->start; in tcp_sack_doack()
816 cur->end = sblkp->start; in tcp_sack_doack()
833 temp->end) - temp->start); in tcp_sack_doack()
835 tp->sackhint.hole_bytes -= sblkp->end - sblkp->start; in tcp_sack_doack()
837 loss_hiack = temp->start; in tcp_sack_doack()
841 notlost_bytes += temp->end - temp->start; in tcp_sack_doack()
842 cur->end = sblkp->start; in tcp_sack_doack()
847 delivered_data += (sblkp->end - sblkp->start); in tcp_sack_doack()
852 (SEQ_MIN(cur->rxmit, cur->end) - cur->start); in tcp_sack_doack()
854 * Testing sblkp->start against cur->start tells us whether in tcp_sack_doack()
858 if (SEQ_LEQ(sblkp->start, cur->start)) { in tcp_sack_doack()
860 loss_hiack = cur->start; in tcp_sack_doack()
864 notlost_bytes += cur->end - cur->start; in tcp_sack_doack()
939 p->rxmit = p->start; in tcp_resend_sackholes()
1019 temp->end - temp->start; in tcp_sack_partialack()
1036 * (start == rxmit), since we have not yet retransmitted from them.
1038 * have at least one node following the current hint with (start == rxmit ==
1039 * end). But that can't happen, (start == end) means that all the data in
1064 KASSERT(SEQ_LT(hole->start, hole->end), ("%s: hole.start >= hole.end", __func__)); in tcp_sack_output()
1066 KASSERT(SEQ_LT(hole->start, tp->snd_fack), ("%s: hole.start >= snd.fack", __func__)); in tcp_sack_output()
1069 if (SEQ_GEQ(hole->start, hole->end) || in tcp_sack_output()
1070 SEQ_GEQ(hole->start, tp->snd_fack) || in tcp_sack_output()
1074 hole->start, hole->end, hole->rxmit, tp->snd_fack); in tcp_sack_output()
1113 sacked += p->start - cur->end; in tcp_sack_adjust()
1114 if (SEQ_GEQ(tp->snd_nxt, p->start)) { in tcp_sack_adjust()
1117 tp->snd_nxt = p->start; in tcp_sack_adjust()
1146 * Start retransmissions from the first hole, and in tcp_sack_lost_retransmission()
1154 temp->rxmit = temp->start; in tcp_sack_lost_retransmission()