Lines Matching refs:tp1

2937 	struct sctp_tmit_chunk *tp1;  in sctp_process_segment_range()  local
2942 tp1 = *p_tp1; in sctp_process_segment_range()
2943 if (tp1 == NULL) { in sctp_process_segment_range()
2944 tp1 = TAILQ_FIRST(&stcb->asoc.sent_queue); in sctp_process_segment_range()
2948 while (tp1) { in sctp_process_segment_range()
2949 if (tp1->rec.data.doing_fast_retransmit) in sctp_process_segment_range()
2960 if ((tp1->sent < SCTP_DATAGRAM_RESEND) && in sctp_process_segment_range()
2961 (tp1->whoTo->find_pseudo_cumack == 1) && in sctp_process_segment_range()
2962 (tp1->snd_count == 1)) { in sctp_process_segment_range()
2963 tp1->whoTo->pseudo_cumack = tp1->rec.data.tsn; in sctp_process_segment_range()
2964 tp1->whoTo->find_pseudo_cumack = 0; in sctp_process_segment_range()
2966 if ((tp1->sent < SCTP_DATAGRAM_RESEND) && in sctp_process_segment_range()
2967 (tp1->whoTo->find_rtx_pseudo_cumack == 1) && in sctp_process_segment_range()
2968 (tp1->snd_count > 1)) { in sctp_process_segment_range()
2969 tp1->whoTo->rtx_pseudo_cumack = tp1->rec.data.tsn; in sctp_process_segment_range()
2970 tp1->whoTo->find_rtx_pseudo_cumack = 0; in sctp_process_segment_range()
2972 if (tp1->rec.data.tsn == theTSN) { in sctp_process_segment_range()
2973 if (tp1->sent != SCTP_DATAGRAM_UNSENT) { in sctp_process_segment_range()
2978 if (tp1->sent < SCTP_DATAGRAM_RESEND) { in sctp_process_segment_range()
2986 if (SCTP_TSN_GT(tp1->rec.data.tsn, in sctp_process_segment_range()
2988 *biggest_newly_acked_tsn = tp1->rec.data.tsn; in sctp_process_segment_range()
2997 if (tp1->rec.data.chunk_was_revoked == 0) in sctp_process_segment_range()
2998 tp1->whoTo->saw_newack = 1; in sctp_process_segment_range()
3000 if (SCTP_TSN_GT(tp1->rec.data.tsn, in sctp_process_segment_range()
3001 tp1->whoTo->this_sack_highest_newack)) { in sctp_process_segment_range()
3002 tp1->whoTo->this_sack_highest_newack = in sctp_process_segment_range()
3003 tp1->rec.data.tsn; in sctp_process_segment_range()
3013 tp1->rec.data.tsn, in sctp_process_segment_range()
3018 *this_sack_lowest_newack = tp1->rec.data.tsn; in sctp_process_segment_range()
3028 if (tp1->rec.data.tsn == tp1->whoTo->pseudo_cumack) { in sctp_process_segment_range()
3029 if (tp1->rec.data.chunk_was_revoked == 0) { in sctp_process_segment_range()
3030 tp1->whoTo->new_pseudo_cumack = 1; in sctp_process_segment_range()
3032 tp1->whoTo->find_pseudo_cumack = 1; in sctp_process_segment_range()
3035 sctp_log_cwnd(stcb, tp1->whoTo, tp1->rec.data.tsn, SCTP_CWND_LOG_FROM_SACK); in sctp_process_segment_range()
3037 if (tp1->rec.data.tsn == tp1->whoTo->rtx_pseudo_cumack) { in sctp_process_segment_range()
3038 if (tp1->rec.data.chunk_was_revoked == 0) { in sctp_process_segment_range()
3039 tp1->whoTo->new_pseudo_cumack = 1; in sctp_process_segment_range()
3041 tp1->whoTo->find_rtx_pseudo_cumack = 1; in sctp_process_segment_range()
3046 tp1->rec.data.tsn, in sctp_process_segment_range()
3053 tp1->whoTo->flight_size, in sctp_process_segment_range()
3054 tp1->book_size, in sctp_process_segment_range()
3055 (uint32_t)(uintptr_t)tp1->whoTo, in sctp_process_segment_range()
3056 tp1->rec.data.tsn); in sctp_process_segment_range()
3058 sctp_flight_size_decrease(tp1); in sctp_process_segment_range()
3060 (*stcb->asoc.cc_functions.sctp_cwnd_update_tsn_acknowledged) (tp1->whoTo, in sctp_process_segment_range()
3061 tp1); in sctp_process_segment_range()
3063 sctp_total_flight_decrease(stcb, tp1); in sctp_process_segment_range()
3065 tp1->whoTo->net_ack += tp1->send_size; in sctp_process_segment_range()
3066 if (tp1->snd_count < 2) { in sctp_process_segment_range()
3070 tp1->whoTo->net_ack2 += tp1->send_size; in sctp_process_segment_range()
3075 if (tp1->do_rtt) { in sctp_process_segment_range()
3079 tp1->whoTo, in sctp_process_segment_range()
3080 &tp1->sent_rcv_time, in sctp_process_segment_range()
3084 if (tp1->whoTo->rto_needed == 0) { in sctp_process_segment_range()
3085 tp1->whoTo->rto_needed = 1; in sctp_process_segment_range()
3087 tp1->do_rtt = 0; in sctp_process_segment_range()
3091 if (tp1->sent <= SCTP_DATAGRAM_RESEND) { in sctp_process_segment_range()
3092 if (SCTP_TSN_GT(tp1->rec.data.tsn, in sctp_process_segment_range()
3095 tp1->rec.data.tsn; in sctp_process_segment_range()
3097 if (tp1->sent == SCTP_DATAGRAM_RESEND) { in sctp_process_segment_range()
3109 if ((tp1->sent != SCTP_FORWARD_TSN_SKIP) && in sctp_process_segment_range()
3110 (tp1->sent != SCTP_DATAGRAM_NR_ACKED)) { in sctp_process_segment_range()
3111 tp1->sent = SCTP_DATAGRAM_MARKED; in sctp_process_segment_range()
3113 if (tp1->rec.data.chunk_was_revoked) { in sctp_process_segment_range()
3115 tp1->whoTo->cwnd -= tp1->book_size; in sctp_process_segment_range()
3116 tp1->rec.data.chunk_was_revoked = 0; in sctp_process_segment_range()
3120 (tp1->sent != SCTP_DATAGRAM_NR_ACKED)) { in sctp_process_segment_range()
3121 if (stcb->asoc.strmout[tp1->rec.data.sid].chunks_on_queues > 0) { in sctp_process_segment_range()
3122 stcb->asoc.strmout[tp1->rec.data.sid].chunks_on_queues--; in sctp_process_segment_range()
3125 panic("No chunks on the queues for sid %u.", tp1->rec.data.sid); in sctp_process_segment_range()
3128 if ((stcb->asoc.strmout[tp1->rec.data.sid].chunks_on_queues == 0) && in sctp_process_segment_range()
3129 (stcb->asoc.strmout[tp1->rec.data.sid].state == SCTP_STREAM_RESET_PENDING) && in sctp_process_segment_range()
3130 TAILQ_EMPTY(&stcb->asoc.strmout[tp1->rec.data.sid].outqueue)) { in sctp_process_segment_range()
3133 tp1->sent = SCTP_DATAGRAM_NR_ACKED; in sctp_process_segment_range()
3134 if (tp1->data) { in sctp_process_segment_range()
3139 sctp_free_bufspace(stcb, &stcb->asoc, tp1, 1); in sctp_process_segment_range()
3140 sctp_m_freem(tp1->data); in sctp_process_segment_range()
3141 tp1->data = NULL; in sctp_process_segment_range()
3148 if (SCTP_TSN_GT(tp1->rec.data.tsn, theTSN)) { in sctp_process_segment_range()
3151 tp1 = TAILQ_NEXT(tp1, sctp_next); in sctp_process_segment_range()
3152 if ((tp1 == NULL) && (circled == 0)) { in sctp_process_segment_range()
3154 tp1 = TAILQ_FIRST(&stcb->asoc.sent_queue); in sctp_process_segment_range()
3157 if (tp1 == NULL) { in sctp_process_segment_range()
3159 tp1 = TAILQ_FIRST(&stcb->asoc.sent_queue); in sctp_process_segment_range()
3163 *p_tp1 = tp1; in sctp_process_segment_range()
3174 struct sctp_tmit_chunk *tp1; in sctp_handle_segments() local
3181 tp1 = TAILQ_FIRST(&asoc->sent_queue); in sctp_handle_segments()
3188 tp1 = TAILQ_FIRST(&asoc->sent_queue); in sctp_handle_segments()
3205 tp1 = TAILQ_FIRST(&asoc->sent_queue); in sctp_handle_segments()
3215 if (sctp_process_segment_range(stcb, &tp1, last_tsn, frag_strt, frag_end, in sctp_handle_segments()
3236 struct sctp_tmit_chunk *tp1; in sctp_check_for_revoked() local
3238 TAILQ_FOREACH(tp1, &asoc->sent_queue, sctp_next) { in sctp_check_for_revoked()
3239 if (SCTP_TSN_GT(tp1->rec.data.tsn, cumack)) { in sctp_check_for_revoked()
3246 if (SCTP_TSN_GT(tp1->rec.data.tsn, biggest_tsn_acked)) { in sctp_check_for_revoked()
3249 if (tp1->sent == SCTP_DATAGRAM_ACKED) { in sctp_check_for_revoked()
3251 tp1->sent = SCTP_DATAGRAM_SENT; in sctp_check_for_revoked()
3252 tp1->rec.data.chunk_was_revoked = 1; in sctp_check_for_revoked()
3259 tp1->whoTo->flight_size, in sctp_check_for_revoked()
3260 tp1->book_size, in sctp_check_for_revoked()
3261 (uint32_t)(uintptr_t)tp1->whoTo, in sctp_check_for_revoked()
3262 tp1->rec.data.tsn); in sctp_check_for_revoked()
3264 sctp_flight_size_increase(tp1); in sctp_check_for_revoked()
3265 sctp_total_flight_increase(stcb, tp1); in sctp_check_for_revoked()
3270 tp1->whoTo->cwnd += tp1->book_size; in sctp_check_for_revoked()
3274 tp1->rec.data.tsn, in sctp_check_for_revoked()
3279 } else if (tp1->sent == SCTP_DATAGRAM_MARKED) { in sctp_check_for_revoked()
3281 tp1->sent = SCTP_DATAGRAM_ACKED; in sctp_check_for_revoked()
3284 if (tp1->sent == SCTP_DATAGRAM_UNSENT) in sctp_check_for_revoked()
3293 struct sctp_tmit_chunk *tp1; in sctp_strike_gap_ack_chunks() local
3304 tp1 = TAILQ_FIRST(&stcb->asoc.send_queue); in sctp_strike_gap_ack_chunks()
3305 if (tp1 == NULL) { in sctp_strike_gap_ack_chunks()
3308 sending_seq = tp1->rec.data.tsn; in sctp_strike_gap_ack_chunks()
3322 TAILQ_FOREACH(tp1, &asoc->sent_queue, sctp_next) { in sctp_strike_gap_ack_chunks()
3324 if (tp1->no_fr_allowed) { in sctp_strike_gap_ack_chunks()
3329 if (tp1->sent < SCTP_DATAGRAM_RESEND) in sctp_strike_gap_ack_chunks()
3331 tp1->rec.data.tsn, in sctp_strike_gap_ack_chunks()
3332 tp1->sent, in sctp_strike_gap_ack_chunks()
3335 if (SCTP_TSN_GT(tp1->rec.data.tsn, biggest_tsn_acked) || in sctp_strike_gap_ack_chunks()
3336 tp1->sent == SCTP_DATAGRAM_UNSENT) { in sctp_strike_gap_ack_chunks()
3341 if ((PR_SCTP_TTL_ENABLED(tp1->flags)) && tp1->sent < SCTP_DATAGRAM_ACKED) { in sctp_strike_gap_ack_chunks()
3343 if (timevalcmp(&now, &tp1->rec.data.timetodrop, >)) { in sctp_strike_gap_ack_chunks()
3345 if (tp1->data != NULL) { in sctp_strike_gap_ack_chunks()
3346 (void)sctp_release_pr_sctp_chunk(stcb, tp1, 1, in sctp_strike_gap_ack_chunks()
3353 if (SCTP_TSN_GT(tp1->rec.data.tsn, asoc->this_sack_highest_gap) && in sctp_strike_gap_ack_chunks()
3358 if (tp1->sent >= SCTP_DATAGRAM_RESEND) { in sctp_strike_gap_ack_chunks()
3361 if (tp1->sent == SCTP_FORWARD_TSN_SKIP) { in sctp_strike_gap_ack_chunks()
3363 tp1->rec.data.fwd_tsn_cnt++; in sctp_strike_gap_ack_chunks()
3370 if (tp1->whoTo && tp1->whoTo->saw_newack == 0) { in sctp_strike_gap_ack_chunks()
3378 } else if (tp1->whoTo && in sctp_strike_gap_ack_chunks()
3379 SCTP_TSN_GT(tp1->rec.data.tsn, in sctp_strike_gap_ack_chunks()
3380 tp1->whoTo->this_sack_highest_newack) && in sctp_strike_gap_ack_chunks()
3410 tp1->rec.data.tsn, in sctp_strike_gap_ack_chunks()
3411 tp1->sent, in sctp_strike_gap_ack_chunks()
3414 if (tp1->sent < SCTP_DATAGRAM_RESEND) { in sctp_strike_gap_ack_chunks()
3415 tp1->sent++; in sctp_strike_gap_ack_chunks()
3431 if ((tp1->sent < SCTP_DATAGRAM_RESEND) && (num_dests_sacked == 1) && in sctp_strike_gap_ack_chunks()
3432 SCTP_TSN_GT(this_sack_lowest_newack, tp1->rec.data.tsn)) { in sctp_strike_gap_ack_chunks()
3435 tp1->rec.data.tsn, in sctp_strike_gap_ack_chunks()
3436 tp1->sent, in sctp_strike_gap_ack_chunks()
3439 tp1->sent++; in sctp_strike_gap_ack_chunks()
3442 } else if ((tp1->rec.data.doing_fast_retransmit) && in sctp_strike_gap_ack_chunks()
3464 tp1->rec.data.fast_retran_tsn)) { in sctp_strike_gap_ack_chunks()
3472 tp1->rec.data.tsn, in sctp_strike_gap_ack_chunks()
3473 tp1->sent, in sctp_strike_gap_ack_chunks()
3476 if (tp1->sent < SCTP_DATAGRAM_RESEND) { in sctp_strike_gap_ack_chunks()
3477 tp1->sent++; in sctp_strike_gap_ack_chunks()
3501 if ((tp1->sent < SCTP_DATAGRAM_RESEND) && in sctp_strike_gap_ack_chunks()
3504 tp1->rec.data.tsn)) { in sctp_strike_gap_ack_chunks()
3507 tp1->rec.data.tsn, in sctp_strike_gap_ack_chunks()
3508 tp1->sent, in sctp_strike_gap_ack_chunks()
3511 if (tp1->sent < SCTP_DATAGRAM_RESEND) { in sctp_strike_gap_ack_chunks()
3512 tp1->sent++; in sctp_strike_gap_ack_chunks()
3522 } else if (SCTP_TSN_GT(tp1->rec.data.tsn, in sctp_strike_gap_ack_chunks()
3534 tp1->rec.data.tsn, in sctp_strike_gap_ack_chunks()
3535 tp1->sent, in sctp_strike_gap_ack_chunks()
3538 if (tp1->sent < SCTP_DATAGRAM_RESEND) { in sctp_strike_gap_ack_chunks()
3539 tp1->sent++; in sctp_strike_gap_ack_chunks()
3555 if ((tp1->sent < SCTP_DATAGRAM_RESEND) && (num_dests_sacked == 1) && in sctp_strike_gap_ack_chunks()
3556 SCTP_TSN_GT(this_sack_lowest_newack, tp1->rec.data.tsn)) { in sctp_strike_gap_ack_chunks()
3559 tp1->rec.data.tsn, in sctp_strike_gap_ack_chunks()
3560 tp1->sent, in sctp_strike_gap_ack_chunks()
3563 tp1->sent++; in sctp_strike_gap_ack_chunks()
3567 if (tp1->sent == SCTP_DATAGRAM_RESEND) { in sctp_strike_gap_ack_chunks()
3573 (tp1->whoTo ? (tp1->whoTo->flight_size) : 0), in sctp_strike_gap_ack_chunks()
3574 tp1->book_size, in sctp_strike_gap_ack_chunks()
3575 (uint32_t)(uintptr_t)tp1->whoTo, in sctp_strike_gap_ack_chunks()
3576 tp1->rec.data.tsn); in sctp_strike_gap_ack_chunks()
3578 if (tp1->whoTo) { in sctp_strike_gap_ack_chunks()
3579 tp1->whoTo->net_ack++; in sctp_strike_gap_ack_chunks()
3580 sctp_flight_size_decrease(tp1); in sctp_strike_gap_ack_chunks()
3582 (*stcb->asoc.cc_functions.sctp_cwnd_update_tsn_acknowledged) (tp1->whoTo, in sctp_strike_gap_ack_chunks()
3583 tp1); in sctp_strike_gap_ack_chunks()
3589 asoc->peers_rwnd, tp1->send_size, SCTP_BASE_SYSCTL(sctp_peer_chunk_oh)); in sctp_strike_gap_ack_chunks()
3592 asoc->peers_rwnd += (tp1->send_size + SCTP_BASE_SYSCTL(sctp_peer_chunk_oh)); in sctp_strike_gap_ack_chunks()
3595 sctp_total_flight_decrease(stcb, tp1); in sctp_strike_gap_ack_chunks()
3598 (PR_SCTP_RTX_ENABLED(tp1->flags))) { in sctp_strike_gap_ack_chunks()
3603 if (tp1->snd_count > tp1->rec.data.timetodrop.tv_sec) { in sctp_strike_gap_ack_chunks()
3605 if (tp1->data != NULL) { in sctp_strike_gap_ack_chunks()
3606 (void)sctp_release_pr_sctp_chunk(stcb, tp1, 1, in sctp_strike_gap_ack_chunks()
3610 if (tp1->whoTo != NULL) { in sctp_strike_gap_ack_chunks()
3611 tp1->whoTo->net_ack++; in sctp_strike_gap_ack_chunks()
3621 sctp_log_fr(tp1->rec.data.tsn, tp1->snd_count, in sctp_strike_gap_ack_chunks()
3635 tp1->no_fr_allowed = 1; in sctp_strike_gap_ack_chunks()
3636 alt = tp1->whoTo; in sctp_strike_gap_ack_chunks()
3655 alt = tp1->whoTo; in sctp_strike_gap_ack_chunks()
3664 if (tp1->whoTo) { in sctp_strike_gap_ack_chunks()
3665 tp1->whoTo->find_pseudo_cumack = 1; in sctp_strike_gap_ack_chunks()
3666 tp1->whoTo->find_rtx_pseudo_cumack = 1; in sctp_strike_gap_ack_chunks()
3671 alt = sctp_find_alternate_net(stcb, tp1->whoTo, 0); in sctp_strike_gap_ack_chunks()
3678 alt = tp1->whoTo; in sctp_strike_gap_ack_chunks()
3682 tp1->rec.data.doing_fast_retransmit = 1; in sctp_strike_gap_ack_chunks()
3695 tp1->rec.data.fast_retran_tsn = sending_seq; in sctp_strike_gap_ack_chunks()
3708 tp1->rec.data.fast_retran_tsn = in sctp_strike_gap_ack_chunks()
3712 if (tp1->do_rtt) { in sctp_strike_gap_ack_chunks()
3717 if ((tp1->whoTo != NULL) && in sctp_strike_gap_ack_chunks()
3718 (tp1->whoTo->rto_needed == 0)) { in sctp_strike_gap_ack_chunks()
3719 tp1->whoTo->rto_needed = 1; in sctp_strike_gap_ack_chunks()
3721 tp1->do_rtt = 0; in sctp_strike_gap_ack_chunks()
3723 if (alt != tp1->whoTo) { in sctp_strike_gap_ack_chunks()
3725 sctp_free_remote_addr(tp1->whoTo); in sctp_strike_gap_ack_chunks()
3727 tp1->whoTo = alt; in sctp_strike_gap_ack_chunks()
3738 struct sctp_tmit_chunk *tp1, *tp2, *a_adv = NULL; in sctp_try_advance_peer_ack_point() local
3745 TAILQ_FOREACH_SAFE(tp1, &asoc->sent_queue, sctp_next, tp2) { in sctp_try_advance_peer_ack_point()
3746 if (tp1->sent != SCTP_FORWARD_TSN_SKIP && in sctp_try_advance_peer_ack_point()
3747 tp1->sent != SCTP_DATAGRAM_RESEND && in sctp_try_advance_peer_ack_point()
3748 tp1->sent != SCTP_DATAGRAM_NR_ACKED) { in sctp_try_advance_peer_ack_point()
3753 if ((tp1->sent == SCTP_FORWARD_TSN_SKIP) || in sctp_try_advance_peer_ack_point()
3754 (tp1->sent == SCTP_DATAGRAM_NR_ACKED)) { in sctp_try_advance_peer_ack_point()
3757 tp1->rec.data.tsn, 0, 0); in sctp_try_advance_peer_ack_point()
3760 if (!PR_SCTP_ENABLED(tp1->flags)) { in sctp_try_advance_peer_ack_point()
3777 if (tp1->sent == SCTP_DATAGRAM_RESEND && in sctp_try_advance_peer_ack_point()
3778 (PR_SCTP_TTL_ENABLED(tp1->flags))) { in sctp_try_advance_peer_ack_point()
3783 if (timevalcmp(&now, &tp1->rec.data.timetodrop, >)) { in sctp_try_advance_peer_ack_point()
3785 if (tp1->data) { in sctp_try_advance_peer_ack_point()
3786 (void)sctp_release_pr_sctp_chunk(stcb, tp1, in sctp_try_advance_peer_ack_point()
3802 if ((tp1->sent == SCTP_FORWARD_TSN_SKIP) || in sctp_try_advance_peer_ack_point()
3803 (tp1->sent == SCTP_DATAGRAM_NR_ACKED)) { in sctp_try_advance_peer_ack_point()
3805 if (SCTP_TSN_GT(tp1->rec.data.tsn, asoc->advanced_peer_ack_point)) { in sctp_try_advance_peer_ack_point()
3806 asoc->advanced_peer_ack_point = tp1->rec.data.tsn; in sctp_try_advance_peer_ack_point()
3807 a_adv = tp1; in sctp_try_advance_peer_ack_point()
3808 } else if (tp1->rec.data.tsn == asoc->advanced_peer_ack_point) { in sctp_try_advance_peer_ack_point()
3810 a_adv = tp1; in sctp_try_advance_peer_ack_point()
3877 struct sctp_tmit_chunk *tp1) in sctp_window_probe_recovery() argument
3879 tp1->window_probe = 0; in sctp_window_probe_recovery()
3880 if ((tp1->sent >= SCTP_DATAGRAM_ACKED) || (tp1->data == NULL)) { in sctp_window_probe_recovery()
3883 tp1->whoTo ? tp1->whoTo->flight_size : 0, in sctp_window_probe_recovery()
3884 tp1->book_size, in sctp_window_probe_recovery()
3885 (uint32_t)(uintptr_t)tp1->whoTo, in sctp_window_probe_recovery()
3886 tp1->rec.data.tsn); in sctp_window_probe_recovery()
3891 (*stcb->asoc.cc_functions.sctp_cwnd_update_tsn_acknowledged) (tp1->whoTo, in sctp_window_probe_recovery()
3892 tp1); in sctp_window_probe_recovery()
3894 sctp_flight_size_decrease(tp1); in sctp_window_probe_recovery()
3895 sctp_total_flight_decrease(stcb, tp1); in sctp_window_probe_recovery()
3897 tp1->sent = SCTP_DATAGRAM_RESEND; in sctp_window_probe_recovery()
3902 tp1->whoTo->flight_size, in sctp_window_probe_recovery()
3903 tp1->book_size, in sctp_window_probe_recovery()
3904 (uint32_t)(uintptr_t)tp1->whoTo, in sctp_window_probe_recovery()
3905 tp1->rec.data.tsn); in sctp_window_probe_recovery()
3915 struct sctp_tmit_chunk *tp1, *tp2; in sctp_express_handle_sack() local
3975 tp1 = TAILQ_LAST(&asoc->sent_queue, in sctp_express_handle_sack()
3977 send_s = tp1->rec.data.tsn + 1; in sctp_express_handle_sack()
4006 TAILQ_FOREACH_SAFE(tp1, &asoc->sent_queue, sctp_next, tp2) { in sctp_express_handle_sack()
4007 if (SCTP_TSN_GE(cumack, tp1->rec.data.tsn)) { in sctp_express_handle_sack()
4008 if (tp1->sent == SCTP_DATAGRAM_UNSENT) { in sctp_express_handle_sack()
4011 if (tp1->sent < SCTP_DATAGRAM_ACKED) { in sctp_express_handle_sack()
4017 if (tp1->sent < SCTP_DATAGRAM_RESEND) { in sctp_express_handle_sack()
4020 tp1->whoTo->flight_size, in sctp_express_handle_sack()
4021 tp1->book_size, in sctp_express_handle_sack()
4022 (uint32_t)(uintptr_t)tp1->whoTo, in sctp_express_handle_sack()
4023 tp1->rec.data.tsn); in sctp_express_handle_sack()
4025 sctp_flight_size_decrease(tp1); in sctp_express_handle_sack()
4027 (*stcb->asoc.cc_functions.sctp_cwnd_update_tsn_acknowledged) (tp1->whoTo, in sctp_express_handle_sack()
4028 tp1); in sctp_express_handle_sack()
4031 sctp_total_flight_decrease(stcb, tp1); in sctp_express_handle_sack()
4033 tp1->whoTo->net_ack += tp1->send_size; in sctp_express_handle_sack()
4034 if (tp1->snd_count < 2) { in sctp_express_handle_sack()
4039 tp1->whoTo->net_ack2 += in sctp_express_handle_sack()
4040 tp1->send_size; in sctp_express_handle_sack()
4043 if (tp1->do_rtt) { in sctp_express_handle_sack()
4047 tp1->whoTo, in sctp_express_handle_sack()
4048 &tp1->sent_rcv_time, in sctp_express_handle_sack()
4052 if (tp1->whoTo->rto_needed == 0) { in sctp_express_handle_sack()
4053 tp1->whoTo->rto_needed = 1; in sctp_express_handle_sack()
4055 tp1->do_rtt = 0; in sctp_express_handle_sack()
4070 tp1->whoTo->new_pseudo_cumack = 1; in sctp_express_handle_sack()
4071 tp1->whoTo->find_pseudo_cumack = 1; in sctp_express_handle_sack()
4072 tp1->whoTo->find_rtx_pseudo_cumack = 1; in sctp_express_handle_sack()
4075 sctp_log_cwnd(stcb, tp1->whoTo, tp1->rec.data.tsn, SCTP_CWND_LOG_FROM_SACK); in sctp_express_handle_sack()
4078 if (tp1->sent == SCTP_DATAGRAM_RESEND) { in sctp_express_handle_sack()
4081 if (tp1->rec.data.chunk_was_revoked) { in sctp_express_handle_sack()
4083 tp1->whoTo->cwnd -= tp1->book_size; in sctp_express_handle_sack()
4084 tp1->rec.data.chunk_was_revoked = 0; in sctp_express_handle_sack()
4086 if (tp1->sent != SCTP_DATAGRAM_NR_ACKED) { in sctp_express_handle_sack()
4087 if (asoc->strmout[tp1->rec.data.sid].chunks_on_queues > 0) { in sctp_express_handle_sack()
4088 asoc->strmout[tp1->rec.data.sid].chunks_on_queues--; in sctp_express_handle_sack()
4091 panic("No chunks on the queues for sid %u.", tp1->rec.data.sid); in sctp_express_handle_sack()
4095 if ((asoc->strmout[tp1->rec.data.sid].chunks_on_queues == 0) && in sctp_express_handle_sack()
4096 (asoc->strmout[tp1->rec.data.sid].state == SCTP_STREAM_RESET_PENDING) && in sctp_express_handle_sack()
4097 TAILQ_EMPTY(&asoc->strmout[tp1->rec.data.sid].outqueue)) { in sctp_express_handle_sack()
4100 TAILQ_REMOVE(&asoc->sent_queue, tp1, sctp_next); in sctp_express_handle_sack()
4101 if (tp1->data) { in sctp_express_handle_sack()
4103 sctp_free_bufspace(stcb, asoc, tp1, 1); in sctp_express_handle_sack()
4104 sctp_m_freem(tp1->data); in sctp_express_handle_sack()
4105 tp1->data = NULL; in sctp_express_handle_sack()
4110 tp1->rec.data.tsn, in sctp_express_handle_sack()
4116 sctp_free_a_chunk(stcb, tp1, SCTP_SO_NOT_LOCKED); in sctp_express_handle_sack()
4216 TAILQ_FOREACH(tp1, &asoc->sent_queue, sctp_next) { in sctp_express_handle_sack()
4217 if (tp1->window_probe) { in sctp_express_handle_sack()
4219 sctp_window_probe_recovery(stcb, asoc, tp1); in sctp_express_handle_sack()
4263 TAILQ_FOREACH(tp1, &asoc->sent_queue, sctp_next) { in sctp_express_handle_sack()
4264 if (tp1->sent < SCTP_DATAGRAM_RESEND) { in sctp_express_handle_sack()
4265 sctp_flight_size_increase(tp1); in sctp_express_handle_sack()
4266 sctp_total_flight_increase(stcb, tp1); in sctp_express_handle_sack()
4267 } else if (tp1->sent == SCTP_DATAGRAM_RESEND) { in sctp_express_handle_sack()
4394 struct sctp_tmit_chunk *tp1, *tp2; in sctp_handle_sack() local
4484 tp1 = TAILQ_LAST(&asoc->sent_queue, in sctp_handle_sack()
4486 send_s = tp1->rec.data.tsn + 1; in sctp_handle_sack()
4488 tp1 = NULL; in sctp_handle_sack()
4501 if (tp1) { in sctp_handle_sack()
4503 tp1->rec.data.tsn, (void *)tp1); in sctp_handle_sack()
4587 TAILQ_FOREACH(tp1, &asoc->sent_queue, sctp_next) { in sctp_handle_sack()
4588 if (SCTP_TSN_GE(last_tsn, tp1->rec.data.tsn)) { in sctp_handle_sack()
4589 if (tp1->sent != SCTP_DATAGRAM_UNSENT) { in sctp_handle_sack()
4591 if (tp1->sent < SCTP_DATAGRAM_ACKED) { in sctp_handle_sack()
4597 if ((tp1->whoTo->dest_state & in sctp_handle_sack()
4599 (tp1->snd_count < 2)) { in sctp_handle_sack()
4608 tp1->whoTo->dest_state &= in sctp_handle_sack()
4611 if (tp1->sent < SCTP_DATAGRAM_RESEND) { in sctp_handle_sack()
4614 tp1->whoTo->flight_size, in sctp_handle_sack()
4615 tp1->book_size, in sctp_handle_sack()
4616 (uint32_t)(uintptr_t)tp1->whoTo, in sctp_handle_sack()
4617 tp1->rec.data.tsn); in sctp_handle_sack()
4619 sctp_flight_size_decrease(tp1); in sctp_handle_sack()
4620 sctp_total_flight_decrease(stcb, tp1); in sctp_handle_sack()
4622 (*stcb->asoc.cc_functions.sctp_cwnd_update_tsn_acknowledged) (tp1->whoTo, in sctp_handle_sack()
4623 tp1); in sctp_handle_sack()
4626 tp1->whoTo->net_ack += tp1->send_size; in sctp_handle_sack()
4629 this_sack_lowest_newack = tp1->rec.data.tsn; in sctp_handle_sack()
4630 tp1->whoTo->saw_newack = 1; in sctp_handle_sack()
4632 if (tp1->snd_count < 2) { in sctp_handle_sack()
4637 tp1->whoTo->net_ack2 += in sctp_handle_sack()
4638 tp1->send_size; in sctp_handle_sack()
4641 if (tp1->do_rtt) { in sctp_handle_sack()
4645 tp1->whoTo, in sctp_handle_sack()
4646 &tp1->sent_rcv_time, in sctp_handle_sack()
4650 if (tp1->whoTo->rto_needed == 0) { in sctp_handle_sack()
4651 tp1->whoTo->rto_needed = 1; in sctp_handle_sack()
4653 tp1->do_rtt = 0; in sctp_handle_sack()
4668 tp1->whoTo->new_pseudo_cumack = 1; in sctp_handle_sack()
4669 tp1->whoTo->find_pseudo_cumack = 1; in sctp_handle_sack()
4670 tp1->whoTo->find_rtx_pseudo_cumack = 1; in sctp_handle_sack()
4674 tp1->rec.data.tsn, in sctp_handle_sack()
4680 sctp_log_cwnd(stcb, tp1->whoTo, tp1->rec.data.tsn, SCTP_CWND_LOG_FROM_SACK); in sctp_handle_sack()
4683 if (tp1->sent == SCTP_DATAGRAM_RESEND) { in sctp_handle_sack()
4690 if (tp1->rec.data.chunk_was_revoked) { in sctp_handle_sack()
4692 tp1->whoTo->cwnd -= tp1->book_size; in sctp_handle_sack()
4693 tp1->rec.data.chunk_was_revoked = 0; in sctp_handle_sack()
4695 if (tp1->sent != SCTP_DATAGRAM_NR_ACKED) { in sctp_handle_sack()
4696 tp1->sent = SCTP_DATAGRAM_ACKED; in sctp_handle_sack()
4756 TAILQ_FOREACH_SAFE(tp1, &asoc->sent_queue, sctp_next, tp2) { in sctp_handle_sack()
4757 if (SCTP_TSN_GT(tp1->rec.data.tsn, cum_ack)) { in sctp_handle_sack()
4760 if (tp1->sent != SCTP_DATAGRAM_NR_ACKED) { in sctp_handle_sack()
4761 if (asoc->strmout[tp1->rec.data.sid].chunks_on_queues > 0) { in sctp_handle_sack()
4762 asoc->strmout[tp1->rec.data.sid].chunks_on_queues--; in sctp_handle_sack()
4765 panic("No chunks on the queues for sid %u.", tp1->rec.data.sid); in sctp_handle_sack()
4769 if ((asoc->strmout[tp1->rec.data.sid].chunks_on_queues == 0) && in sctp_handle_sack()
4770 (asoc->strmout[tp1->rec.data.sid].state == SCTP_STREAM_RESET_PENDING) && in sctp_handle_sack()
4771 TAILQ_EMPTY(&asoc->strmout[tp1->rec.data.sid].outqueue)) { in sctp_handle_sack()
4774 TAILQ_REMOVE(&asoc->sent_queue, tp1, sctp_next); in sctp_handle_sack()
4775 if (PR_SCTP_ENABLED(tp1->flags)) { in sctp_handle_sack()
4780 if (tp1->data) { in sctp_handle_sack()
4782 sctp_free_bufspace(stcb, asoc, tp1, 1); in sctp_handle_sack()
4783 sctp_m_freem(tp1->data); in sctp_handle_sack()
4784 tp1->data = NULL; in sctp_handle_sack()
4785 if (asoc->prsctp_supported && PR_SCTP_BUF_ENABLED(tp1->flags)) { in sctp_handle_sack()
4792 tp1->rec.data.tsn, in sctp_handle_sack()
4797 sctp_free_a_chunk(stcb, tp1, SCTP_SO_NOT_LOCKED); in sctp_handle_sack()
4846 TAILQ_FOREACH(tp1, &asoc->sent_queue, sctp_next) { in sctp_handle_sack()
4847 if (tp1->sent == SCTP_DATAGRAM_ACKED) { in sctp_handle_sack()
4848 tp1->sent = SCTP_DATAGRAM_SENT; in sctp_handle_sack()
4851 tp1->whoTo->flight_size, in sctp_handle_sack()
4852 tp1->book_size, in sctp_handle_sack()
4853 (uint32_t)(uintptr_t)tp1->whoTo, in sctp_handle_sack()
4854 tp1->rec.data.tsn); in sctp_handle_sack()
4856 sctp_flight_size_increase(tp1); in sctp_handle_sack()
4857 sctp_total_flight_increase(stcb, tp1); in sctp_handle_sack()
4858 tp1->rec.data.chunk_was_revoked = 1; in sctp_handle_sack()
4865 tp1->whoTo->cwnd += tp1->book_size; in sctp_handle_sack()
5092 TAILQ_FOREACH(tp1, &asoc->sent_queue, sctp_next) { in sctp_handle_sack()
5093 if (tp1->window_probe) { in sctp_handle_sack()
5094 sctp_window_probe_recovery(stcb, asoc, tp1); in sctp_handle_sack()
5141 TAILQ_FOREACH(tp1, &asoc->sent_queue, sctp_next) { in sctp_handle_sack()
5142 if (tp1->sent < SCTP_DATAGRAM_RESEND) { in sctp_handle_sack()
5143 sctp_flight_size_increase(tp1); in sctp_handle_sack()
5144 sctp_total_flight_increase(stcb, tp1); in sctp_handle_sack()
5145 } else if (tp1->sent == SCTP_DATAGRAM_RESEND) { in sctp_handle_sack()