Lines Matching refs:sack
106 SYSCTL_INT(_net_inet_tcp, OID_AUTO, sack, CTLFLAG_RW, &tcp_do_sack, 0,
317 struct sackblk sack, sack_blocks[TCP_MAX_SACK + 1], *sblkp;
333 bcopy((to->to_sacks + i * TCPOLEN_SACK), &sack, sizeof(sack));
334 sack.start = ntohl(sack.start);
335 sack.end = ntohl(sack.end);
336 if (SEQ_GT(sack.end, sack.start) &&
337 SEQ_GT(sack.start, tp->snd_una) &&
338 SEQ_GT(sack.start, th_ack) &&
339 SEQ_LEQ(sack.end, tp->snd_max))
340 sack_blocks[num_sack_blks++] = sack;
358 sack = sack_blocks[i];
360 sack_blocks[j] = sack;
368 * (from the sack blocks received) are created later below (in
395 /* Go to the previous sack block. */
400 * sack block. Skip over all the sack blocks that
402 * to trim the scoreboard based on the remaining sack
419 * Since the incoming sack blocks are sorted, we can process them
426 * Go to the previous sack block.
448 * The sack block may ack all or part of the next
486 * we're done with the sack block or the sack hole.
511 * Partial ack handling within a sack recovery episode.
518 * of sack recovery.
600 printf("%s: Computed sack hole not the same as cached value\n", __func__);