Lines Matching refs:hole

467 	struct sackhole *hole;  in tcp_sackhole_alloc()  local
475 hole = (struct sackhole *)uma_zalloc(V_sack_hole_zone, M_NOWAIT); in tcp_sackhole_alloc()
476 if (hole == NULL) in tcp_sackhole_alloc()
479 hole->start = start; in tcp_sackhole_alloc()
480 hole->end = end; in tcp_sackhole_alloc()
481 hole->rxmit = start; in tcp_sackhole_alloc()
486 return hole; in tcp_sackhole_alloc()
493 tcp_sackhole_free(struct tcpcb *tp, struct sackhole *hole) in tcp_sackhole_free() argument
496 uma_zfree(V_sack_hole_zone, hole); in tcp_sackhole_free()
512 struct sackhole *hole; in tcp_sackhole_insert() local
515 hole = tcp_sackhole_alloc(tp, start, end); in tcp_sackhole_insert()
516 if (hole == NULL) in tcp_sackhole_insert()
521 TAILQ_INSERT_AFTER(&tp->snd_holes, after, hole, scblink); in tcp_sackhole_insert()
523 TAILQ_INSERT_TAIL(&tp->snd_holes, hole, scblink); in tcp_sackhole_insert()
527 tp->sackhint.nexthole = hole; in tcp_sackhole_insert()
529 return hole; in tcp_sackhole_insert()
536 tcp_sackhole_remove(struct tcpcb *tp, struct sackhole *hole) in tcp_sackhole_remove() argument
540 if (tp->sackhint.nexthole == hole) in tcp_sackhole_remove()
541 tp->sackhint.nexthole = TAILQ_NEXT(hole, scblink); in tcp_sackhole_remove()
544 TAILQ_REMOVE(&tp->snd_holes, hole, scblink); in tcp_sackhole_remove()
547 tcp_sackhole_free(tp, hole); in tcp_sackhole_remove()
1046 struct sackhole *hole = NULL; in tcp_sack_output() local
1050 hole = tp->sackhint.nexthole; in tcp_sack_output()
1051 if (hole == NULL) in tcp_sack_output()
1052 return (hole); in tcp_sack_output()
1053 if (SEQ_GEQ(hole->rxmit, hole->end)) { in tcp_sack_output()
1055 hole = TAILQ_NEXT(hole, scblink); in tcp_sack_output()
1056 if (hole == NULL) in tcp_sack_output()
1057 return (hole); in tcp_sack_output()
1058 if (SEQ_LT(hole->rxmit, hole->end)) { in tcp_sack_output()
1059 tp->sackhint.nexthole = hole; in tcp_sack_output()
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()
1067 KASSERT(SEQ_LT(hole->end, tp->snd_fack), ("%s: hole.end >= snd.fack", __func__)); in tcp_sack_output()
1068 KASSERT(SEQ_LT(hole->rxmit, tp->snd_fack), ("%s: hole.rxmit >= 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()
1071 SEQ_GEQ(hole->end, tp->snd_fack) || in tcp_sack_output()
1072 SEQ_GEQ(hole->rxmit, tp->snd_fack)) { in tcp_sack_output()
1074 hole->start, hole->end, hole->rxmit, tp->snd_fack); in tcp_sack_output()
1078 return (hole); in tcp_sack_output()