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()
468 transport, GFP_ATOMIC); in sctp_generate_reconf_event()
475 sctp_transport_put(transport); in sctp_generate_reconf_event()
481 struct sctp_transport *transport = from_timer(transport, t, probe_timer); in sctp_generate_probe_event() local
482 struct sctp_association *asoc = transport->asoc; in sctp_generate_probe_event()
492 if (!mod_timer(&transport->probe_timer, jiffies + (HZ / 20))) in sctp_generate_probe_event()
493 sctp_transport_hold(transport); in sctp_generate_probe_event()
500 transport, GFP_ATOMIC); in sctp_generate_probe_event()
507 sctp_transport_put(transport); in sctp_generate_probe_event()
538 * error counter for each of the destination transport addresses of the
546 * mark the destination transport address as inactive, and a
552 struct sctp_transport *transport, in sctp_do_8_2_transport_strike() argument
567 if (transport->state != SCTP_INACTIVE) in sctp_do_8_2_transport_strike()
568 transport->error_count++; in sctp_do_8_2_transport_strike()
569 } else if (transport->hb_sent) { in sctp_do_8_2_transport_strike()
570 if (transport->state != SCTP_UNCONFIRMED) in sctp_do_8_2_transport_strike()
572 if (transport->state != SCTP_INACTIVE) in sctp_do_8_2_transport_strike()
573 transport->error_count++; in sctp_do_8_2_transport_strike()
576 /* If the transport error count is greater than the pf_retrans in sctp_do_8_2_transport_strike()
578 * is SCTP_ACTIVE, then mark this transport as Partially Failed, in sctp_do_8_2_transport_strike()
582 transport->state == SCTP_ACTIVE && in sctp_do_8_2_transport_strike()
583 transport->error_count < transport->pathmaxrxt && in sctp_do_8_2_transport_strike()
584 transport->error_count > transport->pf_retrans) { in sctp_do_8_2_transport_strike()
586 sctp_assoc_control_transport(asoc, transport, in sctp_do_8_2_transport_strike()
591 sctp_transport_reset_hb_timer(transport); in sctp_do_8_2_transport_strike()
594 if (transport->state != SCTP_INACTIVE && in sctp_do_8_2_transport_strike()
595 (transport->error_count > transport->pathmaxrxt)) { in sctp_do_8_2_transport_strike()
596 pr_debug("%s: association:%p transport addr:%pISpc failed\n", in sctp_do_8_2_transport_strike()
597 __func__, asoc, &transport->ipaddr.sa); in sctp_do_8_2_transport_strike()
599 sctp_assoc_control_transport(asoc, transport, in sctp_do_8_2_transport_strike()
604 if (transport->error_count > transport->ps_retrans && in sctp_do_8_2_transport_strike()
605 asoc->peer.primary_path == transport && in sctp_do_8_2_transport_strike()
606 asoc->peer.active_path != transport) in sctp_do_8_2_transport_strike()
618 if (!is_hb || transport->hb_sent) { in sctp_do_8_2_transport_strike()
619 transport->rto = min((transport->rto * 2), transport->asoc->rto_max); in sctp_do_8_2_transport_strike()
620 sctp_max_rto(asoc, transport); in sctp_do_8_2_transport_strike()
720 /* Start a heartbeat timer for each transport on the association. in sctp_cmd_hb_timers_start()
721 * hold a reference on the transport to make sure none of in sctp_cmd_hb_timers_start()
767 * transport address to which the HEARTBEAT was sent. in sctp_cmd_transport_on()
787 /* Mark the destination transport address as active if it is not so in sctp_cmd_transport_on()
807 * RTT measurement for that destination transport address in sctp_cmd_transport_on()
809 * If the transport's rto_pending variable has been cleared, in sctp_cmd_transport_on()
846 * the transport for a shutdown chunk.
854 if (chunk->transport) in sctp_cmd_setup_t2()
855 t = chunk->transport; in sctp_cmd_setup_t2()
859 chunk->transport = t; in sctp_cmd_setup_t2()
959 t = sctp_assoc_choose_alter_transport(asoc, chunk->transport); in sctp_cmd_setup_t4()
961 chunk->transport = t; in sctp_cmd_setup_t4()
1412 if (new_obj->transport) { in sctp_cmd_interpreter()
1413 new_obj->transport->init_sent_count++; in sctp_cmd_interpreter()
1414 asoc->init_last_sent_to = new_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()
1498 /* Mark a transport for retransmission. */ in sctp_cmd_interpreter()
1499 sctp_retransmit(&asoc->outqueue, cmd->obj.transport, in sctp_cmd_interpreter()
1569 chunk->transport = t; in sctp_cmd_interpreter()
1571 /* Set the new transport as primary */ in sctp_cmd_interpreter()
1647 /* Mark one strike against a transport. */ in sctp_cmd_interpreter()
1649 cmd->obj.transport, 0); in sctp_cmd_interpreter()
1653 t = cmd->obj.transport; in sctp_cmd_interpreter()
1658 t = cmd->obj.transport; in sctp_cmd_interpreter()
1665 t = cmd->obj.transport; in sctp_cmd_interpreter()
1674 t = cmd->obj.transport; in sctp_cmd_interpreter()
1683 t = cmd->obj.transport; in sctp_cmd_interpreter()
1716 t = cmd->obj.transport; in sctp_cmd_interpreter()