Lines Matching refs:transport
59 struct sctp_transport *transport,
66 struct sctp_transport *transport,
115 struct sctp_transport *transport, in sctp_cacc_skip_3_1_d() argument
118 if (count_of_newacks >= 2 && transport != primary) in sctp_cacc_skip_3_1_d()
130 static inline int sctp_cacc_skip_3_1_f(struct sctp_transport *transport, in sctp_cacc_skip_3_1_f() argument
134 (transport && !transport->cacc.cacc_saw_newack)) in sctp_cacc_skip_3_1_f()
147 struct sctp_transport *transport, in sctp_cacc_skip_3_1() argument
151 if (sctp_cacc_skip_3_1_d(primary, transport, count_of_newacks)) in sctp_cacc_skip_3_1()
153 if (sctp_cacc_skip_3_1_f(transport, count_of_newacks)) in sctp_cacc_skip_3_1()
190 struct sctp_transport *transport, in sctp_cacc_skip() argument
195 (sctp_cacc_skip_3_1(primary, transport, count_of_newacks) || in sctp_cacc_skip()
222 struct sctp_transport *transport; in __sctp_outq_teardown() local
227 list_for_each_entry(transport, &q->asoc->peer.transport_addr_list, in __sctp_outq_teardown()
229 while ((lchunk = sctp_list_dequeue(&transport->transmitted)) != NULL) { in __sctp_outq_teardown()
382 if (chk->transport) in sctp_prsctp_prune_sent()
383 chk->transport->flight_size -= in sctp_prsctp_prune_sent()
441 struct sctp_transport *transport; in sctp_prsctp_prune() local
452 list_for_each_entry(transport, &asoc->peer.transport_addr_list, in sctp_prsctp_prune()
455 &transport->transmitted, in sctp_prsctp_prune()
466 struct sctp_transport *transport, in sctp_retransmit_mark() argument
473 list_for_each_safe(lchunk, ltemp, &transport->transmitted) { in sctp_retransmit_mark()
488 if (chunk->transport) in sctp_retransmit_mark()
489 chunk->transport->flight_size -= in sctp_retransmit_mark()
514 if (chunk->transport) in sctp_retransmit_mark()
515 transport->flight_size -= sctp_data_size(chunk); in sctp_retransmit_mark()
532 transport->rto_pending = 0; in sctp_retransmit_mark()
544 "flight_size:%d, pba:%d\n", __func__, transport, reason, in sctp_retransmit_mark()
545 transport->cwnd, transport->ssthresh, transport->flight_size, in sctp_retransmit_mark()
546 transport->partial_bytes_acked); in sctp_retransmit_mark()
552 void sctp_retransmit(struct sctp_outq *q, struct sctp_transport *transport, in sctp_retransmit() argument
560 sctp_transport_lower_cwnd(transport, SCTP_LOWER_CWND_T3_RTX); in sctp_retransmit()
564 if (transport == transport->asoc->peer.retran_path) in sctp_retransmit()
565 sctp_assoc_update_retran_path(transport->asoc); in sctp_retransmit()
566 transport->asoc->rtx_data_chunks += in sctp_retransmit()
567 transport->asoc->unack_data; in sctp_retransmit()
571 sctp_transport_lower_cwnd(transport, SCTP_LOWER_CWND_FAST_RTX); in sctp_retransmit()
579 transport->asoc->init_retries++; in sctp_retransmit()
585 sctp_retransmit_mark(q, transport, reason); in sctp_retransmit()
613 struct sctp_transport *transport = pkt->transport; in __sctp_outq_flush_rtx() local
664 &transport->transmitted); in __sctp_outq_flush_rtx()
729 &transport->transmitted); in __sctp_outq_flush_rtx()
779 static int sctp_packet_singleton(struct sctp_transport *transport, in sctp_packet_singleton() argument
782 const struct sctp_association *asoc = transport->asoc; in sctp_packet_singleton()
788 sctp_packet_init(&singleton, transport, sport, dport); in sctp_packet_singleton()
798 struct sctp_transport *transport; member
811 struct sctp_transport *new_transport = chunk->transport; in sctp_outq_select_transport()
824 if (ctx->transport && sctp_cmp_addr_exact(&chunk->dest, in sctp_outq_select_transport()
825 &ctx->transport->ipaddr)) in sctp_outq_select_transport()
826 new_transport = ctx->transport; in sctp_outq_select_transport()
869 if (new_transport != ctx->transport) { in sctp_outq_select_transport()
870 ctx->transport = new_transport; in sctp_outq_select_transport()
871 ctx->packet = &ctx->transport->packet; in sctp_outq_select_transport()
873 if (list_empty(&ctx->transport->send_ready)) in sctp_outq_select_transport()
874 list_add_tail(&ctx->transport->send_ready, in sctp_outq_select_transport()
883 sctp_transport_burst_limited(ctx->transport); in sctp_outq_select_transport()
922 error = sctp_packet_singleton(ctx->transport, chunk, in sctp_outq_flush_ctrl()
973 sctp_transport_reset_t3_rtx(ctx->transport); in sctp_outq_flush_ctrl()
974 ctx->transport->last_time_sent = jiffies; in sctp_outq_flush_ctrl()
978 sctp_transport_reset_reconf_timer(ctx->transport); in sctp_outq_flush_ctrl()
998 if (ctx->transport != ctx->asoc->peer.retran_path) { in sctp_outq_flush_rtx()
1000 ctx->transport = ctx->asoc->peer.retran_path; in sctp_outq_flush_rtx()
1001 ctx->packet = &ctx->transport->packet; in sctp_outq_flush_rtx()
1003 if (list_empty(&ctx->transport->send_ready)) in sctp_outq_flush_rtx()
1004 list_add_tail(&ctx->transport->send_ready, in sctp_outq_flush_rtx()
1017 sctp_transport_reset_t3_rtx(ctx->transport); in sctp_outq_flush_rtx()
1018 ctx->transport->last_time_sent = jiffies; in sctp_outq_flush_rtx()
1079 if (ctx->transport) in sctp_outq_flush_data()
1080 sctp_transport_burst_limited(ctx->transport); in sctp_outq_flush_data()
1141 &ctx->transport->transmitted); in sctp_outq_flush_data()
1143 sctp_transport_reset_t3_rtx(ctx->transport); in sctp_outq_flush_data()
1144 ctx->transport->last_time_sent = jiffies; in sctp_outq_flush_data()
1188 .transport = NULL, in sctp_outq_flush()
1244 struct sctp_transport *transport; in sctp_outq_sack() local
1290 list_for_each_entry(transport, transport_list, in sctp_outq_sack()
1293 transport->cacc.cycling_changeover = 0; in sctp_outq_sack()
1295 transport->cacc.cacc_saw_newack = 0; in sctp_outq_sack()
1320 list_for_each_entry(transport, transport_list, transports) { in sctp_outq_sack()
1321 sctp_check_transmitted(q, &transport->transmitted, in sctp_outq_sack()
1322 transport, &chunk->source, sack, in sctp_outq_sack()
1329 if (transport->cacc.cacc_saw_newack) in sctp_outq_sack()
1344 list_for_each_entry(transport, transport_list, transports) in sctp_outq_sack()
1345 sctp_mark_missing(q, &transport->transmitted, transport, in sctp_outq_sack()
1420 struct sctp_transport *transport, in sctp_check_transmitted() argument
1454 if (tchunk->transport) in sctp_check_transmitted()
1455 tchunk->transport->flight_size -= in sctp_check_transmitted()
1469 if (transport && !tchunk->tsn_gap_acked) { in sctp_check_transmitted()
1485 sctp_transport_update_rto(transport, in sctp_check_transmitted()
1506 transport->cacc.cacc_saw_newack in sctp_check_transmitted()
1522 if (!tchunk->transport) in sctp_check_transmitted()
1567 if (tchunk->transport) in sctp_check_transmitted()
1586 if (transport) { in sctp_check_transmitted()
1588 struct sctp_association *asoc = transport->asoc; in sctp_check_transmitted()
1605 transport->error_count = 0; in sctp_check_transmitted()
1606 transport->asoc->overall_error_count = 0; in sctp_check_transmitted()
1623 if ((transport->state == SCTP_INACTIVE || in sctp_check_transmitted()
1624 transport->state == SCTP_UNCONFIRMED) && in sctp_check_transmitted()
1625 sctp_cmp_addr_exact(&transport->ipaddr, saddr)) { in sctp_check_transmitted()
1627 transport->asoc, in sctp_check_transmitted()
1628 transport, in sctp_check_transmitted()
1633 sctp_transport_raise_cwnd(transport, sack_ctsn, in sctp_check_transmitted()
1636 transport->flight_size -= bytes_acked; in sctp_check_transmitted()
1637 if (transport->flight_size == 0) in sctp_check_transmitted()
1638 transport->partial_bytes_acked = 0; in sctp_check_transmitted()
1663 transport->error_count = 0; in sctp_check_transmitted()
1673 if (!transport->flight_size) { in sctp_check_transmitted()
1674 if (del_timer(&transport->T3_rtx_timer)) in sctp_check_transmitted()
1675 sctp_transport_put(transport); in sctp_check_transmitted()
1677 if (!mod_timer(&transport->T3_rtx_timer, in sctp_check_transmitted()
1678 jiffies + transport->rto)) in sctp_check_transmitted()
1679 sctp_transport_hold(transport); in sctp_check_transmitted()
1683 if (transport->dst) in sctp_check_transmitted()
1684 sctp_transport_dst_confirm(transport); in sctp_check_transmitted()
1694 struct sctp_transport *transport, in sctp_mark_missing() argument
1722 if (!transport || !sctp_cacc_skip(primary, in sctp_mark_missing()
1723 chunk->transport, in sctp_mark_missing()
1744 if (transport) { in sctp_mark_missing()
1746 sctp_retransmit(q, transport, SCTP_RTXR_FAST_RTX); in sctp_mark_missing()
1749 "flight_size:%d, pba:%d\n", __func__, transport, in sctp_mark_missing()
1750 transport->cwnd, transport->ssthresh, in sctp_mark_missing()
1751 transport->flight_size, transport->partial_bytes_acked); in sctp_mark_missing()