Lines Matching refs:sack
129 SYSCTL_NODE(_net_inet_tcp, OID_AUTO, sack, CTLFLAG_RW, 0, "TCP SACK");
349 * 0 otherwise. Note: We treat (snd_una, th_ack) as a sack block so any changes
357 struct sackblk sack, sack_blocks[TCP_MAX_SACK + 1], *sblkp;
380 &sack, sizeof(sack));
381 sack.start = ntohl(sack.start);
382 sack.end = ntohl(sack.end);
383 if (SEQ_GT(sack.end, sack.start) &&
384 SEQ_GT(sack.start, tp->snd_una) &&
385 SEQ_GT(sack.start, th_ack) &&
386 SEQ_LT(sack.start, tp->snd_max) &&
387 SEQ_GT(sack.end, tp->snd_una) &&
388 SEQ_LEQ(sack.end, tp->snd_max)) {
389 sack_blocks[num_sack_blks++] = sack;
391 (sack.end-sack.start);
410 sack = sack_blocks[i];
412 sack_blocks[j] = sack;
420 * (from the sack blocks received) are created later below
449 /* Go to the previous sack block. */
455 * sack block. Skip over all the sack blocks that
458 * remaining sack blocks. This also trims the
478 * Since the incoming sack blocks are sorted, we can process them
485 * previous sack block.
510 * The sack block may ack all or part of the
549 * we're done with the sack block or the sack hole.
579 * Partial ack handling within a sack recovery episode. Keeping this very
584 * the midst of sack recovery.