Lines Matching refs:transport

102 		struct sctp_transport *transport;
104 /* Find which transport's congestion variables
107 transport = sctp_assoc_lookup_tsn(asoc, lowest_tsn);
110 if (transport)
111 sctp_transport_lower_cwnd(transport,
179 * SACK delay for the last transport
233 struct sctp_transport *transport =
234 from_timer(transport, t, T3_rtx_timer);
235 struct sctp_association *asoc = transport->asoc;
247 if (!mod_timer(&transport->T3_rtx_timer, jiffies + (HZ/20)))
248 sctp_transport_hold(transport);
257 transport, GFP_ATOMIC);
264 sctp_transport_put(transport);
360 * sure that the transport is still valid.
364 struct sctp_transport *transport = from_timer(transport, t, hb_timer);
365 struct sctp_association *asoc = transport->asoc;
376 if (!mod_timer(&transport->hb_timer, jiffies + (HZ/20)))
377 sctp_transport_hold(transport);
382 elapsed = jiffies - transport->last_time_sent;
383 timeout = sctp_transport_timeout(transport);
386 if (!mod_timer(&transport->hb_timer, jiffies + elapsed))
387 sctp_transport_hold(transport);
394 transport, GFP_ATOMIC);
401 sctp_transport_put(transport);
409 struct sctp_transport *transport =
410 from_timer(transport, t, proto_unreach_timer);
411 struct sctp_association *asoc = transport->asoc;
420 if (!mod_timer(&transport->proto_unreach_timer,
422 sctp_transport_hold(transport);
434 asoc->state, asoc->ep, asoc, transport, GFP_ATOMIC);
438 sctp_transport_put(transport);
444 struct sctp_transport *transport =
445 from_timer(transport, t, reconf_timer);
446 struct sctp_association *asoc = transport->asoc;
456 if (!mod_timer(&transport->reconf_timer, jiffies + (HZ / 20)))
457 sctp_transport_hold(transport);
468 transport, GFP_ATOMIC);
475 sctp_transport_put(transport);
506 * error counter for each of the destination transport addresses of the
514 * mark the destination transport address as inactive, and a
520 struct sctp_transport *transport,
535 if (transport->state != SCTP_INACTIVE)
536 transport->error_count++;
537 } else if (transport->hb_sent) {
538 if (transport->state != SCTP_UNCONFIRMED)
540 if (transport->state != SCTP_INACTIVE)
541 transport->error_count++;
544 /* If the transport error count is greater than the pf_retrans
546 * is SCTP_ACTIVE, then mark this transport as Partially Failed,
550 transport->state == SCTP_ACTIVE &&
551 transport->error_count < transport->pathmaxrxt &&
552 transport->error_count > transport->pf_retrans) {
554 sctp_assoc_control_transport(asoc, transport,
559 sctp_transport_reset_hb_timer(transport);
562 if (transport->state != SCTP_INACTIVE &&
563 (transport->error_count > transport->pathmaxrxt)) {
564 pr_debug("%s: association:%p transport addr:%pISpc failed\n",
565 __func__, asoc, &transport->ipaddr.sa);
567 sctp_assoc_control_transport(asoc, transport,
572 if (transport->error_count > transport->ps_retrans &&
573 asoc->peer.primary_path == transport &&
574 asoc->peer.active_path != transport)
586 if (!is_hb || transport->hb_sent) {
587 transport->rto = min((transport->rto * 2), transport->asoc->rto_max);
588 sctp_max_rto(asoc, transport);
688 /* Start a heartbeat timer for each transport on the association.
689 * hold a reference on the transport to make sure none of
735 * transport address to which the HEARTBEAT was sent.
755 /* Mark the destination transport address as active if it is not so
775 * RTT measurement for that destination transport address
777 * If the transport's rto_pending variable has been cleared,
814 * the transport for a shutdown chunk.
822 if (chunk->transport)
823 t = chunk->transport;
827 chunk->transport = t;
949 t = sctp_assoc_choose_alter_transport(asoc, chunk->transport);
951 chunk->transport = t;
1407 if (new_obj->transport) {
1408 new_obj->transport->init_sent_count++;
1409 asoc->init_last_sent_to = new_obj->transport;
1487 /* Mark a transport for retransmission. */
1488 sctp_retransmit(&asoc->outqueue, cmd->obj.transport,
1493 /* Mark a transport for retransmission. */
1494 sctp_retransmit(&asoc->outqueue, cmd->obj.transport,
1564 chunk->transport = t;
1566 /* Set the new transport as primary */
1642 /* Mark one strike against a transport. */
1644 cmd->obj.transport, 0);
1648 t = cmd->obj.transport;
1653 t = cmd->obj.transport;
1660 t = cmd->obj.transport;
1669 t = cmd->obj.transport;
1706 t = cmd->obj.transport;