Home | History | Annotate | Download | only in netinet

Lines Matching defs:sack

95  * NOTES: On the outbound side of things I need to check the sack timer to
96 * see if I should generate a sack into the chunk queue (if I have data to
1688 /* Record a dup for the next outbound sack */
1717 /* Record a dup for the next outbound sack */
1724 * WILL sack at the end of the packet
1734 * a sack to be sent up above
2371 * Now we need to see if we need to queue a sack or just start
2378 * here we maker sure SACK timer is off and
2379 * instead send a SHUTDOWN and a SACK
2400 if ((stcb->asoc.first_ack_sent == 0) || /* First time we send a sack */
2407 * Ok we must build a SACK since the timer
2522 * any SACK that may need to go out. Don't bump
2684 * sack_check will send a sack.
2689 /* Start a sack timer or QUEUE a SACK for sending */
2705 struct sctp_sack *sack;
2722 sack = &ch->sack;
2723 frag = (struct sctp_gap_ack_block *)((vaddr_t)sack +
2749 * due to a out-of-order SACK fragment
2891 /* it has been re-acked in this SACK */
2897 /* above the sack */
2993 /* we are beyond the tsn in the sack */
3033 * and if so we see if the biggest TSN we saw in the sack is
3262 * next peer SACK to come with a new cumTSN and then
3470 struct sctp_sack *sack;
3487 * Handle the incoming sack on data I have been sending.
3499 printf("Handling SACK for asoc:%p retran:%d\n",
3508 * Now perform the actual SACK handling:
3509 * 1) Verify that it is not an old sack, if so discard.
3515 * 4) Process any sack blocks.
3527 * 12) Assure we will SACK if in shutdown_recv state.
3534 printf("Bad size on sack chunk .. to small\n");
3541 sack = &ch->sack;
3542 cum_ack = last_tsn = ntohl(sack->cum_tsn_ack);
3543 num_seg = ntohs(sack->num_gap_ack_blks);
3582 a_rwnd = (u_int32_t)ntohl(sack->a_rwnd);
4239 * in the SACK, its stored in ecn_seg_sums.
4240 * We also know the SACK's nonce sum, its
4244 * SACK-flag-Value Seg-Sums Base
4305 /* Mutate a shutdown into a SACK */
4306 struct sctp_sack_chunk sack;
4309 sack.sack.cum_tsn_ack = cp->cumulative_tsn_ack;
4311 sack.ch.chunk_type = SCTP_SELECTIVE_ACK;
4312 sack.ch.chunk_flags = 0;
4313 sack.ch.chunk_length = ntohs(sizeof(struct sctp_sack_chunk));
4314 sack.sack.a_rwnd =
4318 * but hopefully the second chunk is a true SACK in the packet and
4322 sack.sack.num_gap_ack_blks = 0;
4323 sack.sack.num_dup_tsns = 0;
4324 /* Now call the SACK processor */
4325 sctp_handle_sack(&sack, stcb, netp, abort_flag);
4393 * sender of the forward TSN, when the SACK comes back
4397 * must carefully account for what the SACK says on the
4414 * 5) Send a sack to report where we are.
4492 * sack please.