Lines Matching full:transport

102 		struct sctp_transport *transport;  in sctp_do_ecn_ecne_work()  local
104 /* Find which transport's congestion variables in sctp_do_ecn_ecne_work()
107 transport = sctp_assoc_lookup_tsn(asoc, lowest_tsn); in sctp_do_ecn_ecne_work()
110 if (transport) in sctp_do_ecn_ecne_work()
111 sctp_transport_lower_cwnd(transport, in sctp_do_ecn_ecne_work()
179 * SACK delay for the last transport in sctp_gen_sack()
233 struct sctp_transport *transport = in sctp_generate_t3_rtx_event() local
234 from_timer(transport, t, T3_rtx_timer); in sctp_generate_t3_rtx_event()
235 struct sctp_association *asoc = transport->asoc; in sctp_generate_t3_rtx_event()
247 if (!mod_timer(&transport->T3_rtx_timer, jiffies + (HZ/20))) in sctp_generate_t3_rtx_event()
248 sctp_transport_hold(transport); in sctp_generate_t3_rtx_event()
257 transport, GFP_ATOMIC); in sctp_generate_t3_rtx_event()
264 sctp_transport_put(transport); in sctp_generate_t3_rtx_event()
360 * sure that the transport is still valid.
364 struct sctp_transport *transport = from_timer(transport, t, hb_timer); in sctp_generate_heartbeat_event() local
365 struct sctp_association *asoc = transport->asoc; in sctp_generate_heartbeat_event()
376 if (!mod_timer(&transport->hb_timer, jiffies + (HZ/20))) in sctp_generate_heartbeat_event()
377 sctp_transport_hold(transport); in sctp_generate_heartbeat_event()
382 elapsed = jiffies - transport->last_time_sent; in sctp_generate_heartbeat_event()
383 timeout = sctp_transport_timeout(transport); in sctp_generate_heartbeat_event()
386 if (!mod_timer(&transport->hb_timer, jiffies + elapsed)) in sctp_generate_heartbeat_event()
387 sctp_transport_hold(transport); in sctp_generate_heartbeat_event()
394 transport, GFP_ATOMIC); in sctp_generate_heartbeat_event()
401 sctp_transport_put(transport); in sctp_generate_heartbeat_event()
409 struct sctp_transport *transport = in sctp_generate_proto_unreach_event() local
410 from_timer(transport, t, proto_unreach_timer); in sctp_generate_proto_unreach_event()
411 struct sctp_association *asoc = transport->asoc; in sctp_generate_proto_unreach_event()
420 if (!mod_timer(&transport->proto_unreach_timer, in sctp_generate_proto_unreach_event()
422 sctp_transport_hold(transport); in sctp_generate_proto_unreach_event()
434 asoc->state, asoc->ep, asoc, transport, GFP_ATOMIC); in sctp_generate_proto_unreach_event()
438 sctp_transport_put(transport); in sctp_generate_proto_unreach_event()
444 struct sctp_transport *transport = in sctp_generate_reconf_event() local
445 from_timer(transport, t, reconf_timer); in sctp_generate_reconf_event()
446 struct sctp_association *asoc = transport->asoc; in sctp_generate_reconf_event()
456 if (!mod_timer(&transport->reconf_timer, jiffies + (HZ / 20))) in sctp_generate_reconf_event()
457 sctp_transport_hold(transport); in sctp_generate_reconf_event()
464 transport, GFP_ATOMIC); in sctp_generate_reconf_event()
471 sctp_transport_put(transport); in sctp_generate_reconf_event()
477 struct sctp_transport *transport = from_timer(transport, t, probe_timer); in sctp_generate_probe_event() local
478 struct sctp_association *asoc = transport->asoc; in sctp_generate_probe_event()
488 if (!mod_timer(&transport->probe_timer, jiffies + (HZ / 20))) in sctp_generate_probe_event()
489 sctp_transport_hold(transport); in sctp_generate_probe_event()
496 transport, GFP_ATOMIC); in sctp_generate_probe_event()
503 sctp_transport_put(transport); in sctp_generate_probe_event()
534 * error counter for each of the destination transport addresses of the
542 * mark the destination transport address as inactive, and a
548 struct sctp_transport *transport, in sctp_do_8_2_transport_strike() argument
563 if (transport->state != SCTP_INACTIVE) in sctp_do_8_2_transport_strike()
564 transport->error_count++; in sctp_do_8_2_transport_strike()
565 } else if (transport->hb_sent) { in sctp_do_8_2_transport_strike()
566 if (transport->state != SCTP_UNCONFIRMED) in sctp_do_8_2_transport_strike()
568 if (transport->state != SCTP_INACTIVE) in sctp_do_8_2_transport_strike()
569 transport->error_count++; in sctp_do_8_2_transport_strike()
572 /* If the transport error count is greater than the pf_retrans in sctp_do_8_2_transport_strike()
574 * is SCTP_ACTIVE, then mark this transport as Partially Failed, in sctp_do_8_2_transport_strike()
578 transport->state == SCTP_ACTIVE && in sctp_do_8_2_transport_strike()
579 transport->error_count < transport->pathmaxrxt && in sctp_do_8_2_transport_strike()
580 transport->error_count > transport->pf_retrans) { in sctp_do_8_2_transport_strike()
582 sctp_assoc_control_transport(asoc, transport, in sctp_do_8_2_transport_strike()
587 sctp_transport_reset_hb_timer(transport); in sctp_do_8_2_transport_strike()
590 if (transport->state != SCTP_INACTIVE && in sctp_do_8_2_transport_strike()
591 (transport->error_count > transport->pathmaxrxt)) { in sctp_do_8_2_transport_strike()
592 pr_debug("%s: association:%p transport addr:%pISpc failed\n", in sctp_do_8_2_transport_strike()
593 __func__, asoc, &transport->ipaddr.sa); in sctp_do_8_2_transport_strike()
595 sctp_assoc_control_transport(asoc, transport, in sctp_do_8_2_transport_strike()
600 if (transport->error_count > transport->ps_retrans && in sctp_do_8_2_transport_strike()
601 asoc->peer.primary_path == transport && in sctp_do_8_2_transport_strike()
602 asoc->peer.active_path != transport) in sctp_do_8_2_transport_strike()
614 if (!is_hb || transport->hb_sent) { in sctp_do_8_2_transport_strike()
615 transport->rto = min((transport->rto * 2), transport->asoc->rto_max); in sctp_do_8_2_transport_strike()
616 sctp_max_rto(asoc, transport); in sctp_do_8_2_transport_strike()
716 /* Start a heartbeat timer for each transport on the association. in sctp_cmd_hb_timers_start()
717 * hold a reference on the transport to make sure none of in sctp_cmd_hb_timers_start()
763 * transport address to which the HEARTBEAT was sent. in sctp_cmd_transport_on()
783 /* Mark the destination transport address as active if it is not so in sctp_cmd_transport_on()
803 * RTT measurement for that destination transport address in sctp_cmd_transport_on()
805 * If the transport's rto_pending variable has been cleared, in sctp_cmd_transport_on()
842 * the transport for a shutdown chunk.
850 if (chunk->transport) in sctp_cmd_setup_t2()
851 t = chunk->transport; in sctp_cmd_setup_t2()
855 chunk->transport = t; in sctp_cmd_setup_t2()
955 t = sctp_assoc_choose_alter_transport(asoc, chunk->transport); in sctp_cmd_setup_t4()
957 chunk->transport = t; in sctp_cmd_setup_t4()
1406 if (new_obj->transport) { in sctp_cmd_interpreter()
1407 new_obj->transport->init_sent_count++; in sctp_cmd_interpreter()
1408 asoc->init_last_sent_to = new_obj->transport; in sctp_cmd_interpreter()
1486 /* Mark a transport for retransmission. */ in sctp_cmd_interpreter()
1487 sctp_retransmit(&asoc->outqueue, cmd->obj.transport, in sctp_cmd_interpreter()
1492 /* Mark a transport for retransmission. */ in sctp_cmd_interpreter()
1493 sctp_retransmit(&asoc->outqueue, cmd->obj.transport, in sctp_cmd_interpreter()
1563 chunk->transport = t; in sctp_cmd_interpreter()
1565 /* Set the new transport as primary */ in sctp_cmd_interpreter()
1641 /* Mark one strike against a transport. */ in sctp_cmd_interpreter()
1643 cmd->obj.transport, 0); in sctp_cmd_interpreter()
1647 t = cmd->obj.transport; in sctp_cmd_interpreter()
1652 t = cmd->obj.transport; in sctp_cmd_interpreter()
1659 t = cmd->obj.transport; in sctp_cmd_interpreter()
1668 t = cmd->obj.transport; in sctp_cmd_interpreter()
1677 t = cmd->obj.transport; in sctp_cmd_interpreter()
1710 t = cmd->obj.transport; in sctp_cmd_interpreter()