Lines Matching refs:sack
108 SYSCTL_INT(_net_inet_tcp, OID_AUTO, sack, CTLFLAG_RW | CTLFLAG_LOCKED, &tcp_do_sack, 0,
396 struct sackblk sack, sack_blocks[TCP_MAX_SACK + 1], *sblkp;
415 &sack, sizeof(sack));
416 sack.start = ntohl(sack.start);
417 sack.end = ntohl(sack.end);
418 if (SEQ_GT(sack.end, sack.start) &&
419 SEQ_GT(sack.start, tp->snd_una) &&
420 SEQ_GT(sack.start, th_ack) &&
421 SEQ_LT(sack.start, tp->snd_max) &&
422 SEQ_GT(sack.end, tp->snd_una) &&
423 SEQ_LEQ(sack.end, tp->snd_max))
424 sack_blocks[num_sack_blks++] = sack;
443 sack = sack_blocks[i];
445 sack_blocks[j] = sack;
453 * (from the sack blocks received) are created later below (in
486 /* Go to the previous sack block. */
491 * sack block. Skip over all the sack blocks that
493 * to trim the scoreboard based on the remaining sack
514 * Since the incoming sack blocks are sorted, we can process them
521 * Go to the previous sack block.
547 * The sack block may ack all or part of the next
601 * we're done with the sack block or the sack hole.
628 * Partial ack handling within a sack recovery episode.
635 * of sack recovery.
717 printf("%s: Computed sack hole not the same as cached value\n", __func__);