Lines Matching refs:stcb
64 struct sctp_tcb *stcb,
69 sctp_set_rwnd(struct sctp_tcb *stcb, struct sctp_association *asoc) in sctp_set_rwnd() argument
71 asoc->my_rwnd = sctp_calc_rwnd(stcb, asoc); in sctp_set_rwnd()
76 sctp_calc_rwnd(struct sctp_tcb *stcb, struct sctp_association *asoc) in sctp_calc_rwnd() argument
86 if (stcb->sctp_socket == NULL) { in sctp_calc_rwnd()
94 if (stcb->asoc.sb_cc == 0 && in sctp_calc_rwnd()
98 calc = max(SCTP_SB_LIMIT_RCV(stcb->sctp_socket), SCTP_MINIMAL_RWND); in sctp_calc_rwnd()
102 calc = (uint32_t)sctp_sbspace(&stcb->asoc, &stcb->sctp_socket->so_rcv); in sctp_calc_rwnd()
117 calc = sctp_sbspace_sub(calc, stcb->asoc.my_rwnd_control_len); in sctp_calc_rwnd()
122 if (calc < stcb->asoc.my_rwnd_control_len) { in sctp_calc_rwnd()
132 sctp_build_readq_entry(struct sctp_tcb *stcb, in sctp_build_readq_entry() argument
141 sctp_alloc_a_readq(stcb, read_queue_e); in sctp_build_readq_entry()
152 read_queue_e->sinfo_assoc_id = sctp_get_associd(stcb); in sctp_build_readq_entry()
159 read_queue_e->stcb = stcb; in sctp_build_readq_entry()
160 read_queue_e->port_from = stcb->rport; in sctp_build_readq_entry()
161 if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) { in sctp_build_readq_entry()
413 sctp_abort_in_reasm(struct sctp_tcb *stcb, in sctp_abort_in_reasm() argument
421 if (stcb->asoc.idata_supported) { in sctp_abort_in_reasm()
442 sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED); in sctp_abort_in_reasm()
443 stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_1; in sctp_abort_in_reasm()
444 sctp_abort_an_association(stcb->sctp_ep, stcb, oper, false, SCTP_SO_NOT_LOCKED); in sctp_abort_in_reasm()
449 sctp_clean_up_control(struct sctp_tcb *stcb, struct sctp_queued_to_read *control) in sctp_clean_up_control() argument
461 sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED); in sctp_clean_up_control()
468 sctp_free_a_readq(stcb, control); in sctp_clean_up_control()
478 sctp_queue_data_to_stream(struct sctp_tcb *stcb, in sctp_queue_data_to_stream() argument
532 stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_2; in sctp_queue_data_to_stream()
533 sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED); in sctp_queue_data_to_stream()
560 sctp_add_to_readq(stcb->sctp_ep, stcb, in sctp_queue_data_to_stream()
562 &stcb->sctp_socket->so_rcv, 1, in sctp_queue_data_to_stream()
600 sctp_add_to_readq(stcb->sctp_ep, stcb, in sctp_queue_data_to_stream()
602 &stcb->sctp_socket->so_rcv, 1, in sctp_queue_data_to_stream()
620 sctp_clean_up_control(stcb, control); in sctp_queue_data_to_stream()
622 stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_3; in sctp_queue_data_to_stream()
623 sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED); in sctp_queue_data_to_stream()
633 struct sctp_tcb *stcb; in sctp_setup_tail_pointer() local
635 stcb = control->stcb; in sctp_setup_tail_pointer()
662 sctp_sballoc(stcb, &stcb->sctp_socket->so_rcv, m); in sctp_setup_tail_pointer()
675 struct sctp_tcb *stcb; in sctp_add_to_tail_pointer() local
677 stcb = control->stcb; in sctp_add_to_tail_pointer()
678 if (stcb == NULL) { in sctp_add_to_tail_pointer()
715 sctp_sballoc(stcb, &stcb->sctp_socket->so_rcv, m); in sctp_add_to_tail_pointer()
744 nc->stcb = control->stcb; in sctp_build_readq_entry_from_ctl()
750 sctp_handle_old_unordered_data(struct sctp_tcb *stcb, in sctp_handle_old_unordered_data() argument
782 sctp_alloc_a_readq(stcb, nc); in sctp_handle_old_unordered_data()
788 sctp_add_chk_to_control(control, strm, stcb, asoc, chk, inp_read_lock_held); in sctp_handle_old_unordered_data()
821 sctp_free_a_chunk(stcb, tchk, SCTP_SO_NOT_LOCKED); in sctp_handle_old_unordered_data()
852 sctp_add_to_readq(stcb->sctp_ep, stcb, control, in sctp_handle_old_unordered_data()
853 &stcb->sctp_socket->so_rcv, control->end_added, in sctp_handle_old_unordered_data()
856 sctp_wakeup_the_read_socket(stcb->sctp_ep, stcb, SCTP_SO_NOT_LOCKED); in sctp_handle_old_unordered_data()
866 sctp_free_a_readq(stcb, nc); in sctp_handle_old_unordered_data()
871 sctp_free_a_readq(stcb, nc); in sctp_handle_old_unordered_data()
879 sctp_wakeup_the_read_socket(stcb->sctp_ep, stcb, SCTP_SO_NOT_LOCKED); in sctp_handle_old_unordered_data()
884 sctp_add_to_readq(stcb->sctp_ep, stcb, control, in sctp_handle_old_unordered_data()
885 &stcb->sctp_socket->so_rcv, control->end_added, in sctp_handle_old_unordered_data()
887 sctp_wakeup_the_read_socket(stcb->sctp_ep, stcb, SCTP_SO_NOT_LOCKED); in sctp_handle_old_unordered_data()
895 sctp_inject_old_unordered_data(struct sctp_tcb *stcb, in sctp_inject_old_unordered_data() argument
953 sctp_abort_in_reasm(stcb, control, chk, in sctp_inject_old_unordered_data()
995 sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED); in sctp_inject_old_unordered_data()
1018 sctp_abort_in_reasm(stcb, control, chk, in sctp_inject_old_unordered_data()
1034 sctp_deliver_reasm_check(struct sctp_tcb *stcb, struct sctp_association *asoc, in sctp_deliver_reasm_check() argument
1048 if (stcb->sctp_socket) { in sctp_deliver_reasm_check()
1049 pd_point = min(SCTP_SB_LIMIT_RCV(stcb->sctp_socket) >> SCTP_PARTIAL_DELIVERY_SHIFT, in sctp_deliver_reasm_check()
1050 stcb->sctp_ep->partial_delivery_point); in sctp_deliver_reasm_check()
1052 pd_point = stcb->sctp_ep->partial_delivery_point; in sctp_deliver_reasm_check()
1059 if (sctp_handle_old_unordered_data(stcb, asoc, strm, control, pd_point, inp_read_lock_held)) { in sctp_deliver_reasm_check()
1095 sctp_add_to_readq(stcb->sctp_ep, stcb, in sctp_deliver_reasm_check()
1097 &stcb->sctp_socket->so_rcv, control->end_added, in sctp_deliver_reasm_check()
1105 sctp_add_to_readq(stcb->sctp_ep, stcb, in sctp_deliver_reasm_check()
1107 &stcb->sctp_socket->so_rcv, control->end_added, in sctp_deliver_reasm_check()
1164 sctp_add_to_readq(stcb->sctp_ep, stcb, in sctp_deliver_reasm_check()
1166 &stcb->sctp_socket->so_rcv, control->end_added, in sctp_deliver_reasm_check()
1251 sctp_add_to_readq(stcb->sctp_ep, stcb, in sctp_deliver_reasm_check()
1253 &stcb->sctp_socket->so_rcv, control->end_added, in sctp_deliver_reasm_check()
1270 struct sctp_tcb *stcb, struct sctp_association *asoc, in sctp_add_chk_to_control() argument
1283 SCTP_INP_READ_LOCK(stcb->sctp_ep); in sctp_add_chk_to_control()
1286 if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_CANT_READ) { in sctp_add_chk_to_control()
1339 SCTP_INP_READ_UNLOCK(stcb->sctp_ep); in sctp_add_chk_to_control()
1341 sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED); in sctp_add_chk_to_control()
1352 sctp_queue_data_for_reasm(struct sctp_tcb *stcb, struct sctp_association *asoc, in sctp_queue_data_for_reasm() argument
1380 sctp_abort_in_reasm(stcb, control, chk, in sctp_queue_data_for_reasm()
1383 sctp_clean_up_control(stcb, control); in sctp_queue_data_for_reasm()
1393 sctp_abort_in_reasm(stcb, control, chk, in sctp_queue_data_for_reasm()
1401 sctp_inject_old_unordered_data(stcb, asoc, control, chk, abort_flag); in sctp_queue_data_for_reasm()
1423 sctp_abort_in_reasm(stcb, control, chk, in sctp_queue_data_for_reasm()
1435 sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED); in sctp_queue_data_for_reasm()
1460 sctp_abort_in_reasm(stcb, control, chk, in sctp_queue_data_for_reasm()
1478 sctp_abort_in_reasm(stcb, control, chk, in sctp_queue_data_for_reasm()
1490 sctp_abort_in_reasm(stcb, control, in sctp_queue_data_for_reasm()
1511 sctp_abort_in_reasm(stcb, control, chk, in sctp_queue_data_for_reasm()
1526 sctp_abort_in_reasm(stcb, control, chk, in sctp_queue_data_for_reasm()
1545 sctp_abort_in_reasm(stcb, control, in sctp_queue_data_for_reasm()
1578 sctp_abort_in_reasm(stcb, control, in sctp_queue_data_for_reasm()
1613 lenadded = sctp_add_chk_to_control(control, strm, stcb, asoc, at, SCTP_READ_LOCK_NOT_HELD); in sctp_queue_data_for_reasm()
1633 sctp_add_to_readq(stcb->sctp_ep, stcb, in sctp_queue_data_for_reasm()
1635 &stcb->sctp_socket->so_rcv, control->end_added, in sctp_queue_data_for_reasm()
1647 sctp_wakeup_the_read_socket(stcb->sctp_ep, stcb, SCTP_SO_NOT_LOCKED); in sctp_queue_data_for_reasm()
1677 sctp_process_a_data_chunk(struct sctp_tcb *stcb, struct sctp_association *asoc, in sctp_process_a_data_chunk() argument
1734 stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_16; in sctp_process_a_data_chunk()
1735 sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED); in sctp_process_a_data_chunk()
1746 if (stcb == NULL) { in sctp_process_a_data_chunk()
1749 SCTP_LTRACE_CHK(stcb->sctp_ep, stcb, chk_type, tsn); in sctp_process_a_data_chunk()
1768 SCTP_TCB_LOCK_ASSERT(stcb); in sctp_process_a_data_chunk()
1793 if (((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) || in sctp_process_a_data_chunk()
1794 (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) || in sctp_process_a_data_chunk()
1795 (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET))) { in sctp_process_a_data_chunk()
1801 sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED); in sctp_process_a_data_chunk()
1831 sctp_queue_op_err(stcb, op_err); in sctp_process_a_data_chunk()
1834 SCTP_TCB_LOCK_ASSERT(stcb); in sctp_process_a_data_chunk()
1871 stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_17; in sctp_process_a_data_chunk()
1872 sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED); in sctp_process_a_data_chunk()
1932 if (SCTP_SBAVAIL(&stcb->sctp_socket->so_rcv) > 0) { in sctp_process_a_data_chunk()
1934 sctp_sorwakeup(stcb->sctp_ep, stcb->sctp_socket); in sctp_process_a_data_chunk()
1942 sctp_set_rwnd(stcb, asoc); in sctp_process_a_data_chunk()
1963 SCTP_TCB_LOCK_ASSERT(stcb); in sctp_process_a_data_chunk()
1973 asoc->in_tsnlog[asoc->tsn_in_at].stcb = (void *)stcb; in sctp_process_a_data_chunk()
2007 stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_18; in sctp_process_a_data_chunk()
2008 sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED); in sctp_process_a_data_chunk()
2072 sctp_alloc_a_readq(stcb, control); in sctp_process_a_data_chunk()
2073 sctp_build_readq_entry_mac(control, stcb, asoc->context, net, tsn, in sctp_process_a_data_chunk()
2123 sctp_add_to_readq(stcb->sctp_ep, stcb, in sctp_process_a_data_chunk()
2124 control, &stcb->sctp_socket->so_rcv, in sctp_process_a_data_chunk()
2133 sctp_log_strm_del_alt(stcb, tsn, mid, sid, in sctp_process_a_data_chunk()
2142 sctp_alloc_a_chunk(stcb, chk); in sctp_process_a_data_chunk()
2158 chk->rec.data.context = stcb->asoc.context; in sctp_process_a_data_chunk()
2231 sctp_add_to_readq(stcb->sctp_ep, stcb, in sctp_process_a_data_chunk()
2233 &stcb->sctp_socket->so_rcv, 1, in sctp_process_a_data_chunk()
2239 sctp_queue_data_to_stream(stcb, asoc, control, abort_flag, &need_reasm_check); in sctp_process_a_data_chunk()
2254 sctp_queue_data_for_reasm(stcb, asoc, control, chk, created_control, abort_flag, tsn); in sctp_process_a_data_chunk()
2282 sctp_log_strm_del_alt(stcb, tsn, mid, sid, SCTP_STR_LOG_FROM_MARK_TSN); in sctp_process_a_data_chunk()
2289 (void)sctp_deliver_reasm_check(stcb, asoc, &asoc->strmin[sid], SCTP_READ_LOCK_NOT_HELD); in sctp_process_a_data_chunk()
2301 sctp_reset_in_stream(stcb, liste->number_entries, liste->list_of_streams); in sctp_process_a_data_chunk()
2303 sctp_send_deferred_reset_response(stcb, liste, SCTP_STREAM_RESET_RESULT_PERFORMED); in sctp_process_a_data_chunk()
2312 sctp_queue_data_to_stream(stcb, asoc, control, abort_flag, &need_reasm_check); in sctp_process_a_data_chunk()
2317 (void)sctp_deliver_reasm_check(stcb, asoc, strm, SCTP_READ_LOCK_NOT_HELD); in sctp_process_a_data_chunk()
2333 sctp_queue_data_to_stream(stcb, asoc, control, abort_flag, &need_reasm_check); in sctp_process_a_data_chunk()
2338 (void)sctp_deliver_reasm_check(stcb, asoc, strm, SCTP_READ_LOCK_NOT_HELD); in sctp_process_a_data_chunk()
2383 sctp_slide_mapping_arrays(struct sctp_tcb *stcb) in sctp_slide_mapping_arrays() argument
2403 asoc = &stcb->asoc; in sctp_slide_mapping_arrays()
2413 for (slide_from = 0; slide_from < stcb->asoc.mapping_array_size; slide_from++) { in sctp_slide_mapping_arrays()
2548 sctp_sack_check(struct sctp_tcb *stcb, int was_a_gap) in sctp_sack_check() argument
2554 sctp_slide_mapping_arrays(stcb); in sctp_sack_check()
2555 asoc = &stcb->asoc; in sctp_sack_check()
2562 is_a_gap = SCTP_TSN_GT(highest_tsn, stcb->asoc.cumulative_tsn); in sctp_sack_check()
2568 if (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_SENT) { in sctp_sack_check()
2574 if (SCTP_OS_TIMER_PENDING(&stcb->asoc.dack_timer.timer)) { in sctp_sack_check()
2576 stcb->sctp_ep, stcb, NULL, in sctp_sack_check()
2579 sctp_send_shutdown(stcb, in sctp_sack_check()
2580 ((stcb->asoc.alternate) ? stcb->asoc.alternate : stcb->asoc.primary_destination)); in sctp_sack_check()
2582 sctp_send_sack(stcb, SCTP_SO_NOT_LOCKED); in sctp_sack_check()
2589 stcb->asoc.cmt_dac_pkts_rcvd++; in sctp_sack_check()
2591 if ((stcb->asoc.send_sack == 1) || /* We need to send a in sctp_sack_check()
2595 (stcb->asoc.numduptsns) || /* we have dup's */ in sctp_sack_check()
2597 (stcb->asoc.delayed_ack == 0) || /* Delayed sack disabled */ in sctp_sack_check()
2598 (stcb->asoc.data_pkts_seen >= stcb->asoc.sack_freq)) { /* hit limit of pkts */ in sctp_sack_check()
2599 if ((stcb->asoc.sctp_cmt_on_off > 0) && in sctp_sack_check()
2601 (stcb->asoc.send_sack == 0) && in sctp_sack_check()
2602 (stcb->asoc.numduptsns == 0) && in sctp_sack_check()
2603 (stcb->asoc.delayed_ack) && in sctp_sack_check()
2604 (!SCTP_OS_TIMER_PENDING(&stcb->asoc.dack_timer.timer))) { in sctp_sack_check()
2616 stcb->sctp_ep, stcb, NULL); in sctp_sack_check()
2623 sctp_timer_stop(SCTP_TIMER_TYPE_RECV, stcb->sctp_ep, stcb, NULL, in sctp_sack_check()
2625 sctp_send_sack(stcb, SCTP_SO_NOT_LOCKED); in sctp_sack_check()
2628 if (!SCTP_OS_TIMER_PENDING(&stcb->asoc.dack_timer.timer)) { in sctp_sack_check()
2630 stcb->sctp_ep, stcb, NULL); in sctp_sack_check()
2638 struct sctp_inpcb *inp, struct sctp_tcb *stcb, in sctp_process_data() argument
2652 sctp_set_rwnd(stcb, &stcb->asoc); in sctp_process_data()
2655 SCTP_TCB_LOCK_ASSERT(stcb); in sctp_process_data()
2656 asoc = &stcb->asoc; in sctp_process_data()
2662 was_a_gap = SCTP_TSN_GT(highest_tsn, stcb->asoc.cumulative_tsn); in sctp_process_data()
2726 stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_21; in sctp_process_data()
2727 sctp_abort_an_association(inp, stcb, op_err, false, SCTP_SO_NOT_LOCKED); in sctp_process_data()
2737 stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_22; in sctp_process_data()
2738 sctp_abort_an_association(inp, stcb, op_err, false, SCTP_SO_NOT_LOCKED); in sctp_process_data()
2762 stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_23; in sctp_process_data()
2763 sctp_abort_an_association(inp, stcb, op_err, false, SCTP_SO_NOT_LOCKED); in sctp_process_data()
2774 if (sctp_process_a_data_chunk(stcb, asoc, mm, *offset, in sctp_process_data()
2832 sctp_abort_an_association(inp, stcb, op_err, false, SCTP_SO_NOT_LOCKED); in sctp_process_data()
2850 stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_24; in sctp_process_data()
2851 sctp_abort_an_association(inp, stcb, op_err, false, SCTP_SO_NOT_LOCKED); in sctp_process_data()
2868 sctp_queue_op_err(stcb, op_err); in sctp_process_data()
2901 sctp_send_packet_dropped(stcb, net, *mm, length, iphlen, 0); in sctp_process_data()
2911 stcb->asoc.overall_error_count, in sctp_process_data()
2916 stcb->asoc.overall_error_count = 0; in sctp_process_data()
2917 (void)SCTP_GETTIME_TIMEVAL(&stcb->asoc.time_last_rcvd); in sctp_process_data()
2920 if (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_SENT) { in sctp_process_data()
2922 stcb->asoc.send_sack = 1; in sctp_process_data()
2925 sctp_sack_check(stcb, was_a_gap); in sctp_process_data()
2930 sctp_process_segment_range(struct sctp_tcb *stcb, struct sctp_tmit_chunk **p_tp1, uint32_t last_tsn, in sctp_process_segment_range() argument
2944 tp1 = TAILQ_FIRST(&stcb->asoc.sent_queue); 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()
3059 if (stcb->asoc.cc_functions.sctp_cwnd_update_tsn_acknowledged) { in sctp_process_segment_range()
3060 (*stcb->asoc.cc_functions.sctp_cwnd_update_tsn_acknowledged) (tp1->whoTo, in sctp_process_segment_range()
3063 sctp_total_flight_decrease(stcb, tp1); in sctp_process_segment_range()
3077 sctp_calculate_rto(stcb, in sctp_process_segment_range()
3078 &stcb->asoc, in sctp_process_segment_range()
3093 stcb->asoc.this_sack_highest_gap)) { in sctp_process_segment_range()
3094 stcb->asoc.this_sack_highest_gap = in sctp_process_segment_range()
3098 sctp_ucount_decr(stcb->asoc.sent_queue_retran_cnt); in sctp_process_segment_range()
3101 (stcb->asoc.sent_queue_retran_cnt & 0x000000ff)); 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()
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()
3131 stcb->asoc.trigger_reset = 1; in sctp_process_segment_range()
3139 sctp_free_bufspace(stcb, &stcb->asoc, tp1, 1); in sctp_process_segment_range()
3154 tp1 = TAILQ_FIRST(&stcb->asoc.sent_queue); in sctp_process_segment_range()
3159 tp1 = TAILQ_FIRST(&stcb->asoc.sent_queue); in sctp_process_segment_range()
3168 sctp_handle_segments(struct mbuf *m, int *offset, struct sctp_tcb *stcb, struct sctp_association *a… in sctp_handle_segments() argument
3215 if (sctp_process_segment_range(stcb, &tp1, last_tsn, frag_strt, frag_end, in sctp_handle_segments()
3232 sctp_check_for_revoked(struct sctp_tcb *stcb, in sctp_check_for_revoked() argument
3265 sctp_total_flight_increase(stcb, tp1); in sctp_check_for_revoked()
3290 sctp_strike_gap_ack_chunks(struct sctp_tcb *stcb, struct sctp_association *asoc, in sctp_strike_gap_ack_chunks() argument
3304 tp1 = TAILQ_FIRST(&stcb->asoc.send_queue); in sctp_strike_gap_ack_chunks()
3319 if (stcb->asoc.prsctp_supported) { in sctp_strike_gap_ack_chunks()
3340 if (stcb->asoc.prsctp_supported) { in sctp_strike_gap_ack_chunks()
3346 (void)sctp_release_pr_sctp_chunk(stcb, tp1, 1, in sctp_strike_gap_ack_chunks()
3581 if (stcb->asoc.cc_functions.sctp_cwnd_update_tsn_acknowledged) { in sctp_strike_gap_ack_chunks()
3582 (*stcb->asoc.cc_functions.sctp_cwnd_update_tsn_acknowledged) (tp1->whoTo, in sctp_strike_gap_ack_chunks()
3595 sctp_total_flight_decrease(stcb, tp1); in sctp_strike_gap_ack_chunks()
3597 if ((stcb->asoc.prsctp_supported) && in sctp_strike_gap_ack_chunks()
3606 (void)sctp_release_pr_sctp_chunk(stcb, tp1, 1, in sctp_strike_gap_ack_chunks()
3628 sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); in sctp_strike_gap_ack_chunks()
3644 alt = sctp_find_alternate_net(stcb, alt, 2); in sctp_strike_gap_ack_chunks()
3652 alt = sctp_find_alternate_net(stcb, alt, 1); in sctp_strike_gap_ack_chunks()
3671 alt = sctp_find_alternate_net(stcb, tp1->whoTo, 0); in sctp_strike_gap_ack_chunks()
3735 sctp_try_advance_peer_ack_point(struct sctp_tcb *stcb, in sctp_try_advance_peer_ack_point() argument
3786 (void)sctp_release_pr_sctp_chunk(stcb, tp1, in sctp_try_advance_peer_ack_point()
3875 sctp_window_probe_recovery(struct sctp_tcb *stcb, in sctp_window_probe_recovery() argument
3890 if (stcb->asoc.cc_functions.sctp_cwnd_update_tsn_acknowledged) { in sctp_window_probe_recovery()
3891 (*stcb->asoc.cc_functions.sctp_cwnd_update_tsn_acknowledged) (tp1->whoTo, in sctp_window_probe_recovery()
3895 sctp_total_flight_decrease(stcb, tp1); in sctp_window_probe_recovery()
3910 sctp_express_handle_sack(struct sctp_tcb *stcb, uint32_t cumack, in sctp_express_handle_sack() argument
3925 rwnd, stcb->asoc.last_acked_seq, stcb->asoc.peers_rwnd); in sctp_express_handle_sack()
3927 SCTP_TCB_LOCK_ASSERT(stcb); in sctp_express_handle_sack()
3929 stcb->asoc.cumack_log[stcb->asoc.cumack_log_at] = cumack; in sctp_express_handle_sack()
3930 stcb->asoc.cumack_log_at++; in sctp_express_handle_sack()
3931 if (stcb->asoc.cumack_log_at > SCTP_TSN_LOG_SIZE) { in sctp_express_handle_sack()
3932 stcb->asoc.cumack_log_at = 0; in sctp_express_handle_sack()
3935 asoc = &stcb->asoc; in sctp_express_handle_sack()
3944 if (asoc->peers_rwnd < stcb->sctp_ep->sctp_ep.sctp_sws_sender) { in sctp_express_handle_sack()
3970 if (stcb->asoc.cc_functions.sctp_cwnd_prepare_net_for_sack) { in sctp_express_handle_sack()
3971 (*stcb->asoc.cc_functions.sctp_cwnd_prepare_net_for_sack) (stcb, net); in sctp_express_handle_sack()
3991 stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_25; in sctp_express_handle_sack()
3992 sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED); in sctp_express_handle_sack()
3998 stcb->asoc.overall_error_count, in sctp_express_handle_sack()
4003 stcb->asoc.overall_error_count = 0; in sctp_express_handle_sack()
4026 if (stcb->asoc.cc_functions.sctp_cwnd_update_tsn_acknowledged) { in sctp_express_handle_sack()
4027 (*stcb->asoc.cc_functions.sctp_cwnd_update_tsn_acknowledged) (tp1->whoTo, in sctp_express_handle_sack()
4031 sctp_total_flight_decrease(stcb, tp1); in sctp_express_handle_sack()
4045 sctp_calculate_rto(stcb, in sctp_express_handle_sack()
4046 &stcb->asoc, 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()
4103 sctp_free_bufspace(stcb, asoc, tp1, 1); in sctp_express_handle_sack()
4116 sctp_free_a_chunk(stcb, tp1, SCTP_SO_NOT_LOCKED); in sctp_express_handle_sack()
4123 if (stcb->sctp_socket) { in sctp_express_handle_sack()
4124 SOCKBUF_LOCK(&stcb->sctp_socket->so_snd); in sctp_express_handle_sack()
4127 sctp_wakeup_log(stcb, 1, SCTP_WAKESND_FROM_SACK); in sctp_express_handle_sack()
4129 sctp_sowwakeup_locked(stcb->sctp_ep, stcb->sctp_socket); in sctp_express_handle_sack()
4132 sctp_wakeup_log(stcb, 1, SCTP_NOWAKE_FROM_SACK); in sctp_express_handle_sack()
4148 sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb, in sctp_express_handle_sack()
4151 if (net == stcb->asoc.primary_destination) { in sctp_express_handle_sack()
4152 if (stcb->asoc.alternate) { in sctp_express_handle_sack()
4157 sctp_free_remote_addr(stcb->asoc.alternate); in sctp_express_handle_sack()
4158 stcb->asoc.alternate = NULL; in sctp_express_handle_sack()
4164 stcb->sctp_ep, stcb, net, in sctp_express_handle_sack()
4166 sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep, stcb, net); in sctp_express_handle_sack()
4167 asoc->cc_functions.sctp_cwnd_update_exit_pf(stcb, net); in sctp_express_handle_sack()
4173 if (net->RTO < stcb->asoc.minrto) { in sctp_express_handle_sack()
4174 net->RTO = stcb->asoc.minrto; in sctp_express_handle_sack()
4176 if (net->RTO > stcb->asoc.maxrto) { in sctp_express_handle_sack()
4177 net->RTO = stcb->asoc.maxrto; in sctp_express_handle_sack()
4181 asoc->cc_functions.sctp_cwnd_update_after_sack(stcb, asoc, 1, 0, 0); in sctp_express_handle_sack()
4198 if (asoc->peers_rwnd < stcb->sctp_ep->sctp_ep.sctp_sws_sender) { in sctp_express_handle_sack()
4219 sctp_window_probe_recovery(stcb, asoc, tp1); in sctp_express_handle_sack()
4226 sctp_timer_start(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep, stcb, net); in sctp_express_handle_sack()
4238 sctp_timer_start(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep, stcb, net); in sctp_express_handle_sack()
4241 sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep, in sctp_express_handle_sack()
4242 stcb, net, in sctp_express_handle_sack()
4266 sctp_total_flight_increase(stcb, tp1); in sctp_express_handle_sack()
4283 (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) && in sctp_express_handle_sack()
4284 ((*asoc->ss_functions.sctp_ss_is_user_msgs_incomplete) (stcb, asoc))) { in sctp_express_handle_sack()
4285 SCTP_ADD_SUBSTATE(stcb, SCTP_STATE_PARTIAL_MSG_LEFT); in sctp_express_handle_sack()
4288 (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) && in sctp_express_handle_sack()
4296 stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_28; in sctp_express_handle_sack()
4297 sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED); in sctp_express_handle_sack()
4304 if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) || in sctp_express_handle_sack()
4305 (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) { in sctp_express_handle_sack()
4308 SCTP_SET_STATE(stcb, SCTP_STATE_SHUTDOWN_SENT); in sctp_express_handle_sack()
4309 sctp_stop_timers_for_shutdown(stcb); in sctp_express_handle_sack()
4315 sctp_send_shutdown(stcb, netp); in sctp_express_handle_sack()
4317 stcb->sctp_ep, stcb, netp); in sctp_express_handle_sack()
4319 stcb->sctp_ep, stcb, NULL); in sctp_express_handle_sack()
4320 } else if ((SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED) && in sctp_express_handle_sack()
4325 SCTP_SET_STATE(stcb, SCTP_STATE_SHUTDOWN_ACK_SENT); in sctp_express_handle_sack()
4326 sctp_stop_timers_for_shutdown(stcb); in sctp_express_handle_sack()
4332 sctp_send_shutdown_ack(stcb, netp); in sctp_express_handle_sack()
4334 stcb->sctp_ep, stcb, netp); in sctp_express_handle_sack()
4351 lchk = sctp_try_advance_peer_ack_point(stcb, asoc); in sctp_express_handle_sack()
4358 send_forward_tsn(stcb, asoc); in sctp_express_handle_sack()
4362 send_forward_tsn(stcb, asoc); in sctp_express_handle_sack()
4374 stcb->sctp_ep, stcb, lchk->whoTo); in sctp_express_handle_sack()
4380 stcb->asoc.peers_rwnd, in sctp_express_handle_sack()
4381 stcb->asoc.total_flight, in sctp_express_handle_sack()
4382 stcb->asoc.total_output_queue_size); in sctp_express_handle_sack()
4388 struct sctp_tcb *stcb, in sctp_handle_sack() argument
4431 SCTP_TCB_LOCK_ASSERT(stcb); in sctp_handle_sack()
4438 stcb->asoc.cumack_log[stcb->asoc.cumack_log_at] = cum_ack; in sctp_handle_sack()
4439 stcb->asoc.cumack_log_at++; in sctp_handle_sack()
4440 if (stcb->asoc.cumack_log_at > SCTP_TSN_LOG_SIZE) { in sctp_handle_sack()
4441 stcb->asoc.cumack_log_at = 0; in sctp_handle_sack()
4448 rwnd, stcb->asoc.last_acked_seq, stcb->asoc.peers_rwnd); in sctp_handle_sack()
4451 old_rwnd = stcb->asoc.peers_rwnd; in sctp_handle_sack()
4454 stcb->asoc.overall_error_count, in sctp_handle_sack()
4459 stcb->asoc.overall_error_count = 0; in sctp_handle_sack()
4460 asoc = &stcb->asoc; in sctp_handle_sack()
4512 stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_29; in sctp_handle_sack()
4513 sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED); in sctp_handle_sack()
4537 if (asoc->peers_rwnd < stcb->sctp_ep->sctp_ep.sctp_sws_sender) { in sctp_handle_sack()
4543 sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep, in sctp_handle_sack()
4544 stcb, net, SCTP_FROM_SCTP_INDATA + SCTP_LOC_30); in sctp_handle_sack()
4574 if (stcb->asoc.cc_functions.sctp_cwnd_prepare_net_for_sack) { in sctp_handle_sack()
4575 (*stcb->asoc.cc_functions.sctp_cwnd_prepare_net_for_sack) (stcb, net); in sctp_handle_sack()
4620 sctp_total_flight_decrease(stcb, tp1); in sctp_handle_sack()
4621 if (stcb->asoc.cc_functions.sctp_cwnd_update_tsn_acknowledged) { in sctp_handle_sack()
4622 (*stcb->asoc.cc_functions.sctp_cwnd_update_tsn_acknowledged) (tp1->whoTo, in sctp_handle_sack()
4643 sctp_calculate_rto(stcb, in sctp_handle_sack()
4644 &stcb->asoc, in sctp_handle_sack()
4680 sctp_log_cwnd(stcb, tp1->whoTo, tp1->rec.data.tsn, SCTP_CWND_LOG_FROM_SACK); in sctp_handle_sack()
4714 if (sctp_handle_segments(m, &offset_seg, stcb, asoc, last_tsn, &biggest_tsn_acked, in sctp_handle_sack()
4739 sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep, in sctp_handle_sack()
4740 stcb, net, in sctp_handle_sack()
4746 sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep, in sctp_handle_sack()
4747 stcb, net, SCTP_FROM_SCTP_INDATA + SCTP_LOC_32); in sctp_handle_sack()
4782 sctp_free_bufspace(stcb, asoc, tp1, 1); in sctp_handle_sack()
4797 sctp_free_a_chunk(stcb, tp1, SCTP_SO_NOT_LOCKED); in sctp_handle_sack()
4811 if ((wake_him) && (stcb->sctp_socket)) { in sctp_handle_sack()
4812 SOCKBUF_LOCK(&stcb->sctp_socket->so_snd); in sctp_handle_sack()
4814 sctp_wakeup_log(stcb, wake_him, SCTP_WAKESND_FROM_SACK); in sctp_handle_sack()
4816 sctp_sowwakeup_locked(stcb->sctp_ep, stcb->sctp_socket); in sctp_handle_sack()
4819 sctp_wakeup_log(stcb, wake_him, SCTP_NOWAKE_FROM_SACK); in sctp_handle_sack()
4840 sctp_check_for_revoked(stcb, asoc, cum_ack, biggest_tsn_acked); in sctp_handle_sack()
4857 sctp_total_flight_increase(stcb, tp1); in sctp_handle_sack()
4891 sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb, in sctp_handle_sack()
4895 if (net == stcb->asoc.primary_destination) { in sctp_handle_sack()
4896 if (stcb->asoc.alternate) { in sctp_handle_sack()
4901 sctp_free_remote_addr(stcb->asoc.alternate); in sctp_handle_sack()
4902 stcb->asoc.alternate = NULL; in sctp_handle_sack()
4909 stcb->sctp_ep, stcb, net, in sctp_handle_sack()
4911 sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep, stcb, net); in sctp_handle_sack()
4912 asoc->cc_functions.sctp_cwnd_update_exit_pf(stcb, net); in sctp_handle_sack()
4918 if (net->RTO < stcb->asoc.minrto) { in sctp_handle_sack()
4919 net->RTO = stcb->asoc.minrto; in sctp_handle_sack()
4921 if (net->RTO > stcb->asoc.maxrto) { in sctp_handle_sack()
4922 net->RTO = stcb->asoc.maxrto; in sctp_handle_sack()
4926 …asoc->cc_functions.sctp_cwnd_update_after_sack(stcb, asoc, accum_moved, reneged_all, will_exit_fas… in sctp_handle_sack()
4933 sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep, in sctp_handle_sack()
4934 stcb, net, in sctp_handle_sack()
4953 if (asoc->peers_rwnd < stcb->sctp_ep->sctp_ep.sctp_sws_sender) { in sctp_handle_sack()
4960 (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) && in sctp_handle_sack()
4961 ((*asoc->ss_functions.sctp_ss_is_user_msgs_incomplete) (stcb, asoc))) { in sctp_handle_sack()
4962 SCTP_ADD_SUBSTATE(stcb, SCTP_STATE_PARTIAL_MSG_LEFT); in sctp_handle_sack()
4965 (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) && in sctp_handle_sack()
4973 stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_35; in sctp_handle_sack()
4974 sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED); in sctp_handle_sack()
4981 if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) || in sctp_handle_sack()
4982 (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) { in sctp_handle_sack()
4985 SCTP_SET_STATE(stcb, SCTP_STATE_SHUTDOWN_SENT); in sctp_handle_sack()
4986 sctp_stop_timers_for_shutdown(stcb); in sctp_handle_sack()
4992 sctp_send_shutdown(stcb, netp); in sctp_handle_sack()
4994 stcb->sctp_ep, stcb, netp); in sctp_handle_sack()
4996 stcb->sctp_ep, stcb, NULL); in sctp_handle_sack()
4998 } else if ((SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED) && in sctp_handle_sack()
5003 SCTP_SET_STATE(stcb, SCTP_STATE_SHUTDOWN_ACK_SENT); in sctp_handle_sack()
5004 sctp_stop_timers_for_shutdown(stcb); in sctp_handle_sack()
5010 sctp_send_shutdown_ack(stcb, netp); in sctp_handle_sack()
5012 stcb->sctp_ep, stcb, netp); in sctp_handle_sack()
5035 sctp_strike_gap_ack_chunks(stcb, asoc, biggest_tsn_acked, in sctp_handle_sack()
5039 asoc->cc_functions.sctp_cwnd_update_after_fr(stcb, asoc); in sctp_handle_sack()
5068 if (asoc->peers_rwnd < stcb->sctp_ep->sctp_ep.sctp_sws_sender) { in sctp_handle_sack()
5094 sctp_window_probe_recovery(stcb, asoc, tp1); in sctp_handle_sack()
5103 stcb->sctp_ep, stcb, net); in sctp_handle_sack()
5116 stcb->sctp_ep, stcb, net); in sctp_handle_sack()
5119 sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep, in sctp_handle_sack()
5120 stcb, net, in sctp_handle_sack()
5144 sctp_total_flight_increase(stcb, tp1); in sctp_handle_sack()
5167 lchk = sctp_try_advance_peer_ack_point(stcb, asoc); in sctp_handle_sack()
5179 send_forward_tsn(stcb, asoc); in sctp_handle_sack()
5183 send_forward_tsn(stcb, asoc); in sctp_handle_sack()
5195 stcb->sctp_ep, stcb, lchk->whoTo); in sctp_handle_sack()
5201 stcb->asoc.peers_rwnd, in sctp_handle_sack()
5202 stcb->asoc.total_flight, in sctp_handle_sack()
5203 stcb->asoc.total_output_queue_size); in sctp_handle_sack()
5208 sctp_update_acked(struct sctp_tcb *stcb, struct sctp_shutdown_chunk *cp, int *abort_flag) in sctp_update_acked() argument
5215 a_rwnd = stcb->asoc.peers_rwnd + stcb->asoc.total_flight; in sctp_update_acked()
5218 sctp_express_handle_sack(stcb, cum_ack, a_rwnd, abort_flag, 0); in sctp_update_acked()
5222 sctp_kick_prsctp_reorder_queue(struct sctp_tcb *stcb, in sctp_kick_prsctp_reorder_queue() argument
5230 KASSERT(stcb != NULL, ("stcb == NULL")); in sctp_kick_prsctp_reorder_queue()
5231 SCTP_TCB_LOCK_ASSERT(stcb); in sctp_kick_prsctp_reorder_queue()
5232 SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep); in sctp_kick_prsctp_reorder_queue()
5234 asoc = &stcb->asoc; in sctp_kick_prsctp_reorder_queue()
5269 if (stcb->sctp_socket) { in sctp_kick_prsctp_reorder_queue()
5271 sctp_add_to_readq(stcb->sctp_ep, stcb, control, in sctp_kick_prsctp_reorder_queue()
5272 &stcb->sctp_socket->so_rcv, 1, in sctp_kick_prsctp_reorder_queue()
5295 ret = sctp_deliver_reasm_check(stcb, &stcb->asoc, strmin, SCTP_READ_LOCK_HELD); in sctp_kick_prsctp_reorder_queue()
5341 if (stcb->sctp_socket) { in sctp_kick_prsctp_reorder_queue()
5343 sctp_add_to_readq(stcb->sctp_ep, stcb, control, in sctp_kick_prsctp_reorder_queue()
5344 &stcb->sctp_socket->so_rcv, 1, in sctp_kick_prsctp_reorder_queue()
5365 (void)sctp_deliver_reasm_check(stcb, &stcb->asoc, strmin, SCTP_READ_LOCK_HELD); in sctp_kick_prsctp_reorder_queue()
5370 sctp_flush_reassm_for_str_seq(struct sctp_tcb *stcb, in sctp_flush_reassm_for_str_seq() argument
5385 KASSERT(stcb != NULL, ("stcb == NULL")); in sctp_flush_reassm_for_str_seq()
5386 SCTP_TCB_LOCK_ASSERT(stcb); in sctp_flush_reassm_for_str_seq()
5387 SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep); in sctp_flush_reassm_for_str_seq()
5416 sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED); in sctp_flush_reassm_for_str_seq()
5435 TAILQ_REMOVE(&stcb->sctp_ep->read_queue, control, next); in sctp_flush_reassm_for_str_seq()
5441 sctp_add_chk_to_control(control, strm, stcb, asoc, in sctp_flush_reassm_for_str_seq()
5444 sctp_deliver_reasm_check(stcb, asoc, strm, SCTP_READ_LOCK_HELD); in sctp_flush_reassm_for_str_seq()
5476 sctp_free_a_readq(stcb, control); in sctp_flush_reassm_for_str_seq()
5481 sctp_handle_forward_tsn(struct sctp_tcb *stcb, in sctp_handle_forward_tsn() argument
5503 asoc = &stcb->asoc; in sctp_handle_forward_tsn()
5509 m_size = (stcb->asoc.mapping_array_size << 3); in sctp_handle_forward_tsn()
5526 if ((long)gap > sctp_sbspace(&stcb->asoc, &stcb->sctp_socket->so_rcv)) { in sctp_handle_forward_tsn()
5539 stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_37; in sctp_handle_forward_tsn()
5540 sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED); in sctp_handle_forward_tsn()
5545 memset(stcb->asoc.mapping_array, 0, stcb->asoc.mapping_array_size); in sctp_handle_forward_tsn()
5549 memset(stcb->asoc.nr_mapping_array, 0, stcb->asoc.mapping_array_size); in sctp_handle_forward_tsn()
5556 SCTP_TCB_LOCK_ASSERT(stcb); in sctp_handle_forward_tsn()
5576 SCTP_INP_READ_LOCK(stcb->sctp_ep); in sctp_handle_forward_tsn()
5580 … sctp_flush_reassm_for_str_seq(stcb, asoc, strm, TAILQ_FIRST(&strm->uno_inqueue), 0, new_cum_tsn); in sctp_handle_forward_tsn()
5583 SCTP_INP_READ_UNLOCK(stcb->sctp_ep); in sctp_handle_forward_tsn()
5601 SCTP_INP_READ_LOCK(stcb->sctp_ep); in sctp_handle_forward_tsn()
5663 sctp_flush_reassm_for_str_seq(stcb, asoc, strm, control, ordered, new_cum_tsn); in sctp_handle_forward_tsn()
5670 sctp_flush_reassm_for_str_seq(stcb, asoc, strm, control, ordered, new_cum_tsn); in sctp_handle_forward_tsn()
5675 …sctp_flush_reassm_for_str_seq(stcb, asoc, strm, TAILQ_FIRST(&strm->uno_inqueue), ordered, new_cum_… in sctp_handle_forward_tsn()
5679 TAILQ_FOREACH(control, &stcb->sctp_ep->read_queue, next) { in sctp_handle_forward_tsn()
5706 stcb, in sctp_handle_forward_tsn()
5723 sctp_kick_prsctp_reorder_queue(stcb, strm); in sctp_handle_forward_tsn()
5725 SCTP_INP_READ_UNLOCK(stcb->sctp_ep); in sctp_handle_forward_tsn()
5730 sctp_slide_mapping_arrays(stcb); in sctp_handle_forward_tsn()